Darkside(https対応しました)

<< 前のページ

2021年6月13日(日) 21:43

過ぎたるも装填不良

 暫くは快調に射撃できていたのだが、充分に残弾があるのに空撃ちしかできなくなった。
 手動で送弾すると、既にBB弾が充分に送り込まれていてクラッチすべり音がする。

 装填が行われているのに発射されない、というのはかなり焦る症状だ。
 メカボックスを外してチャンバーを確認すると、BB弾はキチンと送り込まれている。そして、ピストンの前後動は正常な音がしているし、セミオートスイッチも想定通りに押されている。
 これって・・・タペットリープレートが破損でもしてノズルが前後に動かなくなってるとか?

 自作のタペットリープレートは強靭なステンレス製だが、強度に充分な余裕を欠く部分が存在していた場合には金属疲労のリスクがある。やるからには、すべての部分の強度を充分に大きくしておかねばならない。

 メカボックスを分解すると、シムの紛失に注意したり逆転防止ラッチが組み立ての邪魔だったりと、面倒臭い。だから出来るだけ分解したくないのだが、それでもクラシックアーミー製はメインスプリングを独立で着脱できるだけ相当にマシである。

 改造後すでに数百発撃っているので、ここらで内部に破損や磨耗が発生していないか確認するのも悪くないだろう。そう考えて、メカボックスを分解。
 その結果、どこにも異常は見られない。
 ピストンの歯車は健在、タペットリープレートに破損や磨耗は無い。
 各ギアも、破損や磨耗は認められない。

 そのまま元通りに組み立て直し、メカボックスをステーに固定・・・しようとしてノズルがチャンバーに入らないことに気付いた。そう、装填不良ではなく、キツく装填し過ぎてBB弾がチャンバー部分に詰まってしまっていたのだ!

 この現象は2年前にもやらかしていて、電動マガジンの装填圧力は調整していた。しかし今回やたら装填不良が発生したせいで、2年前に最適と結論したパラメーターを変更し、かなり装填パワーを上げていたのである。
 電動マガジンのモーターはPWM駆動しているので、装填パワーはPICのプログラムで容易に調整できる。

 装填パワーを上げ過ぎるとチャンバーにBB弾が詰まり、下げ過ぎれば装填不良を起こす。なかなかマガジンは、難しい。それでも、ゼンマイ動力による通常の多弾倉マガジンに比べれば、遥かに調整し易いし安定させ易い。

 こうして、再び快調に射撃できるようになった。

