M5 Stack Atom Matrixを購入しました。
想像以上に小さくて驚きました。私はAmazonで購入しましたが、Switch-Scienceなどの専門ショップでも購入することができます。詳しいスペックはそこで確認するといいと思います。
本題
今回は、このM5AtomMatrixがROS2で動くのか!?ということの動作確認を行います。2.4cm四方のマイコンでROS2ノードが動くとなると、狭い場所にも組み込みができる可能性があるということでいろいろ応用が利きそうな気がします。バッテリーがついていないのは少しネックになるのかも知れませんが…
動作内容は、コンピュータからキーボード操作を介してTwist型のメッセージを送り、それをディスプレイ表示させるというものです。
動作プログラムは以下のgithubリンクに載せています↓。
動作の様子です。
システムブロック図です。全てのコンピュータ・マイコンはWi-Fiで接続されています。
システムブロック図では、Raaspberry Pi4がMicro-XRCE-Agentになっていますが、Raspberry Piである必要はありません。家では、Micro-XRCE-Agent用のRaspberry Piを常に起動させておくことで、いつでもマイコンをROS2に接続できるようにしています。そこで、環境構築済のものをそのまま使いました。
図形については、表示方法がすぐに理解できなかったので、頭の悪い方法をとりました。1ピクセルずつ描画していく方法です。5x5のLEDを光らせることくらいESP32-pico君なんだから余裕でしょとは思いますが…
上方向の三角を表示させる関数です。ArduinoでM5.dis用のアイコン生成スクリプト作るべきなんかなぁ
void up_icon() { M5.dis.clear(); M5.dis.drawpix(7, 0xf00000); M5.dis.drawpix(11, 0xf00000); M5.dis.drawpix(12, 0xf00000); M5.dis.drawpix(13, 0xf00000); M5.dis.drawpix(15, 0xf00000); M5.dis.drawpix(16, 0xf00000); M5.dis.drawpix(17, 0xf00000); M5.dis.drawpix(18, 0xf00000); M5.dis.drawpix(19, 0xf00000); M5.update(); }
いつするかは予定を決めていませんが、次はジャイロセンサとかの情報を送信できればなぁと思っています。