実験室

さあ、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. 実験室

    [IoT実験室] M5StickCで、7セグメントLED(TM1637)に何か表示してみよう!

    M5StickCで、7セグメントLED(TM1637)に何か表示してみ…

  2. 実験室

    LED&KEY(TM1638)をESP32で動かすために、ちょっとだけ苦戦しました。

    LED&amp;KEY(TM1638)という、8セグLEDとボタンが…

  3. 実験室

    ESP32とステッピングモーターでメーター的なものを作ってみよう(28BYJ-48・ULN2003)…

    今夜のスラニュー実験室では、ステッピングモーターを使ってアナログメー…

  4. 実験室

    AlexaでM5StickCを操作しちゃおう!

    今日のレシピは「Amazon Echo(アレクサ)で、M5S…

  5. 実験室

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

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

  6. 実験室

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

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

コメント

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

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

最新の記事

スラニューについて

PAGE TOP