2012年2月8日水曜日

Leonardo のサンプル



前回前々回に続き、Arduino Leonardo 体験、第3段です。

実際に使っているのは ストロベリーリナックスの「ダ・ヴィンチ32U」です。
Leonardo ならではのサンプルとして、USB のHID を使ったサンプルがあります。
「JoystickMouseControl」という名前です。
このサンプルは Arduino 1.0 rc2 まではライブラリ「Mouse」のサンプルとして、付属していました。

RC2 もまだダウンロードできますが、このサンプルは public domain となっているので、こちらに置いておきます。
(一部改変してます。)
 LED D5 > D13
 SW D6 > D2
 pull-down > pull-up (internal resistor)
 X 移動 A1 (サンプルのまま)
 Y 移動 A2 (サンプルのまま)

アナログ入力 2つ (A1, A2) を使って、それぞれマウスの X 移動, Y 移動を送ります。
実行すると、ボタンを押したとき、LED が点灯し、Mouse になります。
もう一度ボタンを押すと、LED が消灯し、無効になります。
Mac からの見え方は特に変化がないようです。




続いて Keyboard です。キーボードはサンプルコードがありません。
Button をベースにしたサンプルを作りました。

 LED D13
 SW D2
 pull-down > pull-up (internal resistor)


Keyboard.write(code);

で、ASCII コードを指定すれば、キー入力に変換してくれます。
大文字、小文字の処理は勝手にやってくれるのですが、反面、ModifierKey (Shift など) を指定できません。(少し手を加えればできそうですが、、、)

何より残念だったのは、これらのデバイスはOS から複合デバイスとして認識されているということです。
単純なHID キーボードではないので、OS によっては認識されません。
そう、iPad (with Camera Connection Kit) からは認識出来ませんでした、、、
Android も(Xperia Arc, Android 2.3.4) 駄目でした。(消費電流が大きすぎると警告されました)。

この機能を使って、Newton Keyboard アダプタを安く小さく作れると思っていたのですが、iPad に繋がらないと意味がないですね。


0 件のコメント:

コメントを投稿