Classic Gaming in a Modern Light
Ayomide Olubanwo, Jack Hudson
Ayomide Olubanwo, Jack Hudson
Dive into the ultimate blend of tradition and innovation with our electronic Connect 4 project, where timeless gameplay meets simple yet effective technology. Encased within a stylish 3D-printed frame, this creation uses eight intuitive buttons: seven positioned atop for chip-dropping and one conveniently located on the side for quick resets. Two vibrant LED matrices illuminate each move and victory, while the absence of physical pieces ensures a mess-free experience. With a simple press of a button to place your chip and another to reset, enjoy the simplicity of classic gaming reimagined for the modern era.
2 LED matrices
8 push buttons
3D printed frame
Arduino Nano
3D Printing: The first iteration of the design was definitely the hardest because we didn't have anything physical to work off of. But once we did that, getting the measurements just right was a matter of trial and error, we could get the measurement of the matrices and buttons but the amount of leeway to make them fit into the frame needed to be tweaked along the way.
Display: The LED matrices are essentially strips of LED in a shape akin to a stack of "S"s, so the way the LEDs were numbered was very unintuitive. Not to mention the fact that the chips were 2x2 pixels. So what we did was make some arrays to map the different sections of the board (the turn strip up top, the player color indicator on the lower perimeter, and the play area) to the pixels in this ordering, so we could better understand and write code for the display.
Mirroring: Both matrices can't be showing the exact same image, so to mirror the image on one matrix, we simply iterated through the columns backwards and offset the start of the display by 256 (we connected both matrices to be one)
The reset button: For some reason the reset button wouldn't work when the board was on its own power, the LED matrices would light up random colors in random places, so instead of programmatically clearing the board, we found the reset pin on the Arduino and wired the reset button up to that.
Wiring the control buttons: Each of the individual buttons' positive wire was wired to a pin on the board, however, every single negative wire had to be soldered to the ground. We tried soldering them together in one big blob but that didn't work so instead we did a sort of tree approach where we connected pairs of all the negative wire, then added a wire to each of those and then pair those wires until they all converged to one, and then we soldered that wire into the ground.
Should've probably used pin headers to connect components to Arduino instead of connecting them straight, just in case it got fried or failed
The buttons could be better aligned to the columns
Added more animations, sounds