はじめに
RustでキーボードFWを書く参考に「自作キーボードって組込みRustの入門にちょうどいいらしい」動画を視聴しました。いろいろなエッセンスが詰まっており最高でした。その内容を紹介します。また、無事に動画内のコードを写経しつつ、2キーのキーボードFWとして動かすことができました。
動画の概要
RustyKeysのファームウェア(FW)開発風景をライブ配信してくれた動画です。勝手にチャプターを示すとだいたい以下かなと思います。
- 導入(0:0:35)
- 自作キーボードFWをRustで書くとは?(0:2:10)
- RustyKeysの紹介(0:5:00)
- デバッグ機能の導入(0:8:26)
- Rust環境の構築(0:10:44)
- 組込みRust環境の構築(0:12:59)
- デバッガの作成(0:16:50)
- probe-run導入のトラブルシューティング(0:20:29)
- Hello, World!(0:26:36)
- ライブラリ(PAC,HAL,BSP)の解説(0:31:00)
- USBデバイスクレートの解説(50:05)
- フルスクラッチでキーボードFWを書く話と今回の楽しくキーボードFWを書く話(0:52:16)
- キーボードFWを書く!サンプルコードの写経(0:53:10)
- USBデバイスとして完成?デバッガの本領発揮!(1:06:18)
- キー押下処理の実装開始(1:10:36)
- 何もしてないのに壊れた(1:18:00)
- めっちゃ「a」を出す、我々はお得な人種!(1:20:40)
- キースイッチ押下の処理実装、(1:22:38)
- フルスクラッチ実装の魅力(1:26:49)
- キーマトリクスの解説(1:30:04)
- キーマトリクスの実装、ColとRowが逆でした(1:34:25)
- キーボードにしていく(1:40:14)
- キーボードができた!(1:45:12)
- シフトキー(modifier)が効かない><(1:46:50)
- クロージング(1:48:30)
気づき
公式ドキュメントを参照しながら実装/写経し、実現/理解していくというのが入門のベースと改めて思いました。ネット上には大量の情報が溢れていますが、公式ドキュメントをちゃんと見て、自分で入力していくのが良い姿勢なのかなと。適当なところから適当にコピペするのはNGですが、何が正解であるかというのが認識できたように思います。このアプローチでZigに触れてみたいとも思いました。
これまではつよつよな方の記事を読むことしかなかったのですが、今回じっくり動画視聴をしていろいろ周辺含めて学べたように思います。思考プロセスなども見れるのはライブ配信動画の利点な気がします。
おわりに
自作キーボードFWをRustで実装していく動画ですが、周辺技術解説もしっかりしていただけている点、トラブルを鮮やかに解消していく様子もある点、めっちゃ楽しそうに実装されている点が非常に魅力的でした。組込みRustや自作キーボードに興味のある方は視聴するときっと楽しいと思います。
Rustykeysのhelloから、動画内容をコピペしながら、キーボード作っていってみるhttps://t.co/qQgeYm0bAj#夏休みの自由工作
— YU2TA7KA (@UGKGbrothers) 2022年8月14日