This is an old revision of the document!
What it does: Symbol Match is a interactive memory puzzle game. The player goes through a grid of symbols that hide behind some cards/blocks displayed on an OLED screen and attempts to find matching pairs by selecting two cards at a time. The game gives feedback throughout the matches by the way some LEDs light up, a passive buzzer for audio and a potentiometer for manual screen brightness.
The Purpose: The primary goal is to be able to make all the connections between the wires, modules and the ATmega328P work right and to create a fully playable memory game.
Starting Idea: I personally went through most of the projects that were available on the Room of Inspiration and a LCD game similar to this was the one that caught my eye, but after a long thought process, I was able to bring enough changes to the original idea that it now became something new.
Why is it useful: First and foremost it's a fun cognitive exercise that could bring some happiness to someone or you could play it to just pass some time. It's also useful to me, because I get to learn how to use all this tech and hardware.
The system is built around the ATmega328P-XMINI microcontroller, where the user interacts with the game using a directional pad made of 5 pressable buttons(Select, Up, Down, Left, Right). A potentiometer changes the light percentage in the screen, the main visual interface is the OLED display, visual feedback is augmented by 4 LEDs and audio feedback is given by the background music that is generated through a passive buzzer.
The chip runs the game loop, manages the state machine(Menu, Game, Game Over), randomizes the symbols on the grid/map and stores high scores in its non-volatile EEPROM memory.
List of Components:
Electrical Diagram:
IDE: PlatformIO/Win AVR
Libraries: Standard AVR libraries
Algorithms and Structures:Map Generation, State Machines and a Grid Data Structure