NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(CurieIMU.tapDetectedの使い方)

■CurieIMU.tapDetected関数
 CurieIMU.hライブラリのCurieIMU.tapDetected関数は、タップが検出された場合にtrueを返します。

■使用例
 CurieIMU.tapDetected関数を使ったArduinoIDEのプログラム例は図1の通りです。このプログラムを実行すると、Genuino101をタップすると図3の6方向それぞれについてCurieIMU.tapDetected関数によってタップの有無を判定し、タップが生じた軸と方向を図2の様にシリアルモニタ上に返します。

#include "CurieIMU.h"

void setup() {
  Serial.begin(9600); // initialize Serial communication
  while (!Serial) ;   // wait for serial port to connect..
  /* Initialise the IMU */
  CurieIMU.begin();
  CurieIMU.attachInterrupt(eventCallback);
  /* Enable Shock Detection */
  CurieIMU.setDetectionThreshold(CURIE_IMU_TAP, 656.25); // 1g = 1000 mg
  CurieIMU.interrupts(CURIE_IMU_TAP);
  Serial.println("IMU initialisation complete, waiting for events...");
}

void loop() {}

static void eventCallback(void)
{
  if (CurieIMU.getInterruptStatus(CURIE_IMU_TAP)) {
    if (CurieIMU.tapDetected(X_AXIS, POSITIVE))
      Serial.println("Negative tap detected on X-axis");
    if (CurieIMU.tapDetected(X_AXIS, NEGATIVE))
      Serial.println("Positive tap detected on X-axis");
    if (CurieIMU.tapDetected(Y_AXIS, POSITIVE))
      Serial.println("Negative tap detected on Y-axis");
    if (CurieIMU.tapDetected(Y_AXIS, NEGATIVE))
      Serial.println("Positive tap detected on Y-axis");
    if (CurieIMU.tapDetected(Z_AXIS, POSITIVE))
      Serial.println("Negative tap detected on Z-axis");
    if (CurieIMU.tapDetected(Z_AXIS, NEGATIVE))
      Serial.println("Positive tap detected on Z-axis");
  }
}
イメージ 1
図1:プログラム例
 
イメージ 1
図2:プログラム実行結果
 

■「CurieIMU.tapDetected(int axis, int direction)」のパラメータ
 axis:ショック検出を確認する軸、表1に示すいずれかの値を設定する事が出来ます。

表1:検出軸の設定
項目 内容
 X_AXIS   X軸
 Y_AXIS  Y軸
 Z_AXIS  Z軸

 

 direction:ショック検出を確認する方向、表2に示すいずれかの値を設定する事が出来ます。

表2:検出方向の設定
項目 内容
POSITIVE ゼロから正の軸値
NEGATIVE ゼロから負の軸値

 

※XYZ軸検出方向について
 Genuino101のXYZ検出方向はそれぞれ+-方向も含め図3の通り6方向です。 
図3-1:重力加速度によるPOSITIVE検出方向(左からXYZ軸)
 
図3-2:重力加速度によるNEGATIVE検出方向(左からXYZ軸)

 

■その他関数
Curie IMUライブラリに関するその他関数については、コチラをご覧ください。

 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る