written by higashino [ラジコン用エアガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2021年6月11日(金) 21:07

装填不良は組み立てミス

 装填不良の多発だが、組み立て時のミスである可能性が急浮上。

 スペーサーの上にナットが乗った上で、固定されている。
 これは、保管状態からナットが乗ったままだったからだが、ナットを紛失しないようナットを乗せたまま保管していたのでは?

 過去の記事を見直すと、やはりナットは乗せないのが正解っぽい。

 ナットを外し、ギアに追加したワッシャー1枚を抜く。

 改めて組み立て直すと、ピタリと各パーツの位置が決まった。やはり、こっちが正解だ。
 これで快調に装填できるぞ!と喜び勇んで初期装填を行ったところ、動かない。ベベルギアが固着状態で、回らない。

 現物合わせを連発し、調整に使用したワッシャー等もハンダ付けでビルトインしてしまい、精緻な調整が必要な電動マガジンを調整フリーで組み立て可能になっている。しかし唯一、ベベルギアの噛み合わせだけは手動調整が必要。

 具体的にはギアボックスを固定している2本のネジを緩め、ギアボックスごと間合いを調整する。同様にベベルギアの噛み合わせ調整が問題となるメカボックスでは、モーターごとバネで押し付けることにより所定の圧力で噛み合う仕組みになっている。
 この自作電動マガジンでも、類似の方式に改良することは可能と思われる。しかし、改良後でも調整が必要なままになりそうだし、現状でも間合いの調整だけで何とかなっている。

 本来の組み立てを行うことで装填不良は、ほぼ撲滅できた。

written by higashino [ラジコン用エアガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2021年6月10日(木) 21:30

PICリセットは謎のまま

 射撃管制PICのプログラムが魑魅魍魎になっているので、破棄して新しく書き直した。これにより、設計も記憶も明確になりバグが出ても発見し易い。

 プログラムは論理的には問題なさそうなのだが、やはり装填不良が多発する。更には、射撃時にPICがリセットする現象がまた発生。リチウムポリマー充電地の電圧が下がって来たところなので、電圧降下に掛かるようになったのか?
 念のため、オシロで確認してみる。すると、電圧降下は発生しているがニッケル水素バッテリーとは比較にならないほど小さく、三端子レギュレーターの出力電圧には全く影響していないと判明。どうやら、電圧降下でリセットが掛かっているのではなさそうだ。

 しかしこうなると、リセット原因が全く分からない。
 PICがリセットする原因は多い。しかし、その大半は明らかに無関係である。

・プログラム書き込み終了 → 見慣れているが当然無関係
・WDT → 使っていない
・MCLR → 使っていない
・リセット命令 → 当然そんなもの記述していない
・スタック溢れ → リセットする場合としない場合の差を説明不能
・パワーオンリセット → 電源投入時以外にリセット掛かってる

 そうすると、ブラウンアウトリセットしかない。要は、動作途中における電圧降下。だがこれも、否定された。
 オシロのトリガーを使い、時間分解能を上げての確認も行ったが、妙なパルスも無い。

 装填不良に関しては、さすがに電動マガジンの組み立て不良を疑っている。今回の組み立て当初からパーツの合いが不完全で、ワッシャーを1枚追加するなど想定外の調整を行った。しかしそれでもベベルギアの噛み合わせが甘い。どこか、狂っている。たぶんこれで、BB弾を送り出す圧力が本来より低下してる。
 だがPICのリセットは、別問題だ。

 バッテリーをニッケル水素からリチウムイオンに変更したことは、劇的な効果があった。
 そこでもう1つの手段である、電気二重槽コンデンサーの増設も実行してみる。

 耐圧5.5Vで、容量は0.47F。
 重要なのはESRが0.4Ωと、電気二重槽コンデンサーの中ではかなり低いこと。急な電圧降下に対処する目的なので、ESRが大きいと使い物にならない。
 電源OFF時に残存電荷を抜くため、510Ωで短絡してある。

 これにより、PICのリセットは激減した。
 セミオートは、ほぼ問題なし。3点バーストやフルオートも、充分に実用になる。ただし調子に乗ってバーストやフルで撃ちまくると、PICのリセットが顔を出す。明らかに、電気二重槽コンデンサーの蓄積電荷が減りような状況で、リセットが出る。
 オシロでは否定されているが、電動エアガンの射撃でも急激な電圧降下が発生しているかのような症状だ。

 セミオートは大丈夫だし、バーストやフルも多用しなければ大丈夫。そもそも戦車砲なのだから、セミオートが原則である。バーストやフルを可能にしたのは、あくまでオプションだ。

 それに、リセットが掛かっても暴発など致命的なことにはならない。射撃が途中で止まるだけ。電動マガジンも止まるので、度重なると通常より装填圧力が下がって空砲になるが、これもフェイルセーフ動作。
 ひとまずこのまま、様子を見る。

written by higashino [ラジコン用エアガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2021年6月9日(水) 21:24

コンパイラーのバグ

 ソフトウェアSPI通信が不安定という、別の問題を調べてみる。

 20ピンソケットに配線をハンダ付けし、オシロのプロブを取り付け易くする。
 これで、射撃管制PICに送信されて来たSPI信号を確認してみる。

 青はSTRBで、パケットの開始を示す。受信するPICでは、これによってピン割り込みを発生させ、割り込み処理ルーチン内でクロック(黄色)を読む。

 今度の青色は、受信データーである。キッチリとクロックとタイミングが合って到着している。送信機のキーをいじったところ、仕様通りの位置にデーターが発生している。ビットずれは、皆無だ。

 SPIの各信号には問題になりそうなノイズは無く、しっかりと5Vまでフルに振れている。どこからどう見ても、読み損なう要素がない。
 一方でデーター並びを見ていて、9ビットのデーターずれというのは誤りだと気付いた。実際は1ビットのズレであり、その意味ではありがちなビットずれだ。問題は、クロックを読み損なってズレているのではなく、余分なクロックを読んでいるかのようなズレ方向であること。

 こうなるとソフトウェアの問題である可能性が高い一方で、読み取りルーチンは動作実績充分のコードを流用している。ここまで訳が分からないバグだと、XC8のバグを疑いたくなる。同じように送られたキーデーターは、dsPIC では問題なく読めている。ビットずれを起こしているのは、8ビットPICだけだ。
 サスアームのサーボも8ビットPICが受け持っているが、だからサスアームが時々妙な動きをするのではないか?

 これが、ビンゴだった。
 散々悩ませてくれたSPI通信不良の原因は、コンパイラーXC8のバグだったのだ。
 送受信データーの扱いにおいて、Cではありふれた以下のようなコードがある。

d2 = (*(dp2++));
(*(dp++)) = d;

 これを↓のように書き換えたら、ビットずれが解消した。

d2 = send[idx];
data[idx] = d;

 どんなコンパイラーだよ!
 書き換えるまでもなく、XC16では何の問題もない。

written by higashino [ラジコン用エアガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2021年6月8日(火) 23:04

魑魅魍魎の射撃管制ソフト

 オリジナルのブラシありモーターでは、最後には全くモーターが動かなくなった。当然ヒューズを疑うが、飛んでいない。
 ブラシレスに交換して試すが、やはり全く回転しない。もちろん、ヒューズは健在。写真とは違い、モーターに配線も接続している。

 ニッケル水素バッテリーの電圧降下が原因だったときは、一瞬だけならモーターが回った。だが、今回は完全に沈黙している。
 よくもまあ、これほど次から次へとトラブルが起きるものだ。過去にラジコン搭載エアガンで、ここまでトラブルが多発したことはない。どうなってんだ?

 どこで通電が妨げられているのか調べ易くするため、試験用のプログラムを射撃管制PICに書き込む。トリガーを引いている間だけ通電する、という単純なプログラムである。
 これで動作させると、何と正常動作した。トリガーを引けばモーターが回転し、離せば止まる。ハードウェアは、どこにも問題がない。つまり、いきなりモーターが動かなくなったのは、ソフトウェアのバグだということだ。

 だが、あからさまに原因が分かるものでもない。
 どうやら半端なプログラムになっているようなのだ。2年前に動作確認後、バーストやフルオートにも対応できるようプログラムを書き換えた。しかし動作確認はせず、エアガン部分は分解して保存。走行系の実装に進んでしまった。
 結果として、実行実績がない上に時間が経過して記憶も失せたという、手に負えないソフトウェアを残してしまった。

 少し変更してPICに書き込み直すと、正常に発射できるようになった。
 装弾が追い付かない対策として、PWMを操作し電動マガジンのパワーを上げる。更に、電動エアガンのモーターを通電中にも、電動マガジンを動かす。これでもう、装弾はフルパワーだ。
 しかし、それでも時々装填不良が発生する。

 仕方なくブラシありモーターに戻したが、同様に時々装填不良が発生する。単純に、ノズルの後退速度が上がったという理由では無さそうだ。
 しかも、発射を繰り返しているうちにまたモーターが動かなくなった。電源を入れ直しても動かないので、内部変数が想定外の値になったせいではない。

 試しに再び、トリガーを引いている間は無条件にモーター通電するプログラムをPICに書き込む。すると、ちゃんとモーターは回転し、BB弾が発射された。当然ながらフルオートだが。
 やはり、魑魅魍魎と化したソフトウェアが、おかしい。

written by higashino [ラジコン用エアガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4