This project dealt with timing, frequency, and the phenomenon of persistence of vision. The project required a platform for spinning the display, the display, and the code to run the display.
The base platform is made from sections of 2×4 which provide a sturdy mounting point for the rest of the apparatus. The motor used to spin the LED’s platform is mounted on the wood base. Two ATMega328P boards are used, one for the motor and one for the LEDs. The LEDs are mounted in a breadboard on a separate section of light wood. The light wood and attached components all spin with an external battery allowing for two separate sections of the project.
Successfully getting the persistence of vision words displaying correctly required significant tuning to get the right timing. Another challenge was balancing the spinning section which was solved with weights on the opposite end. The complete product works and demonstrates the fascinating nature of persistence of vision.
An application was also made in the Unity Engine to help generate the necessary characters in a reasonable amount of time.
The original purpose of this lab was to test run the new Atmel Xplained Mini board, make sure it is usable, and give feedback on what does/doesn’t work and how to improve it. I was also supposed to take note of any problems I found while going through the lab relating to the board.
In doing so, I encountered a classic road block that can stop a student from getting the device programmed. Below is the screenshot.
The error message in the screenshot says:
“Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xc0, expected 0x00 (Command has failed to execute on the tool). Unable to enter programming mode. Verify device selection, interface settings, target power, security bit, and connections to the target device.”
Note, if you receive an error that you cannot read the data, you may have closed out of a program while the board was in Debug Mode. Open a program, and run it in debug mode, and, in the debug menu, press “Disable debugWire and Close” to fix this issue.
Next, I switched the objective to looking for the differences between the Xplained Mini and the Arduino Duo– a popular microcontroller board with a very similar footprint. Differences were related to their physical properties such as pins and converters–mostly the ADC (Analog Digital Converter) pins.
Our team wanted to make our project have a strongly practical application which could prove useful to anyone. With this in mind, we came up with the idea of a home alarm system.
This system is designed to go off when a switch is triggered and then deactivate ONLY when the correct code is entered. The system should also have a on/off switch for turning it on or off before leaving the house. This button will not be able to turn off the system if it is currently alarming. Our home alarm system can be mounted on any door or window and will be triggered to go off when it opens.
The purpose of our final project was to build a device where a user could place an object into a box to be sorted. The pressure sensor embedded between two plates is designed to give an analog voltage output. The raw voltage obtained from the pressure sensor is converted by an analog to digital converter (ADC) on our A3BU board, and given a digital value between 0 and 127. The plate was controlled by a servo motor which could rotate to three positions; left, center, and right.
The goal of our project was to create a visual representation of the input frequencies collected by a microphone. To do this we had to receive an analog signal from a microphone, and use this signal to drive the speeds of three different fans. After receiving the signal from the microphone, we ran the raw electrical signal through a fourier transform in order to distinguish the various frequencies within the signal. Once we had the multiple frequencies that made up our signal we divided these frequencies into 3 separate bins: low, medium, and high. We used the average of these bins in order to determine the speed at which the fan should run. If the average of the frequencies contained in the low bin increases, then the speed at which fan 1 is rotating will also increase. Fan 2 which corresponds to the medium range frequencies, and fan 3 which corresponds to the high range of frequencies, both operate in a similar manner. Our goal was achieved as we were able to get the fans to fluctuate in speed based on the various frequencies collected.
This is a quick demo of our teams final project. In it you can see a quick run through of the basic functionality we implemented with close ups and reruns. We show our whole board and explain step-by-step what happening, and what’s to be expected.
Our group project deals with an anagram device. We thought that since it is something many of us have done and apps that we use all the time on our phone it would be a good project. For this we had two different levels to choose from that would determine the difficulty of the problem to solve. Once the level is chosen then a word is given and your objective is to unscramble to word and make it correct by typing it out on the keyboard. If the correct word is spelled then the LED that is blue will turn on. If the incorrect word is spelled then the red LED will turn on. Also, for every input put into the device, the red LED will flash dimly. The code will also clear the board for you and allow you to pick a new level once the game is finished.
Overall, we would call our second attempt a success. Our original plan was to do a “Simon Says” game but we ran into many issues and were running out of time due to finals approaching so we decided to scrap the idea and go for the anagram.
Even with this slight hurdle we would call this project a great success.
One of our group members had previous interest in how a virtual reality environment could be implemented using Unreal Engine and Blender. We saw this final project as an opportunity to take this interest to the next level.
Our concept is similar to Motion Capture (Mo-Cap) technology, that’s commonly used for video game developing, to make to movement of players as life-like as possible. Mo-Cap records the orientation of objects in a way that they can manipulated to derive a variety of different motions. For our Cyber-Hand, we used flex sensors along the fingers as an alternative. Instead of recording the orientation of the joints and fingers visually (like mo-cap would), we are able to use these sensors as a means of recognizing a change of resistance and it’s inversely proportionate change in output voltage, so we can then translate it to an input for the Unreal Engine to reflect the range of motion in the hand to the virtual hand we generated with the Unreal and Blender software.
The final project that our group, DayStar, decided to work on is a LED sign that reads, “Welcome to U of L”. The implementation of a light sensor gives us the ability to change the frequency of the LED lights. With all the LEDs wired together, we are using the Atmel software with an A3BU board to control the abilities.