Top | カテゴリTop | 戻る
2013年1月2日(水) 19:03
尾灯LEDの配線にオシロのプローブを取り付け、PICの処理時間を調べる。 問題となるのは、前後左右のプロポ入力を左右のキャタピラの動きに変換する処理。テーブルを引いて内分計算を行うのだが、十分な精度を確保した乗除算が絡むため非常に荷が重い。6チャンネル分の受信機パルスを読み終わった後で、次の読み始めまでに何ミリ秒の余裕があるのか? その数ミリ秒のうちに、変換計算が終わっているのか?
CH1のパルスが到着するのを単に待っているだけの期間、尾灯LEDにHを出力するようにしてみた。これをオシロで見ると・・・
どうも周期が33ミリ秒ぐらいになっている。つまり、受信機パルスが30Hzということだ。これまでいろいろなラジコン受信機のパルスを扱ったが、50Hzか60Hzだった。30Hzというのは初めてであり、60Hzが処理落ちしている可能性が高い。 そこで、サーボ直結となっているCH3にもオシロを接続し、受信機パルス直読してやる。
想像通り、CH3は60Hzで送り出されている。 ラジコン受信機のパルスはニュートラルで幅1.5ミリ秒。通常は1〜2ミリ秒の範囲で幅が変化する。受信機は7チャンネルまで対応可能なタイプだが、最大限14ミリ秒あれば全チャンネルの送信が完了する。周期16.7ミリ秒で十分に働く。 しかし、50Hzとなる周期20ミリ秒と、この16.7秒の差はPICにとっては大きい。6チャンネル分のパルスを読み終わってからの時間が余りにも短く、処理落ちを防いで変換処理を終えるのは無理だ。
だとすれば逆に、毎回確実に処理落ちさせれば良い。過去にはパルスを2回に1回だけ読み取るプログラムで戦車用アンプを作ったこともある。だが、それで実用上の問題は感じられなかった。
written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4