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