忍者ブログ

明日の設計図

たまにロボットを考えるブログ・・・。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

現在、新しいコメントを受け付けない設定になっています。

mbed備忘録2:mpu-6050より、加速度、角速度を取得

mpu-6050が結構な話題になってるのに、全然遊べてなかったのです。
それのついででmbedを始めたといっても過言ではないのです。

Amazonでたたき売りのmpu-6050をかって、mbedとつなぎます。
今回必要だったハードは、つなぐ線4本です。
こちらのサイト様を参考(http://blog.goo.ne.jp/roboz80/e/593cf982f83fc241ffce380df78382c7)

同様に
プロジェクトをインポートします。(https://mbed.org/users/garfieldsg/code/mpu6050_test/)

既に6軸をprintfするプログラムがmain.cppになっているのでコンパイルしてDLするのみです。

----
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
----

↑の一文にすべてが入っていると思うと、恐ろしいやら、頼もしいやら。
引数の名前の通りの値が得られます。

各軸の向きはmpu-6050上に印刷されてますから確認します。

前回同様TeraTermをつかって見てみます。

----
ax 1272;ay -16384;az 652;gx -127;gy -29;gz65,
ax 1236;ay -16400;az 440;gx -183;gy 53;gz68,
ax 1200;ay -16372;az 684;gx -167;gy 5;gz78,
ax 1244;ay -16424;az 604;gx -230;gy 6;gz57,
ax 1244;ay -16492;az 424;gx -126;gy 63;gz62,
ax 1292;ay -16324;az 516;gx -207;gy -50;gz45,
ax 1220;ay -16372;az 328;gx -153;gy 66;gz60,
ax 1188;ay -16440;az 540;gx -229;gy -12;gz35,
ax 1236;ay -16352;az 516;gx -114;gy 13;gz105,
ax 1280;ay -16388;az 456;gx -267;gy 44;gz21,
ax 1204;ay -16456;az 480;gx -135;gy 54;gz66,
ax 1212;ay -16332;az 540;gx -233;gy -6;gz19,
ax 1140;ay -16364;az 580;gx -134;gy 64;gz75,
ax 1132;ay -16312;az 692;gx -219;gy 17;gz59,
ax 1120;ay -16364;az 616;gx -147;gy -29;gz69,
ax 1168;ay -16292;az 492;gx -194;gy -20;gz64,
ax 1296;ay -16428;az 584;gx -174;gy 80;gz77,
ax 1196;ay -16384;az 460;gx -188;gy -24;gz47,
ax 1208;ay -16340;az 680;gx -200;gy 80;gz70,
ax 1216;ay -16300;az 600;gx -187;gy 2;gz70,
ax 1216;ay -16312;az 536;gx -244;gy 46;gz33,
ax 1228;ay -16376;az 428;gx -158;gy -15;gz63,
ax 1204;ay -16420;az 532;gx -199;gy 43;gz53,
ax 1264;ay -16380;az 472;gx -208;gy 16;gz16,
ax 1268;ay -16428;az 500;gx -196;gy 0;gz65,
ax 1224;ay -16456;az 544;gx -182;gy 55;gz43,
ax 1276;ay -16304;az 696;gx -183;gy -57;gz70,
----
↑の様に出力が見られます。(ax、ayとかは前述にプログラムに書きくわえています。)

さてこれの単位換算が必要です。

mpu6050.cppなるファイルに各換算係数があります。
しかし、mpu-6050のリビジョンによって異なるようです。
私の場合は異なっていました。

また、スケールを4種類から設定できるのでその確認もした方がいいかもしれません。

私の場合(リビジョンとプログラムの組合せ)ではデフォルトで

加速度
+/- 2g →16384 LSB/mg

角速度
+/- 250 degrees/s →131 LSB/deg/s

になっていました。
加速度はmpu6050.cppにコメントされている者とことなり困惑しました。

以下のデータシートを確認してわかりました。(正しくはこれがあっているかどうかではなく、これの通りにしたら正しかったというだけです。)
(http://invensense.com/mems/gyro/documents/PS-MPU-6000A-00v3.4.pdf)

加速度については合っているかどうか重力の向き大きさが明らかなので簡単ですが、角速度の方はというと、人間が素手で等速回転をさせることは不可能なので無理です。
なにか台形加速をさせるような円運動を出力してくれるようなサーボモータを用意して、後日実験しようと思います。

換算後は
----
fa 0,fg 0,ax 0.008;ay -0.990;az 0.198;gx -2.504;gy 0.084;gz0.191,
fa 0,fg 0,ax 0.014;ay -1.008;az 0.210;gx -0.931;gy 0.534;gz0.672,
fa 0,fg 0,ax 0.009;ay -0.989;az 0.192;gx -1.748;gy 0.885;gz0.305,
fa 0,fg 0,ax 0.009;ay -0.999;az 0.215;gx -1.466;gy 0.023;gz0.374,
fa 0,fg 0,ax 0.010;ay -0.994;az 0.198;gx -1.870;gy -0.168;gz0.267,
fa 0,fg 0,ax 0.008;ay -0.992;az 0.204;gx -1.252;gy 0.466;gz0.664,
fa 0,fg 0,ax 0.010;ay -1.002;az 0.213;gx -1.679;gy -0.481;gz0.000,
fa 0,fg 0,ax 0.011;ay -0.998;az 0.203;gx -1.160;gy 0.466;gz0.573,
fa 0,fg 0,ax 0.011;ay -0.999;az 0.204;gx -1.481;gy -0.023;gz0.191,
fa 0,fg 0,ax 0.006;ay -0.992;az 0.209;gx -1.580;gy -0.008;gz0.298,
fa 0,fg 0,ax 0.005;ay -0.998;az 0.206;gx -1.214;gy 0.198;gz0.359,
fa 0,fg 0,ax 0.005;ay -0.996;az 0.199;gx -1.504;gy 0.137;gz0.137,
fa 0,fg 0,ax 0.009;ay -0.998;az 0.206;gx -1.260;gy -0.145;gz0.313,
fa 0,fg 0,ax 0.008;ay -0.997;az 0.211;gx -1.344;gy 0.275;gz0.519,
fa 0,fg 0,ax 0.008;ay -0.991;az 0.205;gx -1.473;gy -0.221;gz0.382,
fa 0,fg 0,ax 0.007;ay -0.991;az 0.204;gx -1.725;gy -0.015;gz0.412,
fa 0,fg 0,ax 0.009;ay -0.996;az 0.207;gx -1.443;gy 0.145;gz0.427,
fa 0,fg 0,ax 0.012;ay -1.000;az 0.205;gx -1.420;gy 0.130;gz0.382,
----
上の様な出力がされます。
fa,fgは付け加えました。これは、加速度角速度のスケールの設定ビットを読みだしたものです。
↓の関数で得ることができます。またget→setとすれば変更できます。どのように変更するかはmpu6050.cppを見ます。

mpu.getFullScaleAccelRange();
mpu.getFullScaleGyroRange();

というわけで、データの読み出しに関しては容易にできました。
というかなんにもしてません。線を4本作っただけです。

今のところ加速度と角速度しか得られていませんので、今後角度を得る手法について攻めていきます。

拍手[2回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

HN:
Adel
年齢:
34
性別:
男性
誕生日:
1989/09/17
職業:
会社員
趣味:
モチベーション探し
自己紹介:
ロボットつくるのが夢

ブログ内検索

アクセス解析