RFCOMMの応用例としてRS232Cの無線化を取り上げましたが、ここではbluetooth-HIDの応用例としてRS232Cの無線化を取り上げます。温度制御器(RFCOMMの応用例と同じ温度制御器EC5700)はPICでRS232C制御するのですが、PICとPCとのbluetooth接続はRFCOMMにこだわる必要はありません。bluetooth-HIDでも問題はありません。RFCOMM接続の場合、いまのところパスキーの要求を回避する方法が見つからず、最初の接続の度にパスキーを問われ、それにいちいち応答するのが煩わしく思うようになってきました。これがbluetooth-HIDにしようと思った理由です。ただ、bluetooth-HIDにする場合、PCで実行するアプリケーション・ソフトウェアはbluetooth-HIDプロファイルの所で紹介したアプリケーション・ソフトウェアPICkit2_1.zipを参考に御自身で開発する必要があります。
PIC基板の回路図を以下に示します。(拡大図)
また、実際のPIC基板は以下のようになっています。
PIC24FJ64GB002に書き込むためのファームウェアはhid_rs232c.zipです(Windows XP SP3、Vista Business 32bit SP2、Windows 7 64bit Professonalのマイクロソフト・スタックでの動作確認だけは行っています)。温度制御器に対してはUART1を、デバッグ・モニター用のRS232C回路に対しては、これまでと同じくUART2を割り当てています。温度制御器は、ボーレートが9600 bps、データビット長が7ビット、 パリティが偶数, ストップビットが2、フロー・コントロールが無しの設定でのRS232C通信を要請しています。ところが、UART1はデータビット長を7ビットに設定できません。そこで、ファームウェア中でパリティを計算して、(データビット+パリティビット)として、これを8ビットのデータとして扱っています。そして、UART1はボーレートを9600 bps、データビット長を8ビット、 パリティなし, ストップビットを2、フロー・コントロールはなしの設定にしています。
まず、最初にPCと接続するときは、Bluetoothデバイス・アイコンで起動するBluetoothウィザードを使います。跳ね返りスイッチを(回路図でSW1)入れながら、PIC回路の電源を入れます。ドングルのLEDが青く光ったら、スイッチを離しても結構です。Bluetoothウィザードでパスキー無しでPCと接続します。2回目以降のPCとの接続は、(跳ね返りスイッチを離したまま)単にPIC回路の電源を入れるだけです。2回目以降の接続は、Bluetoothウィザードを使う必要はありません。自動的につながります。パスキーを要求されることもありません。
ところで、パーソナル・コンピュータ(PC)からPICへ送るデータ・パッケットの形式は次のようにしています。データ・パッケットの2バイト目以降に温度制御器への命令を、そしてその命令に対する温度制御器から返ってくる応答のバイト長を1バイト目に配置しています。用いる温度制御器に依存するデータ・パッケット形式ですので、適宜変更する必要があります。