Inspiration

"To my fellow man, a heart of love. To myself, a heart of steel." — St. Augustine

When someone has fallen and can't get up, they need a guardian that doesn't hesitate to help. That is the idea behind Ironheart.

What it does

Ironheart is a system: a wearable chest piece that detects falls using an accelerometer. When the wearer collapses, it sends an alert over Bluetooth to the second half of the system: our robot. The robot uses a camera and YOLOv8 to target the nearest person/bystander, drives up to them, grabs their attention, and leads them back to the person who fell using dead reckoning. Customizable modules allow a variety of personal items to be carried: epipens, medication, and more, so that it is easy to access and always ready to be administered.

How we built it

Fall detection runs on an Arduino Nano 33 BLE Sense. It reads the onboard IMU and does the fall detection logic locally by observing jumps in the G-forces. A Python Flask server picks that up and serves the camera feed with YOLO overlays plus a bunch of API endpoints for the frontend.

The robot runs off an Arduino Uno Q wired into a regular Uno R4 that receives motor commands over USB serial from a Python script. That script handles two state machines: one for following the wearer normally through the BLE, and one for emergency seek-and-return behavior. We measured turn angles using OpenCV phase correlation on the camera so we can correct for how much the wheels drift (old hardware moment!! More on this later...)

Challenges we ran into

The robot itself is from the 1900s and the battery was completely cooked. We had to rewire the whole brain from scratch, bypass the original power system, and hook up external MOSFETS to drive the motors from the Uno. The documentation for this model is also apparently lost media so getting all the motors working required a lot of trial and error.

Accomplishments that we're proud of

It works! Fall happens, BLE triggers the alert, the robot finds a person through the camera, drives up to them, waves, gets confirmation, and leads them back. And we did this all with a toy robot from the 1900s that was starting to erode from leaking battery acid.

What we learned

Old hardware is cooked. We spent more time debugging motors and servos than writing code. Had to think of many creative solutions to get around these barriers.

What's next for Ironheart

  • GPS for real navigation instead of dead reckoning
  • Shrinking the wearable down to something more portable and comfortable
  • More up to date technology (faster wheels 🙏🙏)
Share this project:

Updates

Submission history