micro:bitを使ってみる 37 〜スマホでロボットを操作

先日、マイクロビットを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」をタップすると、ロボットが動きます。

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。


このサイトで書いている、マイクロビットに関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のマイクロビット記事にも興味のある方は「さとやまノート」をご覧ください。