Skip to main content
Version: FILS English

Simon Says Game with LCD

info

Author: Dobrin Andrei Liviu
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-andrei-1-64

Description​

This project implements a "Simon Says" memory game using 9 LEDs and a numpad. The game logic runs on a Raspberry Pi Pico 2W. An I2C-connected 16x2 LCD screen displays a start menu, current score, and high score saved in the microcontroller's flash memory.

Motivation​

I chose this project to combine embedded hardware and software concepts in a fun and interactive way. It challenges both my circuit design skills and my ability to use Rust in embedded development.

Architecture​

The project is made up of several parts that work together to create the Simon Says game:

Simon Says Schematic

Game Logic​

  • This is the main part of the program.
  • It controls the flow of the game: when it starts, how patterns are shown, and when the game ends.

Pattern Generator​

  • Generates a random sequence of LEDs that the player has to remember and repeat.
  • The sequence gets longer each round to make the game more challenging.

Input Handler​

  • Listens for button presses from the 4x3 keypad.
  • Checks if the player's input matches the generated pattern.

Output Handler​

  • Controls the 9 LEDs to display the pattern.
  • Sends messages to the LCD screen (like score, "You Win", or "Game Over").
  • Activates the buzzer to give sound feedback for actions.

Score System​

  • Keeps track of the player’s current score.
  • Saves the highest score in the microcontroller's flash memory so it’s not lost when powered off.

How everything connects​

  • The Game Logic tells the Pattern Generator to make a new sequence.
  • The Input Handler reads the player’s buttons and tells the Game Logic if it was correct.
  • The Output Handler lights up the LEDs, updates the screen, and beeps the buzzer.
  • The Score System stores the highest score and updates it when needed.

Log​

Week 5 - 11 May​

Week 12 - 18 May​

Week 19 - 25 May​

Hardware​

Detail in a few words the hardware used.

Schematics​

Place your KiCAD schematics here.

Bill of Materials​

DeviceUsagePrice
Raspberry Pi Pico W (x2)The microcontroller35 RON
16x2 I2C LCD ScreenDisplays menu and scores15 RON
LEDs (x9)Lights up in sequence4 RON
330Ξ© Resistors (x9)LED current limiting5 RON
10kΞ© Resistors (x9)Pull-down for buttons1 RON
BreadboardFor prototyping12 RON
Jumper WiresConnect components23 RON
BuzzerAudio feedback3 RON
NumpadControlling the game19 RON

Software​

LibraryDescriptionUsage
st7789Display driver for ST7789Used for the display for the Pico Explorer Base
embedded-graphics2D graphics libraryUsed for drawing to the display
  1. link
  2. link ...