マイコン工作実験日記

Microcontroller を用いての工作、実験記録

HIDマウスを作る -- その2

2012-05-03 10:10:05 | WT32/BM20
WCA-009で作るBluetoohマウスのソフト編です。まずはWCA-009の設定から。
SET BT BDADDR 00:07:80:4b:bb:ca
SET BT NAME WT32-A
SET BT CLASS 000580
SET BT IDENT BT:47 f000 4.0.0 Bluegiga iWRAP
SET BT LAP 9e8b33
SET BT PAGEMODE 4 2000 1
SET BT PAIR 04:0c:ce:e2:9c:f7 94666d1b9b40cf2e9b139e402ef1787f
SET BT POWER 4 4 4
SET BT ROLE 0 f 7d00
SET BT SNIFF 0 20 1 8
SET BT SSP 3 0
SET BT MTU 667
SET CONTROL AUDIO INTERNAL INTERNAL
SET CONTROL BAUD 115200,8n1
SET CONTROL CD 00 0
SET CONTROL CODEC SBC JOINT_STEREO 44100 0
SET CONTROL ECHO 5
SET CONTROL ESCAPE 43 00 1
SET CONTROL GAIN 8 8
SET CONTROL MICBIAS b 0
SET CONTROL MSC DTE 00 00 00 00 00 00
SET CONTROL PREAMP 1 1
SET CONTROL READY 00
SET CONTROL VREGEN 1 00
SET PROFILE HID HID
SET

iWRAP4では、HIDデバイスとしてキーボード、マウス、あるいはその複合でバイスを作ることができますが、基本的な機能のデバイスしか実現できません。詳細を説明したドキュメントが無いのですが、例えばマウスではボタン3つの基本的なマウス機能を提供するだけで、ホイール機能は実現できないようですし、キーボードについてもLEDによるロック状態表示を持たせることはできません。このあたりの機能がちゃんと追加されたWT32用のiWRAP5βが提供されるのを待っているのですが、まだ連絡が入りません。そこで今回の実験では、iWRAP4をつかってX, Y座標の変化のみをレポートすることで、画面上でマウスカーソルの表示が移動することを確認するこ実験を行ってみました。

WT32のApplication Noteの説明のとおりに、Raw形式でMouse reportを出力してみたのですが、マウスカーソルは全く動いてくれませんでした。WT32に対して送信したASCII文字はBTキーボード入力として認識されるので、Raw形式で送信しているMouse reportが正しく認識されていないようです。そこで、Mouse reportの出力形式を次のように修正してやると、マウスカーソルが動くようになりました。

0xa10x02buttonsx-stepy-step


ジョイスティックの傾け具合に応じて、レポートで出力するXとYの変位の大きさを変化させるのですが、大きな値を出すとマウスカーソルが大きく飛んでしまいます。違和感無く使えるようにするためには、レポートの送信間隔とともに調整してやる必要がありそうです。

こんなことをやっているうちに、注文してあったヌンチャクアダプタが届いてしまいました。今後のHDIの実験にはヌンチャクを使うようにしてやろうかと思います。