コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

超小ネタ。

野暮用でジャイロセンサーでの角速度計測を超お手軽にさくっとやりたい要求があった場合どうするか。 やっぱり Wiiリモコンを PC の Bluetooth で読むのが一番お安くて簡単だよなあというのが落ち着くところだと思う。
秋月電子通商やストロベリーリナックスでもジャイロセンサーやブレークボードが安価で買えるようになってきたけれども、最終的にPC上でデータを利用したい場合はWiiリモコンのほうがずっと楽だ。使えればのお話だけれども。

Wiiのジャイロセンサーは後発で「Wii Motion Plus」というアダプタで発売された。
これの解析記事や、PCから利用するサンプルコードなどは既にある。(参照: kako さんのところWiiBrew)
kako さんのところには wii-motionplus-reader-v02.zip というジャイロを読むサンプルコードと HID を Open する DLL ライブラリがあるのでこれを利用させてもらうのが有効。

現在のところ Wii Motion Plus は生産終了品となっており、リモコンとジャイロユニットが一緒になった「Wiiリモコンプラス」という型になっており一層お安くなっている。
んが、wii-motionplus-reader-v02.zip では Wiiリモコンプラスのジャイロが読めなかった。この事については kako さんのところでも触れられている。

Wiiリモコンプラスのジャイロを読みだしている人もいるようなのだが、今ひとつ情報が足りなくて正解にたどり着くのに苦労したので書き留めておこうというのがこの記事の目的。

結論。
Wiiリモコンプラスのジャイロユニットも Wii Motion Plus と同じもの、同じ手順で読み出すことができる。
ただ 1点、拡張ユニットの識別 ID が 0000 から 0001 になっている。
アドレス 0xfa からのデータが

00 00 a6 20 00 05

じゃなくて

01 00 a6 20 00 05

になっている。

こんだけ。

wii-motionplus-reader-v02.zip では wii_motionplus_reader02.cpp の 245,248行目

if ( (buf[0]!=0)||(buf[1]!=0)||(buf[2]!=0xA6)||(buf[3]!=0x20)||(buf[4]!=0)||(buf[5]!=5) ) {

if ( (buf[0]!=1)||(buf[1]!=0)||(buf[2]!=0xA6)||(buf[3]!=0x20)||(buf[4]!=0)||(buf[5]!=5) ) {

と改変すると使える様になる。

以上メモ書きまでに。

Leave a Reply