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

3Dプリンタがたのしかったもんで、長いことmbedを放置していました。
メカの方が性に合っているんでしょう。

さて、これまでにmbedではprintf、mpu-6050の出力値の確認をやってきました。

注しあたっての目的は:
・角度を得る
・角度の精度
・角度の遅れ

もっと先の話としては、ロボット内で姿勢角度フィードバックをすることにあります。

mpu-6050の出力値から算定します。

算定には出力値を時系列で得る必要があり、かつ遅れや、ロボットへの実装を考慮するには数分から数十分の値を得たいです。

その後表計算ソフトなりなんなりで、角度を算定してみるなり、フィルタを調整するなりということがしたいとおもってます。



なので


たくさんのデータを保存しなければなりません。

そこでSDカードに保存という流れです。

いくつかのサイト様を参考にしました。


・mbedで初めてのマイコン開発 メモリ・カードを使ったデータの読み書き<1/3>
http://www.eleki-jack.com/arm/2010/12/mbed-5.html
使うライブラリ、関数を簡単に網羅的に紹介してます。

・ARM SDカード操作
http://akikanlab.blog.fc2.com/blog-entry-54.html
SDカードスロットは秋月でこちらと同様のものを使用しました。

もっとも簡単にmbedでSDカードにR/WするにはSDFileSystem_HelloWorldのプログラムをDLです。


こういうfopenの記述って(fopenに限らず、boolの使い方とかも)、普通にサンプルに使われてますけどよく考えられていて、感銘を受けます。自分で思いつけません。
----
    // ファイルを操作する場合は、ファイル・ポインタの宣言をする。
    FILE *fp;
    if ( (fp = fopen("/sd/mpu6050.txt","a")) == NULL ) {
        printf("Open Failed. \n") ;
        return -1;
    }
----

ちなみに、参考がてら出力結果を以下に:
系列1から
加速度x,y,z、角速度x,y,z、角速度のニュートラル値のとの差を積分x,y,z
の9要素です。
スケールは大体何倍かしています。
また重ならないように足し算して上方向に平行移動しています。
横軸はなんだか忘れました・・・時間じゃなくて出力回数だったような・・・。
単純に積分するだけでも角度っぽいものになっていますね。


といってSDカードに入れることもできました。
しかし、これで積分が上手くてきているか確認できますか?
これは手で動かしただけです。
角度値がどんなふうになっていれば、確からしい値と言えますか?

というわけで、次回はサーボモータで決まった角度だけ動かしたときに測定してみます。

拍手[0回]

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:
Adel
年齢:
27
性別:
男性
誕生日:
1989/09/17
職業:
会社員
趣味:
モチベーション探し
自己紹介:
ロボットつくるのが夢
ブログ内検索
カウンター
君は何人目かな
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
最新コメント
[06/22 fake serpenti watch bvlgari]
[06/22 where to buy hermes clic clac bracelet faux]
[04/09 blacklab]
[02/16 オイルマン]
[09/11 M.A(CIT)]
最新トラックバック
コガネモチ
忍者AdMax
アクセス解析
忍者ブログ [PR]