以前、マイクロビットをふたつ使い、無線で操作するロボットを作りました。
受信側マイクロビットを「タミヤ 楽しい工作シリーズ組み立てキット リモコンロボット」に搭載、ふたつのモーターに接続し、送信側マイクロビットのA,Bボタンでモーターの正転、停止をコントロールするものです。
今回は、これを少し改良してみようと思います。
機能
前回は、送信側マイクロビットのAボタンを押している間、ロボットの左側のモーターが動き、Bボタンを押している間、右側のモーターが動くものでした。
つまり、ボタンによって、モーターが回るか停止するかだけを制御するもので、モーターの回転方向は変えられませんでした。
今回は、傾きセンサを使ってモーターを制御しようと思います。
前に傾けると前進、右に傾けると右折というように、送信側マイクロビットの傾きで、ロボットの進行方向を制御します。
ふたつのモーターそれぞれについて、正転、停止、逆転の3とおりの状態が存在するので、合計で以下の9とおりの制御をすることになります。
前後 | 左右 | 左モーター | 右モーター |
---|---|---|---|
ピッチ<-40 | ロール<-40 | 停止 | 正転 |
ピッチ<-40 | -40≦ロール≦40 | 正転 | 正転 |
ピッチ<-40 | 40<ロール | 正転 | 停止 |
-40≦ピッチ≦40 | ロール<-40 | 逆転 | 正転 |
-40≦ピッチ≦40 | -40≦ロール≦40 | 停止 | 停止 |
-40≦ピッチ≦40 | 40<ロール | 正転 | 逆転 |
40<ピッチ | ロール<-40 | 停止 | 逆転 |
40<ピッチ | -40≦ロール≦40 | 逆転 | 逆転 |
40<ピッチ | 40<ロール | 逆転 | 停止 |
また、受信側マイクロビットは、ふたつのモーターの正転、逆転を制御するため、マイクロビットとモータードライバの間は、4本の制御信号を繋がなければなりません。マイクロビットの大きい信号端子は3つしかないので、今回は「マイクロビット用エッジコネクタピッチ変換基板」を使うことにしました。これを使うと、マイクロビットの小さな端子の信号も取り出すことができます。
プログラム
送信機側のプログラムは以下のとおりです。9とおりの条件ごとに、無線で異なる番号を送信します。あわせてディスプレイに矢印も表示します。
受信機側のプログラムは以下のとおりです。9とおりの条件ごとに、モータードライバに繋がる4つの出力端子の論理を切り替えます。こちらもディスプレイに矢印を表示します。
つなぎかた
送信機側は、以前と同じく「micro:bit用MI:電源ボード」を使います。
受信機側の回路図は以下のようになります。
ロボットを組み立てると以下のようになります。
結果
送信機を傾けると、ロボットに矢印が表示され、その方向に向かって動きます。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。