For my EECS 373 (Introduction to Embedded Systems) project, my team and I built a real-life version of Rocket League using wearable glove controllers, wireless communication, flex sensors, IMUs, pressure sensors, and two Zumo robots driving around a custom arena. Instead of joysticks, players controlled the robots with their hands — tilt your wrist to steer, bend your fingers to accelerate or boost, and watch LEDs light up when your boost recharges. It was chaotic, surprisingly intuitive, and probably the most fun embedded project I’ve built so far.
The Idea
We wanted to make a physical game that felt as interactive and fast-paced as Rocket League, but controlled entirely through gestures. The concept was simple: two players, two robots, and a soccer arena. Each player would wear a glove full of sensors, and the robot would mimic their hand movements in real time. We used flex sensors for forward/boost, an IMU for turning, and wireless XBee communication to send commands to the Zumos.
System Diagram
Our full system had three layers:
- Glove controller — flex sensors + IMU + addressable LEDs connected to an STM32.
- Wireless link — XBee BLE modules handling packet transmission.
- Robot subsystem — Zumo robot with motors, an OLED scoreboard, buzzer, and programmed movement patterns.
Everything talked to each other through packets broadcast from each glove to its paired robot. The arena completed the loop by sending pressure sensor triggers back to the robots to signal goals.
Robots
Each robot was a Pololu Zumo 2-wheel platform with tank-style steering. We programmed them so they could:
- Accelerate and boost
- Rotate in place
- Celebrate goals with a buzzer and LED animations
- Keep score on a small OLED display
The Zumos received commands over BLE from the gloves and executed preset movement patterns for turning and celebrating. They were surprisingly responsive — even tiny wrist rotations translated into clean, smooth turns on the field.
Gloves
The gloves were the coolest part of the project. We mounted:
- Flex sensors (forward + boost)
- IMU (steering)
- STM32 Nucleo
- Addressable LED strips for boost status
As a player bent their index finger, the robot accelerated. Bending the middle finger triggered a short, high-speed boost. Tilting your wrist left or right steered the robot. When boost was ready, the LEDs on your glove lit up — a very “game-like” touch that made the whole system feel more alive.
Arena
We built the arena out of foam board, wood, and a printed field graphic. Under each goal, we installed pressure sensors connected through screw terminals on the protoboards. When the ball crossed the goal line, the sensor triggered:
- Score increment on the robot’s OLED
- Buzzer celebration
- LED animations on the glove
We also added physical boundaries around the field so the Zumos stayed contained, which made the games way more competitive.
Final Game
When everything finally came together, playing the game felt legitimately fun. You could steer just by twisting your wrist, boost by bending your finger, and watch your robot zip across the field. The goal sensors worked reliably, the robots celebrated each score, and the LEDs added a surprisingly dramatic flair. It felt like a tiny, chaotic arcade machine we built ourselves.
Conclusion
This project taught me more about embedded systems than any lecture ever could. We tackled everything: sensor integration, BLE communication, custom PCB work for the gloves, real-time control, and physical game design. More importantly, it was one of those projects that reminded me how much you can learn from making projects with the purpose of having fun (and getting an A!).