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

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

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絵文字
サンプリングについて
始めまして。

私はmbedを用いて、入力された電圧を計測する機器を製作しているのですが、どのようにして高いサンプリングレートでセンサーの値を記録したのですか?

20/sで電圧の値を配列に記録し、1秒ごとにsdに記録しようとプログラムを組んだのですが、上手く記録してくれません。(配列に値は保存されますが、記録しようとするとプログラムが止まってしまいます。)
プログラムも含めて詳しく教えていただけませんでしょうか?
ジョー 2017/09/06(Wed)22:01:50 編集
Re:サンプリングについて
ジョーさん

こんにちは

この記事で参考にしているサイト様のプログラムや、
SDFileSystem_HelloWorld
が動くことを確認されているでしょうか。

もし、↑が動かないのであれば
・プログラムミングの基礎的な部分に問題がある

・ハードウェアに問題がある
と考えられます。

動くのであれば、自分のやりたいことのために組み合わせた部分にミスや、
関係が悪くなっている箇所があると考えられます。
組み合わせた部分を、細かく区別し、どこが原因か探ってみるのが良いと思います。

以上ご参考まで。

>始めまして。
>
>私はmbedを用いて、入力された電圧を計測する機器を製作しているのですが、どのようにして高いサンプリングレートでセンサーの値を記録したのですか?
>
>20/sで電圧の値を配列に記録し、1秒ごとにsdに記録しようとプログラムを組んだのですが、上手く記録してくれません。(配列に値は保存されますが、記録しようとするとプログラムが止まってしまいます。)
>プログラムも含めて詳しく教えていただけませんでしょうか?
【2017/09/08 21:10】
プロフィール
HN:
Adel
年齢:
28
性別:
男性
誕生日:
1989/09/17
職業:
会社員
趣味:
モチベーション探し
自己紹介:
ロボットつくるのが夢
ブログ内検索
カウンター
君は何人目かな
カレンダー
09 2017/10 11
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
最新コメント
[09/06 ジョー]
[06/22 fake serpenti watch bvlgari]
[06/22 where to buy hermes clic clac bracelet faux]
[04/09 blacklab]
[02/16 オイルマン]
最新トラックバック
コガネモチ
忍者AdMax
アクセス解析
忍者ブログ [PR]