ADK再び(その3)

MPU-6050のジャイロセンサーのデータでAndroid端末の画面の矢印を変化させるアクセサリーを作成した。

本当はセンサーを帽子につけて頭でAndroid端末を操作しているようなものを作りたかったけど、自分で首を回しながら端末の画面と自分の頭を一緒にビデオに撮るのが難しかったので、手に持ってビデオに撮るようにした。

USB Host ShieldでADKが作れるのは手軽でいい。

前回、全部1バイトのデータしか送受信してなかったけど、今回はint16_tのデータを3つ(x, y, z)送受信するのにAndroid側でbyte配列からshortに戻すのに-10くらいの値が-266に化ける現象があって、調べたら原因はbyte配列からshortに戻すところだった。

byte[] buffer = new byte[16384];

略

// bufferに読み込んで、buffer[i]はコマンドが入っている。

short x, y, z;
x = (short)((buffer[i+1] << 8) + (buffer[i+2]&0xff));
y = (short)((buffer[i+3] << 8) + (buffer[i+4]&0xff));
z = (short)((buffer[i+5] << 8) + (buffer[i+6]&0xff));

下位バイトの0xffとの&を行わないと化ける。

カテゴリー: Android, Arduino タグ: , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA