Blog Home

Detecting and tracking worker falls with embedded ML

Arduino TeamSeptember 7th, 2022

Certain industries rely on workers being able to reach high spaces through the use of ladders or mobile standing platforms. And because of their potential danger if a fall were to occur, Roni Bandini had the idea to create an integrated system that can detect a fall and report it automatically across a wide variety of scenarios.

A fall can be sensed by measuring changes in acceleration; therefore, Bandini went with an Arduino Nano 33 BLE Sense board due to its built-in three-axis accelerometer. It also supports low-power consumption, meaning that a LiPo battery and accompanying TP4056 charging module could be added for completely wireless operation. Acceleration data was collected by taking several samples within the Edge Impulse Studio and labeling them either “fall” or “stand” when no movement is present. Once tested, the resulting model was integrated into an Arduino sketch, which emits a Bluetooth® advertising packet whenever a fall is detected.

Collecting each of these packets is the responsibility of a central Raspberry Pi server. It runs a Python script that constantly scans for new BLE advertising data and inserts a new record into its database file accordingly. All of this data can then be queried in a separate script and used to create a chart showcasing how many times every worker has fallen.

More details can be found in Bandini’s project write-up and Edge Impulse’s blog post here.