Upload
kyab-yoshioka
View
1.016
Download
3
Embed Size (px)
DESCRIPTION
interested? watch working demo on http://d.hatena.ne.jp/kyab/20130621
Citation preview
mruby+組込み対話環境
吉岡 紘二(kyab)
mruby+組込みでもirbしたい!
• 目的 • ハードウェア制御の試行錯誤 • 状態の確認 • クラス/メソッド再定義
• 環境 • USBシリアルなどで対話 • RAMギリギリでも動いて欲しい
ホストベースなmirb• ホスト上とターゲットのボード上の協調REPL
• ホスト: • ユーザ入力をコンパイル • バイトコードをターゲットに送り込む
• ターゲット: • バイトコードを実行 • 実行結果を文字列にして、ホストに応答
• mruby-bin-mirb-hostbasedとしてgithubにて公開
コンパイラ不要 !
省メモリ動作
ホストベースなmirb
Arduino互換ボード chipKIT Max32
• Digilent.inc
• Microchip® PIC32MX795F512 • 80MHz 32bit MIPS
• ROM 512kb • RAM 128kb
RCカー デモ
ホストベースREPL プロトコル
ホスト ターゲットENQ(0x06)ACK(0x05)
SOH(0x01 or 0x02(verbose))
バイトコードサイズN:2byte
‘!’
バイトコード:Nbyte
100byteごとにACKを返す
(シリアル受信バッファあふれの防止)
SOH(0x01 or 0x02(exception))
結果文字列サイズM:2byte‘!’‘!’
結果文字列:Mbyte例外もinspectして文字列で
返す
接続確立
バイトコード送信
結果文字列受信
• mruby-bin-mirb-hostbased https://github.com/kyab/mruby-bin-mirb-hostbased
• mruby-arduino https://github.com/kyab/mruby-arduino
• twitter:@kyab212
• http://d.hatena.ne.jp/kyab/
補足
今後の予定• pryしたい!
• 高度なオブジェクト指向デバッグ • cdでコンテキスト移動 • binding.mpry (?) でブレーク • 課題:mrubyではローカル変数取れない。Bindingクラスがない
• mrubyデバッグ機能と連携
• ネットワーク対応
動作実績
• chipKIT Max32 (RAM 128kb)
• Arduino Due (RAM 96kb)
• GR-SAKURA (RAM 128kb)(id:masahino123さん http://masahino123.hatenablog.com/entry/2013/08/16/150538)