Most of the time, engineers seem to be non-creative people. But that's not true! We are much more creative than people think. Recently I had to find an original way to ask a girl to be my girlfriend, so after a little brainstorm, I decided to use some components that I've found in my desk to make the date very special for her.
Step One: Matrix ControlDisplay things on the matrix can be done by two ways: using a led driver MAX7219, which reduce the amount of pins used by the Arduino and reduce the number of resistors in the circuit. Or connecting pin by pin on the matrix to the Arduino, this makes the circuit too big and uncomfortable to work with, and you end with 2 pins left to use on any other thing.
My first try was to use the MAX7219, but due to noisy signals I give up and switch to the hard method. This problem can be solved using short connections as the datasheet said on page 10.
But I didn't have time to make a custom PCB for it.
So, for the next try, I wire every pin on the matrix to each one of the pins on the Arduino.
Remember to use current limiting resistors on each cathode, I decided to use 330 Ohm.Code for the Matrix
The program can be found on my GitHub repo. It's well commented, so I won't get deep on it. But if you do the wiring as I did, everything should work.
To generate every image on the matrix, I found a useful resource on the internet, just need to set the dots to on or off, copy the resulting code and delete the first two comma separated values of the array.
Upload the code and turn it on!
Step two: Controlling the lightThis was a tricky part because the lamp I did use was borrowed from a friend and he asked me not to do anything irreversible to his lamp. So for the connections, instead of do some soldering, I had to find a way to attach the cables to the battery and the lamp using just cardboard and tape.
At the beginning, I want to use a light bulb, so that's the reason why I have a relay on the circuit. But when I do the first try with it, I realized that the light bulb don't work for this task because the light beam it's not focused. So I replace it with the LED lamp, but I have not time to make the circuit again, so the relay stay in place. It should work only using the transistor.
I have two batteries on my circuit because I don't have wires of the long needed to connect the light control circuit and the matrix control circuit, but it should work using only one 9V battery to power all the circuit.
Step Three: Box EnclosureThe magic box has two compartments. The first is where the Arduino and the matrix are attached. The second have the light and his control circuit in it. In order for the projection to work, you have to be careful when get the hardware inside the box, anything should be in front of the light. I've tried to attach the wires very well to avoid any problem.
The box should look like this, but feel free to make your own design.
For the control panel I get some translucent black fabric and cover the matrix with it. When it's turn off, the led behind are barely visible, so it gives a nice effect to the box.
I cover all the cardboard with matte black paper to make it looking good, and finally print text that was made in Canva on acetate paper and put it on one side of the box. Image below:
I programmed some nice sprites on the matrix and after some seconds, it turns on the light inside revealing the message.
Add some flowers, a romantic place, good food, ask her to turn on the device and be prepared for success. In my case, she said yes.
Comments
Please log in or sign up to comment.