m5stack+mrubyを試してみた
RubyKaigiの中日に開催されていたmrubyのワークショップに参加してきました。その際の備忘録(メモ)です。まず、Macに「VCPドライバ」と「CoolTerm」をインストールして、USBでm5stackにrubyのプログラムを流し込みます。/dev/tty.SLAB_USBtoUARTというデバイスがMacから見えていることを確認します。
ls /dev/tty.S*
/dev/tty.SLAB_USBtoUART
プログラムにはRubyのコードが使えます!ワークショップ中に作ったのは、LCDというライブラリを使ってディスプレイに図形を描画するプログラムです。
LCD.clear
LCD.fill_rect(50, 40, 219, 159, LCD.rgb(0, 39, 0))
LCD.fill_circle(150, 120, 50, LCD::RED)
gets
Buttonというライブラリを使うと組み込みのボタンの押下状態を取得することができます。
loop do
c = LCD::BLACK
c = LCD::RED if Button::A.pressed?
c += LCD::GREEN if Button::B.pressed?
c += LCD::BLUE if Button::C.pressed?
LCD.fill_circle(160, 120, 50, c)
end
ソースコード(demo.rb)をコンパイル(?)するのは、mrbcというコマンドを使用します。今回は配布されたSDカードに入っていた実行ファイルをそのまま使っています。
./mrbc -o autorun.mrb demo.rb
実行後、autorun.mrbというファイルが生成されるので、これをSDカードに書き込んで、m5stackに差し込むと、プログラムの通りに動作するという流れです。ターミナルソフト(CoolTerm)を使ってUSB越しに直接コマンドを送り動作確認をすることも可能です。
以下は、実際に1つ目のプログラムが動いている様子です。右側の日本国旗が描かれている黒い四角形が m5stack です。
ただ、まだ肝心のWifiとBluetooth関連のライブラリが無いようなので(要調査)、環境センサーをくっつけたりするIoTの用途にはそのまま使え無さそうなのが残念でした。とはいえ、こんな風にC言語よりも気楽に使える感じで小さなデバイスを扱えるようになる未来を想像するとワクワクしますね。