USBキーボードの作り方 〜基礎知識〜 

2010/1/10

1.キーボードのキースイッチ部分の調達

 キーボードは、70〜120個ほどのスイッチで構成されている。この部分を自作すると大変なので、何か適当なドナーを探しましょう。昔ながらのキーボード一体型パソコン、現在のPCでは使用できない特殊なキーボードなんかがよろしいのでは。PS/2キーボードをドナーにすることもできますが、やってもあまり面白くありません。


2.キーボードマトリックスについて

キーボードはスイッチの塊である。通常、16本程度の縦線と8本程度の横線の交差したところにスイッチが設けられている。縦16横8とすると最高128キーまで対応できるので、ほとんどのキーボードはこれに収まる。

ただし、BREAKキーやPOWERキーなど特定用途のキーは、マトリックスとは別に独立して結線されていることがある。これらのキーは、マトリックス読み取りとは別に読み取り処理をしなければならない。

では、このキーマトリックスのスキャニングの仕組みは、というと、

@縦線のうち順番に1本だけを5Vや0Vに変化させる。
A横線の値を読み取る。

これだけ。ここで注意しなければいけないのは、縦線で0Vと5Vの出力を同時に行ってはいけない、ということ。

たとえば15本は5V出力にして、1本は0V出力にすると、大変なことになる。複数のキーを同時に押したときに、おそらくキースキャン用マイコンが壊れる。これは、電流が複数のスイッチを経て回り込んで、0Vと5Vがショートするからである。

じゃあどうすればいいのか、というと、縦線のうち1本だけ0V、残りはハイインピーダンス(絶縁状態)にすればいいのだ。

横線は、弱プルアップ(大きな抵抗をかませて5Vと接続)の入力モードにしておく。キーが押されているところのみ入力が0Vになり、他はプルアップの影響で5Vになる。


3.キーボードLEDについて

一部のキーボードには、LEDが数個付いている。このLEDを点灯させるときの注意点は、

@適切な値の抵抗をかませること。かませないと、まばゆいくらいに明るく点灯したあと、LEDまたはマイコンまたは両方が破壊される。
A吸い込みで点けるタイプと、吐き出しで点けるタイプの2種類がある。

上記@について、300Ω〜4.7KΩかと思うが、暗くて落ち着いた感じが好みなら4.7KΩでいいかも(やっぱ暗すぎ?)。赤に比べて緑は若干暗く点くので抵抗値は低めに。
上記Aについて、LEDの+側が5Vに繋がれているキーボード(吸い込みで点ける)と、LEDの−側が0Vに繋がれているキーボード(吐き出しで点ける)がある。
吸い込みで点ける場合はマイコンが0Vを出力したときに点灯し、吐き出しで点ける場合は5Vを出力したときに点灯する。

4.thinkpadのキーボードマトリックスについて

縦16横8に収まっていない。Fnキーや、POWERキーを含めると、縦18横10になることがある。FnキーとPOWERキーを除くと収まるのでFnキーとPOWERキーは無視すべし。
無視したくないのなら、特別に読み込むロジックを別途埋め込む必要がある。

トラックポイントは、少々の外部回路を組み込めばPS/2マウスとして使用できる(Thinkpad600など古いマシンを除く。21世紀の機種なら大丈夫かな?)。
これをキーボードの信号と混ぜてUSBの1本の線で送ることも可能ではあるが、単純ではない。この種のデバイスは複号デバイス(composite device)と呼ばれている。



top page


inserted by FC2 system