LED Matrix

The Project

Tetris is a puzzle game that was released in 1984. It requires the player to move and rotate falling shapes so that they form lines. In the first semester at the University of Bath, I was tasked with programming 2 Arduino Unos to communicate with eachother in a meaningful way. In this group project, me and my partner re-created Tetris, with one Ardunio being used to drive the gameboard and move the shapes, and the other for controlling the game and showing the score. The project also involved us creating a 12 x 12 LED matrix by soldering together LED strips.

From this project, I became inspired to create a program in Java, to control the matrix. The program would allow full control of the 12 x 12 LED matrix, allowing for pre-loaded effects, including random display, colour runs and fading colours. The program also allowed for a custom LED pattern to be loaded onto it over the GUI.

Personal Development

While working on Tetris, I gained an understanding of how to program Arduinos and use the Arduino IDE. I also gained experience in bug fixing and solving problems within the logic of the code and was required to be creative and think of algorithms that used less lines of code due to the limited memory size of the Arduino. The matrix control program built upon the skills that I learnt when programming Tetris and developed my understanding of how a serial communication can be used in Java to communicate with an Arduino. My experience with using external libraries was also improved when using the FastLED library to control the LED matrix. My problem solving and critical thinking skills were improved when designing algorithms to display interesting patterns on the matrix.

Skills Gained

+ Developed my teamworking and communication skills when developing Tetris
+ Experienced programming with Arduinos and using the Arduino IDE
+ Advanced my problem solving skills when bug fixing the line falling mechanism for Tetris
+ Advanced my knowledge of programming in C
+ Developed my understanding of using serial communication in Java
+ Advanced my abilities in creating GUIs using Swing in Java + Demonstrated my willingness to learn when researching how Java can communicate with an Arduino
+ Improved my design skills when planning how to create a new LED matrix