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
M5UnifiedとPicoRubyで楽しむM5シリーズ
Search
Katsuhiko Kageyama
November 29, 2025
Technology
590
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
M5UnifiedとPicoRubyで楽しむM5シリーズ
Katsuhiko Kageyama
November 29, 2025
More Decks by Katsuhiko Kageyama
See All by Katsuhiko Kageyama
同人誌とVMづくり
kishima
1
59
Tab5をRubyで動くパソコンにする
kishima
2
430
Family mrubyの進捗
kishima
1
150
PicoRuby as a Multi-VM Operating System
kishima
1
510
PCとPicoRuby-ESP32間でシリアルファイル転送
kishima
1
58
Rubyでmicro-ROS!
kishima
0
210
mruby(PicoRuby)で ファミコン音楽を奏でる2
kishima
1
250
mruby(PicoRuby)で ファミコン音楽を奏でる
kishima
2
830
PicoRuby/R2P2で自分だけのコンピュータを作ろう
kishima
1
720
Other Decks in Technology
See All in Technology
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.3k
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
390
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
470
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
410
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
自主式軟體工廠
philipz
0
250
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
今こそ知りたいAmplifyGen2
mkdev10
2
160
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
140
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
1
800
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
370
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Building an army of robots
kneath
307
47k
Paper Plane
katiecoart
PRO
4
54k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
A designer walks into a library…
pauljervisheath
211
25k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
Being A Developer After 40
akosma
92
590k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Bash Introduction
62gerente
615
220k
Transcript
M5Unifiedと PicoRubyで楽しむ M5シリーズ
@kishima 組み込み系エンジニア プレイングマネージャ業 mruby好き 電子工作好き 2
2025の流行りはPicoRuby Ruby x マイコンが熱い
PicoRubyとESP32とM5Stack PicoRubyは元々、Raspberry Pi Pico がター ゲット @YuuuさんがESP32へ対応 ESP32を使ったM5Stackという 製品がある
我が家のM5シリーズ(の一部)
M5のなやみ ▸ きれいにまとまったデバイスでかわいい ▸ ふつうはC++で開発 ▸ M5のC++ライブラリを使えば、簡単に画面 描画などもできる ▸ PicoRubyだと自分で
C++ライブラリを叩く mrbgemを実装必要!
M5Stack向けのライブラリをgem化しよう • 標準ライブラリ(M5Unified/M5GFX) ◦ 画面描画 ◦ LED ◦ ボタン ◦
電源 ◦ IMU ◦ スピーカー ◦ マイク ◦ etc https://docs.m5stack.com/ja/arduino/m5unified/helloworld
たくさんのメソッド 描画系(M5GFX)だけで100個以上! バインディングを書く必要あり void drawPixel ( int32_t x, int32_t y,
const T& color) void drawCircle ( int32_t x, int32_t y, int32_t r, const T& color) … … … さすがに無理・・・
どうやって実装するか CだとFFIが使えるが・・・ ※FFI:Foreign Function Interface Cなどの関数を違う言語から直接呼ぶ仕組み マイコン環境で使うことが難しい・・・ 今回は、Claude Codeにやらせた
実装 1. 実装対象の関数をC++ヘッダからスクリプト で抽出 2. 抽出した結果をYAMLにまとめる 3. YAMLからmrubyバインディングのスケルト ン関数を生成 4.
スケルトン関数を段階的に実装 作業量が多いので、そのままではAIでも対応できない ◆実装方針
中間生成物のYAML
現在の結果 描画系 99/180 メソッドを実装 - M5Unified Core: 20/20 (100%) ✅
- M5GFX Color: 12/12 (100%) ✅ - M5GFX Draw: 30/30 (100%) ✅ - M5GFX Fill: 3/13 (23%) - M5GFX Text: 9/31 (29%) - M5GFX Image: 2/13 (15%) - M5GFX Display: 9/29 (31%) - M5GFX Low-level: 4/18 (22%) - M5GFX Utility: 0/13 (0%) https://github.com/kishima/picoruby-m5unified/tree/main
できたので、色々動かしてみる 我が家のM5から以下を試す • M5Stack • M5StickC Plus2
こんな感じで
同じコードで動かせる
課題 AIですべて実装できたとしても、200を超えるメ ソッドを継続的にメンテするのは難しい・・・ Ruby-FFI的な仕組みが必要