質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

2回答

2512閲覧

M5Stack Gray スケッチサンプルのエラー

XCUBE

総合スコア101

M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

1クリップ

投稿2020/01/27 05:03

編集2020/01/27 05:06

M5Stack Grayで加速度を計測して振動を検出しようと思っています。
M5Stackを入手してArduinoIDEのスケッチサンプルを実行したところ
ゼロデバイドが発生してまたっく動作しません。

Guru Meditation Error: Core 1 panic'ed (IntegerDivideByZero). Exception was unhandled. Core 1 register dump: PC : 0x400d47ce PS : 0x00060330 A0 : 0x800d1604 A1 : 0x3ffb1f30 A2 : 0x3ffb1f60 A3 : 0x3ffc01f0 A4 : 0x3ffc01fc A5 : 0x00000000 A6 : 0x00000000 A7 : 0x00000000 A8 : 0x00000000 A9 : 0x00000000 A10 : 0x00000000 A11 : 0x00000002 A12 : 0x00000000 A13 : 0x00000002 A14 : 0x3ffb1f60 A15 : 0x00000000 SAR : 0x0000001e EXCCAUSE: 0x00000006 EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000 Backtrace: 0x400d47ce:0x3ffb1f30 0x400d1601:0x3ffb1f90 0x400d9c4b:0x3ffb1fb0 0x40088c19:0x3ffb1fd0

サンプルプログラムはgithubにある↓こちらのものですが
https://github.com/m5stack/M5Stack/blob/master/examples/Modules/MPU9250/MPU9250BasicAHRS/MPU9250BasicAHRS.ino

84行目のsetup()のキャリブレーションを設定しているところでエラーが発生していました。

c

1IMU.calibrateMPU9250(IMU.gyroBias, IMU.accelBias);

その後、判ったのですがM5Stack Grayの9軸センサの仕様がMPU9250からMPU6886 + BMM150に変更された
とのことでその違いによる問題ではないかと推測しておりますが、商品の初期不良の可能性も頭に浮かびます。

どなたか同じような現象が確認されてこう対処したとか、新しい仕様のMPU6886 + BMM150でも
正常に動作したとか、なにかアドバイスがありましたらご教示をお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

一時期(一昨年前だったか)IMUを使うサンプルが動かなくて悩んでいたら、ボードライブラリのアップデートがあって解消した、という経験はあります。

とりあえずボードライブラリのバージョンを振ってみるというのは一つ試せることでしょう。

しかし、

MPU9250からMPU6886 + BMM150に変更された

のなら、MPU9250のためのサンプルが動かないのは当然ということになりますので、それで悩むのは無駄だと思います。
i2cのレジスタをいくつか読み出してみて、どちらのデバイスが使われいるのかを確認してから次の手を打つ(自分でプログラムを修正するか、ソレ用のサンプルを探す/出てくるのを待つ)ということになるのではないでしょうか。

とりあえず、ESP32のライブラリ1.0.4で、Arduino IDEの[ファイル]-[スケッチ例]-[M5Stack]-[Basic]-[IMU]のスケッチの冒頭には

Arduino

1// define must ahead #include <M5Stack.h> 2#define M5STACK_MPU6886 3// #define M5STACK_MPU9250 4// #define M5STACK_MPU6050 5// #define M5STACK_200Q

なんていう記述が見えますから、こちらから試してみてはいかがでしょうか。
メニューツリー

投稿2020/02/20 22:02

編集2020/02/20 22:14
thkana

総合スコア7610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

XCUBE

2020/02/21 01:18

ご提示していただいたサンプル動きました。判り易いご回答ありがとうございます。 このサンプルにはキャリブレーションをやっていないように思えるのですが、キャリブレーションをしないと個体の誤差を吸収できないのではという疑問もあります。 また、エラーになるMPU9250BasicAHRS.inoもIMU.calibrateMPU9250()をだけをコメントアウトするとうまく動いているように見えます(しっかりと表示する数字の正確さは確認していませんが)。
XCUBE

2020/02/21 01:25

メーカーの立場としてはキャリブレーションは自分で実装しろといったところでしょうか。 おっしゃるとおりその部分のサンプルを探すか出てくるまで待つことになりそうです。 そもそもMPU6886がキャリブレーションの結果を保存する不揮発性メモリが存在するのかさえ調べがついてないので、場合によってはその部分もSDカードなどで代替するようになるかもしれませんね。
noob-corder

2020/02/21 10:05 編集

私も同じ原因でしたので返信。 github上のライブラリにも代替品のMPU6886用のライブラリが用意されているようですが、やはりキャリブレーション機能は実装されていない様です。 起動時の面を基準とするのみの調整で良ければメモリへの保存は不要だと思いますが… どうしても起動時に水平がとれない環境でしたら、キャリブレーション結果をeepromか外部のSDカード等に保存する方法を考える必要が出ると思います。
thkana

2020/02/22 01:26

姿勢ではなく「振動を検出したい」のですよね。 振動であれば、微分値だけに注目すれば検出できると思います。 なぜキャリブレーションにこだわるのですか?
noob-corder

2020/02/22 08:20

確かに。 振動を見るだけであれば、加速度センサの生データをそのまま使うだけで問題無いかと思います。
thkana

2020/02/22 11:22

デバイスのことは仕様書/データシートを見ましょう。 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/MPU-6886-000193%2Bv1.1_GHIC_en.pdf 4.8章に " When the device is placed on a flat surface, it will measure 0g on the X- and Y-axes and +1g on the Z-axis. The accelerometers’ scale factor is calibrated at the factory and is nominally independent of supply voltage." Google翻訳に掛けると、 「デバイスを平らな面に置くと、X軸とY軸で0g、Z軸で+ 1gが測定されます。 加速度計のスケール係数は工場で較正され、名目上は供給電圧に依存しません。」 それで不満が見つかったら、その時に真剣にキャリブレーションの方法を考えればよいのでは。
guest

0

qiita記事によると、その関数は初期起動時にキャリブレーションを行い不揮発性メモリに保存してくれるそうなので一度の使用でいいそうです。(その後はコメントアウトしておく)

ソース: https://qiita.com/KatsuShun89/items/df91a16ed5d58710b858

投稿2020/02/20 14:58

編集2020/02/20 15:00
noob-corder

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

XCUBE

2020/02/21 01:07

ありがとうございます。 実は私もその記事を見つけたのですが、その最初の一度でさえできないので困ってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問