In 2015, my son had to make a board game for a middle school science fair, and the theme was Ancient Egypt. I figured it out was an opportunity to introduce him to electronics.
My initial suggestion was to replace the conventional dice with an electronic dice, but my kid and his classmates are very creative, so when their ideas began to emerge, I didn’t want to limit their ideas. Therefore, the things became a little more complex.
They did the project concept, game and enclosure design and I helped them with my electronics expertise.
The board chosen for this project was Arduino Nano, that controls some other modules and circuits (display, MP3 player, buttons, and LEDs).
Just like any schoolwork, they had to do a lot of research about ancient Egyptian history, because they needed to formulate a lot of questions for the quiz that was part of the game. They also had a lot of work to drawing the map of the board, especially considering they used MS-Word to do it. It was printed on vinyl adhesive.
For the enclosure design, they were inspired by pinball machines. They wanted to make it with a large area for the map and an inclined display, which also hides the pharaoh’s sarcophagus, and when a player reaches the goal, some LEDs are lit, revealing the "secret treasure".
The enclosure was made of plastic (polyethylene) and acrylic sheets, due to its ease of cutting and folding.
The circuit design was created with Fritzing software. I do not like to use jumpers, so usually I make double-sided PCBs. But, as the time was short, I chose to simplify making single-side PCB, using toner transfer method.
This project has 24 LEDs, so I had to use a multiplexer IC. The MAX7219 solved the LEDs problem, but caused a loud noise to come from the speakers. To fix this issue the MAX7219 was replaced by its “brother” MAX7221, which has protection against electro magnetic interference (EMI).
The questions of the quiz are shown in a 20×4 LCD display as well as played through the speakers with the kids’ voices, which we recorded and distorted to sound scary like a mummy.
The first programming challenge was to display portuguese accented characters. Despite the fact that the LCD display allowed 8 customizable characters, it wasn’t enough. So to work around this problem I had to dynamically load the custom characters as required.
Another programming challenge I had to overcome was the Arduino 2KB RAM limitation, since I needed lot of memory to hold the quiz strings, which can neither be solved by progmem tricky. I had to store these strings into an external 32 KB EEPROM (Microchip 24LC256). I wrote some Arduino sketches that was executed once, to store these strings into EEPROM, and after it was retrieved by the main program, using their memory addresses.
After all, I think that Arduino Nano was pushed to its limits. More than that, only using an Arduino Mega.
From conception to finish, the project took 30 days.
Playing the game: