M5StickCとScratchであそぼ
https://gyazo.com/a8a57b3f4c968a10381142558ab3513c
2020年01月18日(日) CoderDojo奈良 No.45
むとうたけし (49歳 主夫)
はじめに
M5StickCとScratch 1.4を一緒に使ってあそぶ方法について紹介します。
まずは、デモを
https://www.youtube.com/watch?v=9VmtaLVe28o
M5StickCってなぁに?
https://gyazo.com/9055c595042ccb0f95725c1ff01af377
色々なものがいっしょになったIoT(Internet of Things)デバイス (赤字はむとうおすすめポイント)
公式URL: https://m5stack.com/
価格: 2000円弱
マイコン: ESP32
ネットワーク: WiFi/Bluetooth Low Energy
ディスプレイ: 0.96インチ 80×160
センサー: 加速度+ジャイロ(6軸), ボタンスイッチx2,マイク
その他: バッテリー, IR送信(赤外線リモコン)
付属物: 腕時計型マウント(ベルトも含む), LEGO互換マウント, 壁掛けマウント
詳しくは、M5StickCとScratchで遊ぼうも見てください。
M5StickCのソフトウエア開発環境
UIFlow: Scratchのようなブロックベース(Blocky)のプログラミング環境
http://flow.m5stack.com/
Scratchみたいにブロックでプログラミングできる(Blocky)
Micro Pythonでのプログラミングもできる
MicroPython
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に送って使う
Arduino IDEを使って作成: https://github.com/610t/Arduino/blob/master/M5StickC_ScratchRemoteSensor/M5StickC_ScratchRemoteSensor.ino
変数の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と遊ぶと、もっといい!!
参考文献
興味があれば、以下の文章も読んでね(新しいものから古いもの順)。
M5StickCとScratchで遊ぼう at 2019年12月5日(木) M5Stack Advent Calendar 2019
今回の発表の詳細版です
M5StackとScratchであそぼ at 2019年5月18日(土) CoderDojo奈良
今回と同じように、M5StackでScratchと遊ぶ例です
/BSD/うち、やっぱ、Scratch Remote Sensorが、むっちゃ好っきゃねん at 2018年8月15日(水) Scratchers Meetup 関西 夜の部 LT
SRSを、ESP8266ベースのWeMosボードで使ってみます
Scratch1.4をBSDで使ってみるために at 2017年02月11日(土) 関西*BSDユーザ会 第1回研究会
FreeBSDのScratch 1.4を使って、AndroidやESP8266やmicro:bitでSRSを使ってみます
Scratch遠隔センサーとESP8266 at 2016年12月24日(土) CoderDojo奈良 Xmas Party
AndroidとESP8266から、SRSを使ってみます
Q&A
当日の質疑応答があれば入れる
おまけ:デモ用ネットワーク構成図
https://gyazo.com/512d2df990d1fe1e2be65dc4493e70c4
PQI Air Pen
Setting: http://192.168.200.1/
無線LAN Uplink設定(Concurrent Mode)
SSID: mutoh_air
Passwd:
#Scratch #M5Stack #CoderDojo #presen