Edited at

NefryでGrove加速度センサを触るメモ

More than 1 year has passed since last update.

前回に続き、NefryでGroveの加速度センサを使ってみます。


Grove - 3-Axis Digital Accelerometer(±1.5g)

スペックはこんな感じです。 Nefryだと3.3V対応しているセンサを使えるのでこのセンサーは問題なく使えます。

Working voltage: 3.0 - 5.5V

Off Mode Current: 0.4μA
Standby Mode Current: 2μA
Active Mode Current: 47 μA at 1 ODR
Test Range: ±1.5g
Sensitivity: 21LSB/g
Suli-compatible Library


ライブラリを読み込む

センサーを扱うために、Seeedの公式サイト経由でAccelerometer_MMA7660ライブラリをダウンロードして使います。


https://github.com/Seeed-Studio/Accelerometer_MMA7660



3軸の加速度に合わせてLEDの色を変える

こんな感じでセンサーを振ると方向によって色が変わるものを作ります。


  • x軸方向 赤色

  • y軸方向 緑色

  • z軸方向 青色

Arduinoのサンプルプログラムに毛が生えたくらいですが以下がプログラムになります。

#include <Nefry.h>

#include <Wire.h>
#include "MMA7660.h"
MMA7660 accelemeter;

void setup()
{
Nefry.print("Grove 3-Axis Digital Accelerometer");
Nefry.setLed(0,0,0);
accelemeter.init();
}

void loop()
{
int8_t x;
int8_t y;
int8_t z;
float ax,ay,az;
accelemeter.getXYZ(&x,&y,&z);
Nefry.setLed(x,y,z,50);

Nefry.print("x = ");
Nefry.println(x);
Nefry.print("y = ");
Nefry.println(y);
Nefry.print("z = ");
Nefry.println(z);

accelemeter.getAcceleration(&ax,&ay,&az);
Nefry.println("accleration of X/Y/Z: ");
Nefry.print(ax);
Nefry.println(" g");
Nefry.print(ay);
Nefry.println(" g");
Nefry.print(az);
Nefry.println(" g");
Nefry.println("*************");
delay(500);
}