As for the technical components, the hardware was very similar to previous lab work in which we modified to obtain our project. For instance, the corresponding lab (#4) had the output be delivered to an LCD, which ours was adjusted to go to an external speakers. In addition, the major component was a “Guwoops” light sensor which helped to make the conversion.
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.
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.
WS2812B Neopixels were used for this project. These LEDs contain an IC that allows for each LED to be individually addressable. This is ideal for showing the volume of each individual frequency band by turning on additional LEDs as volume increases.
The MSGEQ7 chip is a CMOS IC that is essential for audio equalization. Using an audio input, the chip splits the frequency spectrum into a set of 7 frequency bands. After the passband filters divide the spectrum into the seven bands, peak detectors establish the DC values that will be passed when a multiplexed band is selected. The DC output is then sent to the microcontroller through IC pin 3.
The bands are read by reading the lowest frequency band and passing a DC value to the microcontroller. The chip Strobes and the next frequency band is read on the rising edge. This is continued until all 7 bands have been read. The chip is then Reset.
To build the circuit, the msgeq7 datasheet revealed the supporting resistors and capacitors needed externally to use the chip. This simply consisted of a filtering capacitors and current limiting resistors placed throughout the circuit. Below is a capture taken straight from the msgeq7 datasheet. It contains the suggested hardware implementation for utilizing the chip.
After creating the schematic, each pin was referenced to a specific pin on an Arduino Uno. This microcontroller has the same microprocessor and pinout, but also has much more open-source support. Below is the schematic our team created for tying the msgeq7 chip circuitry into an arduino uno pinout to match the Xplained Mini board.
To create the printed circuit board (PCB) layout, Upverter.com contained a library with an Arduino Uno body with correctly placed headers. This allowed for the msgeq7 circuitry to be placed onto the forked Uno layout. The final result is an equalizer shield for an Arduino Uno that has stereo inputs. The top copper of the single sided PCB was poured to connect a common ground for the schematic. This allowed for maximum heat dissipation as well as fewer traces to map. Below is the PCB layout our team created for our equalization board. This allows the user to use this board as a shield for the Xplained Mini or an Arduino Uno.
When coming up with the design of the piano, we wanted to be able to cover one octave of naturals, the white keys on a piano, and be able to change the octave that is being played, as a standard piano has seven. As such, we would need eight pushbuttons to serve as our keys and either a seven or eight position rotary switch to be able to change the octave. LEDs were also implemented after the switches to show the user which tone is played from the buzzer.
The switch and LED series was created by putting 5V on one leg of the switch and a 220Ω resistor on the opposite corner. This resistor is then in series with the anode of the LED and a wire connecting to the ATMega328P board. Another 220Ω resistor is placed between the cathode of the LED and connected to ground. The configuration of the LED is key as current can only flow from the anode to the cathode of a diode. In the initial design, there was not a resistor between the cathode and ground. The LED would light up, but a sound would not consistently come from the buzzer. Placing the second resistor resulted in a tone being played every time the button was pressed. The LED also served to let us know when the tone would be played. The signal that the board receives from pressing the button is a square wave with either a value of 1 or 0. The LED is on when the value is 1 and off when it is 0, the speaker plays the tone during the falling edge of the wave. In other words, when the wave drops from 1 to 0, the proper tone is played. These are all plugged into pins PD0-PD7.
The transistor is needed to control when the solenoid retracts from lock into unlock. 12 Volt 1.25 A power supply required because the specific solenoid used operates with 12 Volt 1 A. The 12 key keypad uses up seven pins and connected to PortD. DDRD was set to receive input from 12 key keypad and outputs on pin connected to transistor and for servo rotations, PortA and Port B set to output.
The fundamental principle behind the laser harp is that a laser shines on a photoresistor making the resistance in the photoresistor close to 0 ohm, and when the a finger is blocking the laser from making contact with the photoresistor, the resistance goes to almost 200k ohm. By using the photoresistors as pulldown resistors in parallel with another set of resistors, the voltage divider rule can be applied to determine what the voltage values will be when the laser is broken. High and low voltages can be sent to the Atmega328p to determine when to play a note.
Continue reading Laser Harp – Schematic
Schematic representing SIMON deep neural network used to categorize images:
Schematic and picture of SIMON Xplained Mini board and LCD display module in final configuration:
Flowchart diagram for high-level SIMON product description:
Here we have our circuit schematic for our project. Initially designed by Evan McManus and drawn in AutoCAD 2019 by Brian Popham.
And here is a picture of the project:
To give a brief explanation of the project, we are using two SN76489AN PSGs (Programmable Sound Generators) to output 6 square waves channels, and two noise channels, which is driven by an independent Crystal Oscillator. We are using the Arduino based Teensy 3.5 board to receive native USB MIDI events. Our code is set to handle these events when they occur, such as Note On or Note Off, and will then interpret the messages, translate them into data the PSGs can read, and then output them to the PSGs. This is then handled by the PSGs, which then sends audio data to a 3.5 mm jack with bridged audio connections.
Still with us? If so, congrats!
You survived! Hope you enjoy our project!