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
100
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
59
Ruby × 車 (その後) ~課題:オフライン対応~
matsudai
0
72
Ruby × 車 ~ 愛車のデータを取得せよ! ~
matsudai
2
290
流行れ! AI Tuber!
matsudai
0
170
Islands on Rails !!
matsudai
0
80
Rubyで動かす検索機能
matsudai
0
180
ruby.wasmが簡単にビルドできるようになっていた
matsudai
0
190
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
My Coaching Mixtape
mlcsv
0
310
Bash Introduction
62gerente
615
220k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Claude Code のすすめ
schroneko
67
230k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
GitHub's CSS Performance
jonrohan
1033
470k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Design in an AI World
tapps
1
310
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
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 エディタ