Interfacing MPU9250 (and gps module) to WEMOS D1 MINI PRO
To embed the html static page, the board must have at least 4MB Flash. The pages can be uploaded to the board using Arduino's LittleFS add-ons: https://github.com/earlephilhower/arduino-esp8266littlefs-plugin/releases
It is almost impossible to develop this project without helps / references, especially from:
- [Magnetometer Calibration:kriswiner-mpu9250] (https://github.com/kriswiner/MPU9250)
- [Digital Motion Processing:sparkfun-mpu9250-dmp] (https://github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library)
- [Tilt Compensation Based on DMP's Quaternion:linux-mpu9150] https://github.com/mlaurijsse/linux-mpu9150
For tilt-compensation, axes alignment between modules and calculation angles is very important. This work uses this axes alignment:
-
Accelerometer & gyroscope / DMP axes:
- X axis direction (right wing down) = euler roll positive,
- Y axis (nose down) = euler pitch negative,
- Z axis (counter clockwise) = euler yaw negative
-
Magnetometer:
- X axis (nose down) = euler pitch negative,
- Y axis (right wing down) = euler roll positive,
- Z axis (clockwise) = euler yaw positive
Summary:
- X-accel = Y-magnetometer => (positive)Roll
- Y-accel = X-magnetometer => (negative)Pitch
- Z-accel = (negative)Z-magnetometer => (negative)Yaw