M5 Stamp pico カー




(画像のクリックで走行中の動画を表示します)

◆教育用デバイスのお値段問題

子ども向けプログラミング教室やワークショップの定番の一つがロボットカーです。Arduino互換、ESP32、micro:bitなどをコントローラーにした素晴らしい製品が沢山売られています。
これらの製品の価格は7,000円~20,000円と、決して安いものではありません。教室などが購入して貸し出したり、教材費として保護者が買い取れる場合はよいのですが、ワークショップで持ち帰れるという価格ではないですし、スクールの教材費も少しでも安くできればよいのは言うまでもありません。


◆開発環境問題

単に価格だけで言うと、Arduino互換品を中心に1000円程度で買えるデバイスや周辺機器は各種あります。これらを組み合わせれば安価なロボットカーが作れそうなのですが、問題は開発環境です。
これらのデバイスは、ほとんどArduino開発環境(IDE)を利用しています。Arduino IDEはC言語の面倒な部分をうまく隠蔽した使いやすいものなのですが、小学生レベルではまだ敷居が高いです。
ArduBlock、mBlockなどScratchのようなブロックプログラミングができる環境もありますが、日本語化されていなかったり、公式サポートがなかったりで使いにくい部分があります。

◆M5シリーズと開発環境

M5StackからはじまったM5シリーズは、Arduino IDEでもプログラミングができますが、オリジナルのブロックプログラミング環境のUIflowを使えます。これは日本語化されているので、micro:bitやScratchには及ばずとも、かなり敷居を下げることができます。
UiflowはM5のデバイスとWifi接続して、プログラムの変更を即座に反映できるのでREPL的に使うことができます。これは試行錯誤の多い教育用の開発環境としては優れています。半面良好なWifi環境が必要であることは、出前のワークショップでは足かせになる場合もあります。
M5のメモリにアップロードして書き込んでしまうモードもありますので、場合によって使い分ける感じでしょうか。


プロトタイピングツールのM5StackからはじまったM5シリーズは、大型カラーディスプレイとボタンを備えたM5Stack、小型のM5Stickをはじめ多くのバリエーションがあり、プロトタイピングだけでなく高機能の電子工作が簡単にできることで人気があります。その末弟といえるのがM5Stamp picoです。
M5Stamp picoは切手(stamp)サイズのモジュールにWifi・GPIO・ボタン・LEDを装備した、主に機器への組み込みを意識したデバイスになっています。

M5シリーズの一例
 左から
M5Stack
M5Stick
M5Atom
M5StampS3
M5Stamp

◆どの程度の価格でできるか

M5Stamp picoは国内の正規代理店経由で1個1000円程度、Aliexpressでは700円程度で入手できます。これに安価なモーターとモータードライバーを組み合わせれば、お安くロボットカーが作れるはず。



センサーで障害物を避けて走る、という定番の機能に絞ると調達価格はこんな感じになりそうです。

モータードライバーはLS9110Sという安いチップがあるのですが、モジュール化されたものを買うとチップから作るより全然安いので利用することにします。LM393の赤外線障害物センサーモジュールも同様で、例によって無数のクローン品がAliexpressなどで大量に売られています。
M5Stamp picoも、中身のSoCはESP32-pico-D4なのですが、国内でチップ単体を買うよりM5Stamp picoの方が安いという状態です。中国すごいですね。

Aliexpressは送料が安いものは配送が遅くなりますが、速達のDHLなど使うと送料が高くてAliのメリットがなくなりますので、計画的にまとめて買うのがポイントです。
Aliで調達すれば1500円くらいでロボットカーが作れます。1500円ならワークショップ代で払ってもらえそう。

◆回路構成


M5Stamp picoに電源やモータードライバーを接続するための基板を作りました。ほとんどピンソケットだけでできているものになってしまいますが。
             モータードライバー   M5Stamp pico基板   赤外線センサー


モータードライバーは一般的なHブリッジ構成で、2つの入力ピンのHigh,Lowによってモーターの回転方向が変わります。入力をPWMにすることで回転数の制御もできます。入力ピンを直接M5Stamp pico基板に挿せるように、基板の裏面にピンソケットをつけてあります。左右2つのモーターを制御するため、モータードライバーも2個あり、全部で4つの入力端子があります。これらをM5Stamp picoのGPIO G18,19,21,22で制御します。

障害物センサーは赤外線LEDとフォトトラの組み合わせです。障害物があると赤外線が反射されてフォトトラに入力され、フォトトラが導通し、接続されているLM393(コンパレータ)の出力がLowになります。この出力の変化をM5Stamp picoのGPIO G32で読み取ります。




◆シャーシと組み立て

シャーシは市販の汎用品もありますが、低価格一択ということで、MDFを適当な形にレーザーカッターで切り抜きました。
もちろん適当なベニヤ板などを糸鋸で切り出してもOKです。
TTモーター(汎用のギヤ付きモーター)はビスでとりつける必要があるので、3Dプリンタでパーツを作りましたが、寸法の合うL字金具などを工夫することもできそうです。


モーターに負荷がかかると大電流が流れるため、単3電池では電圧が落ちてM5Stamp picoがリセットされることがあります。
そのため少々重いのですが単2を載せてあります。予算があれば小型のLiPoや18650型電池を使うと良いかもしれません。

◆MACアドレス問題

M5Stamp picoを開発環境のUIflowに接続するには、両方を同じWifiに接続しておく必要があります。
M5Stamp picoは1個ごとにユニークなMACアドレスが振られていて、製品にシールが貼ってあるので、このMACアドレスをUIflowに入力することで、双方が接続される仕組みです。


UIflowはWebアプリですので、実際はUIflowのサーバーに登録されているMACアドレスとシールの情報を照合していることになります。
ここで思わぬ躓きがあったのですが、追加購入したM5Stamp picoがUiflowに接続できないという現象に突き当りました。だいぶ以前購入したものは問題なく接続できていたのですが。
M5のUserフォーラムやネットの情報を集めたところ、どうも最近出荷された製品でUIflowサーバーにMACアドレスが登録されていないものがあったようです。
結局M5のテクニカルサポートにメールを出して、手持ちのMACアドレスを全て登録してもらうことで接続できるようになりました。もしどうしても接続できない場合は、テクニカルサポートに確認する方が良いと思います。

To Be Continued