2008-01-10[n年前へ]
■ラトルバックが逆転する瞬間のスローモーション映像
チューインガムで誰でもできる「物理法則に反する!?超自然現象!?」の「ラトルバック」が逆転回転し始める瞬間をハンディカムで高速度撮影してみました。軽く折ったチューインガムを軽く回転させると、なぜかブルブル震え始めて、そしていきなり逆回転しだす瞬間の映像です。動き方を眺めていると、そのメカニズムを感覚的に理解することができるかも…?
2008-02-06[n年前へ]
■走る電車の車両から消える乗客の謎?
電車に乗ると、よく運転席を眺める。ガラスの向こうに見える運転席周りの表示計を覗く。面白いのが、「電車の一両に乗っている人の数」の表示計だ。グラフィカルに、そのとき「各車両に乗っている乗客数」が表示されている。
その「各車両に乗っている乗客数」は、車両重量で推定されているらしく、列車の運転中に少しづつ乗客数が変化したりする。駅と駅の間で、振動や加速度の影響のせいか、表示計上で2・3人の乗客が消えたりする。「走る電車の車両から消える乗客の謎」という言葉だけだと、まるで古典ミステリーのような現象で、何だか少し面白い。
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リモコンを使うことができる可能性が高い、と思います。