Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

オリジナルmrubyデバイス作り

438 views

Published on

Family mrubyというオリジナルデバイス開発の過程を紹介します。

Published in: Software
  • Be the first to comment

  • Be the first to like this

オリジナルmrubyデバイス作り

  1. 1. オリジナルMRUBYデバイス作りオリジナルMRUBYデバイス作り kishima
  2. 2. ⾃⼰紹介⾃⼰紹介 kishima お仕事 あるIoTサービスのLPWAデバイス開発、運⽤、 障害対応など何でも屋さん データ解析で最近Rubyを使う機会増えた(増 やした) 趣味 mruby、mruby/c、電⼦⼯作、技術同⼈誌執筆
  3. 3. MRUBYのオリジナルデバイスを作ろうMRUBYのオリジナルデバイスを作ろう 技術書典7で新刊出しました
  4. 4. 注⽬の新刊「⼊⾨mruby」
  5. 5. Family mruby
  6. 6. 以前の発表からのアップデート以前の発表からのアップデート 基板を更新 配線やフットプリントのミスの修正 電源周りの強化 ⾳声出⼒⽤のジャック追加 ESP32へのmruby移植 mrubyからVGA出⼒C++ライブラリを呼ぶ
  7. 7. 2次試作基板
  8. 8. ハード的な苦しみ:GNDつなぎ忘れた
  9. 9. Reference 回路図、BOM、基板製造⽤のガーバーデータも公 開しているので⾃分で製造を委託してもOK https://github.com/kishima/narya_board
  10. 10. ESP32上でのmrubyとArduinoライブラリの共存 mruby-esp32/ |-- main/ |-- components/ | |-- mruby_component/ #mruby | |-- arduino/ #Arduino core for the ESP32 | |-- 他
  11. 11. 厄介だったポイント Arduino coreのビルド設定 ESP32のビルドの仕組みの理解
  12. 12. Rubyのサンプルコード https://github.com/kishima/family_mruby/blob/master/
  13. 13. デモデモ https://www.youtube.com/watch?v=htTnSmDAAdM
  14. 14. Cの構造体との連携 MRB_TT_DATAタイプのクラスにする 「mruby でC ⾔語の構造体をラップしたオブジェ クトを作る正しい⽅法」 https://qiita.com/tsahara@github/items/86610a696f8ca
  15. 15. ⾒よう⾒まねで実装 https://github.com/kishima/mruby-esp32- narya/blob/master/src/mrb_narya_display.cpp struct RClass *sprite_class = mrb_define_class_under(mrb, nar MRB_SET_INSTANCE_TT(sprite_class, MRB_TT_DATA); static struct mrb_data_type mrb_sprite_cdata_type = { "Sprite" mrb_value mrb_narya_sprite_initialize(mrb_state *mrb, mrb_valu { DATA_TYPE(self) = &mrb_sprite_cdata_type; DATA_PTR(self) = newSprite; }
  16. 16. C⾔語拡張実装の⾃分の課題 C⾔語側で管理する画像や⾳楽のメモリを、漏れ なく⾼速に確保/解放する⽅法の確認 まだGCの動き⽅が⼗分理解できていないので勉 強する
  17. 17. FAMILY MRUBYプロジェクト:今後の課FAMILY MRUBYプロジェクト:今後の課 題題 APIの強化 ⾳声、スプライト、キーボード⼊⼒ フレームワークの強化 Load/Save/mrbc搭載 業者に部品実装まで委託 いくつかのIC部品が⼿はんだ厳しい コミケ参加 通れば、キットを少量頒布したい
  18. 18. Thank you

×