CATEGORY:電動ガン
2017年08月09日
P90のためのFCUを自作する(uki)
P90を愛でること、はや1年半。
ついに機械部品の摩耗によって不具合の発生が始まりました。
P90の心臓部であるメカボックスの特徴の一つは、長いカットオフレバー。
これを力技で動かしてセミオートのカットオフを行うのですが、セクターギヤのレバーを押す部分の摩耗や、カットオフレバーそのものの変形によって、セミオートが自動でツータップになったり、バーストになったり、より便利になり、最終的にセミオートが使えなくなってしまいます。
先日のゲーム中にこういった症状が起こり、まあいいかと。
帰ってきてから、いやいかんと。平成の大改修だと。
カットオフレバーを取り寄せて、付け替えても症状直らず。
これは、セクタギヤが原因ですわと。
この様にして連鎖的に部品を替えるのも面倒なので、巷でFCUとか、ASCUとか、電子トリガーとか、電動ガンの電子制御とか呼ばれているようなものを自作する事にしました。

制御の内容もとてもシンプルなはず。
セミオートは、スイッチ押す→モーター回転開始→カットオフを検知→モーター止まる。
ここに、ブレーキ(なんだか、FCU界隈では、アクティブブレーキとショートブレーキ(回生ブレーキ)がごっちゃになってるような、、さておき)を付ければいいだけですから。
また、どうせなら、前々から改善したかった事も合わせて解決します。
それは、、
1、P90はトリガーが重い
2、P90はトリガーの移動距離が長い
3、p90はトリガーフィーリングが悪い
では、改善ポイントの纏め。
A、トリガーの近くにマイクロスイッチを設置して、1~3を改善する。p90でマイクロスイッチトリガーの感触!
B、セレクターにセンサーを設置して、セミフル切り替え機能を制御する
C、カットオフをセンサーで制御し、かつ、メカボを開けずにカスタムする
D、フルオートはあんまり使わないので、セミオート+バーストショットにする
Aから行きましょう。

できました。
マァンダム。
Bはこうして、、
ついに機械部品の摩耗によって不具合の発生が始まりました。
P90の心臓部であるメカボックスの特徴の一つは、長いカットオフレバー。
これを力技で動かしてセミオートのカットオフを行うのですが、セクターギヤのレバーを押す部分の摩耗や、カットオフレバーそのものの変形によって、セミオートが自動でツータップになったり、バーストになったり、より便利になり、最終的にセミオートが使えなくなってしまいます。
先日のゲーム中にこういった症状が起こり、まあいいかと。
帰ってきてから、いやいかんと。平成の大改修だと。
カットオフレバーを取り寄せて、付け替えても症状直らず。
これは、セクタギヤが原因ですわと。
この様にして連鎖的に部品を替えるのも面倒なので、巷でFCUとか、ASCUとか、電子トリガーとか、電動ガンの電子制御とか呼ばれているようなものを自作する事にしました。

制御の内容もとてもシンプルなはず。
セミオートは、スイッチ押す→モーター回転開始→カットオフを検知→モーター止まる。
ここに、ブレーキ(なんだか、FCU界隈では、アクティブブレーキとショートブレーキ(回生ブレーキ)がごっちゃになってるような、、さておき)を付ければいいだけですから。
また、どうせなら、前々から改善したかった事も合わせて解決します。
それは、、
1、P90はトリガーが重い
2、P90はトリガーの移動距離が長い
3、p90はトリガーフィーリングが悪い
では、改善ポイントの纏め。
A、トリガーの近くにマイクロスイッチを設置して、1~3を改善する。p90でマイクロスイッチトリガーの感触!
B、セレクターにセンサーを設置して、セミフル切り替え機能を制御する
C、カットオフをセンサーで制御し、かつ、メカボを開けずにカスタムする
D、フルオートはあんまり使わないので、セミオート+バーストショットにする
Aから行きましょう。

