ScratchとM5Stackで遊ぶ
自己紹介
むとうたけし(武藤武士)
専業主夫(51歳)@奈良
所属コミュニティ
アカウント一覧
はじめに
Scratch
ビジュアルプログラミング、いいですよね?
とにかく、楽しいですよね?
センサーなんかのデバイスと一緒に使えるといいですよね?
M5Stack一家
ビジュアルプログラミング、いいですよね?
とにかく、楽しいですよね?
センサーなどのデバイスがあっていいですよね?
では、二つをつなげて遊んでみましょう!!
M5Stack一家の肖像
ハードウエアの特徴(赤字は今回使ったもの)
CPU:ESP32など
ディスプレイ:320x240TFT(Core,Core2), 80×160TFT(M5StickC), 135x240TFT(C Plus), 5x5フルカラーLED(ATOM Matrix)
バッテリー:150mAh(Core), 390mAh(Core2), 80or95mAh(C), 120mAh(C Plus)
ネットワーク:Wi-Fi(2.4G) + BLE
センサー:加速度センサー、ジャイロ、ボタンスイッチ、温度センサーなど
オーディオ:マイク, スピーカー
その他I/O:Grove A(I2C), B(A/D,GPIO), C(UART), M-BUSなど
付属物:腕時計バンド、LEGOマウント、キーボードなど
腕時計バンド、LEGOマウント、壁掛けマウント付属
ソフトウエア開発環境
UiFLOW:ビジュアルプログラミング環境, クラウド版/デスクトップ版
Python:UiFlowからの変換可能
Arduino IDE:Arduino言語によるプログラミング
あなたは、どのScratch?
Scratch: ビジュアルプログラミング環境
教育目的などでよく利用される。
意外と変態的な言語: オブジェクト指向, 並行処理, イベント(メッセージ)ベース。
プログラムのシェア/フォーク(リミックス)のためのプラットフォームも提供。
Scratch専用SNS環境もあり。
実は、3つのバージョンがある。
Scratchのバージョンver | 実装言語 | 拡張方法 | 610t作 | online | offline | 備考 |
1.4 | Smalltalk | 遠隔センサー | M5Scratch | x | o | Smalltalkを直接使った魔改造も可能 |
2 | Flash(EoL) | JavaScriptなど | | o | o | Flashが死んで使えない |
3 | JavaScript | 拡張機能 | M5bitLess | o | o | |
End of Life (現在使えないもの)
Scratch 2: FlashがEoLのため。
Scratch 1.4: 32bitアプリなので最近のmacOSでは死んでますorz
Scratch 1.4:遠隔センサー
Scratch 1.4:Scratch遠隔センサーを使って、TCP/IP (ポート42001)経由でデータのやり取りができる。
テキストベースのプロトコル。
メッセージのやり取り
broadcast "メッセージ"
変数のやり取り
sensor-update "変数名" "値" ...
Scratch側での準備:遠隔センサーを有効にする。
調べる->"スライダセンサーの値"を右クリック->"遠隔センサー接続を有効にする"を選ぶ。
M5Stackとの連携例
M5Stack -> Scratch (逆は難しい?)
ビジュアルプログラミング、夢のコラボ!!
おまけ: スマートフォンからScratch 1.4を使う。
iOS: 軽く探した範囲では見つかりませんでした。情報求む!!
おまけ:Scratch1.4でSmalltalk魔改造
Smalltalk(Squeak)を利用する手順
画面左上のSCRATCHのロゴの”R”の部分をShiftキーを押しながら左クリックすると以下のメニューが開く。
"turn fill screen off"を選ぶと白い背景が見えるので、ここを左クリックするとSmalltalkのメニューが出てくる。
後は、hackするだけ!!
Scratch1.4でSmalltalkを使う場合の参考情報
Scratch 2 (End of Life)の拡張方法
既に使えないので、ザックリと。
ScratchX: github上にある特定の書式に従ったJavaScriptで書かれた実験的な拡張機能(extension)を追加することができる。
自力でオフライン(デスクトップ)版を改造する。
Scratch3の拡張機能
Scratch3に追加の機能を実現する方法。
Scratch3の公式拡張機能の一部 (ハードウエアに関するもの)
Scratch3のサーバーに拡張機能を実装すれば、My Scratchが。
拡張機能入のScratchサーバを自分で立てる。
(必要であれば)クライアント側も自分で書く。
Stretch3:拡張機能実装例
Stretch3:非公式Scratch3拡張機能が使えるサーバー
楽しい拡張機能がいっぱい!!
AI 関連
自分で学習したモデルが使えるもの
既にあるモデルを使うもの
ポーズ認識
Microbit More
Microbit More for Scratch x micro:bit
Scratch3からmicro:bitの全ての機能を使うための拡張機能。
公式micro:bit拡張機能は、ジェスチャーなど限られた機能しか使えない。
ソース
M5bitLess
M5bitLess=M5Stack一家をmicro:bitのようにふるまわせてMicrobit More(↔︎Less)を使う
Microbit Moreの寄生虫
作った背景
Arduino IDEでの作業がほぼ必須。
IPアドレスやWi-Fi設定の変更。
自分好みのデモへの変更。
Scratch拡張機能側とM5Stack側を同時に作っていくと、ぜったいハマる自信がある。
Microbit Moreがあるんだから、M5Stackがmicro:bitのフリをすればいいんじゃね?
対応しているブロック(赤枠部分)
デモ
発表当日はライブでデモします。
おわりに
ScratchとM5Stackで遊ぶととても楽しい!!
Scratch 1.4遠隔センサー
x UiFLOW
x M5Scratch
Scratch3 + Microbit More
x M5bitLess
まだまだ実装できていない機能があるので、一緒に作りませんか!!
当日の情報へのリンク
参考情報