MPU6050 motion study
What
One Arduino board on a desk, asked to answer a single question: how much sickness is this ride causing right now? And then to tap the wrist before the number crosses the line. The measurement, the threshold and the buzz pattern found here became the hardware in Glide.
Why
Motion sickness is discussed as "uncomfortable", which means no one can check a claim that it got better. A way to measure had to come first. MSDV (Motion Sickness Dose Value), rooted in ISO 2631-1, was chosen for one reason: a standard lets you speak the same language as everyone else.
And measuring changes nothing on its own. The number has to reach the body.
Process
- Two sensors – one MPU6050 on the chassis, one on the head. Sickness comes not from how the car moves but from the difference between the two.
- 50 Hz, calibrated on 200 samples – 200 samples at rest set the baseline, gravity is subtracted, and MSDV is integrated at 50 Hz.
- The buzz – 225 ms on → 100 ms off → 225 ms on, chosen on real rides. One long buzz startles; two short ones don't read as a warning.
- Left and right – the motors are split, so the strength curve says which way the lean is coming from before it arrives.
Result
- What worked – after the resting calibration, even a shake by hand showed in the MSDV curve, and the buzz could be sent about two seconds before the threshold. Those two seconds are where Glide's "2–7 seconds ahead" begins.
- What failed – the board's two MPU6050s would not appear on the I2C bus together. Days of chasing address conflicts and wiring never got both of them read at once.
- What changed because of it – CoreMotion on the iPhone was rebuilt to the same formula as a second path, and mock sensor data reproduces the same screens without the board at all. A demo has to be built for the worst conditions — that lesson started here.