できました。
へっへっへ #P90 #FCU pic.twitter.com/JMOV09S11g
— strike hound@サバゲーチーム (@strike_hound) 2017年8月5日
マァンダム。
Bはこうして、、
磁石を埋め込み、、、


磁石が取れないようにパテで埋めて、、、

ボディの裏側にホールセンサー(磁力センサー)を設置。
動作を確認すると、上手く動いているようです。よしよし。
Cはこう、、、
分かりにくいかもですが、スイッチ端子が入っていたところをゴッソリ取り除いて、ここにもホールセンサーを設置。
カットオフレバーの先端にネオジム磁石を取り付けます。
こちらも動作確認をすると、上手く動いています。ファー!
Dはなかなか大変です。
ザックリとした全体構成は、マイコン+FETスイッチ。
マイコンにはこれを使います。

arduino microや!
C言語よりも少し簡単なプログラムで良く、PCとUSBで接続して簡単に扱えます。
しかも、電動ガン用のバッテリーがそのまま使える!
回路はこんな感じで動きました。

モーターのノイズには悩まされました、、、
arduinoを動かすスケッチ(プログラム)はこんな感じ、、、
バーストショットは、発射段数をスタックするようにしました。
これなら、フルオートが無くてもいいかなあと。
しかし、取りあえず動いていますが、安全のための対策を講じねばなりません。
i、各部センサーに機械的な故障が出た際に、弾が出ないようにする。または、速やかに停止状態へ戻るようにする。
ii、バッテリーの電圧が下がって来た際に、全動作を停止する
iii、もっと単純なスケッチ(プログラム)にする
等々、、
将来的には、ステッピングモーターへ置き換えたり、、リニアピストンへ、、、!!!メメタァ!!
しかし、そう簡単にはいかないのであった、、続く!
□追記

ボディの裏側にホールセンサー(磁力センサー)を設置。
動作を確認すると、上手く動いているようです。よしよし。
Cはこう、、、
カットオフレバーに磁石を付けて、ホールセンサーでカットオフを検知します。メカボは開けたくないのでこうするぞ! #P90 #FCU pic.twitter.com/7oTMwP63Ay
— strike hound@サバゲーチーム (@strike_hound) 2017年8月6日
分かりにくいかもですが、スイッチ端子が入っていたところをゴッソリ取り除いて、ここにもホールセンサーを設置。
カットオフレバーの先端にネオジム磁石を取り付けます。
こちらも動作確認をすると、上手く動いています。ファー!
Dはなかなか大変です。
ザックリとした全体構成は、マイコン+FETスイッチ。
マイコンにはこれを使います。

arduino microや!
C言語よりも少し簡単なプログラムで良く、PCとUSBで接続して簡単に扱えます。
しかも、電動ガン用のバッテリーがそのまま使える!
回路はこんな感じで動きました。

