Grove Beginner Kit For Arduino(以下、Beginner Kit)検証報告の7番目です。前回の記事はこちらです。
3軸加速度計
前回はI2C通信を使用して気圧センサから値を読み込みました。今回は、同じくI2C通信を使用している3軸加速度計について取り組んでみます。でも、加速度計って一体何なんでしょ?
加速度計は、物体(加速度計自体)に作用している加速度を検出するセンサーです。3軸というのは3次元の座標軸それぞれに加速度を検出できるということです。つまり、物体のどの方向に(重力のような)加速度が働いているかを検出できるって事です。逆に言うと、どの方向に加速度が働いているかを検出することで物体の傾き加減が解ります。
3軸加速度計も、専用のモジュールをインストール必要があります。以下でダウンロードできます。ArduinoIDEのメニュー スケッチ⇒ライブラリをインクルード⇒.ZIP形式のファイルをインストール と進んでダウンロードしたファイルを開いてください。
https://github.com/Seeed-Studio/Seeed_Arduino_LIS3DHTR/archive/master.zip
傾きを見る
以下にスケッチ例を示します。
#include "LIS3DHTR.h" #include <Wire.h> LIS3DHTR<TwoWire> accelemeter; #define WIRE Wire double x, y, z; void setup() { Serial.begin(9600); accelemeter.begin(WIRE, 0x19); accelemeter.setOutputDataRate(LIS3DHTR_DATARATE_50HZ); } void loop() { x = accelemeter.getAccelerationX(); y = accelemeter.getAccelerationY(); z = accelemeter.getAccelerationZ(); Serial.print("x:"); Serial.print(x); Serial.print(" "); Serial.print("y:"); Serial.print(y); Serial.print(" "); Serial.print("z:"); Serial.println(z); delay(1000); }
このスケッチでは、X,Y,Z方向にそれぞれかかる加速度をシリアルモニターに表示しています。(単位はGのようです。地球上の重力を1とします。)Beginner Kitを水平なテーブルの上などに載せた場合、大体XとYは0、Zは1を示していると思います。Beginner Kitを持ち上げていろいろな方向に傾けてみるとX,Y,Zの値が変わっていきますよね!!スマホなんかで傾けた方向によって画面の向きが変わったりするのは、これと同様のセンサーが内蔵されていて機能しているからです。
動きを見る
続いて以下のスケッチをご紹介します。
#include "LIS3DHTR.h" #include <Wire.h> LIS3DHTR<TwoWire> accelemeter; #define WIRE Wire double x, y, z; void setup() { Serial.begin(9600); accelemeter.begin(WIRE, 0x19); accelemeter.setOutputDataRate(LIS3DHTR_DATARATE_50HZ); } void loop() { x = accelemeter.getAccelerationX(); y = accelemeter.getAccelerationY(); z = accelemeter.getAccelerationZ(); Serial.println(sqrt(x * x + y * y + z * z)); delay(50); }
シリアルモニターを表示すると、今度はBeginner Kitを傾けても大体1付近の値が返ってきます。本体が静止した状態にある場合、X,Y,Z方向にかかる加速度を総合すると(ベクトル方向の計算なのでXの二乗,Yの二乗,Zの二乗の和の平方根)常に1付近になります。でも、Beginner Kitを軽く揺さぶってみてください。値が変わっていくのがわかると思います。Beginner Kitに動きが生じると、本体に働く総合的な加速度も変わるからです。
シリアルモニターの代わりにシリアルプロッターで様子を見てみると‥‥‥
あとはOLED ディスプレイ
いかがでしたでしょうか。3軸加速度計は意外と身近なところで使われていることがわかったと思います。残りはOLED ディスプレイです。表示ができるようになると、一段と面白くなります。お楽しみに!!
hirocom777.hatenadiary.org