ITmedia NEWS > STUDIO >

キーボードのファームウェアって? 役割とその仕組みを知ると自作キーボードがもっと楽しくなるハロー、自作キーボードワールド 第8回(2/4 ページ)

» 2020年11月24日 12時30分 公開
[ぺかそITmedia]
各キースイッチのオンオフがICを通じてPCなどのデバイスに伝わる

 そのため、キーボード側に専用のIC(集積回路)や小さなコンピュータ(マイコン)を搭載し、どのキーが押されたかを認識してその情報を「キーコード」としてPCに送っている。接続方式も昔はさまざまな方式があったが、現在では有線ではUSBのHID(Human Interface Device)クラス、無線ではBluetoothのHIDプロファイルで接続するのが主流だ。

 現在製造されている外付けのキーボードはほぼ全てこの規格に沿って設計されているため、どのPCやタブレット、果てはゲーム機に接続しても、ほとんどそのまま使えるわけである。

マイコンの進化でUSBデバイスの作成が簡単に

 市販のキーボードは専用のICを使用した構成がほとんどだ。対して自作キーボードではマイコンを使うのが主流で、後から自分でプログラマブルに機能を変更できる。

 一昔前は、USBなどの通信規格を深く理解しないとファームウェアを作ることは難しかった。しかし近年では標準でUSBの通信が行えるマイコンも多く、ホビー向けのワンボードマイコンとして有名な「Arduino」でも一部のモデルでUSBをサポートし、キーボードとして動作するものを作れるようになっている。

 とはいえ、プログラミングやファームウェアを作るような組み込みプログラミングの知識が無いと、ちゃんとしたキーボードとして動くものを作るのは長い道のりになる。そこで今回紹介したいのが、今現在最も人気のあるキーボードのオープンソースプロジェクトの一つ、「QMK Firmware」だ。

自作キーボードに使われているマイコン(マイクロコンピュータ)の例

多機能過ぎるオープンソースファームウェア「QMK Firmware」

QMK Firmwareのロゴ

 QMK FirmwareはUSB入力機器のファームウェアを作るプロジェクトだ。もともとキーボード向けファームウェアとしてhasu氏が開発した「TMK Firmware」を、Jack Humbert氏がより幅広いデバイスへと使えるよう拡張したものである。

 オープンソースとしてGitHubで公開されているため、誰でも無償で利用でき、新しい機能やキーボード定義を追加することもできる。その多機能さや使い勝手の良さから多くのキーボードプロジェクトなどに採用され、現在でも活発に開発が行われている。

 QMK Firmwareで何ができるのか、その概要を紹介したい。

キー配列・キーマップなどの基本機能

 キーボードの基本的な機能として、どのキーを押すとどの文字が出るかを設定できる。そのフォーマットは整理されており、あまりプログラミングの知識がなくても決まったルールに従って記述すれば動作する。

 日本語配列(JIS規格)などの多言語のキーコードもサポートする他、マウスやMIDI機器として動作するものも作れる。

 単純に1つの文字や記号を入力するだけでなく、CtrlキーやShiftキーを同時に押すなどのちょっとしたマクロ的な使い方を定義することも可能だ。

Copyright © ITmedia, Inc. All Rights Reserved.