The main goal of this project was to write and develop a graphical version
of the card game commonly referred to as Memory for use on an Atmel Mega32
microcontroller unit. Memory is a card game where the player tries to
match pairs of identical cards together by only flipping any two cards
over at a time. If the two selected cards match, they are removed from
the current playing field; otherwise they are flipped back over. The challenge
of the game is remembering where certain cards are located within the
playing field so that future matches can be made.
To implement this popular game onto the microcontroller, the project was broken into two main objectives:
This project was chosen not only because it is always fun to create,
develop, and play a video game, but also because it integrates all of
the major lab aspects of ECE 476 into a single, more complex assignment.
Our version of Memory demonstrates the use of complex state machines,
video generation with a microcontroller, serial communications, and interfacing
with third-party products.