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.
One interesting aspect of the code is the implementation of ray tracing. Ray tracing is basically casting a “ray” from a point outwards, gathering data about when the ray encounters an object, and using that data to interact with the surroundings. In this project, Ray tracing is used to find out where the visible walls will be. A ray is cast from the user’s current position, and when it encounters a wall in the maze, it instructs the program to activate the led at that position. It repeats this all the way around the user, until the entire view of the maze that the user would have while within the maze is constructed. This is referred to as the “frame” and is how the program decides which LEDs to have on after each move made by the user. This does result in a small delay between each move until the next frame is displayed, but also gets the desired result of only showing the parts of the maze wold be visible in the maze to a user.
The initial part of the project involved building a wah-wah circuit on breadboard in order to test its functionality. Through online research, a schematic of the Colorsound inductorless wah was discovered. This wah-wah circuit replaces the traditional wah inductor with a combination of only resistors, capacitors and a 2n5088 NPN transistor. The schematic was constructed on breadboard and tested with a flashlight in a dark room. As the flashlight was swept across the LDR the frequency response produced was the desired vocal wah-wah sound. After successful testing the circuit was constructed and soldered onto Vero board consisting of strips of copper that are populated with the electrical components. This is an effective method to quickly prototype designs without having to order a custom PCB. The circuit is powered by a 9-volt DC adapter through a 2.1 mm DC jack. The design uses two quarter inch jacks as input and output for the circuit. The LDR was attached to the board with jumper wires to allow for flexibility with positioning. The input is connected to the guitar, while the output is connected to the amplifier.
We performed the project with the intent of applying some of what was learned throughout the semester. It was originally conceived with the idea of using a servo motor and sensors, at which point it was only a question of how to use them in a practical way. We decided on a carnival game (of sorts) that involves placing a ball on a rotating slide and aiming it toward an opening to a buzzer sensor/shock sensor combination. If the player hits the buzzer, a random number generator determines whether the buzzer goes off (win) or does nothing (loss). In other words, the game relies on a combination of skill and chance. In true carnival game fashion, the player gets three chances to to make the buzzer go off. We used two computers, two microcontrollers, two breadboards, a shock sensor, a passive buzzer, a servo motor, foam golf balls, and a variety of household items
One interesting thing about our design was that we were able to code the different angles we wanted the motor to turn. We had different cases based off user input that selected which angle to use. We then had a variable in each of those cases to store the degrees chosen, so that the return motor function would know how far to come back so that the catapult could be shot again.
As you can see in the image above, the red arrow is pointing to our motor, which is being used to pull back the catapult’s arm. The yellow arrow is pointing to our Atmega328PB which is sending out our signals to the solenoid and the Big Easy Driver. The blue arrow is pointing to the Big Easy Driver which is controlling the motor. The green arrow is pointing to the solenoid which is acting as the release mechanism. Below is the schematic to make it all work.
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.
This project utilized two different microcontrollers, an ATmega328pb and an Arduino Uno R3. Combining these two was a major component of this project. To connect them we utilized a digital output from the Arduino and connected that to a digital input on the ATmega328pb, essentially using the ATmega328pb as an output peripheral for the Arduino. The ATmega328pb still had the LCD connected as it had been in previous labs, thus no changes were made to how it was connected. The Arduino had multiple outputs along with the ATmega328pb, those being the lights for the house and the actuator for the door lock. The Arduino circuit also utilizes a Bluetooth receiver which communicates with an android app to send commands to the house. During testing it was found that one digital output could not power the “locked” LEDs, the actuator, and the signal to the ATmega328pb, this presented a problem because the project needed all of those things to happen when the door was locked. To overcome this problem, a second output pin was utilized that copied the signals sent to the original output pin so that the required power was met to activate everything needed.
One of the two main components which we had to program for the house project was the ATmega328PB board that we’ve been using previously throughout the class. We did so using the Atmel Studio 7 application and accomplished our tasks using both the C and Assembly languages, very similar to the style of Lab 3. Both the C and Assembly sections utilized the base sample code from Lab 3 as we decided to use the LCD interface to have a function relating to our door lock on the house. The board is receiving this input anytime the door lock is engaged or disengaged on the Arduino, and is receiving a separate signal to the LCD than what is going to the Actuator.
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.