CATEGORY:電動ガン

2017年08月19日

自作FCUの動作検証、、、(uki)

結論から、、、ところどころ問題ありでした。
テスト時は大変上手くいっていたものの、今回の定例会へ持ちこんで使用したところ問題発生、、、

では、シリアルモニタと繋げて各センサーの検出やマイコン内の処理を見てみようじゃないかと。

■問題点の整理
1、セミ動作時に、トリガーを離した際にも入力検知してしまう事がある→原因:チャタリングが起こっている
2、セミ動作時に、2連射されてしまう→原因:カットオフ後にモーターが停止しているものの、満充電のバッテリーが元気良すぎて惰性で2発目を発射してしまいます。お寿司


■解決策
1、スケッチ(制御プログラム)の見直し
2、回路変更によるモーターブレーキの導入

ではでは、、
スケッチの見直しにあたり、こんな素敵な記事を見付けました。
「B2CS」Arduino用自作ライブラリプログラミングでチャタリング回避


スイッチ入力について、各動作の動きを分け、個別に検出できるというものです。
なるほど。ライブラリという概念もあるんですね。
ざっくりとこんな感じ。
stateについてもライブラリに組み込めるのかなあ、、?
もっと整えるべし!調べて勉強しましょう。

#include
B2CS jumbleat_sw;

const int GATE_PIN = 6; //G GATE(6) or LED(13)
const int S_pin = 10; //セレクター(チャタリングは許容する)

//初期値
int Smag = LOW;
int old_Smag = LOW;
int state = 0;

void setup() {
pinMode(GATE_PIN,OUTPUT);
pinMode(S_pin, INPUT);
jumbleat_sw.setSW(2, INPUT_PULLUP, LOW); //トリガー
jumbleat_sw.setSW(3, INPUT, HIGH); //カットオフ
jumbleat_sw.setPushShort(1); //トリガー入力判定しきい値(初期値value12)
jumbleat_sw.setPushLong(100); //長押し判定しきい値(初期値value2000)
jumbleat_sw.GO(); //タイマー割り込み(初期値5ms)
Serial.begin(38400);
}

void loop() {
byte T_pin = jumbleat_sw.read(2);
byte C_pin = jumbleat_sw.read(3);
Smag = digitalRead(S_pin);


//トリガーの閾値モニター用
if (jumbleat_sw.read(2) == SW_RELEASED)
{
Serial.println(jumbleat_sw.GetGauge());
}

//stateの設定
if(state < 0){
state = 0;
}
if(state == 0){
digitalWrite(GATE_PIN,LOW);
}
if(state >= 1 && state <= 6){
digitalWrite(GATE_PIN,HIGH);
}

if(state > 1 && S_pin == LOW){//セミオート時のstate最大値(要らないかも?)

state = 1;
}
if(state > 6 && S_pin == HIGH){//フルオート時のstate最大値
state = 6;
}


//トリガーおよびカットオフ入力に関する各入力動作について

if (T_pin == SW_RELEASED_LONG || T_pin == SW_RELEASED) { //長押し後離した場合、トリガーを離した場合
// なにもしない
}

else if (T_pin == SW_PUSHED_LONG) { //長押し後に離した場合(>= SW_RELEASEDでも良い)
// なにもしない。もしくは何か行うか、、
}

else if (T_pin == SW_PUSHED && S_pin == LOW) { //セミトリガーON
state = 1 + state;
}
else if (T_pin == SW_PUSHED && S_pin == HIGH) { //フルトリガーON
state = 3 + state;
}

else if (C_pin == SW_PUSHED) { //カットオフ動作
state = state -1;
}

else {
// なにもしない
}

}



回路については、前回の記事の内容では実現不可!ということも解りました。
こちらのように、ハイサイド側は(一般的には)P型MOS-FETにする必要があるそうです。
自作FCUの動作検証、、、(uki)
ただ、P型の駆動も、これはこれで面倒なため調べていると、、、
IR2302というハーフブリッジドライバを見付けました。

ザックリとした構成は、
arduino~IR2302~N型MOS-FETを2つ~モーターへというように作れるため、モーター正転とショートブレーキの2つの動作が出来るようになるはずです。
P型が要らず、単一電源に出来るという所も良か塩梅。


~~~~~~~~~~~~~~~~~~~~~~~~~~


もう、始めからFCU買って、センサー部分だけP90用にはんだ付けした方が良いんじゃないか。
そういうような、天の声も聞こえてきそうですが、違うんです。
こういうのもサバゲーの面白い所なんです(白目)

つづく



自作FCUに関する記事一覧はこちらです
電動ガン P90 のための FCU 電子制御 電子トリガー ユニットを自作する



タグ :FCUuki

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

Posted by strike hound  at 22:20 │Comments(0)電動ガン

上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。