2008-01-19[n年前へ]
2008-02-16[n年前へ]
2008-02-18[n年前へ]
■新しいThinkpad にも対応した加速度センサ値取得プログラム
(新しいThinkpadにも対応したバージョンが「Thinkpad加速度センサ取得用C++クラスの手直しをしました」にあります)
新しいThinkpad(T61,X61など)にも対応(しているはず)の「加速度センサ値取得プログラム」を作成しました。少し前に、Thinkpad T60pで加速度センサ値が取得できない(意訳)」とメールが来たことをきっかけに調べてみたところ「 X61 Tablet で加速度センサを使ったアプリが動かない件」というような情報がありました。そこで、ShockMgrデバイスを直接開くのでなく、Sensor.dll中の"ShockproofGetAccelerometerData"を使うようにAccelerometerのC++クラスを書き換えました(C++ クラス ソース)。
使い方はこれまでと同じように
Accelerometer anAccelerometer;という具合になります。コマンドラインから傾斜(加速度)を取得するためのサンプルプログラムおよびソースも付けておきます。サンプルプログラムの使い方は、200msごとに100回計測を行う場合には、下記のようになります。 AccelerometerCommand.exe 200 100
anAccelerometer.GetAccelerometerData();
std::cout << pAccelerometer.X << ", ";
std::cout << pAccelerometer.Y << "\n";
これまで作った三次元画像表示プログラムなどは、順次新しいバージョンに作り直し・入れ替えなおしていこうかと思います。
2008-02-20[n年前へ]
■Wiiリモコンの加速度センサで姿勢検知
PC+加速度センサを使ったアプリケーションを作ろうとする場合、12インチでSXGA+程度の高解像度ディスプレイを備えたTabletPCを念頭に置いて作ることが多い。手に持つことができて、低解像度のデバイスでなく、姿勢検知センサを積んでいる…つまり、Lenovo(旧IBM) Thinkpad のX60Tか、ToshibaのPortegeという機種である。とはいえ、もちろん、その他のPCでも色々と位置・姿勢検知をして、それに応じた各種処理をして遊んでみたくなったりもする。
そこで、Wiiのリモコンを手に入れた(ありがたいことにハイヨとくれた人がいた)。加速度センサや赤外線センサを積んだWiiリモコン、つまりは、センサの塊であるWiiリモコンを使えば色んなことができる。…というわけで、下に貼り付けたのは、WiinRemote.exeによるWiiリモコンのセンサ取得例である。
こういったWiiリモコンを使った姿勢取得例のように、Wiiリモコンのセンサ取得APIを使うこともできる(もちろんThinkpadの加速度センサなどを使うことも出来る)汎用の加速度・姿勢検知用のクラスを作っておくことにしてみた。これで、Lenovo や Toshiba以外のPCでも使うことができるアプリケーションを汎用的に作る・使うことができるだろう。また、Thinkpadのような2軸加速度センサ搭載機よりも1軸多い3軸加速度(姿勢)を使うことで、色んな計算が楽になるかもしれない。
2008-02-21[n年前へ]
■Wiiリモコン接続のための四苦八苦
Thinkpad T60p付属のBluetoothインターフェース(を操作するドライバソフト)では、Wiiリモコンと接続することができなかった。Bluetooth接続の際のセキュリティをどう変えてみても、接続時にPINコードを要求されてしまったからである。ドライバを入れ替えれば良いのかもしれないが、内臓ハードのドライバはあまりいじりたくない。
そこで、USB-Bluetoothインタフェースを購入してみた。しかし、こちらの製品でも、セキュリティレベルに関わらず接続時にPINコードを要求されてしまう。そこで、今度はこの製品用のドライバを入れ替えてみたところ、ついにPINコード無しでも接続できるようになった。そういった紆余曲折があって、ようやく昨日の「Wiiリモコンの加速度センサで姿勢検知」に辿りついたのだった。
Thinkpad 内臓BluetoothインターフェースでWiiリモコンを使うことができない人がいたら、「少なくともUSB接続BluetoothアダプタBT-MicroEDR2を買って、最新ドライバを入れ直せば」Wiiリモコンを使うことができる可能性が高い、と思います。