Concept
In light of the complexity of my initial plan in making a canvas made of LEDs to let the user draw, I decided to simplify my Final project. The former idea required a lot of LEDs which can not all be supported simultaneously by the Arduino Uno. Thus, I am restricting to a small number of LEDs to bring my project to fruition.
I am planning on two things:
- Visual Memory: I will use a 4×4 LED grid to blink LEDs in some pattern. The user is then required to repeat the pattern onto the p5Js console in order to win. This game will increase in difficulty as the user clears the levels.
- Text Marquee: On the same 4×4 LED grid, I will create a test marquee which would show text that the user enters onto the p5Js console.
Implementation
Arduino
All the LEDs will be controlled by the Arduino, however, the behaviour of the Arduino will change between the two modes:
- For the memory game, the Arduino will generate random co-ordinates which correspond to the LED, and send them to p5Js. It will then wait for further command that instructs it to either repeat the pattern again, or create a new pattern. The difficulty level of the game can be changed with a button or a sensor hooked up to the Arduino.
- As for the text marquee, the Arduino will wait for the text the user types and converts it to an array of co-ordinates corresponding to the LED which should be lit up to display that text/letter.
P5Js
The p5Js will incorporate all the user interactivity:
- It will provide with a gaming interface for the memory game. It receives the co-ordinates of the LED which it will parse to its gaming screen to register if the user is correct or wrong. It will also send a signal to the Arduino to change the pattern or repeat the pattern
- For the text marquee, the p5Js is used as an input device for sending text to the Arduino to later be printed on the LEDs.