Madgwickフィルタを使ってみよう その2
ずいぶん前に購入して無人機に組み込んで使ったけど、その後に分解してジャンクになってた6軸センサを見つけた。

このページの物
SparkFun 6 Degrees of Freedom IMU Digital Combo Board - ITG3200/ADXL345
https://www.sparkfun.com/products/retired/10121




古くて今は販売終了品、Arduinoのライブラリも見当たらず。
でも以前使ったよなぁ、と思いながらバックアップのHDDを探したら、Arduinoバージョン1の時に使った
FreeSixIMU
というライブラリが見つかった。
今のバージョンのArduinoのライブラリフォルダに入れて再起動すると無事センサが使えた。
スケッチ中ではこんな感じで、6軸をanglesという配列で読み出せます。

sixDOF.getValues(angles); // 6軸センサ読み取り
ax=angles[0];
ay=angles[1];
az=angles[2];
gx=angles[3];
gy=angles[4];
gz=angles[5];

これでMadgwickフィルタを使えるんじゃ...?
Madgwickフィルタを使ってみよう その1
制御が専門の知り合いの先生がドローンのソフトを一から解説しながら組んでて、自分のやってみたいけど理解が追いつかない。
でもロボットやってる知人からMadgwickフィルタがいいって話を聞いて試してみようと思った。
Madgwickフィルタで検索するとすぐヒット。

MadgwickフィルタのライブラリをArduinoで使う
https://qiita.com/Ninagawa123/items/9520bad3c78ee40194fc

斜めよみしたら紹介されてるセンサを買ってつないだらすぐ動きそう。

ということで、MPU-6050 を購入したのですが不良品だったようなので中断。
MPU6050使えなかった
週末に購入したセンサが送ってきたので早速使ってみた。



ハンダ付けして配線して、Arudinoと接続。
ライブラリを探してインストール。
しかし、読み取りできず。



いろいろ調べました。
配線の断線も調べて、ライブラリも2種類、違うバージョンを試し、基板のハンダ付けも実体顕微鏡でチェック。通信はするけど、肝心のデータが読み取れません。
データシートも見て、開いてる配線をどう処理するかも調べて、ライブラリの中も読もうとして開いてみたけど、どこか変えると動く、というような感じがしなかったので諦めました。

たまたま不良品だった可能性もあるので、別の所から買ってまた試してみます。




10軸センサ
9軸センサがいまいち信用できないので、違う方法で検索。

10DOF BMP280で検索すると、9軸+気圧センサで、10軸の製品を出してくれる。これで9軸と間違って6軸が入ってることはないでしょう。
BMP280はボッシュの高精度気圧センサ。
MPU-9250+BMP280でたくさん出てくるのでどれか選べばいいけど、レビューがほとんどないので不安はある。販売店のしっかりしたところ(他の商品でのレビューが高いところ)を選べば大丈夫でしょう。


センサ購入。
お休みなのでネットで適当に技術系の記事をみてたらセンサがお安くなってるようなのでいくつか購入。
以前は、といっても5-6年前は9軸センサ1万円だったけど今は1000円ちょっと。6軸は6-8000円だったと思うけど今は400円くらい。
なので、アマゾンから

MPU-6050、3軸アナログ ジャイロ センサー + 3軸加速度計モジュール 16ビットADコンバーターのデータ出力 IIC I2C for Arduino を1個、

BMP280、 3.3V I2C IIC デジタル大気圧、温度、高度センサー モジュールを1個

をポチッた。
もう一つ、9軸センサMPU-9250も安いので注文入れて下の方までスクロールすると、偽商品で実際は6軸しかないとのレビューが多数、慌てて注文取消し。

- CafeLog -