〜加速度センサで遊んでみた〜
元ネタはこちら→http://www.stanford.edu/~bsuter/thinkpad-accelerometer/
このページからIBMのページを手繰ったら、こんなページに詳細なソースが!
上記ページに、『Download this Modified SDL Library zip.』がミソ。
このアーカイブにある SDL_events.c.patch というファイルの266〜278行が目的のもの。
typedef struct _ACCELREPORT { INT PresentState; // Current internal state (stable: 0, unstable1: 1: unstable2: 2) USHORT LatestRawAccelDataX; // latest raw acceleration data of X axis <-- works! USHORT LatestRawAccelDataY; // latest raw acceleration data of Y axis <-- works! USHORT LatestAccelDataX; // latest acceleration data of X axis (average in 40ms) <-- Works even better? USHORT LatestAccelDataY; // latest acceleration data of Y axis (average in 40ms) <-- Works even better? CHAR Temperature; // latest temperature USHORT LatestZeroG_X; // latest zero-G offset of X axis <-- Seems to be the current notion of "center" USHORT LatestZeroG_Y; // latest zero-G offset of Y axis <-- "" } ACCELREPORT, *PACCELREPORT;プログラム起動時に、LatestZeroG_X,LatestZeroG_Yを取得し、
ここ数年、javaとvbばかりでアホになりそうだったので、リハビリも兼ねてC++で作成。
開発環境はMSの VS2008ExpressWithSP1JPNX1504866.iso を利用。
なので、ソースが汚いとか書き方が怪しいとか苦情を言わないこと。(文句があるなら勝手に直して公開してくれ)