Project Name
Simon Says Game - Memory Challenge
Author: Apostol George-Robert
GitHub Project Link:: https://github.com/Apostol-Robert/AMPproject
Descriptionβ
An interactive memory game where players must remember and replicate increasingly complex sequences of lights on a 3x3 LED grid, using a keypad for input and a buzzer for audio feedback. The game gets harder with every step, and ends when the player makes a mistake.
Also, in my childhood I played a game like this, and I actually find it interesting to now be able to build one of the games I used to play when I was little.
Additionally, a web interface accessible via WiFi will display real-time scores, enabling players to track progress or compare results on the same network.
Motivationβ
I chose this project because I wanted to combine hardware interaction with Rust programming in a fun and visually engaging way. Itβs also a good challenge for working with input devices, output displays, and real-time feedback.
Moreover, integrating a WiFi-connected web interface gives the project a modern touch, making it accessible and interactive beyond the physical device.
Architectureβ
- Game Engine (Rust) β manages LED sequence generation, user input validation, scoring, and game flow
- Input Module β receives keypad input
- Output Module β controls LEDs, buzzer sounds, and optional LCD display
- Random Generator β provides a new sequence every game
- Feedback System β audio (buzzer) + optional text (LCD)
- Web Server Module β serves a minimal website over WiFi where the current game score and history are displayed
- Game Controller β coordinates everything (input, output, logic, WiFi)
Keypad ββ¬β> Input Parser
β
ββ> Game Logic <ββ Random Generator
β β
βΌ βΌ
LED Grid Buzzer + LCD
β
βΌ
Web Server Module ββ> Web UI
Logβ
Week 28 Apr - 4 Mayβ
During this week, I purchased all the necessary components for the project, including the Raspberry Pi Pico W, 4x4 keypad, LEDs, buzzer, jumper wires, and breadboards. I also finalized the game concept and documented the rules for how the Simon Says game will work. In addition, I designed an initial schematic for organizing the hardware components and planned how the modules (input, output, game logic) will interact. I also decided to build a WiFi-connected web interface to display players' scores.
Week 5 - 11 Mayβ
Week 12 - 18 Mayβ
Week 19 - 25 Mayβ
Hardwareβ
A Raspberry Pi Pico W microcontroller is used to drive a grid of 9 LEDs arranged in a 3x3 matrix. A 4x4 membrane keypad allows user interaction, and a buzzer provides audio feedback. Two breadboards are used to separate control logic and visual interface for better layout and easier casing. WiFi functionality is used for connecting to a simple web server to display scores.
Schematicsβ
(To be added from KiCad once completed)
Bill of Materialsβ
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico W | Main microcontroller | 35 RON |
Breadboard 830 points | For LED matrix and keypad | ~15 RON |
Breadboard 830 points | For Pico, buzzer and wiring | ~15 RON |
4x4 Keypad Matrix | Main input method | ~7 RON |
LEDs (9x) | Visual output | ~5 RON |
Buzzer | Audio feedback | ~1 RON |
Jumper wires | Wiring between components | ~5 RON |
Softwareβ
Library | Description | Usage |
---|---|---|
rp2040-hal | HAL for RP2040 | Controls GPIO, timers, etc |
embedded-hal | Hardware abstraction | Common interface to GPIO, I2C, etc |
heapless | No-std data structures | Used for storing sequences |
panic-halt | Panic behavior | Required in embedded context |
tiny-httpd or smol (optional) | Lightweight web server | Serve the score page over WiFi |