Hello,
I would like to touch on some problem we encountered when using the MPU9250 sensor.
Our goal in the project is to simulate the movements of the MPU9250 sensor in 3D. In other words, if the sensor is moving, we want to simulate the same movements. We used Thingy52 for this purpose before. Since we have encountered a different problem, we have tried to adapt open source Thingy52 codes and algorithms to our project which is also using Nordic nRF52. (for more information about encountered problem: https://devzone.nordicsemi.com/f/nordic-q-a/36351/3d-motion-problem-in-a-specified-movement)
Firstly, we can only achieve this success if the sensor and screen are initially facing a certain direction. In other conditions, we observe that the simulation and the sensor moves in different axes.
Detailed explanation:
- In the first case, our demo card and we are looking north and the screen is facing us. Result, the simulation runs smoothly.
- In the second case, our trial card and we are looking at one of the intermediate angles other than the four main directions and the screen is facing us. Result, the simulation turns at the right angles, but on the wrong axis.
When we were working with Thingy52, we had not encountered this problem. With Thingy52, the simulation always moved correctly, regardless of starting position.
Since we could not obtain any quaternion generation algorithm in Thingy52 codes, we did this calculation with the Mahony quaternion calculation algorithm. I wonder that what kind of quaternion calculation algorithm does Thingy52 use for a simulation regardless of starting position?
Secondly, Thingy52 was not affected by the soft iron effect in our tests. However, when our device is exposed there are noticeable changes on simulation. For example, when we bring closer a phone or tablet to the MCU, we see that the simulation on the screen rotates even when the sensor is not moving. How does Nordic solve this problem?
Finally, when we make a 360 degree rotation on one axis, we observe that it rotates on more than one line, rather than rotating on a fixed line. Although the simulation shows the correct point again when it completes each full lap, it is also experiencing a rotational movement outside of the axis he normally turns into and is becoming obsolete again during the lap.
We want to continue to use Nordic MCU, so we need to solve this problem.
Could you please help me about that.
Thanks,
Onur