ATtiny10のプログラム環境が整ったのでプログラムを作ってみることにしました。
今回作るのは、羽ばたき飛行機の翼を決められた位置で停止させ、滑空を可能にする為の装置です。
羽ばたきは下の画像のようにギヤの回転運動を上下の羽ばたき運動に変えている為、回転するギヤを決められた位置で停止させればよいわけです。
センサーにはホール素子を使い、歯車に取り付けた磁石を検知して位置を特定する、従来の方法を採用しました。
ギヤを回転させるモーターの制御は、ラジコン受信機から出力されるPWM信号を制御する事で対応します。
ラジコンで使用されているPWM信号は、基本的に下記の様に一定周期で発生されるONの出力時間によって制御されています。
このPWMで大切なのは、1ms~2msのONの時間です。周期の20msは結構いい加減でも問題ありません。
そこで、ラジコン受信機から出力されるPWMのON時間をタイマーを使って正確に測定し、同じくタイマーを使って正確なON出力をする事が必要。
後は任意の条件の下、出力時間を変更すれば良いわけです。
モーターが停止するPWM信号と羽ばたきモードから滑空モードに移行するPWM信号をあらかじめ決めておき、条件分岐によって滑空モードへ移行するようにします。
本来、この様な信号の保存は、EEPROMに保存して使用します。
EEPROMは不揮発性のメモリなので電源を切っても設定値が保存されます。
ところが、ATtiny10にはEEPROMが搭載されていません。
不揮発性のメモリが搭載されていないのですから、別の方法で対応しなければならないのです。
別の方法と言っても、揮発性のメモリしかないわけですから、起動時に毎回設定し直すと言う形で対応します。
さいわい、ラジコンの場合、電源を入れたら毎回メカの動作確認をしてから飛行させるので、起動時に毎回設定しても面倒ではありません。
設定方法
送信機のスティックを下げた状態で電源ON
↓
この時のPWM出力を保存(一秒以上待つ)
↓
送信機スティックをグライダーモードに移行する位置まで上げる
↓
この時のPWM出力を保存(一秒以上待つ)
以上の様にする事にします。
実質、ワンタッチで設定が終了するので全く面倒ではありませんし、気象条件やバッテリーの状態に合わせた微調整もしやすい利点があります。
具体的な設計構想が固まってきたので次回はプログラムの作製です。
羽ばたき飛行機の滑空制御装置GPAT10製作編に続く・・・
コメント
早速のご返事ありがとうございます。
ところで、橋本様のリンク機構は、販売されるのでしょうか?
もし外販されるようでしたら、教えてください。
私の方は、アメリカで羽ばたき機の販売を考えておりますので、
もし興味がありましたら、会社の方にメールお願いします。
梅澤
昭和40年代に「学研」の「科学と学習」の付録に輪ゴム動力の羽ばたきグライダーがあった。
SMDタイプのAT-tiny+スマホ用リチウム電池でできそう
制御がPICじゃない(アトメル社CPU)ところが目にとまってコメントした。