bluetooth-HID応用例(PS/2キーボードの無線化)

注意: Windows XP SP3、Vista Business 32bit SP2、 Windows 7 64bit Professional、Microsoft bluetooth プロトコルスタックだけにしか対応していません。また、Pause/Breakキーには対応していません。

昔はキーボードといえば、PS/2キーボードでした。これをbluethoothキーボードに変えます。2つの方法があります。1つはPS/2信号をPICで拾い上げて、それをHIDコードに変換した後、ドングルに送る方法で、他の1つはキーボードのキーマトリックスを直接PICに接続して(PS/2を介さないで)、マトリックス情報をPICで拾い上げて、それをHIDコードに変換して、ドングルに送る方法です。後者の方が正攻法でしようが、キーマトリックスとの接続端子が28本程度あるので、多ピンのPICを用いる必要があります。ここでは、前者の方法をとります。PS/2ではCLOCKとDATA、電源、アース(+シールド)の4ピンで済みますからPIC24FJ64GB002で十分です。

PICに書き込むファームウェアはps2keyboard4.zip ですが、まだベータバージョンですので、完全なる動作保証はできません。Pause/Breakキーだけは特殊キーで、このキーを押すとmakeコードとbreakコードが同時に発生します。これを処理するのが面倒だったので、このキーの押下を無視しています。なお、このキーは、コマンドプロンプト・ウィンドウでしか使用する機会はありませんので実害は無いと思います。

ところで、実用上、ファームウェアに含まれているmain.cとps2.cにおいて、//#define DEBUG_MODEなるコメント文から“//”を除かないでください。つまり、実際に使用する段階では、モニター・デバック用のRS232C回路でデータの入出力をモニターしないでください。もし、モニターすると、それに時間がとられ、キー入力が検知できなくなり誤動作につながります。PCとPIC間でのデータ入出力をモニターしたい場合は、USBTraceなどのソフトウェアを使い、PC側でモニターしてください。

以下が回路図と実際の回路です。電源は5Vです。PIC自体は3.3V動作ですので、5Vから3端子レギュレータで3.3Vを得ています。

まず、最初にPCと接続するときは、Bluetoothデバイス・アイコンで起動するBluetoothウィザードを使います。タクトスイッチを押しながら、PIC回路の電源を入れ、ドングルのLEDが青く光るまでタクトスイッチ(回路図でSW1)を押し続けてください。2回目以降の接続は、タクトスイッチを離したまま、単にPIC回路の電源を入れるだけです。2回目以降の接続は、Bluetoothウィザードを使う必要はありません。自動的につながります。

以下の写真は、今回作成したキーボードの外観です。写真では、電源としてニッケル水素充電池(1000mAH)を4本用いています。連続20時間しか電池は持ちません。

以上の文章は、作成したBluetoothキーボードを用いてタイプしています。なお、PS/2規格に関しては Sazanami Onlineを参照しました。


戻る