モーターのノイズには悩まされました、、、
arduinoを動かすスケッチ(プログラム)はこんな感じ、、、
//ここから~
const int GATE_PIN = 12; //GATEピン(12番)テストは13番で実装LEDが点灯する
const int TPin = 2; //トリガー入力
const int Cvcc = 8; //Cセンサー電源
const int CPin = 9; //Cセンサー入力
const int Svcc = 5; //Sセンサー電源
const int SPin = 4; //Sセンサー入力
//初期値
int trigger = HIGH; //変数トリガー
int old_trigger = HIGH;
int state = 0; //動作状態の変数state
int Cmag = LOW; //カットオフマグネット検知の状態
int old_Cmag = LOW; //比較用前のマグネット検知の状態
int Smag = LOW; //セレクターマグネット検知の状態
int old_Smag = LOW; //比較用前のマグネット検知の状態
void setup() {
//入出力設定とか
pinMode(GATE_PIN,OUTPUT);
pinMode(TPin,INPUT_PULLUP);
pinMode(Cvcc, OUTPUT);//カットオフセンサー電源5v
digitalWrite(Cvcc,HIGH); //カットオフセンサー電源5v
pinMode(CPin, INPUT);//カットオフセンサー入力用
pinMode(Svcc, OUTPUT);//セレクターセンサー電源5v
digitalWrite(Svcc,HIGH); //セレクターセンサー電源5v
pinMode(SPin, INPUT);//セレクターセンサー入力用
Serial.begin(9600);
}
void loop() {
trigger = digitalRead(TPin);
Cmag = digitalRead(CPin);
Smag = digitalRead(SPin);
//モニタリングする
Serial.print("Tr = " );
Serial.print(trigger);
Serial.print("\t t CUT = " );
Serial.print(Cmag);
Serial.print("\t FULL = " );
Serial.print(Smag);
Serial.print("\t state = " );
Serial.println(state);
//モニタリングする
if(Smag == HIGH && old_Smag == LOW){
state = 0;
delay(10);
}
if(Smag == LOW && old_Smag == HIGH){
state = 0;
delay(10);
}
old_Smag = Smag;
if(Smag == LOW){
if(trigger == LOW && old_trigger == HIGH){
state = 1 + state;
delay(5);
}
if(trigger == HIGH && old_trigger == LOW){
}
old_trigger = trigger;
if(Cmag == HIGH && old_Cmag == LOW){
state = state -1;
delay(2);
}
old_Cmag = Cmag;
}
if(Smag == HIGH){
if(trigger == LOW && old_trigger == HIGH){
state = 3 + state;
delay(10);
}
if(trigger == HIGH && old_trigger == LOW){
}
old_trigger = trigger;
if(Cmag == HIGH && old_Cmag == LOW){
state = state -1;
delay(3);
}
old_Cmag = Cmag;
}
if(state < 0){
state = 0;
}
if(state == 0){
digitalWrite(GATE_PIN,LOW);
}
if(state >= 1 && state <= 6){
digitalWrite(GATE_PIN,HIGH);
}
if(state > 6){
state = 6;
}
}
//~ここまで
バーストショットは、発射段数をスタックするようにしました。
これなら、フルオートが無くてもいいかなあと。
しかし、取りあえず動いていますが、安全のための対策を講じねばなりません。
i、各部センサーに機械的な故障が出た際に、弾が出ないようにする。または、速やかに停止状態へ戻るようにする。
ii、バッテリーの電圧が下がって来た際に、全動作を停止する
iii、もっと単純なスケッチ(プログラム)にする
等々、、
将来的には、ステッピングモーターへ置き換えたり、、リニアピストンへ、、、!!!メメタァ!!
しかし、そう簡単にはいかないのであった、、続く!
□追記
STINGER Airsoft P90用ショートストロークスイッチという、トリガーの動作範囲を小さくする大変に便利なパーツも発売されました。
セミの連射のしやすさの改善といった点で比較すると、ショートストロークスイッチ一択です。
当ブログの一連の自作FCUや市販のP90用FCUは、マイクロスイッチ化によるトリガーフィーリングの改善の他、部品点数の削減による静音化、P90の持病であるカットオフレバーのオミットとメリットも多いものの、トラブル時の対処はとても面倒です(問題がどこで起こっているか解りにくいため)。
いずれも一長一短。
割り切ってカスタムしましょう。
でも、5mm角くらいで5V駆動ならなんでもいいと思いますよ。
図のようにマイコンへホールセンサーを直接繋いでも大丈夫なのでしょうか?
こちらの情報を元に、初マイコンチャレンジして、なんとかアクティブブレーキなし版ですがP90を電子トリガー化できました。
ここまで詳細に書いてあるブログは他になかったので、色々勉強になりました。
新しい記事の更新も楽しみにしてます。
こんにちは。
それは素晴らしいですね!
もしフィールドでお会いすることあれば、P90談義しましょう!