その1 microbitの調査
マイコンの代表Arduinoが2005年に教育用に販売開始され10年後の2015年にmicrobit、2017年にM5Stackなど子供やホビー向けのマイコンが販売されています。プログラムもコード記述の他にブロックプログラムが使えます。ブロックプログラムと言ば”microbit”なので、調査を行い、何かを工作することにしました。工作するにあたっては、基礎から勉強することはせず、WEBを漁って面白そうなものを追試させていただくことにしま
した。その1では、microbitについての情報と単体ボードで何ができるのかを纏めてみました。microbit(V1とV2)の仕様と、ブロックプログラム編集するmakecodeを示します。

microbitには、V1,V1.5,V2,V2.2が存在します。主流はV1とV2です。

makecodeのバージョンによりボードを認識しない場合があります。(特にV1)このような場合microbitのfirmwareをアップデートする必要があります。

ブロックプログラムツールは、マイクロソフトのmakecodeを使います。


makecodeは”習うより慣れろ”です。WEB上でまずmicrobit単体で何ができるかを調べてみました。基板に5×5のLED表示や、加速度センサ、地磁気センサ、温度センサ、照度センサなど、更にBluetoothが付いています。以下に例題をピックアップしました。ブロックプログラムに驚いた点は、「初めに」「ずっと」であるvoid setup()とvoid loop()はシリアルなプログラム処理の記述の基本ですが、「XXの時は」という割り込み処理(複数)が非常に簡単に記述できるところです。本体に押し釦AとBがトリガSWとして存在しますが、センサを使って、「暗くなったら」とか「振動を感じたら」とか「大きな音がしたら」などでも簡単に割り込みがかけられます。





加速度センサブロックは、X,Y,Zの直交系の他「ヨー,ロール,ピッチ」に変換できます。microbit単体で各種センサによる割り込み処理をてんこ盛りで使うと面白いかもしれませんね。次回以降はmicrobitのIOポートを使用した秀逸な工作をWEBで探して追試する予定です。「鳴るもの」と「動くもの」を紹介します。
その2 microbitで「鳴るもの」の工作
その2は、microbitのIOポートを使用した「鳴るもの」の工作報告です。使用するmcrobitはV1でOKです。音楽プレーヤを作ります。DFRobot社製のmp3プレーヤモジュール(\500くらい)を使用します。ピン配置とArduinoでの結線図を示します。電源は5Vでないとダメみたいです。マイコンとのインターフェースはシリアルです。曲は、マイクロSDカードに、0001.mp3とか4桁の番号を先頭につける必要があります。WEB情報を以下に纏めました。

microbitのIO 0pinと1pinをDFplayerminiモジュールのTX/RXと接続します。内蔵にアンプは2chで、ステレオで直接スピーカーに接続できる仕様ですが、真に受けて接続すると、動作エラーが発生します。電力をアンプにとられるため不安定になるようです。GNDを浮かせて、2ch分をシリーズで使用し小型SPKを駆動するか、DAC_L/DAC_Rをライン出力として、外部アンプに接続するかの2択です。音楽プレーヤのプログラムをWEBで探しました。以下に示します。

ハードとソフトの情報を基に製作にかかりました。ブレッドボードを使い3.3V/5Vのブレッドボード用電源を使用しました。電源は006P丸ピンコネクタで9Vを供給し、DFplayerminiに5V、microbitに3.3Vを供給します。USB端子があるので外部USBスピーカも接続できます。ブレッドボード上部にmicrobitをホットボンドで固定しました。ブレッドボードは3Dプリンタで出力した台に載せました。

ソフトも10曲から30曲まで対応できるよう変更しました。

2台製作しました。左側がDFplayerminiの内部アンプを使用したもの、右が外部USBスピーカを使用したステレオタイプです。DACの性能は48KHz/16bitですので、CD波の音が出ます。ハイレゾではありませんがビルエバンスをかけてみたところそこそこの音がしました。

製作費は、右タイプのもの(USBスピーカ込)で\4,000くらいでした。次回は「動くもの」です。
その3 microbitで「動くもの」の工作
動くものと言えば、サーボモータを使ったロボットだと思いWEBを検索しました。マニアックなおじさんの記事を参考にしました。

駆動系を参考にして、もう少し小型なものを作ることにしました。材料は100均を漁って2種類のLED器具を使うことにしました。単4電池3個の電池BOXを電源に利用しました。

サーボモータ電源を電池4.5Vを使用して、microbit電源は3.3Vの3端子レギュ
レータで賄う予定でしたが、発熱と不安定動作が起こるため、単4×2のSW付電池BOXを使用しました。microbitは電源がめんどくさいですね。参考にしたHPでは、単4×4の電池BOXの6VをDCDCコンバータで3.3Vに変換していましたが、DCDCの入力は5V以上必要なため断念しドロッパを使用しようとしたという経緯です。

