Optical Theremin – BIG PICTURE

The proposed idea was to create a Theremin, an electronic musical instrument which is used with only gestures and no physical contact. The goal of the project was to successfully implement the idea while only using the knowledge from the previous lab work and creating a successful product. Therefore, the equipment necessary to complete the project was Atmel Studio and certain hardware components such as wiring, resistors, and amplifiers. As for the software aspect, the concepts of a previous lab were used to implement the proposed idea due to the similarities of the two. As a result of the effort into the project, the goal was accomplished as the Theremin was fully implemented. It was successful because of the way each gesture creates specific musical notes.

Catapult – Project Ideas

<iframe width=”560″ height=”315″ src=”https://www.youtube.com/embed/0A-gTYmDuN4″ frameborder=”0″ allow=”accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture” allowfullscreen></iframe>

The goal of performing this project was to encompass learning objectives acquired throughout the duration of this course. We wanted to use a motor to pull back the arm of a catapult and have a solenoid be the release mechanism. The project was successful. When we pressed the appropriate key, the motor would pull back the arm and the solenoid would retract.

LED Maze, The Big Picture

the initial LED layout
LED layout in casing


The goal of this project is to create an 8×8 LED maze. The user should be able to use buttons to navigate up, down, left, and right through the maze. Instead of simply showing the entire maze at once, the only parts of the maze that should be visible would be the parts of the maze a person inside would be able to see, assuming the walls are taller than the person. I.E. the only maze walls visible would be the walls in the line of site of the user, and no walls behind another wall would be visible. A “Fog of War” type of effect. The goal is to accomplish this using transistors, shift registers, ray tracing, resistors, buttons, and of course LEDs. A jewelry holder is used as the physical “casing” for the Maze. Images above are the initial LED layout, and the casing used.

terfaced Machine Operating Network (SIMON)

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.

8-Button Piano – The Big Picture

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.

Temperature Controlled Fan – Overview

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


Plant Watering System – Overview

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!



Spinning LED Display – The Big Picture

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.

Boogie Ball Overview

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.

Dragon Bank Overview

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.