« 三角関数ソフトバージョンアップ | トップページ | 自由落下の加速度値 »

WiiAccバージョンアップ

ニンテンドーWiiリモコンに搭載されている3軸加速度センサの値をパソコンに取得するソフトウエア「WiiAcc」をバージョンアップしました。

栃木県総合教育センター研修部の方から、WiiAccを使いたいというお知らせとともに、加速度値のキャリブレーション機能を搭載してほしいとのリクエストをいただいていました。こちら

計測システムとして使うには当然のことでした。あれこれ迷いましたが、踏ん切りをつけてバージョン2.0として公開することにしました。

Wiiacccal 当然バージョンアップのメインは「加速度値のキャリブレーション機能」です。Wiiリモコンを衝撃を与えずに静かに3次元的に回転させると、XYZそれぞれの軸の最高値と最低値が取得できます。それが、1Gと-1Gに相当します。1Gと-1G差からスパンを、スパンと1Gの値からゼロ値を計算して、較正値として保存します。

何回か実施してたとえば平均値によって較正値を確定する方法もあるでしょう。このため1Gと-1Gの値を手入力できるようにもしてあります。較正値は保存できるようにしました。

自分でも何度もやってみましたが、上手い下手が出てきそうです。キャリブレーション名人が生まれたりして。

もうひとつ新しい機能を搭載しました。実はこちらのほうが手間がかかりました。

にほんブログ村 科学ブログ 技術・工学へ ポチッと応援よろしく。

記録したデータを表示するモードで、表示画面上でマウスボタンを押したままドラッグをすると、計測開始からの時間とその時刻に対応した加速度値が表示されるようにしました。

Wiiaccfreef これでWiiAccの画面で時間と加速度値を読み取り色々と検討できるようになりました。こういうのは計算式の組み合わせですから、できるときにはスーとできるものなのですが、一度迷路に入り込むと訳わからなくなってしまいます。今回も、それまでのコードを投げ捨ててやり直したらできました。サンプルに示した画像では、自由落下で加速度が3軸ともゼロになっている時間が9.65秒から10.22秒の間0.57秒であることがわかります。

どうでしょうか、使ってみての感想などお聞かせ願えればありがたいです。

「WiiAcc.zip」をダウンロード←最新バージョン2.0.14

(1)キャリブレーションの式に一部ミスが見つかりましたので改修しました。(5月4日7:02追記)

