March 2025 | MECH_ENG 224: Scientific and Embedded Programming in Python
Designed circuitry and used object-oriented programming to create a playable Simon game on a breadboard.
The objective of this project was to create a playable Simon game emulating the common memory game toy. The online version on which I based my sound effects, timing and rules can be found (and played) here: https://freesimon.org/. My hope was to strengthen my object-oriented programming and circuit design skills while creating something fun and enjoyable.
The normal version of the Simon game
Circuit diagrams of each module.
When designing the circuitry for this project, I chose to work in modules: the LED display, the button input, and the speaker output. Each of these modules is connected to a General Purpose Input/Output pin (GPIO, or GP for short) of the Raspberry Pi Pico used. Because there are four color options in Simon, I made four LED modules, four button modules, and one speaker module.
This was my first project using object-oriented programming, which was a big change from what I was used to with procedural coding. I created classes for the buzzer/speaker, the "pads" (button and LED pair), and the game logic. This structural change presented an interesting and engaging challenge that I greatly enjoyed working through.
This project was the final project for Scientific and Embedded Programming in Python. The final design succeeded in all of the metrics laid out by the assignment, and was fun to play!