見出し画像

ESP32-C3 その6 簡易データーグローブ(IMU版)


簡易データグローブとは

精度はそんなに高くなく、指の曲がりは曲げ伸ばし、指同士の間隔は測れるかもしれない、安価を目指します。

https://note.com/mentaisan/n/nddfaa71bed6a

の続き

曲げセンサーもなんとなくわかったので6軸慣性センサーで遊んでみます。

材料

・ESP32-C3-WROOM-02(Arudiunoならなんでもいい。と思う)
・IMUセンサー(今回はbmi160を使用)(i2c接続)(6個)
・PCA9548A(i2cをいっぱいつなげるやつ)
・配線など諸々

なんとなく考えた仕組み

指にセンサーつけたらうごくやろ、でもワールド座標で回転するから基準になるポイントほしいし手の甲にも1つセンサーつけたらいんじゃないかな。
(おいおいはIKとか考えていかないとあかんのだろう)

完成予想図

指輪型のマウントつくってみたけど指輪って回るからちょっと使いにくいかもしれない。結局手袋が正義なきがする。
基本な部分はハードウェア的にはこれ以上やることがないので完成かな。
配線10cmのものをつかってるけど少し短かった。

ESP32のファームウェア

WIFIなどは今まで通りで新たに使うことになったパーツについて
i2cで0x70へチャンネル番号を書き込んだら切り替わります。

void TCA9548A_ch_change(uint8_t bus) {
  Wire.beginTransmission(0x70);  // TCA9548A address is 0x70
  Wire.write(1 << bus);          // send byte to select bus
  Wire.endTransmission();
}

センサーの初期化前にチャンネル変更。センサーの値を読み込む前にチャンネル変更。
MadgwickFilterをつかってすこしでもノイズを減らしてるけどまあよくない部分はあるのでファームウェアかアプリ側を改善する必要はある。

受信アプリ(Unity)

すごく雑に作ったけどそれなりに動いてる感じかもです。

アプリ側は未完成すぎるのでまた次回にでも公開するかもです。

この記事が気に入ったらサポートをしてみませんか?