Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SmTでRaspberry Pi Picoを動かす
Search
matsudai
April 09, 2026
50
0
Share
SmTでRaspberry Pi Picoを動かす
Roppongi.rb #41
https://roppongirb.connpass.com/event/388478/
matsudai
April 09, 2026
More Decks by matsudai
See All by matsudai
Ruby × 車 (その後) ~課題:オフライン対応~
matsudai
0
64
Ruby × 車 ~ 愛車のデータを取得せよ! ~
matsudai
2
260
流行れ! AI Tuber!
matsudai
0
130
Islands on Rails !!
matsudai
0
64
Rubyで動かす検索機能
matsudai
0
160
ruby.wasmが簡単にビルドできるようになっていた
matsudai
0
170
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
350
The Spectacular Lies of Maps
axbom
PRO
1
740
Deep Space Network (abreviated)
tonyrice
0
140
30 Presentation Tips
portentint
PRO
1
290
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
340
Designing for Timeless Needs
cassininazir
1
220
Exploring anti-patterns in Rails
aemeredith
3
360
Making the Leap to Tech Lead
cromwellryan
135
9.8k
The Curious Case for Waylosing
cassininazir
1
340
Leo the Paperboy
mayatellez
7
1.8k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Transcript
SmTでRaspberry Pi Picoを動かす Fujihara Katsutoshi (@__matsudai__) 2026-04-09 Roppongi.rb #41
自己紹介 名前: matsudai / ふじはら 所属: 六本木ヒルズ森タワーの13F 島根県松江市に住んでいます。 業務ではWebアプリ開発(バックエンド)が中心。 個人的に松江高専さんの課外活動のお手伝いなど。
← リポジトリ gfd-dennou-club/mrubyc-pico (https://github.com/gfd-dennou-club/mrubyc-pico/)
自己紹介 名前: matsudai / ふじはら 所属: 六本木ヒルズ森タワーの13F 島根県松江市に住んでいます。 業務ではWebアプリ開発(バックエンド)が中心。 個人的に松江高専さんの課外活動のお手伝いなど。
学生さんの技術向上 + 地域コミュニティとの連携 独立行政法人 国立高等専門学校機構 松江工業高等専門学校 (松江高専), https://www.matsue-ct.jp/ ← リポジトリ gfd-dennou-club/mrubyc-pico (https://github.com/gfd-dennou-club/mrubyc-pico/)
地域との連携 未来の技術者育成を目的とした「ご当地こどもロボコン」 島根県では「 Matz葉がにロボコン」「どじょうすくいロボコン」の2つ ご当地こどもロボコン, https://gotochi-robocon.com/ Matz葉がにロボコン | かにロボ連盟 ご当地こども向けプログラミングコンテスト,
https://www.shimane-oss.org/kani-robo/ どじょうすくいロボコン | ご当地こどもロボコン, https://www.shimane-oss.org/dojyosukui-robo/
地域との連携 未来の技術者育成を目的とした「ご当地こどもロボコン」 島根県では「Matz葉がにロボコン」「どじょうすくいロボコン」の2つ ライントレースで得点を競う 第1回Matz葉がにロボコンの開催 | 松江工業高等専門学校 スタートアップ事業, https://www.matsue-ct.jp/startup/%E7%AC%AC1%E5%9B%9Ematz%E8%91%89%E3%81%8C%E3%81%AB%E3%83%AD%E3%83%9C%E3%82%B3%E3%83%B3%E3%81%AE%E9%96%8B%E5%82%AC/
SmT (シント) ・松江高専の学生が中心となって開発しているIoT教育パッケージ(mruby/c) SmT, https://ceres.epi.it.matsue-ct.ac.jp/smt/
SmT (シント) ・松江高専の学生が中心となって開発しているIoT教育パッケージ(mruby/c) 👍ターゲットである小中学生が簡単に始められる SmT, https://ceres.epi.it.matsue-ct.ac.jp/smt/
SmT (シント) ・松江高専の学生が中心となって開発しているIoT教育パッケージ(mruby/c) ・スモウルビーを元にしたエディタと、ビルド&書き込みツール → いずれもWebアプリ、ユーザーの開発環境構築が不要 👍ターゲットである小中学生が簡単に始められる SmT, https://ceres.epi.it.matsue-ct.ac.jp/smt/
SmT (シント) ・2025年12月 時点ではRBoard(PIC32)、ESP32に対応
SmT (シント) ・2025年12月 時点ではRBoard(PIC32)、ESP32に対応 →最近Raspberry Pi Picoが流行っているらしい…🤔
SmT (シント) ・2025年12月 時点ではRBoard(PIC32)、ESP32に対応 →最近Raspberry Pi Picoが流行っているらしい…🤔 やっちゃお 😉
mruby/cでマイコンを動かすということ Rubyコード puts “Hello” バイトコード [0x52, 0x49, …] VM 「Hello」の表示
mruby/cでマイコンを動かすということ ・mruby/cはVM。バイトコードを解釈して実行 Rubyコード puts “Hello” バイトコード [0x52, 0x49, …] VM
「Hello」の表示
mruby/cでマイコンを動かすということ ・mruby/cはVM。バイトコードを解釈して実行 ・バイトコードはRubyコードからmrubyコンパイラ(mrbc)により生成 Rubyコード puts “Hello” バイトコード [0x52, 0x49, …]
VM 「Hello」の表示 mrbc
mruby/cでマイコンを動かすということ ・mruby/cはVM。バイトコードを解釈して実行 ・バイトコードはRubyコードからmrubyコンパイラ(mrbc)により生成 [課題] Cコードに書いてしまうと、 Rubyコード変更時に Cコンパイルが必要 Rubyコード puts “Hello”
バイトコード [0x52, 0x49, …] VM 「Hello」の表示
mruby/cでマイコンを動かすということ ・mruby/cはVM。バイトコードを解釈して実行 ・バイトコードはRubyコードからmrubyコンパイラ(mrbc)により生成 [課題] Cコードに書いてしまうと、 Rubyコード変更時に Cコンパイルが必要 → 変数的に扱えるようにするなどの対応が必要…だが、ここはmruby/cでは規定なし Rubyコード
puts “Hello” バイトコード [0x52, 0x49, …] VM 「Hello」の表示
SmTに対応したmruby/c環境の実装 ・SmTではkaniwriter(ビルド&書き込みツール)がWebアプリとして動作 Rubyコード バイトコード VM mrubyc/mrbwrite, https://github.com/mrubyc/mrbwrite/ SmT, https://ceres.epi.it.matsue-ct.ac.jp/smt/ kaniwriter
| mruby/c書き込みツール, https://ceres.epi.it.matsue-ct.ac.jp/writer/
SmTに対応したmruby/c環境の実装 ・SmTではkaniwriter(ビルド&書き込みツール)がWebアプリとして動作 Web Serial APIで「接続時にmrbwriteプロトコルで通信する」仕様 Rubyコード バイトコード VM mrubyc/mrbwrite, https://github.com/mrubyc/mrbwrite/
SmT, https://ceres.epi.it.matsue-ct.ac.jp/smt/ kaniwriter | mruby/c書き込みツール, https://ceres.epi.it.matsue-ct.ac.jp/writer/ mrbwrite
SmTに対応したmruby/c環境の実装 ・SmTではkaniwriter(ビルド&書き込みツール)がWebアプリとして動作 Web Serial APIで「接続時にmrbwriteプロトコルで通信する」仕様
SmTに対応したmruby/c環境の実装 ・SmTではkaniwriter(ビルド&書き込みツール)がWebアプリとして動作 Web Serial APIで「接続時にmrbwriteプロトコルで通信する」仕様 → 通信してバイトコードを受け取り、ストレージに読み書きする機能の実装
まとめ ・ 松江高専さん中心に開発されている、IoT教育パッケージ「SmT」で Raspberry Pi Picoを使えるようにした。 ・ 素朴に実装するとmrubyコンパイル →
Cコンパイルが必要なため Cコンパイル不要でRuby部分を差し替える工夫が必要。 ・ 今回はSmTで採用されるWeb Serial API (USB) + mrbwrite プロトコルに 対応したmruby/cファームウェアを実装した。 Releases | gfd-dennou-club/mrubyc-pico https://github.com/gfd-dennou-club/mrubyc-pico/releases ファームウェア SmT https://ceres.epi.it.matsue-ct.ac.jp/smt/ SmT エディタ