Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

mruby/cで始めるM5Stack &mrubyスクリプト開発

1 364 vues

Publié le

Let’s make apps on mruby/c for M5Stack(ESP32)
https://silentworlds.info/2018/07/03/lets-make-apps-on-mruby-c-for-m5stackesp32/
M5Stack上でirb的なことを試してみました。

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

mruby/cで始めるM5Stack &mrubyスクリプト開発

  1. 1. 2018/7/3 M5Stack user meeting 2 @kishima で始めるM5Stack  &mrubyスクリプト開発
  2. 2. 自己紹介 @kishimaといいます メーカーで組み込み系の研究開発してます 最近趣味で電子工作はじめました
  3. 3. M5Stack:私の求めていたもの ネットに繋がって、画が出せて、音も出る  これをコンパクトに! それを待っていた! 自分で作るとたいへん・・・(楽しいけど)
  4. 4. 今日はRuby(mruby/c)を使った、M5Stack の開発環境の話をします RubyのパパであるまつもとさんもM5Stack購入され たようですね
  5. 5. 開発環境はどんなの使ってますか? ・Arduino IDE ・PlatformIO ・ESP-IDF ・M5Clould ・その他
  6. 6. スクリプトで開発したい欲 ● Rubyの勉強会などでよくWeb系の方ともお話す る機会があります ● 電子工作的なものに興味持ってるけど・・・ ○ 「はんだ付けできない」 ○ 「C言語は触りたくない」 ○ など ● こんな方にも触ってほしい。 ● M5Stack with スクリプト言語はとてもよさそう
  7. 7. M5Stack(ESP32)で使える言語 ● 標準だと、↓でしょうか? ○ C/C++(Arduino,ESP-IDF) ○ MicroPython(M5Cloud) ○ Lua(M5Cloud) ● ESP-IDFでビルドできて、ROMとRAMが足りれば 他の言語も動くはず
  8. 8. Pythonでたりるのでは? 確かに入門環境としては事足りてますよね でも・・・
  9. 9. Rubyも使いたい!
  10. 10. 理由:
  11. 11. 好きだから
  12. 12. mruby、いけます ● ESP32用のポーティングがあります ○ https://github.com/mruby-esp32/mruby-esp32
  13. 13. mruby? ● Rubyを作ったまつもとさん(Matz)が手がけている 組み込み向けRuby ○ 「組み込み」には、ハードウェア組み込み、アプリケーション組 み込みを含みます ● Rubyよりもコンパクトに、組み込みのしやすさを考 慮して実装されている ● Rubyコード→コンパイル→バイトコード→VMで実 行、という形で動いて、VMを分離可能
  14. 14. mrubyでも大きすぎる? ● 400KB程度RAMがほしいらしい ○ HelloWorldさせるだけならもっと少なくても動きますが ● ESP32のRAMは520KBなので、ある程度長い コード走らせるには、ちょっと余裕がなさすぎかもし れません。 ● どうしよう・・・
  15. 15. そんなあなたのために mruby/cというのもあります ● 特徴 ○ Mrubyのバイトコードを実行するコンパクトな処理系 ■ コンパクトな分、使えない機能がある ● 例外、moduleなど ○ RAMの使用量が少ない ■ 速度よりもRAMを少なくすること重視 ○ OSなしでもマルチタスク処理が可能
  16. 16. やりたいこと ● コードをPC上で打つと、M5StackのFlashへの書 き込みなしに、即実行できるようにする ○ PC上ではmirbというアプリがあります ● 面倒な書き込み待ちもなくてすぐ結果をみられ る! ○ mruby&ESP32での実装例はありますが、今 回はこれを、mruby/cを使ってやってみます
  17. 17. ふつうのmirb PC mrib mruby parser mruby VM Byte code script ● 打ち込んだスクリプトは1命 令単位でパーサーでバイト コードに変換 ● 変換されたバイトコードを mruby VM(バーチャルマシ ン)で実行 ● これを繰り返す
  18. 18. やってみたこと: Remote-mribを作ってみた PC remote-mrib M5Stack mruby parser mruby/c VM extension M5lib Arduino lib Byte code Byte code via WiFi script ● バイトコードをTCPでM5Stackへ転送 ● M5Stackでは、M5Stack用のライブラリのAPIに対応させたmruby/cのVMを動 かして、受け取ったBytecodeを逐次実行
  19. 19. デモ動画 使用したサンプルコードはgithubにあげています。 PC側: https://github.com/kishima/mruby/tree/rmirb M5Stack側: https://github.com/kishima/mrubyc_for_ESP32_Arduino
  20. 20. 今後のこと ● まだ実用には程遠いので安定させる ● mruby/c VMからの応答を受け取れるようにする ● M5StackとESP32のAPIのバインディングの拡張 ● WiFi経由の静的なバイトコード書き込み ● もっと使用メモリ減らす ● 技術書典5にmruby/c本出す

×