Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SmTでRaspberry Pi Picoを動かす
Search
matsudai
April 09, 2026
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
60
Ruby × 車 (その後) ~課題:オフライン対応~
matsudai
0
76
Ruby × 車 ~ 愛車のデータを取得せよ! ~
matsudai
2
340
流行れ! AI Tuber!
matsudai
0
170
Islands on Rails !!
matsudai
0
80
Rubyで動かす検索機能
matsudai
0
180
ruby.wasmが簡単にビルドできるようになっていた
matsudai
0
190
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
610
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
560
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
ラッコキーワード サービス紹介資料
rakko
1
5.2M
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Scaling GitHub
holman
464
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Designing for Timeless Needs
cassininazir
1
520
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 エディタ