M5StickCの加速度センサに連動してLEDを光らせたい

アイキャッチ

M5StickCの加速度センサで値を読み取って、そのXYZ方向の値に連動して外部につないだRGB LEDを制御したい。なんとなくハードルが高そうだけど、すんなりいきそうな期待を持ってスタート。

まずは加速度センサの値を取得できるか。

設計の流れ

これで動くんじゃないかという予想。

  1. 初期化する
  2. 加速度センサから値を読めるようになる
  3. LEDをON/OFF (←前回できた)
  4. LEDの明るさをPWM制御で変える
  5. これを繰り返す

それとは別で、RGB LED周りのハードを作る必要あり。

IMUのリファレンス

Arduino APIのリファレンス。おそらくこのページを参考にすれば動きが理解できるはず。。。(サンプルスケッチもあるのかなぁ。)

M5Stack – A series of modular stackable development devices

M5Stack Documentations – Modular Rapid Product Development Toolkit, based on ESP32. ESP32 is a series of low cost, low power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth.

と思って進んでみましたがダメでした。Exampleどおりじゃ動かない。

IMUの型番が違うからかな。確かにM5StickCのシールをみると6-Axis IMU MPU6886って書いてあるのに対して、見ていたページに書いてあるのは IMU(SH200Q)

ということで、もうちょっと調べ回って下記のサイトにたどり着きました。

こっちで MPU6866 のページを参考にして、さっきのコードを修正しました。

  • 変数宣言で型を int16_t から float に変更
  • IMU のところを MPU6886 に変更

これをコンパイルして書き込むと・・・

プログラム後のM5StickC

おおぉぉ!動いたぁ!!
XYZ各軸の加速度の値が連続的に取得できてる。値が妥当かどうかはわからないけど。

この調子で次はLEDの準備をしていきます。続く。。

スポンサーリンク




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です