Slide 1

Slide 1 text

M5StickC IMU開発の 自分の歩み 中野洋輔 @naninuneno_y

Slide 2

Slide 2 text

こんなの作ってました(もう1年前か…) GitHub naninunenoy/GrayBlue M5Stackユーザーミーティング vol.4 (2019/4/15)にてLT MPU-9250ありきなのでもう使えない

Slide 3

Slide 3 text

5000円くらい (当時) 安い! ・ESP32(BLE/wi-fi対応) ・9軸IMU ・液晶 ・ボタン3つ ・バッテリー 当時でもこんな安いのかと驚きましたが、

Slide 4

Slide 4 text

1980円 !!? ・ESP32(BLE/wi-fi対応) ・6軸IMU ・液晶 ・ボタン2つ ・バッテリー さらにお手頃に

Slide 5

Slide 5 text

• 加速度センサの値がひっくり返してもマイナスにならない • 公式コードのビット演算にミスあり • しかし、値域が-0.9~+1.1とかになるんですけど と思ってたら SH200Qとの戦い 結合してから キャストしよう

Slide 6

Slide 6 text

MPU6886に切り替えてく • センサの性能が上がるのはいいけど、 パターン増えるんかーと思ってたら、

Slide 7

Slide 7 text

有志の方が解決してくれた • OSSってありがたい

Slide 8

Slide 8 text

で、新しく作ったのが GitHub naninunenoy/AxisOrange

Slide 9

Slide 9 text

SPPを採用することで受信側のプログラムを簡単に SPP System.IO.Ports IMU Button Quaternion 参考 パソコン上のM5Stackの3Dモデルを、M5Stackの動きに合わせて動かす GitHub naninunenoy/AxisOrange GitHub naninunenoy/AxisOrangeUnity

Slide 10

Slide 10 text

開発のポイント • 受信側(PC側)はSerial Portのプログラムを書けば良い • iOSはSPP非対応(らしい) • xTaskCreate()によるタスク分割 • loop()でセンサ更新->SPP送信を行うのでなく、センサ更新と送信を別タス クで実行 • vTaskDelay()で処理を明け渡すの大事 • ジャイロセンサの0出力をデバイスで計算+保存 • 特定の命令で静止時のジャイロセンサ出力を保存し、オフセットとして扱う • センサの個体に寄らない姿勢計算が可能(なはず)

Slide 11

Slide 11 text

ありがとうございました (多分展示も出します)