2019の5日目(2019/12/05)分として書いたものです。本当はCoderDojo奈良で発表しようと思ってたんですが、なかなか行けないので、流用しちゃいます。Sensorを使って遊んでみます。M5StickCってなあに?https://gyazo.com/9055c595042ccb0f95725c1ff01af377M5StickCのパッケージM5StickCは、様々な機能(後述)やI/Oが簡単に利用できるように一つのパッケージにまとめられたIoTマイコンデバイスです。M5StickCを手に入れるだけで、フリーの開発環境で様々な機能やI/Oを使って、簡単にIoTデバイスを作ることができます。Grayと比較した仕様の詳細は、以下の表をご覧ください。BUSソフトウエアは、以下のような環境で作成可能です。IDE(C,C++)UIFlow:ブロックベースのプログラミング環境https://gyazo.com/f4130e6319ea07ed34c0241d4e456bb4UIFlowの画面(画面はM5Stack用)M5StickCで、一番簡単にプログラミングできる方法は、おそらくUIFlowを使うことです。ブロックベースのプログラミング言語で、ブロックを並べていくだけで、プログラムを作ることができます。簡単にプログラミングできるだけでなく、プログラムをM5StickCに転送することなく、プログラムを実行する機能も持っています。IDEは、C/C++ベースのプログラミング環境です。基本的に、初期化をsetup()関数で行い、ループごとに実行する内容をloop()関数に記述します。IDEでは、様々なArduino互換ボード用の設定が提供されています。M5Stack/M5StickC用の設定も提供されています。ここでは、M5StickCを使うための初期設定などは説明しませんのでご了承ください。Gameなどの様々なデモも提供されているので、一度、ひととおりのデモを試してみると良いでしょう。Sensor(遠隔センサー:以下SRS)という機能があります。42001)で待ち受けをしており、簡単なプロトコルを実装することで、データのやり取りを行います。SRSでは、変数のやり取りを行うこと(sensor-update)と、任意の文字列であるイベントのやり取り(broadcast)を行えます。プロトコルの詳細などは、以前の発表をご覧ください。PartyAndroidとESP8266から、SRSを使ってみますこのSRS機能を使って、M5StickCとScratchの間で、M5StickCのI/Oデータや、Scratchからの変数の値のやり取りをしてみましょう。IDEを使って、プログラミングします。hostは、適宜、自分の環境に合わせて設定してください。ScratchとM5StickCのデータのやりとりは、以下のようになっています。BtnC:ボタンA,B,Cが押されたことを知らせるイベント"Key_キー":キーボードのキーが押されたことを知らせるこれらのデータを使って、上の写真および下のYouTube動画のデモでは、以下のようなことを実現しています。Catが歩いているように見えるようにコスチュームを変更するデモの様子は、以下のYouTubeの動画をご覧ください。https://www.youtube.com/watch?v=9VmtaLVe28oこれからやりたいことこれで、M5StickCとScratchをつないで遊ぶことができるようになりました。現状のプログラムでは、しばらく使っているとM5StickCの画面が止まってしまいます。すると、復旧することもあるのですが、不安定なことに変わりはありません。通信がうまくいってないようなので、なおしたいと思っています。