About
For the final project of my embedded systems course (ENGS28), I implemented this LEGO marble maze. Components include the STM32C031 MCU, stepper motors to move the maze, potentiometer joystick to control the movement, 4-digit 7seg display communicating over I2C, and various LEDs + buttons for other specific features. This maze was voted the best overall design in the class due to the optional playback feature.
Features
- Simple timed gameplay with automatic start and finish sensors
- State readout on the seven segment display
- Playback of entire winning/losing run
Playback Feature
The playback feature was the coolest optional feature and definitely won the crowd vote for “best overall project”! It was implemented by tagging every single input with an Xposition, Yposition, and timestamp, and storing these tags in a buffer of a specified length. When the player requests the playback to occur, the microcontroller plays each input back in the same order and timing as the player had done it the run before.
