M5StickCとScratchであそぼ
https://gyazo.com/a8a57b3f4c968a10381142558ab3513c
はじめに
M5StickCとScratch 1.4を一緒に使ってあそぶ方法について紹介します。
まずは、デモを
https://www.youtube.com/watch?v=9VmtaLVe28o
M5StickCってなぁに?
https://gyazo.com/9055c595042ccb0f95725c1ff01af377
色々なものがいっしょになったIoT(Internet of Things)デバイス (赤字はむとうおすすめポイント)
価格: 2000円弱
マイコン: ESP32
ネットワーク: WiFi/Bluetooth Low Energy
ディスプレイ: 0.96インチ 80×160
センサー: 加速度+ジャイロ(6軸), ボタンスイッチx2,マイク
その他: バッテリー, IR送信(赤外線リモコン)
付属物: 腕時計型マウント(ベルトも含む), LEGO互換マウント, 壁掛けマウント
M5StickCのソフトウエア開発環境
UIFlow: Scratchのようなブロックベース(Blocky)のプログラミング環境 Scratchみたいにブロックでプログラミングできる(Blocky)
Micro Pythonでのプログラミングもできる
Arduino IDE(C,C++)
https://gyazo.com/e1d07abda7499dbe696cb70027b45e77
Scratch Remote Sensor(SRS;スクラッチ遠隔センサー)
https://gyazo.com/ea7f0a999e771ba645797ae814f540e9
Scratch 1.4だけで使える機能
ネットワークを通して、Scratchと通信ができる
Scratch側では、TCP 42001で待受する
Scratchからは、二つのメッセージとして扱える
メッセージを受け取る(broadcast "メッセージ")
変数の値を変更する(sensor-update "変数名" 値)
なにを作ったの?
Scratch Remoto Sensorを使ってM5StickCとScratchの間でデータのやり取り
M5StickCのセンサー情報をScratchに送って使う
Scratchのイベントや変数情報をM5StickCに送って使う
変数のssid, password, hostは、適宜、自分の環境に合わせて設定してください。
ScratchとM5StickCのデータのやりとりは、以下のとおり
ScratchからM5StickCへ
変数r,g,b: Red(赤), Green(緑), Blue(青)で指定された色を送る
変数s:sで指定された文字列を送る
変数l:LED点灯をlの値(0か1)で決める
M5StickCからScratchへ
センサー(ax, ay, az):x方向, y方向, z方向の加速度の値を送る
センサー(gx, gy, gz):x方向, y方向, z方向のジャイロの値を送る
イベントBtnA, BtnB:ボタンA, Bが押されたことを知らせる
デモの説明
https://www.youtube.com/watch?v=9VmtaLVe28o
M5StickC側での動作(Arduino IDEでプログラム)
Scratchで作った乱数の変数r,g,bで決まる色で、M5StickCのディスプレイの色を変え、さらに値をディスプレイに表示する
Scratchで作った変数sの文字列をディスプレイに表示する
Scratchの変数lの値にしたがって、M5StickCのLEDを点灯・消灯する
Scratch側での動作(Scratchでプログラム)
M5StickCの加速度データを変数ax,ay,azに入れ、変数ax,ayにしたがってScratch Catの位置を変更する
M5StickCのボタンが押された時BtnAというメッセージを送り、Scratch Catが歩いているように見えるようにコスチュームを変更する
これからやりたいこと
しばらく使っているとM5StickCの画面が止まるのでなおしたい
ジャイロのデータをうまく使って面白いデモを作りたい
M5StickCの画面をもっとうまく使う方法を考えたい
おわりに
M5StickCは…
大きさがかわいい!!
本体に入っている機能が、ツボをついてる!!
付属品(特に腕時計マウントとLEGOマウント)が、ツボをついてる!!
価格が安い!!
Blocky(UIFlow)でもプログラミングできる!!
Scratchと遊ぶと、もっといい!!
参考文献
興味があれば、以下の文章も読んでね(新しいものから古いもの順)。
今回の発表の詳細版です
今回と同じように、M5StackでScratchと遊ぶ例です
SRSを、ESP8266ベースのWeMosボードで使ってみます
FreeBSDのScratch 1.4を使って、AndroidやESP8266やmicro:bitでSRSを使ってみます
AndroidとESP8266から、SRSを使ってみます
Q&A
当日の質疑応答があれば入れる
おまけ:デモ用ネットワーク構成図
https://gyazo.com/512d2df990d1fe1e2be65dc4493e70c4
無線LAN Uplink設定(Concurrent Mode)
SSID: mutoh_air
Passwd: