はじめに
この記事はmicro:bitで戦車を操縦するための開発手順を初級・中級・上級に分けて紹介しています.使用機材や開発ステップはまとめで紹介しています.
*まとめの記事を読んではじめられた方は,戦車の車体を制作してから,この記事を読むと良いでしょう!
前回まで
上級編
中級編では,ボタンを使って無線通信で前進・後退させるプログラムを作りました.上級編では,ボタン+加速度センサーを使って戦車を前後左右自由に操縦出来るようにプログラムを作ってみたいと思います.
送信側
まずは,中級編で作ったプログラムを元に,加速度センサーをどうやって使うかみてみましょう.加速度センサーのブロックは,メニューの「入力」に入っています.センサーと一緒にメニューの「論理」から「0 < 0」と書かれたブロックを出してみましょう.
この二つのブロックを合体させ,数字や文字をこのように変えます.
これでこのブロックは,**「加速度Y(縦方向の傾き)が-700よりも小さくなったとき」**という条件になりました.加速度の傾きは-1023〜1023の間で変化し,micro:bitを前に倒すとYの傾きはマイナス側に大きくなり,後ろ側に倒すとプラス側に大きくなります.横方向に倒すと同じくXの傾きが変化します.
この条件を使って,micro:bitを前に倒したときに"forward"を送り,後ろに倒したときに"back"を送るプログラムを作成します.そして,右旋回,左旋回はAボタン,Bボタンを押したときに条件を変更します.
ついでに倒したときの表示も付け加えてみました.これでちゃんと条件式の中に入っているか確認することが出来ます."stop"を送るときの条件は,**「傾きが-700よりも大きく,かつ傾きが700よりも小さいとき」となっています.このように条件式自体を「かつ」**というブロックで合体させることもできます.
"cw"と"ccw"は時計周り,反時計周りの意味です.
受信側
受信側のプログラムも中級編のプログラムを元に改良していきます.
少し長いですが,こんな感じで作ってみましょう.旋回するときのタイヤの回転方向を考えてみると,タイヤは左右で逆方向に回転しますね.前進・後退のときと旋回のときで,デジタル出力する端子が違っているのが確認できると思います.
チャレンジ
それでは,最後のチャレンジです.最後は左右の旋回を左右にカーブするように変更してみましょう.旋回は,その場でタイヤを左右逆方向に回転させることで車体の角度を変えることが出来ます.それに対しカーブは,左右のタイヤの回転方向は同じですが,回転するスピードを左右で別にする事で曲がる事が出来ます.回転スピードを制御しているプログラムはどこでしょうか?また,左右のスピードを変えるためには回路も少し変更する必要がありますね.回路図や以前のプログラムを見直して頑張ってみて下さい!