(2)データ保存の際に、データーを1/100秒ごとの重力加速度値に変換して保存するようにフォーマットを変えました。(以前のバージョンでのデータの読み込みはできなくしました。(5月4日14:11追記)

(3)使い方・説明が書いてあるreadmeファイルを入れました。(6月11日追記)

(4)キャリブレーション時にX軸の最小値が表示されない不具合を解消しました。(9月14日追記)

|

« 三角関数ソフトバージョンアップ | トップページ | 自由落下の加速度値 »

プログラミング」カテゴリの記事

科学技術」カテゴリの記事

コメント

バージョンアップ、お疲れさまでした!
ちょっとした機能追加も、きちんと機能させて行くのは楽な仕事ではありませんよね。見事に組み込まれたキャリブレーション機能に大拍手です。

高校物理では、実験としてよく自由落下や放物線運動を用いますから、±1Gの精度を向上したいところですが、機器そのものに10%の誤差があるというのが痛いところ。

この次の懸案は誤差の補正でしょうか?

私の方の機能改善は・・・とほほです。
気長にお待ちいただけると幸いです。

投稿: 平田 敦 | 2008年5月 3日 (土) 21時30分

平田さん こんばんは
このキャリブレーション、アイデアとしては当初からのものですが、実際にやってみると色々ありました。たとえばWiiリモコンを回すのですが、これはともかくやさしくゆっくりと、机にコツンとぶつけると±1Gを超えてしまいます。それで、やり直し機能+手動入力機能をつけるべきと判断しました。
当初はくるくる回してボタン一発クリックで終了、と考えていましたが、それよりは操作は複雑になってしまいました。
それでも、くるくると回していると3軸加速度センサの働きは良くわって来ると思うのです。

誤差については、1Gの間を27分割でデータが送られてきていますから、それだけで3.5%あります。ゼロ点のシフトもあるようですからそれを含めると、機器としては10%ということになるのでしょう。

キャリブレーションをしてやってみると、5%以内に収まっているかな、という感じはします。

ブログを拝見すると平田さんのほうはすごい領域に突入していますね。BlueToothのドライバーの中身にまで分け入ろうというわけですね。私にはお手上げの領域ですが、健闘を期待しています。

上手く作り上げてゆけば利用範囲の広いソフトになると思います。

投稿: SUBAL | 2008年5月 3日 (土) 23時10分

おはようございます。息子の発熱で目が覚めました・・・。

さて、現在の機能改善である「複数のWiimoteをハンドリングする」ですが、まだまだ理解が出来ていなくて苦労しています。「複数のWiimoteをハンドルするにはRawInputなAPIを利用すべし」とどこぞで知恵を授かったのですが、Rawとはどのレベルなのか?がわかっていません。今使っているAPIは高次なものなのか、それとも現在使っているAPIが既にRawなもので、プログラムのロジックに問題があるから複数を認識できていないのか・・・と迷い道に入っています。

いろんなソースをもう一度じっくり読んで、それから自分のコードに戻っていくという手順をとっています。

今朝は、そんなひとときとしてじっくりコードに潜っています。

うまくいけば、複数のWiiAccを起動して、それぞれが個別のWiimoteに接続され加速度を検出している、という使い方が可能に。

また、テストをお願いいたしますね。

投稿: 平田 敦 | 2008年5月 4日 (日) 03時51分

平田さん おはようございます。
息子さん大丈夫ですか?ソフトより息子さんだと思いますが・・・。こどもの日も近いですし。
といいながら私も、こもりっきりです。なかなか普段はまとまった時間が取れないので、子供たちよ許して頂戴。

キャリブレーションのコードに間違いがありました。状況によっては大きく精度が狂うことがあります。改修しましたので、新しいのをサウンロードして使ってみてください。

このソフトも少し複雑になってきました。やっぱり殴り書きのコーディングはいけませんね。何度目かの反省をしています。

>うまくいけば、複数のWiiAccを起動して、それぞれが個別のWiimoteに接続され加速度を検出している

わお!これはすごいぞ。私のパソコン画面ではWiiaccを4つまで起動できますから、4chの同時計測ができたりして・・・。ちなみに我が家にはWiiリモコン4台あります。一人一台DSとWiiリモコンです。スタンバイOKです。

投稿: SUBAL | 2008年5月 4日 (日) 07時10分

初めまして
wiiaccについてですが車やバイクに搭載して使用したいと考えているのですが表示波形グラフや棒グラフだけでなく円グラフも使えると非常にいいと思います。
円グラフ使用時、加速では下方向に伸びていく減速時には上方向に伸び右方向旋回は左側に伸び、左方旋回には右側に伸びるそしてリアルタイムの数値を同時に表示するといったような感じで考えたのですがいかがでしょうか?
あと任意に表示の切り替え出来る機能などがあればと切に願います。

投稿: あきにーさん | 2008年11月22日 (土) 00時01分

あきにーさん ようこそ

面白い提案ありがとうございます。三面図風にして表示するのも面白いかなと思いました。
ただ現在WiiAccのプログラミングに時間を割く余裕がない状態です。気長に、数ヶ月後を楽しみにしてください。

投稿: SUBAL | 2008年11月22日 (土) 01時01分

はじめまして

内蔵助といいます。よろしくお願いします。
すばらしい実験を行ってますね!!感動です
私も仕事で評価を行ってますが、落下評価設備を開発してます
ネックは定量的に、安く作る事です
このWiiAccは私の要求にこたえるものです。。賞賛!

そこで、お願いがあります
WiiAccのY軸のGの値をもっと大きく出来ませんか?
1~10G、10~100G、100~150G
とレンジを変えることは可能でしょうか?
お忙しいとはおもいますが、ご検討お願いします

また、WiiAccのソースを公開していただけませんか?
こちらでも、検討したいと思います

我がままばかりですみませんが、お願いいたします

投稿: 内蔵助 | 2009年3月12日 (木) 18時41分

内蔵助 さんようこそ

WiiAccに関心を持っていただき有難うございました。いろいろなところで活用していただければと思い公開をしています。

>WiiAccのY軸のGの値をもっと大きく出来ませんか?1~10G、10~100G、100~150Gとレンジを変えることは可能でしょうか?

およそ4Gというのは、Wiiリモコンに搭載されている加速度センサの仕様によるものです。WiiAccはWiiリモコンから送られてきている情報をパソコンで取得しているだけですから、加速度の測定レンジを変えることはできません。

>WiiAccのソースを公開していただけませんか?

ごめんなさい。これは今のところ考えていません。

投稿: SUBAL | 2009年3月13日 (金) 03時27分


初めまして、東京の大学生で加速度を測定するためWii Accを使用したく今回コメントさせていただきました!

先ほど乱暴にjohnny名義でコメントをしましたが手違いで送信してしまいました。申し訳ありません。

いろいろ調べ、いくら格闘しても、windows7でwiiリモコンプラスを使用すると接続はしているようなのですが波形が一向に出てきてくれないのです。実験で使用したいのでぜひ使用できる方法を教えていただけませんか?

わがままなことばかりで申し訳ありませんがよろしくお願いします。

投稿: 澤野 | 2014年1月 6日 (月) 23時09分

澤野さん

コメントありがとうございました。

WiiAccはWinXPの時代に開発して、Win7では動作確認をしていません。

私の持っている情報では、BlueToothを使って通信している機器(たとえばキーボード、ヘッドフォン等)があると邪魔されてつながらないことがあります。それらを切ってみてください。
つながるパソコンを探す、というのが一番近道という場合があるようです。
頼りない情報で申し訳ありません。

投稿: SUBAL | 2014年1月 6日 (月) 23時24分

質問させて頂いた、澤野です。

返信ありがとうございます!
WiiリモコンプラスでなくWiiリモコンをしようしたところWindows7でも動作し波形が出ました!

ただ記録測定の保存でひとつおしえてほしいことがあります。
キャリブレーションで較正値を測定し設定できるとのことですが、その設定した値の範囲内で加速度データを測定することはできないのでしょうか?

較正値を読み込んで加速度データを測定して保存してもデータの表示は-1G~+1Gの範囲内でしか表示されないのです。
較正値がX:103~158 Y:105~159 Z:93~164 の間でデータを測定し保存したいのですがどうすればいいですか?

まためんどくさい質問をして申し訳ないんですがよろしくお願いします!

投稿: 澤野 | 2014年1月 7日 (火) 19時43分

澤野 さん

動作したことはとりあえず良かったですね。
でも、Wiiリモコンではなく「Wiiリモコンプラス」を使っていながら、動かない対処を教えろ、という質問をしたあなたの行動は正直常識はずれです。

こういう場合は、まず謝罪からというのが社会の常道です。

で、今回の質問も正直何を言っているのかさっぱりわかりません。

質問をする前に、自分の手と頭でしっかりと考えてください。

加速度センサが取得する値と加速度の値
加速度の表示方法
加速度測定の限界値
重力加速度を使ったキャリブレーションとは何か

大学の研究に使うのであれば、少なくてもこれくらいのことは整理されていなければなりません。

あなたがもし本気であるのなら、私とかみ合う程度まで自分で考えて、私にメールをください。私のメルアドは、このブログのプロフィールページにあります。メールはきちんとした自己紹介から始まることを付け加えておきます。

投稿: SUBAL | 2014年1月 7日 (火) 20時47分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/222291/41074624

この記事へのトラックバック一覧です: WiiAccバージョンアップ:

« 三角関数ソフトバージョンアップ | トップページ | 自由落下の加速度値 »