先日、マイクロビットを2台使い、無線で操作するロボットを作りました(記事はこちら)。
1台を送信機、もう1台を受信機にして、送信機の傾き情報を受信機に送り、その情報に従って、受信機につながったモーターを動かすものです。
今回は、このロボットの受信機側ハードウエアをそのまま流用し、スマホから操作できるようにします。
送信側については、先日、iPhoneにインストールした(記事はこちら)、スマホ版micro:bitアプリを使います。
機能
送信機はiPhoneを使います。
スマホ版micro:bitアプリの「Gamepad」を使い、「A」、「B」、「C」、「D」ボタンで進行方向を制御します。
受信機は、マイクロビットとロボットをつないだもので、ハードウエアとしては先日の記事と全く同じです。
マイクロビットの4本の端子(0、1、2、8)をモータードライバに接続し、2個のモータの回転を制御します。
マイクロビットプログラムのみ、書き換えます。
スマホのGamepadで受信機のマイクロビットを制御し、ロボットを所望の方向に動かします。
プログラム
先日の、無線で操作するロボットの、受信機側プログラムを元にして作りました。
まずは、無線に関するブロックを全て削除し、後から利用するブロックだけを残します。
「高度なブロック」>「拡張機能」を選択します。
「devices」を選択します。
「無線とBluetoothは混在できないので、無線を削除する」というメッセージが表示されるので、「Remove extension(s) and add devices」をクリックします。
「無線」グループが消え、「Bluetooth」、「Bluetooth接続機器」というグループが追加されています。
「Bluetooth接続機器」には、いろいろなブロックがあります。今回は「ゲームパッドのボタン XXX とき」を使います。
このように、「A」〜「D」ボタンを押した時に、所望のモーターが所望の方向に回転し、「A」〜「D」ボタンをはなした時に、モーターが停止するようにします。
プログラムはこれでできあがりです。
2021年4月より、「devices」拡張機能は「非推奨」となり、普通の使い方では使用できなくなっています(発表資料は こちら)。 そのため、「devices」拡張機能を使わずに「Gamepad」を使用する方法について、こちら に記載しました。
つなぎかた
スマホ版micro:bitアプリの「Choose micro:bit」を使い、スマホとマイクロビットのペアリングを行います(方法はこちら)。
「Monitor and Control」で、「Gamepad」パネルを表示させます(方法はこちら)。
結果
「Start」をタップし、「A」〜「D」をタップすると、ロボットが動きます。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。