実験室

さあ、M5StickCの6軸IMUで加速度を検知して、画面を光らせたりしてみよう。


さて、昨日の記事でM5StickCのセットアップとArduino IDEの使い方は解説した。今日は加速度センサをつかってみよう。

まずはサンプルスケッチコードの実行から。

#include <M5StickC.h>

float accX = 0.0F;
float accY = 0.0F;
float accZ = 0.0F;

float gyroX = 0.0F;
float gyroY = 0.0F;
float gyroZ = 0.0F;

void setup() {
  M5.begin();
  M5.Sh200Q.Init();
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextSize(1);
  M5.Lcd.setCursor(0, 15);
  M5.Lcd.println("  X       Y       Z");
}

void loop() {

  M5.Sh200Q.getGyroData(&gyroX,&gyroY,&gyroZ);
  M5.Sh200Q.getAccelData(&accX,&accY,&accZ);
  
  M5.Lcd.setCursor(0, 30);
  M5.Lcd.printf("%6.2f  %6.2f  %6.2f      ", gyroX, gyroY, gyroZ);
  M5.Lcd.setCursor(140, 30);
  M5.Lcd.print("o/s");
  M5.Lcd.setCursor(0, 45);
  M5.Lcd.printf(" %5.2f   %5.2f   %5.2f   ", accX, accY, accZ);
  M5.Lcd.setCursor(140, 45);
  M5.Lcd.print("G");
  delay(1000);
}

もうあっさりと動いた。上の列が傾き、下の列が加速度を表示していいる。地球の重力は1Gなので、ちゃんとZ軸には1G(1.13だけど)が表示されている。

さて、今日は何を作るの?

センサの値を読んで、X・Y・Z軸いずれか閾値を超えたら、画面が赤くなるだけという機械を作ってみようと思う。何の役に立つのかは聞かないでほしい。タクシーの乱暴運転度を計測するとか、自分がころんだことを検知するとか、いろいろ活用できるにちがいないよ。

#include <M5StickC.h>

float accX = 0.0F;
float accY = 0.0F;
float accZ = 0.0F;
float accX_max = 0.5F; //X軸方向の閾値(超えたら光る)
float accY_max = 0.5F; //X軸方向の閾値
float accZ_max = 1.5F; //X軸方向の閾値

void setup() {

  M5.begin();
  M5.Sh200Q.Init();
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextSize(1);
  M5.Lcd.setCursor(0, 15);
  M5.Lcd.println("  X       Y       Z");
}

void loop() {

  // まず加速度の値をとる
  M5.Sh200Q.getAccelData(&accX,&accY,&accZ);

  // 加速度の値を表示する
  M5.Lcd.setCursor(0, 30);

  // 閾値を超えた場合
  if(accX > accX_max | accY > accY_max | accZ > accZ_max) { 

    // 背景を赤くする
    M5.Lcd.fillScreen(RED);
  }

  // 加速度の値を表示する
  M5.Lcd.printf(" %5.2f   %5.2f   %5.2f   ", accX, accY, accZ);
  delay(1000);

  // 1秒まって背景を黒に戻す
  M5.Lcd.fillScreen(BLACK);
}

さあ結果はどうか

まずは黒。加速度は閾値の下。

さあ、M5StickCをもってブンブンふりまします。

はいっ。Y軸の加速度が閾値を超えたため、画面が赤く光りました。今夜は以上です。

関連記事

     
  1. 実験室

    壮大な計画も小さな一歩から。MacOS CatalinaでM5StickCをLチカ。

    壮大な計画とは先日、IoTデバイスが埋め込まれていて、データ…

  2. 実験室

    M5StickCからFirebase Realtime Databaseに値を書き込んじゃうよ。

    もう5回もやってるので連載っぽくなってきました。今日…

  3. 実験室

    こんなに簡単にできちゃうの?っていうWordPressレコメンドプラグイン「Kindred Post…

    時代はパーソナライズですよ、機械学習ですよ。でも、先日TensorF…

  4. 実験室

    自分でMacBook 12″のバッテリーを新品に交換した全手順を大公開します。A1534…

    ついにやってしまった!編集長は、軽量モバイルノートが欲しくて…

  5. 実験室

    M5StickCとサーボでつくる、API連動のかっこいいアナログメーター

    M5StickCとサーボ(Geekservo)を使って、APIから取…

  6. 実験室

    M5StickCでAPIの情報を取得して表示してみよう(HTTPS通信)

    さて、前回まではM5StickCで加速度センサーを使ったり、…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最新の記事

スラニューについて

PAGE TOP