For the final project in this class, I'll be making a take on the children's game Simon. The original Simon is limited to only four different colors that are lit up in a certain order, and then the user tries to imitate that same order. To make the game more interesting and challenging, our version of Simon will have six different hexagonal panels that will light up Red, Orange, Yellow, Green, and Blue. In addition, sometimes multiple panels will light up at the same time, requiring the player to remember two colors simultaneously. Also, any panel can light up any color, so payers will have to remember both color and location of the panels that light up in addition to the order they lit up in. 
The first stage of this project is to 3D model and print the different hexagonal panels. The actual panels being pressed by the players will be made from acrylic that is sanded to give it a frosted look. The purpose of this is to dim the LED lights inside which give each panel the colored glow. The panel housing, which is what was 3D printed, needs to have holes in the button to allow for cables to pass between each panel piece. In addition, the frosted acrylic pressed by the players is attached to a button that needs to be set at the proper height. To do that, a block was designed, and since the height of the button with the panel attached was unsure, the block was made as a separate piece that could be changed in size and reprinted with ease
This was the initial print. After review, some changes need to be made to the 3D model. First of all, the inner rim that supports the frosted acrylic on the edges needs to be made much wider to allow for the button wiggling back and forth. In addition, the holes are only on the bottom of the panel which means that cables going through those holes will raise up the panels so they don't sit flush together on the table. This can be remedied by transferring the holes to the wall of the hexagons, but only on two sides, to allow for a cable to go in, and one to go out
With all 7 hexagonal panels printed out, this project is ready to be wired. Two different set-ups were tested out: four panels, and seven panels. The four panel design mimics the original set-up seen in the Hasbro Simon game. This design felt too limited and simplistic compared to the possibilities of using 7 different hexagonal panels instead of four. In addition, there were added benefits to using seven panels, such as that only six panels needed to be used for the game itself while the middle-most panel could be exclusively used as the on/off button to start the game.  
Some improvements made to the second panel model include the larger rim along the inner edge to allow the panels on the buttons to always rest relatively flat. The triangular cutouts are present on three sides of each outer hexagon to allow for wires to pass between all the different sections. The middle section was designed with a triangular cutout on each side to connect to everything. In retrospect, the triangular openings should have been larger to support thicker cables passing through them, like the one necessary to communicate with the Arduino microcontroller. 
The individual hexagons were first primed using "Rust'O'Leum Self-Etching Primer" to help smooth out the 3D printing lines and to make a smooth, even surface. The hexagons were painted different colors so players would know which panels to press when trying to recreate the pattern made by the neopixel strip. The black used to paint the inner rims of the panels was designed to contrast the frosted acrylic panels that would be later added.
Arduino Code - GitHub Gist Code Here
In total, this Arduino code ended up being 905 lines long! It was never intended for the code to be that robust, but in order to create an enjoyable game experience, I had to use a multitude of switch functions and arrays to keep track of the different colored hexagons and the color order of the patterns. 
This mini-game proved to be very difficult to code due to one of the limitations of taking this class online this semester. We needed neopixel strips to light up the hexagons, but the pixels we received from Sparkun were individual diodes instead of the strips that can be wired together. Because the neopixel strips took so long to arrive because of shipping delays due to Corona, we didn't become aware of the issue until the last week before the project was due. It was impossible to order a new strip of neopixels in time, but luckily I had a strip at home. Unfortunately, they weren't wired like the traditional WS2812B neopixels which have three connections instead for power, ground, and D-IN. The neopixel strip that I had turned out to be a 5V Common Anode GRB strip. These strips work similarly to RGB LEDs, and they have 4 wires for power, green LED, red LED, and blue LED. 
In the diagram pictured below, three voltage regulators are required to boost the current for the 12V neopixel strip. Luckily, my strip was 5V, and I was able to avoid using voltage regulators in my circuit. The biggest downsize to using a Common Anode GRB strip is that you cannot program it the traditional way with pixel objects. Instead, the color of the whole strip is determined by the RGB values analogWritten to the strip. This meant that I would've needed six separate neopixel strips, one for each of the panels. With three digital~ pins being used per neopixel strip, it was impossible to fit that many inputs onto a regular sized Elegoo UNO.
Some links that helped me with coding:
Wiring and (Lots of) Soldering
This circuit is quite deceptive. Although it is only composed of a few simple components like buttons and a neopixel strip, the wiring was deceptively difficult. We used 7 buttons in the Simon game; with 3 wires per button, that's 21 different wires just for the button mechanism. Without space for a breadboard in the center panel, we needed to use breakout boards to keep track of wires. All the positive leads were connected to one breakout board, and all negative leads were connected to another. These proved to be effective for keeping track of power and ground wires, especially with a limited selection of Red or White wires. Unfortunately, they took up a lot of space in the middle panel. This meant the 3D printed panel for the middle was too small to contain all the wires, and I ended up having to use the larger print that we had prototyped originally, even though it lacked the inner rim supports of the second model. 
Finished Project
The frosted acrylic helps to solidify the theme of a modern take on a classic game that we were going for. The frosted effect was achieved by using wet 800 grit sandpaper on the acrylic. Although it may seem like nothing is changing, when you dry the pieces they end up having a beautiful frosted effect.
I chose not to cover up the circuitry in the middle hexagon with anything more than a frosted acrylic panel. While all the other hexagons have tissues inside to create that softer white glow, the middle panel remains somewhat exposed. The resultant visual look somewhat reminds me of a beating heart, and since the Master Button is located in the middle panel, it further emphasizes that panel as the core of this game.
Parting Thoughts
This project ended up serving as a great prototype for a potentially much larger scale endeavor. The group dynamic between the three of us was quite strong because we all excelled in different fields. Having group mates with access to a 3D printer and a soldering iron made it possible for me to challenge myself with the code to turn what my group mates had fabricated into something that had both form and function.
To expand upon this design further, our focus should go towards the hexagonal panels. One potential idea was to make them fully modular and giving them the ability to connect with each other using magnets and potentially pop pins to connect all the circuitry. Or for a more advanced approach, we could look into Bluetooth and wireless capabilities. Pairing the lights in the panels to an app would be a great way to expand the potential uses of this project from something exclusively Arduino focused into a project that more emphasizes the visual grandeur of such a huge LED display. My dream vision is to decorate my home's entryway with the hexagonal panels along one wall. They would all be interactive, with pressing different combinations of panels revealing hidden secrets that would delight my guests. This design has so much potential, there are many ways to expand upon this further, leaning towards a more set game direction or focusing on the aesthetic appeal. With the modularity of this design, the possibilities of what to make are seemingly endless.
Back to Top