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
Raw HID とOLEDで広げるキーボードの可能性/Expanding Keyboard P...
Search
hachi (Hayao Kimura)
December 07, 2024
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Raw HID とOLEDで広げるキーボードの可能性/Expanding Keyboard Possibilities with Raw HID and OLED
hachi (Hayao Kimura)
December 07, 2024
More Decks by hachi (Hayao Kimura)
See All by hachi (Hayao Kimura)
転職を「転機」にする/Turning a job change into a turning point
hayaokimura
2
120
Integration of PRK Firmware and R2P2
hayaokimura
1
350
PicoRuby で拓く電子工作の世界/The World of Electronics Projects Opened by PicoRuby
hayaokimura
2
1.5k
RISC-V CPU emulator made with Ruby
hayaokimura
2
110
Ruby で作る RISC-V CPU エミュレーター / RISC-V CPU emulator made with Ruby
hayaokimura
5
2.3k
Fiber Scheduler vs. General-Purpose Parallel Client
hayaokimura
1
980
社内でGemを読む会をして捗っている/Progressing Well: A Gem Reading Session at Work
hayaokimura
1
87
freee請求書プロダクトにおけるFiber活用/Utilization of Fiber in the freee Invoice Product
hayaokimura
1
190
いいチームでいるためにやっていること/Things we are doing to remain a good team
hayaokimura
2
780
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
270
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
470
Test your architecture with Archunit
thirion
1
2.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
WCS-LA-2024
lcolladotor
0
790
Building the Perfect Custom Keyboard
takai
2
840
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
ラッコキーワード サービス紹介資料
rakko
1
4.3M
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
250
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
240
Facilitating Awesome Meetings
lara
57
7.1k
Transcript
Raw HID とOLEDで広げる キーボードの可能性 hachi 2024/12/07
目次 • 大阪府交野市在住 Rubyist • freee のエンジニアです • Corne Cherry
V3 愛用 • Kyobashi.rb Cofounder • Kaigi on Rails Organizer • PicoRuby でたまによく遊びます hachi (@hachiblog)
目次 • 大阪府交野市在住 Rubyist • freee のエンジニアです • Corne Cherry
V3 愛用 • Kyobashi.rb Cofounder • Kaigi on Rails Organizer • PicoRuby でたまによく遊びます hachi (@hachiblog)
目次 • 大阪府交野市在住 Rubyist • freee のエンジニアです • Corne Cherry
V3 愛用 • Kyobashi.rb Cofounder • Kaigi on Rails Organizer • PicoRuby でたまによく遊びます hachi (@hachiblog)
目次 • 大阪府交野市在住 Rubyist • freee のエンジニアです • Corne Cherry
V3 愛用 • Kyobashi.rb Cofounder • Kaigi on Rails Organizer • PicoRuby でたまによく遊びます hachi (@hachiblog)
hasumi san ありがとうございます!
キーボードのOLED活用してますか?
外して使ってないです?
天気でキーボードの 色変えたい人もいましたね
Wifi を待たずとも OLED とか LED で遊びませんか
ある日……
仕事いそがしいなぁ
タスクが山積みだなぁ
完了したタスクが可視化されると モチベーションになっていいのでは?
ついでにミーティング5分前通知に 気づかない問題も解決したいな
せや!キーボードに実装したらいいんや!
でもどうやってキーボードに情報を送ろう 🤔
None
None
VIA の通信に使っている仕組みを利用したら キーボードに書き込みができそう
picoruby-prk-via を読む • どうやら USB.get_last_received_raw_hid_report という API を使って 情報を受け取っているらしい •
通信するときは Vendor ID と Product ID が必要らしい • hid report id というものがあって Raw HID は 5 らしい
Raw HID ってなんじゃ
Raw HID ってなに • HID: USBデバイスクラスの一つ。マウスとか、キーボードとかまさに HID ◦ 他には MSC(マスストレージクラス)とかがある
• Raw って? ◦ 多分初出は QMK firmware ? で、HIDでキーボードとホスト間の自由に使える通信
ということで実装じゃ!
概要 Markdown を用意 HID 送信プロセス 読み取り PRK Firmware 送信
ホスト側 • node-hid を使うと簡単にキーボードと hid で通信ができる ◦ (Ruby 使いたかったんだけど mac
だとうまく行かんかったので要研究) • HID で接続して、メッセージを送信する ◦ 簡単に書くと下記の様な感じ
キーボード側(PRK Firmware) • PRK Firmware にちょっと細工する ◦ Keyboard#start! method 内の
while ループの中で色々できるように after_input_proc メソッドを定 義し、keymap.rb からいじれるようにする ▪ こうしておくと開発が楽 ◦ @via&.task は使わないのでコメントアウト
キーボード側(rgb.rb) • Led もループ内で制御したいのでちょっと変更 ◦ on/off の状態を持つ offed インスタンス変数を外から使いたいので attr_reader
に追加 ◦ send_key method で 分割キーボードの partner に LED の点灯状態を伝えるために、 message_to_partner をローカル変数 → インスタンス変数に
キーボード側(keymap.rb)
完成!
None
まとめ • Raw HID を使うことで PC からキーボードにいろいろ送れる • OLED にいろいろ表示したり、LED
をいい感じにピカピカしたりしよう! ◦ (ちなみに時間のかかるタスクをやらせると動作が安定しなくなるので可能な限り処理を軽くすると いいです。あとメモリを使わないコードを心がけましょう) ▪ Pico の別コアとか使えたらいいのでは?とかちょっと考えたりしている • しばらく PC 繋いで展示するので見てくれると嬉しいです。今日の予定を入れてい るので講演5分前からピカピカします
おわり!