今回は下記のボードを使ってみました。
![](https://www.switch-science.com/cdn/shop/products/76c7e43d-dfb6-4a7a-8ea3-92c738052d3e_aaface9e-9749-4760-b542-610080b60a05_1200x1200.jpg?v=1682586112)
SPRESENSE用3軸加速度・3軸ジャイロ・気圧・温度センサ アドオンボード BMP280 BMI160搭載--販売終了
SPRESENSE用アドオンボードです。Bosch Sensortec社BMI160(3軸加速度・3軸ジャイロ)BMP280(気圧・温度センサ)を搭載した基板です。
![](https://www.cannon-ball.info/wp-content/uploads/2022/09/bmi160_2.jpg)
これ、もう Switch Science では在庫ないんですよねー・・・。↑の写真のように ELTRES ボードとの相性バッチリ (ちょうどピンが埋まる) ので、また発売してくれればいいのにと思います。
製品情報ページでの動作確認をなぞるだけで、手元でも確認できました。楽ちん。
BMP280 については下記のプログラムを実行すると値が読めました。
samplecodes/BME280 at master · SWITCHSCIENCE/samplecodes
Contribute to SWITCHSCIENCE/samplecodes development by creating an account on GitHub.
気温・気圧の他に湿度も読み取るサンプルプログラムなのですが、サンプルは BM”E”280 用でどうも BME280 は湿度センサも付いているようですね。BM”P”280 は気温・気圧のみなので、湿度は 0 で返ってきます。ちょっと高くなってもいいから BME280 を搭載してくれれば良かったのに・・・、と思いましたがそう簡単な話でもなかったのかも。
BMI160 についてはまず下記から zip でコードを落としてきて、Arduino のライブラリにインクルードします。
GitHub - hanyazou/BMI160-Arduino
Contribute to hanyazou/BMI160-Arduino development by creating an account on GitHub.
その後は下記のようなプログラムを書けば値が読み取れました。
- BMI160.begin する。そのさい I2C_MODE を指定
- BMI160.readAccelerometer(x, y, z) で3軸加速度の値が読める
- BMI160.readGyro(x, y, z) で3軸ジャイロの値が読める
ただ、このままだと重力の影響とノイズが入りまくりなので、フィルタ処理が必要でしょうね・・・。
![](https://www.cannon-ball.info/wp-content/uploads/2022/09/bmi160_1.jpg)
コメント