1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ESP32-H2とMCP23S17を使った自作Bluetoothキーボード

1
Last updated at Posted at 2026-08-12

はじめに

 この記事は以下記事の続きというか、発展させた記事です。制作過程の共通部分は省略しています。

 「キーボードをイチから自作してみた」では有線のキーボードを制作した。個人的には以下のことを学んだ。

  • キーボードの規格や寸法、配置等あれこれ
  • 通信プロトコル(HID)
  • 3D CADと回路・基板設計CADを組み合わせた電子工作のノウハウ(玄人からしたら初歩的だが)

また、「無線のミニキーボードを作ってみた」では以下のことを学んだ。

  • ESP32シリーズに関するあれこれ(環境構築、プログラミング等)
  • 昇降圧DCDC ICを使った回路設計

今回はこれら学んだこと+ αで無線のフルサイズに近いキーボード(テンキーレス)を作ってみた

作ったもの

こんな感じのBluetoothキーボードを作った。
主な仕様は以下の通り

  • キー数: 約90キー(テンキーレス)
  • 無線: Bluetooth LE
  • 電源: 単四形充電池2本
  • MCU: ESP32-H2-MINI-1-N4
  • 基板: 2層・部品片面実装

IMG_3517 2.jpeg

ステータス表示のLEDも実装してみた
(右から電源、Bluetoothの接続状態、キー状態(押された際に点灯))
IMG_3595.jpg

簡単なブロック図はこんな感じ
Screenshot 2026-08-12 at 18.07.39.png

必要な部品、材料

  • 基板 (いつものようにKiCadで設計、JLC PCBに発注)
  • 電子部品
    • マイコン (ESP32-H2-MINI-1-N4)
    • SPI IO エキスパンダ (MCP23S17)
    • ダイオード
    • LED (ステータス表示用)
    • キースイッチ (遊舎工房とかで売ってるCherry MXタイプのやつ)
    • キースイッチ用ソケット(CPG151101S11-16(遊舎工房より))
    • コンデンサ(電解コン、セラコン)、抵抗類(チップ抵抗)
  • ねじ、スペーサー類
  • アクリルカバー類

特にIO エキスパンダに関しては初めて設計に取り入れた。IO エキスパンダはSPIやI2C等のシリアル通信を十数ピンのIOピンに変換するICである。(キースイッチの数が90個ぐらいあるのに対してマイコンのピン数が圧倒的に足りなかったため使うことにした)
あまり高速な制御には向かないが、ピン数が多くないマイコンに接続すると簡単に実質的なGPIOピンを増やすことができる。キーボードの入力程度のスピードなら問題ない。

設計

回路設計

キーサーチの回路の部分は前回のキーボードをイチから自作してみたと同じだが、黄色のIC部分が今回使うことにしたIO エキスパンダである。SPI4線と割り込みピン等合わせて実質5〜6ピン程度で全てのキーの入力をサーチすることができる。
Screenshot 2026-08-12 at 11.53.46.png

マイコン周りはこんな感じ。主に以下のペリフェラルを割り当てた。

  • USB (プログラム書き込み用)
  • 4線SPI (IOエキスパンダとの通信)
  • GPIO (ロータリエンコーダを直接制御、LED表示、IOエキスパンダからの割り込み入力等)
  • UART (一応外から接続できるように用意)
    Screenshot 2026-08-12 at 11.59.56.png

USBに関しては前回と同様、TypeCソケットを採用した。以下の点に注意。

  • CC1, CC2はPDのネゴシエート(ホスト側と供給電圧を交渉する)のためのピン。5Vで特に問題ない場合は5.1kΩでプルダウンする。(CH224K等のICを使えば9V, 20V等の高い電圧をホスト側に要求することができるらしい)
  • ポリスイッチをVBUSの経路上に入れておくと過電流を防止できる(実装ミスしてショートした場合に役立つ)
  • USBの差動 - GND間にバリスタを入れる(おまじないみたいなものかもしれないが、ESDで後段の回路が壊れるのをある程度防止できるかも)
  • USBの差動経路上にダンパー抵抗を入れる(こちらもおまじないみたいなものかもしれないが、高速信号のオーバーシュート軽減に効果があると思われ)

電源周りは前回の無線のミニキーボードを作ってみたと同様、同じDCDC ICを採用し、単四電池2本 -> 3.3Vを生成する回路を作った
Screenshot 2026-08-12 at 12.05.19.png

基板設計

全体はこんな感じ
Screenshot 2026-08-12 at 12.27.35.png
Screenshot 2026-08-12 at 12.31.19.png

空いているスペースに詰め込んで、かつ2層基板で部品片面のみにしたらだいぶカオスになってしまった
Screenshot 2026-08-12 at 12.50.06.png

筐体設計 (カバー等)

Free CADでアクリルの上面、底面のカバーを作成した
Screenshot 2026-08-12 at 12.54.42.png

実装

クリームハンダとホットプレートで部品を実装した時の図
IMG_3394.jpeg

ねじとスペーサーを使ってアクリルカバーを付けた後、キースイッチを取り付けた状態。
IMG_3596.jpg

最後に

ほぼ設計通りのキーボードができて満足しているが、材料費だけで総額2〜3万程度になってしまった。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?