CATEGORY:電動ガン

2017年08月09日

P90のためのFCUを自作する(uki)

P90を愛でること、はや1年半。
ついに機械部品の摩耗によって不具合の発生が始まりました。

P90の心臓部であるメカボックスの特徴の一つは、長いカットオフレバー。
これを力技で動かしてセミオートのカットオフを行うのですが、セクターギヤのレバーを押す部分の摩耗や、カットオフレバーそのものの変形によって、セミオートが自動でツータップになったり、バーストになったり、より便利になり、最終的にセミオートが使えなくなってしまいます。

先日のゲーム中にこういった症状が起こり、まあいいかと。
帰ってきてから、いやいかんと。平成の大改修だと。

カットオフレバーを取り寄せて、付け替えても症状直らず。
これは、セクタギヤが原因ですわと。

この様にして連鎖的に部品を替えるのも面倒なので、巷でFCUとか、ASCUとか、電子トリガーとか、電動ガンの電子制御とか呼ばれているようなものを自作する事にしました。
P90のためのFCUを自作する(uki)

制御の内容もとてもシンプルなはず。
セミオートは、スイッチ押す→モーター回転開始→カットオフを検知→モーター止まる。
ここに、ブレーキ(なんだか、FCU界隈では、アクティブブレーキとショートブレーキ(回生ブレーキ)がごっちゃになってるような、、さておき)を付ければいいだけですから。


また、どうせなら、前々から改善したかった事も合わせて解決します。
それは、、
1、P90はトリガーが重い
2、P90はトリガーの移動距離が長い
3、p90はトリガーフィーリングが悪い

では、改善ポイントの纏め。
A、トリガーの近くにマイクロスイッチを設置して、1~3を改善する。p90でマイクロスイッチトリガーの感触!
B、セレクターにセンサーを設置して、セミフル切り替え機能を制御する
C、カットオフをセンサーで制御し、かつ、メカボを開けずにカスタムする
D、フルオートはあんまり使わないので、セミオート+バーストショットにする

Aから行きましょう。
P90のためのFCUを自作する(uki)
できました。


マァンダム。

Bはこうして、、
P90のためのFCUを自作する(uki)
磁石を埋め込み、、、

P90のためのFCUを自作する(uki)
磁石が取れないようにパテで埋めて、、、
P90のためのFCUを自作する(uki)
ボディの裏側にホールセンサー(磁力センサー)を設置。
動作を確認すると、上手く動いているようです。よしよし。

Cはこう、、、


分かりにくいかもですが、スイッチ端子が入っていたところをゴッソリ取り除いて、ここにもホールセンサーを設置。
カットオフレバーの先端にネオジム磁石を取り付けます。
こちらも動作確認をすると、上手く動いています。ファー!

Dはなかなか大変です。
ザックリとした全体構成は、マイコン+FETスイッチ。
マイコンにはこれを使います。
P90のためのFCUを自作する(uki)
arduino microや!

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

回路はこんな感じで動きました。
P90のためのFCUを自作する(uki)
モーターのノイズには悩まされました、、、

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の持病であるカットオフレバーのオミットとメリットも多いものの、トラブル時の対処はとても面倒です(問題がどこで起こっているか解りにくいため)。
いずれも一長一短。
割り切ってカスタムしましょう。




タグ :P90ukiFCU

同じカテゴリー(電動ガン)の記事

Posted by strike hound  at 02:01 │Comments(6)電動ガン

COMMENT
ホールセンサー(磁力センサー)はどこのメーカーのなんという商品を使いましたか?
Posted by トンキー at 2018年01月13日 18:24
別の記事に、パーツ一覧を書いたような、、見てみてください~
でも、5mm角くらいで5V駆動ならなんでもいいと思いますよ。
Posted by strike houndstrike hound at 2018年01月17日 16:05
こちらの回路図を参考に考えているのですが、
図のようにマイコンへホールセンサーを直接繋いでも大丈夫なのでしょうか?
Posted by 模索中 at 2019年05月03日 19:58
それぞれのpinに動作を設定するのでヘーキヘーキ
Posted by uki at 2019年06月14日 11:36
はじめまして。
こちらの情報を元に、初マイコンチャレンジして、なんとかアクティブブレーキなし版ですがP90を電子トリガー化できました。
ここまで詳細に書いてあるブログは他になかったので、色々勉強になりました。

新しい記事の更新も楽しみにしてます。
Posted by スマイリー at 2020年03月21日 18:22
スマイリーさん

こんにちは。
それは素晴らしいですね!
もしフィールドでお会いすることあれば、P90談義しましょう!
Posted by uki at 2020年04月26日 15:58
上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。