We planned to use the I2C interface to serve as a means of communication for each candle. Two data lines are used: a clock line and and data line. These two line are shared with every device including the master and slave boards. The master board can request to write or read data to each slave board. The signal consists of multiple sets of two bytes of date. The first seven bits in the first byte is the address of the slave board that is being addressed. The last bit is signaling whether it is requesting for the following data to be written or read. The second byte is the data the master is trying send. If the slave successfully received the data bit then it will send an acknowledgment bit to the master board.
We ran in to difficulties trying to simultaneously interface with P and PB variant boards because they require different address name schemes.
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.
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!