Hello my name is Matthew and my starter project was the Electronic Die. Instead of a normal die, to make this one work, you slam it on a table or even the palm of your hand and it will display a number one through six. The way this works is that the die receives information from a Piezo Acceleration Sensor. When it is slammed, the Sensor gives a number to the microcontroller. This number has many decimal places behind it, so the microcontroller picks the digit in the smallest decimal place, and displays it if it is a number between one and six. If it is not, then the microcontroller picks the next digit over. This process repeats until the microcontroller finds a number it likes. My main project was the word clock, which instead of displaying numbers or use hands to tell time, LEDs will light up behind a stencil to light up words, telling the time. This project involved electrical, mechanical, and coding to an extent. The code in turn is divided into three elements: code to input the time, code to keep time, and code to display the LEDs. The code for the LEDs was very interesting to write because I had to use a process called multiplexing. Normally, all the clusters of LEDs would be controlled individually, but this requires 22 pins on the Arduino, and the Arduino I was using (the Arduino Uno) only has 13 pins. To reduce the number of pins I had to use, I use multiplexing. The way it works is that it cycles through each column of LEDs and turns them on an off, but so quickly that the human eye cannot see the LEDs ever turning off (however, if you look closely, you can see the LEDs flickering, an it is because of this process). This project was full of challenges. The first was the fact that the Instructables page I was using for reference did not use an Arduino, but essentially made their own specialized one. This meant that I had to write a lot of the code from scratch. The other major challenge was the fact that on the day of the presentation, my computer had broken, and I could not upload the code I had made. What I did to get around this was that an instructor and I recreated the code, and though was not working entirely, it worked well enough to show my project. A third challenge was that the strip LEDs I had took too much power, meaning that either the LEDs were too dim, or if they were bright, the Arduino would heat up to the point of destruction. The final challenge was that of time. I did not have enough time to completely finish, thought I know what I have to do.
Bill of Materials: Matthew T’s BOM
Milestone 3- The LEDs
The third milestone deals with the electrical aspect of this project, which was to create an LED matrix and power it. The way it is soldered is basically that the positive ends are soldered into rows, and the negative ends are soldered into columns, creating my matrix. I also had to use transistors, which in this instance are used for amplifying the power given to the LEDs, otherwise the LEDs are too dim to see. In this video I am using a temporary power supply (a 9 volt battery) to power the matrix, but I hope to add a wall socket to the matrix, so that I don’t have to use a lot of batteries to power this project.
Milestone 2- The Code
This second milestone involves the code needed for my main project, the Word Clock. The final code will have three components: one for keeping time, one for inputting the correct time, and one to tell the LED’s to light up at the correct time, to display the time. I lost a lot of time over the first aspect in trying to use a chip called the DS1302, which is a RTC (Real Time Clock). This chip, while more accurate in keeping time than the Arduino alone, proved impossible to make work. None of the code I tried downloading from the Internet worked at all, and eventually, I decided to write my own code just using the Arduino. The second major issue I had with the code was integrating the two pieces of code together. While these pieces of code worked independently, they would not work well together. The problem was that the code that allowed the time to be inputted, would hold the time, but only statically, meaning that it would not increment. As for the other piece of code, it would keep time, but it would always start at 00:00. The way this was fixed was to add the time inputted to the time keeping time. This, while it is apparent now, took at while for me to understand and implement. All the code left to write as of this writing is the code to display the LED’s but I think this will not be to challenging.
Milestone 1- The Enclosure
This first milestone will talk about the construction of the enclosure for my main project, the Word Clock. The enclosure is built out of mostly black acrylic, with one white plate inside, and one clear plate for the face of the clock. The hardest aspect of this part of my project was probably learning how to cut the acrylic into the right dimensions, as well as making the cuts as straight as possible.
The Electronic Die is just like a six-sided die except instead of rolling it, you slap it on a surface or the palm of your hand. This device uses several LEDs, resistors, a pre-programmed PIC micro controller and a Piezo Acceleration Sensor. THe way this device works is that when you hit it, the Piezo sends number with many decimal places in it. The PIC micro controller receives this number and picks the number in the smallest decimal place. If that number is not an number between 1 and 6 (because you can’t roll any other number on a six-sided die), the PIC micro controller will pick the number in the next decimal place. Once the PIC finds a number that works, it them displays that number on the LEDs.