The purpose of Sign-Interfaced Machine Operating Network, or SIMON, is to translate sign language into numbers. We used a machine learning classifier to classify images of hands into the corresponding symbols or actions. SIMON interprets American Sign Language and displays the translation on the LCD screen through the following steps. The given image of the ASL sign was extracted to produce a single numerical digit using a machine learning model. That value was then serialized to ASCII and sent to the microcontroller. The microcontroller would deserialize the value and post the result to the LCD screen. Hardware used to complete this project included the ATMega328P Xplained Mini Board, a laptop with Windows, a webcam, and an LCD screen. The goal of final project was achieved as we were successfully able to read the American Sign Language images and display the desired result on the LCD screen.
The principal goal of our project was to design and build an 8-button piano & music player – two different implementations of the same circuit. As a piano, our circuit utilizes the attached buzzer to generate tones C6 through C7; this was achieved through the use and development of an interrupt driven system. Once the button is pressed, the corresponding LED illuminates and its given tone plays through the buzzer. As a music player we utilized the same buttons, instead once the button is pressed and the LED is lit, the buzzer begins to play a pre-programmed song. These tunes utilize the same tone generation in the piano. We were able to accomplish both programs for our circuit by writing and debugging in the C programming language within Atmel Studio 7.0.
Furthermore, we continued to use the Xplained Mini ATMega328P microcontroller from the previous labs in our final project implementation. We faced several setbacks when implementing our planned design including, but not limited to, configuring the GPIO pins to accept an input from the buttons, eliminating the rotary switch, and generating a tone from the connected buzzer. Nevertheless, we were able to overcome these hurdles and implement our design as intended with only small modifications to the circuit and code.
The idea for this project was to build an enclosed device that would actively attempt to cool itself as temperatures inside increased. The main components for the project were the ATmega328P Xplained Mini microcontroller, a temperature sensor, and a 5 volt DC fan. The device was placed into a small plastic enclosure. A circular hole was cut into the top to mount the fan, a rectangle was cut to fit an LCD screen for displaying the temperature, and two rectangles were cut on the side for ventilation and USB power. This project utilized variations of analog to digital conversion (ADC) from Lab 3 and pulse width modulation (PWM) from Lab 4.
The ADC on the microcontroller was used to convert readings from the temperature sensor into a temperature value. A separate temperature value was set as a target temperature. As the temperature inside the case increased beyond the target temperature, the fan would switch on to ventilate the hot air out of the case to cool it down. Additionally, a transistor was used along with PWM via the board’s Timer Counter 1 and Compare Match Interrupt to limit the voltage to the fan and control its speed. The fan would start at a 40 percent duty cycle and increase by 10 percent for every degree above the target temperature, maxing out at a 100 percent duty cycle. Conversely, the fan would decrease its duty cycle as the temperature decreased, turning back off after reaching below the target temperature.
Top View of the Case
Inside View of the Case
Hello Embedded Systems Fans!
It’s that time of the year – finals! Which means it’s time for our final project. The Unknowns were working night and day trying to decide what project we wanted to do, when it dawned on us…. we’d forgotten to water out plants!
Luckily, they were able to be saved, but it sparked the idea; “what if there were a system which would figure out when our plants needed watering, and would do it for us?” And so came about the big idea for our final project – an automatic plant waterer! All we would need is our handy-dandy Atmega328P Xplained Mini, a motor driver, a water pump, and a soil moisture sensor (shown below).
Follow The Unknowns though our plant watering journey!
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.
This project centers around Audio Visual Equalizers and modifying it to be in the shape of a sphere/disco ball.
The design of the disco ball is 6 arches of wood, surrounding a main center column thus creating the outline of a sphere. The base of the disco ball was then constructed in a way to be able to accomodate the Xplained mini. The wooden arches were then layered with WS2812B Neopixel LED strips. Each strip can be individually addressed thus allowing for a viewer to see seperate audio frequencies. The splitting of the signal into seperate frquencies was handled via the code, utilizing the AdafruitNeopixel library to handle the lights and AdaFruitCITiCoServo libray to handle the hysical movement.
Several adjustments/customizations could be made when using the project such as the brightness and color of the lights, the speed of the rotation and, of course, the actual song being played.
We are making a piggy bank that will keep track of how much money is inside the bank. The general idea is to make a cardboard coin sorter and set up some lights with photo sensors to track how far the coins have gone. If a coin makes it to the end, we are assuming it is a quarter but half dollars and dollar coins will be able to fit as well, to not clog the ramp.
For our project, we decided to do something that would apply everything we had previously learned in class, as well as something that could potentially make an impact in society (as a big picture).
We chose to do a laser harp as our final project.
Currently, there are companies that manufacture top-notch laser harps, which price their products at a hefty price of 700$ to 2000$. This was our attempt at building a budget friendly laser harp, that would potentially make an impact of 100$ or less to the consumer’s pocket. We successfully built the laser harp with less than 100$ spent on materials.
This could potentially impact the market of laser harps.
Not only this, but the laser harp can serve as a budget friendly way to learn how to play an instrument, as well as helping the consumer recognize and learn different musical notes. The good thing about the harp is that almost anyone can play it. This can come to benefit of children or adults with motor skills difficulties. It could potentially help them if learning how to play an instrument or music, is something they want. To take this concept even further, the harp can be used in conjunction with music theory, to teach mathematics and science to people with intellectual disabilities.
Overall, the big picture of the “budget-friendly” laser harp is to give consumers more accessibility to laser harps, as well as helping and educating people who suffer from intellectual disabilities and/or motor skills.
The final project is an electronic safe that requires you enter the correct pin to open the safe. To create this safe a shoe box was used as an exterior housing, as well as a variety of components to perform the safe functions: a matrix style number pad, an LCD module, and a servo motor. The MCU to control the safe is an ATmega328p that was programed using a Windows 10 PC and Atmel Studio 7. The safe was unable to be completed, as the matrix style number pad was unable to be interpreted accurately; however, the rest of the safe functioned as predicted.
For our project, we decided upon a MIDI controller because it sounded (ha, get it?) cool.
We wanted to be able to build something that would take MIDI files, convert them into 8 bit music, and play them out loud. We took inspiration from the music which we heard in older video game consoles and arcade cabinets. The songs we would choose would be from different games, TV shows, and movies that we all enjoy. On that note (more puns), this allowed for each member of the team to have some input in the direction we took with the project and get something personally enjoyable with the finished product.