View on GitHub

pages

自作キーボード、深い

自作キーボードに関するアレコレをまとめるページ

使えるマイコン

一概に自作キーボードといってもすべてのマイコンが使えるというわけではなく、HIDとして振る舞えるマイコンは限られる
以下に有名なものを示します

コントローラとしては、ESP32やATMega-32U4、RP2040などを積んでいればだいたいは使える
ただしESP32に関しては基本Bluetoothキーボードのみらしい

個人的に今一番気になっているのはRP2040搭載のSeeed Xiao RP2040、名前の通りRP2040を搭載していて、その一番の特徴はなんといってもその小ささとUSB-C端子を採用している点。非常に素晴らしい

これを使って何かしらのキーボードを作りたい。予定は未定

今まで作ってきたもの

僕がこれまでキーボードを作るのに使ってきたのはDigisparkとPro Microで、前者はミニキーボードとして、後者はプログラムの試作や検証目的としての利用が多かったと思います
特にPro Microは自作キーボードやってる人にはおなじみのマイコンでしょう、遊舎工房でも売られていますしAmazonやスイッチサイエンスでも買えます
ただ、このマイコンの欠点はUSBコネクタがいにしえのmicro-Bタイプということ、耐久性はあまりなさそうですよね
そしてDigisparkは本体にUSB-Aの端子がついているんですが、基板のパッドをそのまま使うという手法で小型化、部品点数の削減を図っている感じ。基板の厚みによって安定性が変わるのであまりいい方法とは言えないかなぁ

コネクタを変えたいならATMega-32U4を直接基板に乗せてUSB-C端子なりを乗せればいいんですが、CCのプルアップとかがチョット面倒。そう思ってなにか良いものはないかと探してみたらありました。それがSeeed Xiao RP2040です


画像はSeeed公式ページから引用

見ての通り、搭載コネクタはUSB-C、そして本体はとても小さい。値段もそこまで高くはない
そして名前にもあるようにRP2040を積んでいるので処理性能も申し分なし、ピン数がそこまで多くなくてもいいなら最高のデバイスでしょう

これはぜひとも使わねばと思ったので早速構想を練ろうと思います

何作る?

Xiao RP2040をメインコントローラとしてキーボードを作りたいわけですが、さて、何を作ろうか

ところで僕は、現在いくつかのキーボードを考えています。具体的には実際に設計を開始するまでのお楽しみということで
これらのキーボードに積むマイコンとして使えないだろうか、と思ったわけです。多分使える

GPIOの少なさはIOエキスパンダなりシフトレジスタなりを使えば解決するのでコンパクトさを存分に生かした製品づくりができるはず

なので、まずは単品で購入して色々試しつつ、製品に組み込んで見ようと思います。最初にXiao RP2040を組み込むのはどれにしようかな

案①|ショートカットキーボード

Xiao RP2040はかなりコンパクトなので、作るキーボードもコンパクトなものにしたい
そう考えた結果、YouTube用のショートカットキーボードを作ることにしました。理由は単純でYouTubeをめちゃくちゃ見るからです

搭載する機能を選ぶ

組み込むとはいえオープンソースになるので後からいくらでも書き換えれるんですが、一応デフォルトでも十分使えるものを作りたいのでちゃんと考えます

YouTube用ショートカットキーボードというだけあって機能はかなり絞り込めるので今回は8キーのキーボードにしようと思います。理由? 数字的にちょうどいいのとXiao君のGPIO直結でも作れるから(((

さて、具体的にどういう機能を搭載するかですが以下の表の通りです。括弧内は実際に送信するキーで、一応製品化した際のキー配置と対応させてます

再生速度↑(>) 10秒戻る(j) 10秒進む(l) 全画面モード(f)
再生速度↓(<) 再生 / 停止(k) ミュート(m) シアターモード(t)

他にもいくつかショートカットは存在しますが、詳細は公式ページをご覧くださいまし

実際に作ってみた

今回は8キーのキーボードにしようと思います

と言いましたが撤回。倍の 16 キーにして基板を作りました。マトリクス回路を使えばピン数を削減できるため Xiao RP2040 でもドライブできます

基板はこんな感じ

<img src="https://user-images.githubusercontent.com/91242561/212581923-65a2985a-8729-4781-8267-924cb060ff8f.png" width=75%>

そして、キー割り当ては以下の通り。これだけあれば結構便利なんじゃないですかね?

再生速度上昇 10秒戻る 10秒進む フルスクリーンモード切り替え
再生速度低下 再生・停止 音声ミュート・解除 シアターモード切り替え
動画の頭に移動 前のチャプターへ 後ろのチャプターへ 次の動画へ
Ctrl キー 左のタブへ タブを閉じる 右のタブへ

基板は多めに刷ったので、Booth で頒布することにしました。リンクはこちら→ Booth