Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MPU6050] 取得される値の異常 #89

Open
kou029w opened this issue Oct 4, 2020 · 2 comments
Open

[MPU6050] 取得される値の異常 #89

kou029w opened this issue Oct 4, 2020 · 2 comments

Comments

@kou029w
Copy link
Collaborator

kou029w commented Oct 4, 2020

サンプルコード実行すると温度が高い (25℃くらい→41℃くらいが取得される)

データシート

https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf
P30 4.18 Registers 65 and 66 – Temperature Measurement TEMP_OUT_H and TEMP_OUT_L

本来2バイトをそれぞれ取得する必要があるのではないかと考えるが、実装では次の通り一度に16ビット取得しようとしているように見える

var ans = await this.i2cSlave.read16(0x41);

@kou029w
Copy link
Collaborator Author

kou029w commented Oct 4, 2020

Arduino 用のライブラリを参照すると一度に16ビットすることができる様子なので謎 https://github.com/jarzebski/Arduino-MPU6050

@satakagi
Copy link
Contributor

satakagi commented Dec 10, 2020

MPU6050だと思って、MPU9250とか似て非なるデバイス使ってませんか? そうするとそういう挙動が起きるはず(温度センサーレジスタ番号まで同じだけど物理量算出する定数だけ違う感じ)
ちなみに、MPU9250のドライバ(実際はMPU6500だけど)も温度出せるけれど実装が手抜きになってて温度でないですね。今getTemperature()追加しておきました。なお、MPU6500.jsはサポートしてないデバイスの場合は警告がコンソールに出て初期化できないようにはなっている。 あれ?その辺の実装が奇麗に消えてる(っていうかコメントもすっかりなくなってたな>jsから mjsとjsの関係謎過ぎ)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants