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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
matsudai
April 09, 2026
120
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
65
Ruby × 車 (その後) ~課題:オフライン対応~
matsudai
0
84
Ruby × 車 ~ 愛車のデータを取得せよ! ~
matsudai
2
350
流行れ! AI Tuber!
matsudai
0
180
Islands on Rails !!
matsudai
0
86
Rubyで動かす検索機能
matsudai
0
190
ruby.wasmが簡単にビルドできるようになっていた
matsudai
0
200
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
550
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
480
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
580
We Are The Robots
honzajavorek
0
420
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
30 Presentation Tips
portentint
PRO
1
450
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Ace a Technical Interview
jacobian
280
24k
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 エディタ