Hi,
Thanks for your inquiry.
The carriage moves on a 2D plane. If it doesn't rotate clockwise or counter clockwise during movement, then you don't need gyro and magnetometer. A high performance 16-bit accelerometer BMA456 can output acceleration data up to 1600Hz. You can collect BMA456 data at 6 positions when the carriage is stationary at each position of x-up, x-down, y-up, y-down, z-up and z-down to determine the three offsets and 3x3 matrix for sensitivity and cross-axis sensitivity. You can search articles and sample code for accelerometer calibration online. Then you can apply this calibration 12 parameters to every BMA456 raw data to obtain the final compensated 2-axis acceleration.
However, if the carriage rotates during the movement on 2D plane, then you can use BHI260AP that has 3-axis accel and 3-axis gyro inside. Then you can connect BMM150 magnetometer to BHI260AP's secondary I2C interface. BHI260AP has built-in sensor fusion algorithm running inside to output linear acceleration results up to 800Hz. When the carriage rotates, the gyro in BHI260AP takes the lead, while the external BMM150 updates at 25Hz. The purpose of the BMM150 is to bound the heading angle from gyro data. BHI260AP has built-in BMM150 auto-calibration algorithm by performing a few rounds of figure-8 motions in 3D space.
Thanks.
... View more