Thinkpad の加速度センサをRubyから使う

今回の第9回 Ruby勉強会@関西での初級者レッスンは、「わかりやすいRubyのコードを書こう」という題で、小波ゼミの学生さんのコードを元に、わかりやすくしていく、という内容。

元々のソースコードがLeap-Frog法という数値計算の手法で運動方程式を解く、というものだったので、前日に調べておいたThinkpadの加速度を読む方法を早速組み込んでみた。 (前日に調べたのは読み出す方法までで、結果がどう値に対応してるのか調べるために、こっそりPCを振るのに苦労した)

Thinkpadを傾けると、そっちの方向に重力が働くというもの。

Rubyでの情報の可視化や入力インターフェースのものめずらしさもあってか、懇親会での受けが結構よかったので公開します。 * leap-frog.zip

加速度が変わりまくるので、コード中の方法ではあんまり意味がないような。

会場からは、最適化に関する質問や、誤差に関する指摘が多かっただけにちょっと心配だけど、本質はそっちじゃないので目を瞑ってください。

  • ドライバと直接通信、しかも仕様がよくわかってないから適当、ということをやっているので、加速度センサ付きThinkpadでも動かない可能性があります。
  • 昔 mimio と通信してた時は、変なデータを送ると画面が真っ青になったりしました。
  • sensor.dllのAPIを呼び出すのが正当なやり方。

  • テスト環境は、T43,WindowsXP,ActiveScriptRuby1.8.4,Ruby/SDL1.0.0Windows用binary。

Thinkpad以外のノートPCにも加速度センサを搭載しているものがあるらしいので、頑張れば動くかも。

次回の勉強会、みんなでThinkpadをフリフリしましょう。

参考

Ruby/SDL

ActiveScriptRuby

Thinkpad加速度センサを使ったソフトウェア・リンク集

使い方書くの忘れてた。

$ ruby leap-frog.rb

Mon, 13 Mar 2006 01:36 カテゴリ

タグ , ,

Comment Thinkpad の加速度センサをRubyから使う

  1. 前回のバージョンはモノクロでスクリーンショットが地味だったり、放っておくと収束してしまって長い時間楽しめない、という問題があったのでバージョンアップ。 新機能は 速度...

RSS