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
29
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
53
Ruby × 車 ~ 愛車のデータを取得せよ! ~
matsudai
2
230
流行れ! AI Tuber!
matsudai
0
120
Islands on Rails !!
matsudai
0
63
Rubyで動かす検索機能
matsudai
0
150
ruby.wasmが簡単にビルドできるようになっていた
matsudai
0
170
Featured
See All Featured
New Earth Scene 8
popppiees
2
2k
Thoughts on Productivity
jonyablonski
76
5.1k
Site-Speed That Sticks
csswizardry
13
1.1k
Building the Perfect Custom Keyboard
takai
2
720
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
160
YesSQL, Process and Tooling at Scale
rocio
174
15k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
How to Ace a Technical Interview
jacobian
281
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
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 エディタ