Blog Home

This Arduino device knows how a bike is being ridden using tinyML

Arduino TeamDecember 28th, 2021

Fabio Antonini loves to ride his bike, and while nearly all bike computers offer information such as cadence, distance, speed, and elevation, they lack the ability to tell if the cyclist is sitting or standing at any given time. So, after doing some research, he came across an example project that utilized Edge Impulse and an Arduino Nano 33 BLE 33 Sense’s onboard accelerometer to distinguish between various kinds of movements. Based on this previous work, he opted to create his own ML device using the same general framework. 

Over the course of around 20 minutes, Fabio collected data for both standing and sitting by strapping a Nano 33 BLE Sense to his arm and connecting it to a laptop. Once the data had been processed and fed through a training algorithm, his freshly minted model was then deployed back to the board for real-time processing. 

The program Antonini made classifies incoming data from the IMU into one of four different states: seated on a plain, seated on an uphill, jumping on the pedals during an uphill, or pushing on a sprint while on a plain. From here, the built-in RGB LED changes its color to notify the user of what was inferred.

You can read more about the creation process and usage of this project here in Antonini’s Medium blog post.