マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
by
bash0C7
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
No content
Slide 2
Slide 2 text
bash @bash0C7 駆け出しiOSエンジニアと繋がりたい 今年iOS開発に入門の フレッシュルーキー
Slide 3
Slide 3 text
PicoRubyと私 https://magazine.rubyist.net/ articles/0066/0066NagaraRubyKaigi01Report.html
Slide 4
Slide 4 text
PicoRubyとは https://picoruby.org/ https://picorubykaigi.org/ • マイコン向けの 軽量Ruby処理系 • Raspberry Pi Picoが リファレンスボード • ESP32、WebAssembly キーボード rmware fi • 10/31(土) Kaigi開催
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
この発表にあたって https://github.com/bash0C7/R2P2-darwin https://www.docswell.com/s/ sussan0416/ K7NG3W-2026-04-25-Tram-LT
Slide 7
Slide 7 text
DEMO 1 Lチカ for iPhone
Slide 8
Slide 8 text
DEMO 1 Lチカ for iPhone 「Torchika」
Slide 9
Slide 9 text
https://github.com/bash0C7/R2P2-darwin/blob/main/examples/ios/iphone-torch/app.rb
Slide 10
Slide 10 text
“ マイコンのLED 点滅と同じ気持ち https://hasumikin.com/2023/06/05/reiwa5-picoruby-l-chika.html
Slide 11
Slide 11 text
“ マイコンのように、loopで読ん で呼び出すだけ
Slide 12
Slide 12 text
センサー&アクチュエーターの塊 メモリ、CPU、バッテリー、NWも強力。高レイヤーAPIも強い • 加速度センサー • ジャイロセンサー • 近接センサー • 環境光センサー • 気圧計 • GPS・地磁気センサー • LiDARスキャナー • 光学式心拍センサー • 電気心拍センサー • 血中酸素センサー • 皮膚温センサー • 水深・水温センサー • Taptic Engine • カメラ用アクチュエーター
Slide 13
Slide 13 text
“ マイコンのひとつの極致 iPhoneは、巨大なマイコン
Slide 14
Slide 14 text
“ マイコンの一種としてPicoRubyで 「装置化」が捗るのでは?
Slide 15
Slide 15 text
Architecture PicoRuby on Apple Devices
Slide 16
Slide 16 text
3層アーキテクチャ 層 主な言語 内容 UI Swift ふつうのSwiftUIのXcodeプロジェクト PicoRuby ファームウェア C、Ruby、 Swift 処理系+ライブラリをlibmruby.a化 ライブラリからのSDK呼び出しコードはSwift Ruby PicoRubyの上で動く。 実行時にバイトコードにコンパイル。 PicoRuby アプリ
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
マイコンの「文法」に沿っている ライブラリでRubyの世界とマシンの世界を仲立ち レイヤー ESP32 iPhone / Watch PicoRuby アプリケーションコード アプリケーションコード ライブラリ(mrbgem) picoruby-** picoruby-** SDK ESP-IDF(ESP IoT Development Framework) AVFoundation / CoreBluetooth等
Slide 21
Slide 21 text
DEMO「ロボット操作」
Slide 22
Slide 22 text
Stack-chan Super kawaii AI desktop robot https://github.com/stack-chan https://codezine.jp/article/detail/24694
Slide 23
Slide 23 text
フルPicoRuby版スタックチャンとその操作アプリ https://github.com/bash0C7/stackchan-picoruby https://github.com/bash0C7/R2P2-darwin/blob/main/examples/ios/stackchan/ • iPhone/Mac/Watchから無線操作
Slide 24
Slide 24 text
“ 共通BLE lib: picoruby-ble
Slide 25
Slide 25 text
“ 「装置」と捉えると超シンプル
Slide 26
Slide 26 text
“ マイコン、ブラウザ、keebにクラウド コードもライブラリも共有できる
Slide 27
Slide 27 text
“ マイコン、ブラウザ、keebにクラウド コードもライブラリも共有できる \Appleデバイスも!/ ffi (PicoRuby uno cialです)
Slide 28
Slide 28 text
“ スクリプトと.aファイルのXcode ビルドパイプライン化は汎用テク
Slide 29
Slide 29 text
“ 手元のiPhone / Apple Watchを、 「最高のマイコン」として遊ぼう
Slide 30
Slide 30 text
さて...
Slide 31
Slide 31 text
もっとネイティブ度を上げられない? バイトコード依存をいかに下げるか 層 主な言語 内容 UI Swift ふつうのSwiftUIのXcodeプロジェクト PicoRuby ファームウェア C、Ruby、 Swift 処理系+ライブラリをlibmruby.a化 ライブラリからのSDK呼び出しコードはSwift Ruby PicoRubyの上で動く。 実行時にバイトコードにコンパイル。 PicoRuby アプリ
Slide 32
Slide 32 text
matz/spinel連携 ドメインのロジックもネイティブ化 • Matz作の Ruby AOT コンパイラ • ドメインロジックもネイティブにする • PicoRuby本体レイヤーで高速動作の期待
Slide 33
Slide 33 text
“ アプリ・組み込み・Webなど エコシステムはクロスボーダー化 Ruby最新進化にもご注目を!