M5StickCでIMUのデータを無線で送信する開発を行いました。
M5StickC IMU開発の自分の歩み中野洋輔@naninuneno_y
View Slide
こんなの作ってました(もう1年前か…)GitHub naninunenoy/GrayBlueM5Stackユーザーミーティング vol.4 (2019/4/15)にてLTMPU-9250ありきなのでもう使えない
5000円くらい(当時)安い!・ESP32(BLE/wi-fi対応)・9軸IMU・液晶・ボタン3つ・バッテリー当時でもこんな安いのかと驚きましたが、
1980円!!?・ESP32(BLE/wi-fi対応)・6軸IMU・液晶・ボタン2つ・バッテリーさらにお手頃に
• 加速度センサの値がひっくり返してもマイナスにならない• 公式コードのビット演算にミスあり• しかし、値域が-0.9~+1.1とかになるんですけど と思ってたらSH200Qとの戦い結合してからキャストしよう
MPU6886に切り替えてく• センサの性能が上がるのはいいけど、パターン増えるんかーと思ってたら、
有志の方が解決してくれた• OSSってありがたい
で、新しく作ったのがGitHub naninunenoy/AxisOrange
SPPを採用することで受信側のプログラムを簡単にSPP System.IO.PortsIMUButtonQuaternion参考 パソコン上のM5Stackの3Dモデルを、M5Stackの動きに合わせて動かすGitHub naninunenoy/AxisOrange GitHub naninunenoy/AxisOrangeUnity
開発のポイント• 受信側(PC側)はSerial Portのプログラムを書けば良い• iOSはSPP非対応(らしい)• xTaskCreate()によるタスク分割• loop()でセンサ更新->SPP送信を行うのでなく、センサ更新と送信を別タスクで実行• vTaskDelay()で処理を明け渡すの大事• ジャイロセンサの0出力をデバイスで計算+保存• 特定の命令で静止時のジャイロセンサ出力を保存し、オフセットとして扱う• センサの個体に寄らない姿勢計算が可能(なはず)
ありがとうございました(多分展示も出します)