ブロックプログラムですが、送信機側(今回はmicrobit V1を使用)とロボット側(microbit V2)の2つが必要です。以下に示します。


製作したロボットの動作を確認しました。サーボモータはリモコン側microbitの加速度センサに連動して傾けた方向に首を振ります。(gravity control?)Aボタン、Bボタン、A+Bボタンで顔絵と音が出ます。

次回は、STEM教育で使われているYahboom社製のロボットカー(Tinybit)の製作報告を予定しています。
その4 microbitでロボットカーを作ってみる
microbit工作ですが、動いて、光って、音が出るものにチャレンジしました。この辺になってくると、工作するのは少しきついので既製品に手を出しました。STEM教育の教材でよく使われる「ロボットカー」というものを購入しました。microbit,Arduino,ラズパイを使うものがあります。microbitを使うもので有名なものは、DFRobot製MaqueenとYahboom製TinybitのSmartRobotです。値段的にはTinybitがMaqeenの2/3くらいで\4,000くらいで手に入ります。互換ではないのですが機能的には同じようなものです。Yahboom社とTinybitの情報を示します。

Tinybitの他に、microbit(V2)が必要です。また、最終的にはYahboom社が提供しているAIビジョンセンサ(K210)を搭載しましたので以下準備をしました。

Tinybitの説明は、http://www.yahboom.net/study/Tiny:bit に詳しく書かれています。makecodeではTinybitの機能拡張ブロックが必要です。またmakecodeはonnline版が普通ですが、offline版をYahboomのHPからDLできます。(お勧めしませんが)

まず、付属の赤外線リモコンでTinybitを操作するブロックコードをインストールしてみました。「結論から言うと、使えませんでした。

offline版/onlineのmakecodeでも以下のようなエラーが発生しました。

仕方なく、Yahboom Microbit ロボット コントロール ハンドル ゲームジョイスティック(\2,600)を急遽購入しました。

リモコン側にもMicrobitが必要です。本体のmicrobitとは、Bluetoothで通信します。本体側ブロックコードと送信機側ブロックコードを示します。送信機側は、「Rockerタイプ」と「Gravityタイプ」がありますが、加速度センサを有効活用するため「Gravityタイプ」を使用しました。


動作確認をしました。シニアな私はこれで十分満足なのですが、小学生には少し高価な買い物になると思いました。

チュートリアルには、スマートフォンをリモコンにする例がありました。使わなくなったiphoneがあったのでアプリを入れてみました。「Mbit」で検索すると、アップルでもアンドロイドでもリンコンアプリを入手(Free)できます。

本体のブロックコードは、専用リモコンのものに比べて複雑になっています。それだけいろいろなことができるようになっています。専用リモコンを購入せず、こちらにすべきだったと後悔しています。本体のブロックコードを示します。

iphoneをリモコンにした動作を示します。

次回は最終回です。AIビジョンセンサーと組み合わせて自立動作に挑戦します。
その5 AIカメラ搭載ロボットカー
microbit工作の最終回は、AIカメラを搭載したロボットカーの報告です。ロボットカーとAIカメラの組み合わせは、”Yahboom社のTiny:bit+AIビジョンセンサ”まは”DFRobot社のMaqueen+Huskylens”が販売されていて、どちらもmicrobit用ブロックコードを提供しています。両方とも手を出しましたが、今回は、前回の流れからYahboom社製品のレポートをします。まず、AIカメラに顔認識のソフトをインストールします。以前K210の調査報告でYahboom社AIビジョンセンサは、SDカードベースで動作(Huskeylensは本体メモリ)することをお伝えしました。顔認識のmodelを含めたSDカードの中身そのもの「AI_Vision_code.rar」をDLし解凍してSDカードにコピーするだけです。ただし、起動するメインプログラム名を”main.py”に変更します。これだけです。

次に、microbitのブロックコード(.hex)をmicrobitに書き込みます。先ほどDLし解凍した中にmicrobitフォルダーがあり、中に各種hexファイルがありますが3.7_K210_Face_detection.hexをmakecodeで開きmicrobitに書き込みます。

AIカメラと本体の接続は、AIカメラ付属の4線ケーブル(黒線4本のコネクタ)を本体左ヘッドライト後方のコネクタに接続します。同じメーカ同士なので迷うことはありません。コネクタもそれ以外はありません。動作確認しました。 まず、モニター画面に鶴瓶の顔をだし、ロボットに見せました。AIビジョンセンサの画面に顔を囲むバインディングボックスが出て顔と認識しています。この情報はmicrobitに送られ、LED表示板に♡マークが表示されています。また、両車輪を動かし認識したことを知らせます。床に置いて、顔認識させると前後50cm範囲で踊り、緩くて妙な中華風メロディが流れます。

AIカメラと組み合わせたロボットカーは、STEM教育用ですが、いずれも中国の会社です。AIチップK210も中国製(Sipeed社)です。中国はロボット技術も成熟しているように思います。どちらも1万円強くらいで手に入ります。
