M5Stack/ESP32 Arduino向けのmruby/cライブラリを作る
TechArduino, c, Embedded, ESP32, Japanese, M5Stack, mruby/c
Wio LTE Arduino用にライブラリ化したmruby/cを少しだけ改造して、ESP32 Arduino用にしてみました。
https://github.com/kishima/mrubyc_for_ESP32_Arduino
まだAPIの移植はほとんどできていませんが、M5StackのLCD用のサンプルスケッチと同じ処理をスクリプトで走らせる事ができます。
内部では、ビルド時にM5Stackのフラグが定義されているときだけ、バインディングがビルドされるようにしています。簡単なので、ソースを見ると自前で拡張もできると思います。
サンプルコード:
https://github.com/kishima/mrubyc_for_ESP32_Arduino/blob/master/examples/M5_lcd/M5_lcd.rb
実行例:
M5StackのLCDサンプルスケッチを、mruby/cで動くように足りないAPIなど移植した。ランダムな三角形を背景に映ってるようなmrubyスクリプトで描いてるけれど、実際の描画はm5stack提供のライブラリの関数が行ってるので、十分早い。 pic.twitter.com/3vVOzVmm8T
— kishima (@kishima) June 23, 2018
狙い
- ESP-IDFをインストールしなくても、ArduinodeIDEだけで、mrubyでの開発環境を整えられること。
- Arduino環境上でVMを実行することで、様々なデバイスを接続するときに、既存のArduinoのスケッチの資産を最大限活用できるようにすること。
- mruby,mruby/cはバインディングを書くのが簡単なのがよい
- 最終的には、一度mruby/cのブートローダスケッチを書き込めば、それ以降mrubyのコードを触るだけで開発できるようにする。
- 標準のmrubyでもメモリ的な要求が厳しいマルチスレッド(マルチタスク)を気軽に使えるようにしたい。コンパクトなマルチタスクはmruby/cの大きな特徴なので。
使い方
- M5Stack Arduinoの開発環境を準備する
https://github.com/m5stack/M5Stack - mruby v1.3のmrbcを準備する(Windowsの場合は、mrbc.exe)
https://github.com/mruby/mruby/releases - githubからライブラリをcloneして持ってくる
$ git clone https://github.com/kishima/mrubyc_for_ESP32_Arduino.git
- ライブラリをArduinoのライブラリフォルダへコピーする
普通のArduinoライブラリ利用の手順と一緒です。
https://garretlab.web.fc2.com/arduino/libraries/installation/index.html#manual - ArduinoIDEを起動して、スケッチ例からスケッチを読み込み、適当な名前をつけて保存する。
ファイル→スケッチ例→mruby/c for EPS32-Arduino→basic - 保存したスケッチのフォルダにあるRubyスクリプト(basic.rb)を更新する
- basic.rbのあるディレクトリで、バイトコンパイルする
$ mrbc -Bcode -E basic.rb
バイトコンパイルの結果、basic.cが更新されているはずです。
- M5StackをUSBで接続して、ArduinodeIDE上でビルド&書き込みする。
basic.rbのファイル名は自由に変更可能です。
今後やりたいこと
- APIバインディングの拡張
- 一度ArduinoIDEで書き込めば、C/C++のコードを一切触らないで開発できるCLI環境
- マルチタスク機能へも対応
- あと、もう一つ小ネタを
関連記事
直近の活動予定
直近の対外的な活動予定を記載しています。 今後のイベント 特になし (技術書、も ...
Arduboy互換機を作ってみた
思い立って、Arduboy互換機を作ってみましたので、自作Arduboyの参考に ...
技術書典5でmruby/c本を頒布します
そういえば、ブログの記事には起こしてなかったので、一応書いておきます。 mrub ...
独習mrubyバイトコード[OP_LOADT]
OP_LOADT Arguments A:レジスタ番号 How it works ...
技術書典7でESP32とmruby関連の新刊出します
技術書典7もいよいよ明日になりました。サークル当選したので、今回も新刊出す予定で ...
Ubuntu22.04でArduino IDEを動かす
Ubuntu22.04で、apt install arduinoでインストールす ...
Recent Comments