M5StickCの加速度センサで値を読み取って、そのXYZ方向の値に連動して外部につないだRGB LEDを制御したい。なんとなくハードルが高そうだけど、すんなりいきそうな期待を持ってスタート。
まずは加速度センサの値を取得できるか。
目次
- 1. 設計の流れ
- 2. IMUのリファレンス
設計の流れ
これで動くんじゃないかという予想。
- 初期化する
- 加速度センサから値を読めるようになる
- LEDをON/OFF (←前回できた)
- LEDの明るさをPWM制御で変える
- これを繰り返す
それとは別で、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 に変更
これをコンパイルして書き込むと・・・
おおぉぉ!動いたぁ!!
XYZ各軸の加速度の値が連続的に取得できてる。値が妥当かどうかはわからないけど。
苦労しながらもM5StickCので加速度の値の取得に成功!
ソースはすごい短いけど馴染みがないソフト系のデータシートに難儀。すぐ慣れると思うけど😗https://t.co/WWeHxcicjz pic.twitter.com/fqrNWYLQNF— てつふく (@tetsufuku81) September 2, 2019
この調子で次はLEDの準備をしていきます。続く。。
コメントを残す