Robotics/ Programming
For this we were assigned to build a robot to show at our robot art show. We were told that the robot could do anything that we programed it to do. My partner and I programmed our robot to play music while having its lyrics show up and we also had lights flashing at the end of the song. We also programed the robot to continue this on a loop. For our song we chose to play Under the Sea from the Little Mermaid. To build our robot we used a breadboard and a redboard. As we looked through the instructions of how to build different things in an Arduino hand book, we found three different designs that we built together to be able to code the robot to do what we wanted it to do.
To build our robot we used:
- 2 breadboards - 1 redboard - 8 lights( 4 blue, 4 green) - 8 330K resistors - 1 passive buzzer - 50K potentiometer - 1 LCD character display( 16*2) - 1 L293D - ~40 wires Our Code:
const int buzzerPin = 9; //shows which pin the wire connected to the buzzer is in const int songLength1 = 10; //# of notes in the song const int songLength2 = 10; //there are multiple songs so it shows the lyrics first and then the notes that go with those lyrics const int songLength3 = 10; const int songLength4 = 10; const int songLength5 = 9; const int songLength6 = 8; const int songLength7 = 7; const int songLength8 = 2; const int songLength9 = 8; const int songLength10 = 10; const int songLength11 = 6; const int songLength12 = 5; const int songLength13 = 4; const int songLength14 = 9; const int songLength15 = 10; const int songLength16 = 9; const int songLength17 = 2; const int songLength18 = 4; int datapin = 7; //shows which pins the wires for the lights are going into int clockpin = 6; int latchpin = 1; #include <LiquidCrystal.h> //includes a library so we can program the lcd to say the lyrics LiquidCrystal lcd(12,11,5,4,3,2); //shows which pins the lcd is connected to byte data = 0; //shows which notes and how long to play them for each song; lyrics are next to them to clarify char notes1[] = "egCCCgbDCg "; //The seaweed is always greener int beats1[] = {1,1,1,2,2,1,2,2,2,2}; char notes2[] = "cegggcdfe "; //In somebody else's lake int beats2[] = {1,1,1,2,2,1,2,2,2,2}; char notes3[] = "egCCCgbDCg "; //You dream about going up there int beats3[] = {1,1,1,2,2,1,2,2,2,2}; char notes4[] = "cegggcdfe "; //But that is a big mistake int beats4[] = {1,1,1,2,2,1,2,2,2,2}; char notes5[] = " aCCagCgC "; //Just look at the world around you int beats5[] = {2,1,1,1,2,1,1,1,1}; char notes6[] = " DDDCEDC "; //Right here on the ocean floor int beats6[] = {2,1,2,2,1,2,2,3}; char notes7[] = " aCCagC "; //Such wonderful things surround int beats7[] = {2,1,2,2,1,2,2}; char notes8[] = "gC "; //you int beats8[] = {2,2}; char notes9[] = " DDDCEDC "; //What more is you lookin' for? int beats9[] = {2,1,2,2,1,2,2,3}; char notes10[] = " EDCagEDCD "; //Under the sea Under the sea int beats10[] = {3,1,2,1,4,3,1,2,1,4}; char notes11[] = " EDCaf "; //Darling it's better int beats11[] = {3,1,2,1,2,2}; char notes12[] = " EDCag "; //Down where it's wetter int beats12[] = {1,2,1,2,2}; char notes13[] = " EDCE "; //Take it from me int beats13[] = {1,2,1,4}; char notes14[] = " EDCaCCaD "; //Up on the shore they work allday int beats14[] = {3,1,2,1,2,1,2,1,2}; char notes15[] = " DCDEEDEDC "; //Out in the sun they slave away int beats15[] = {3,1,2,1,2,1,2,1,1,1}; char notes16[] = " EDCafEDC "; //While we devotin' full time to int beats16[] = {3,1,2,1,2,2,1,2,1}; char notes17[] = "ag "; //floatin' int beats17[] = {2,2}; char notes18[] = "EDCC "; //Under the sea int beats18[] = {1,2,1,4}; int tempo = 160; //changes how fast or slow the songs play void setup() { //music pinMode(buzzerPin, OUTPUT); //defines which pin the buzzer is connected to { //light pinMode(datapin, OUTPUT); //defines what the pins do pinMode(clockpin, OUTPUT); pinMode(latchpin, OUTPUT); } } void loop() { //main code here; runs repeatedly //song 1 delay(750); //delay for .75 second lcd.begin(16, 2); //start the letters at (16,2) lcd.clear(); //clear whatever was there before lcd.print (" The seaweed is "); //print the words: the seaweed is lcd.setCursor(0,1); //set the invisible cursor to the second row lcd.print (" always greener "); //print the words: always greener int a, duration1; //starts the song for (a = 0; a < songLength1; a++) // step through the song arrays { duration1 = beats1[a] * tempo; // length of note/rest in ms if (notes1[a] == ' ') // if a space is printed { delay(duration1); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency1(notes1[a]), duration1); //tells it which note to play delay(duration1); // wait for tone to finish } delay(tempo/10); //how long it plays the note for } //song 2 lcd.clear(); lcd.setCursor(0,0); lcd.print(" In somebody "); lcd.setCursor(0,1); lcd.print(" else's lake "); int b, duration2; for (b = 0; b < songLength2; b++) // step through the song arrays { duration2 = beats2[b] * tempo; // length of note/rest in ms if (notes2[b] == ' ') // is this a rest? { delay(duration2); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency2(notes2[b]), duration2); delay(duration2); // wait for tone to finish } delay(tempo/10); } //song 3 lcd.clear(); lcd.setCursor(0,0); lcd.print("You dream about "); lcd.setCursor(0,1); lcd.print(" going up there "); int c, duration3; for (c = 0; c < songLength3; c++) // step through the song arrays { duration3 = beats3[c] * tempo; // length of note/rest in ms if (notes3[c] == ' ') // is this a rest? { delay(duration3); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency3(notes3[c]), duration3); delay(duration3); // wait for tone to finish } delay(tempo/10); } //song 4 lcd.clear(); lcd.setCursor(0,0); lcd.print(" But that is a "); lcd.setCursor(0,1); lcd.print(" big mistake "); int d, duration4; for (d = 0; d < songLength4; d++) // step through the song arrays { duration4 = beats4[d] * tempo; // length of note/rest in ms if (notes4[d] == ' ') // is this a rest? { delay(duration4); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency4(notes4[d]), duration4); delay(duration4); // wait for tone to finish } delay(tempo/10); } //song 5 lcd.clear(); lcd.setCursor(0,0); lcd.print("Just look at the"); lcd.setCursor(0,1); lcd.print("world around you"); int e, duration5; for (e = 0; e < songLength5; e++) // step through the song arrays { duration5 = beats5[e] * tempo; // length of note/rest in ms if (notes5[e] == ' ') // is this a rest? { delay(duration5); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency5(notes5[e]), duration5); delay(duration5); // wait for tone to finish } delay(tempo/10); } //song 6 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Right here on "); lcd.setCursor(0,1); lcd.print("the ocean floor "); int f, duration6; for (f = 0; f < songLength6; f++) // step through the song arrays { duration6 = beats6[f] * tempo; // length of note/rest in ms if (notes6[f] == ' ') // is this a rest? { delay(duration6); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency6(notes6[f]), duration6); delay(duration6); // wait for tone to finish } delay(tempo/10); } //song 7 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Such wonderful "); lcd.setCursor(0,1); lcd.print(" things surround"); int g, duration7; for (g = 0; g < songLength7; g++) // step through the song arrays { duration7 = beats7[g] * tempo; // length of note/rest in ms if (notes7[g] == ' ') // is this a rest? { delay(duration7); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency7(notes7[g]), duration7); delay(duration7); // wait for tone to finish } delay(tempo/10); } //song 8 lcd.clear(); lcd.setCursor(0,0); lcd.print(" you "); int h, duration8; for (h = 0; h < songLength8; h++) // step through the song arrays { duration8 = beats8[h] * tempo; // length of note/rest in ms if (notes8[h] == ' ') // is this a rest? { delay(duration8); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency8(notes8[h]), duration8); delay(duration8); // wait for tone to finish } delay(tempo/10); } //song 9 lcd.clear(); lcd.setCursor(0,0); lcd.print("What more is you"); lcd.setCursor(0,1); lcd.print(" lookin' for? "); int i, duration9; for (i = 0; i < songLength9; i++) // step through the song arrays { duration9 = beats9[i] * tempo; // length of note/rest in ms if (notes9[i] == ' ') // is this a rest? { delay(duration9); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency9(notes9[i]), duration9); delay(duration9); // wait for tone to finish } delay(tempo/10); } //song 10 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Under the sea "); lcd.setCursor(0,1); lcd.print(" Under the sea "); int j, duration10; for (j = 0; j < songLength10; j++) // step through the song arrays { duration10 = beats10[j] * tempo; // length of note/rest in ms if (notes10[j] == ' ') // is this a rest? { delay(duration10); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency10(notes10[j]), duration10); delay(duration10); // wait for tone to finish } delay(tempo/10); } //song 11 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Darling it's "); lcd.setCursor(0,1); lcd.print(" better "); int k, duration11; for (k = 0; k < songLength11; k++) // step through the song arrays { duration11 = beats11[k] * tempo; // length of note/rest in ms if (notes11[k] == ' ') // is this a rest? { delay(duration11); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency11(notes11[k]), duration11); delay(duration11); // wait for tone to finish } delay(tempo/10); } //song 12 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Down where "); lcd.setCursor(0,1); lcd.print(" it's wetter "); int l, duration12; for (l = 0; l < songLength12; l++) // step through the song arrays { duration12 = beats12[l] * tempo; // length of note/rest in ms if (notes12[l] == ' ') // is this a rest? { delay(duration12); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency12(notes12[l]), duration12); delay(duration12); // wait for tone to finish } delay(tempo/10); } //song 13 lcd.clear(); lcd.setCursor(0,0); lcd.print("Take it from me "); int m, duration13; for (m = 0; m < songLength13; m++) // step through the song arrays { duration13 = beats13[m] * tempo; // length of note/rest in ms if (notes13[m] == ' ') // is this a rest? { delay(duration13); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency13(notes13[m]), duration13); delay(duration13); // wait for tone to finish } delay(tempo/10); } //song 14 lcd.clear(); lcd.setCursor(0,0); lcd.print("Up on the shore "); lcd.setCursor(0,1); lcd.print("they work allday"); int n, duration14; for (n = 0; n < songLength14; n++) // step through the song arrays { duration14 = beats14[n] * tempo; // length of note/rest in ms if (notes14[n] == ' ') // is this a rest? { delay(duration14); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency14(notes14[n]), duration14); delay(duration14); // wait for tone to finish } delay(tempo/10); } //song 15 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Out in the sun "); lcd.setCursor(0,1); lcd.print("they slave away "); int o, duration15; for (o = 0; o < songLength15; o++) // step through the song arrays { duration15 = beats15[o] * tempo; // length of note/rest in ms if (notes15[o] == ' ') // is this a rest? { delay(duration15); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency15(notes15[o]), duration15); delay(duration15); // wait for tone to finish } delay(tempo/10); } //song 16 lcd.clear(); lcd.setCursor(0,0); lcd.print("While we devotin"); lcd.setCursor(0,1); lcd.print(" full time to "); int p, duration16; for (p = 0; p < songLength16; p++) // step through the song arrays { duration16 = beats16[p] * tempo; // length of note/rest in ms if (notes16[p] == ' ') // is this a rest? { delay(duration16); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency16(notes16[p]), duration16); delay(duration16); // wait for tone to finish } delay(tempo/10); } //song 17 lcd.clear(); lcd.setCursor(0,0); lcd.print(" floatin' "); int q, duration17; for (q = 0; q < songLength17; q++) // step through the song arrays { duration17 = beats17[q] * tempo; // length of note/rest in ms if (notes17[q] == ' ') // is this a rest? { delay(duration17); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency17(notes17[q]), duration17); delay(duration17); // wait for tone to finish } delay(tempo/10); } //song 18 lcd.clear(); lcd.setCursor(0,0); lcd.print(" Under the sea "); delay(750); lcd.clear(); int r, duration18; for (r = 0; r < songLength18; r++) // step through the song arrays { duration18 = beats18[r] * tempo; // length of note/rest in ms if (notes18[r] == ' ') // is this a rest? { delay(duration18); // then pause for a moment } else // otherwise, play the note { tone(buzzerPin, frequency18(notes18[r]), duration18); delay(duration18); // wait for tone to finish } delay(tempo/10); } //lights pingPong(); // lights light up in a back and forth pattern } int frequency1(char note) //what notes can be played for each song { int a; //a is the first song const int numNotes1 = 11; //how many notes are able to be played char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; //the notes that are able to be played int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; //frequency of notes that are able to be played for (a = 0; a < numNotes1; a++) //This for() loop will step index from 0 to 7; putting "++" after a variable means add one to it { if (names[a] == note) //checks which note should be played { return(frequencies[a]); //play the note } } return(0); //go back into main loop } int frequency2(char note) { int b; const int numNotes2 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (b = 0; b < numNotes2; b++) { if (names[b] == note) { return(frequencies[b]); } } return(0); } int frequency3(char note) { int c; const int numNotes3 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (c = 0; c < numNotes3; c++) { if (names[c] == note) { return(frequencies[c]); } } return(0); } int frequency4(char note) { int d; const int numNotes4 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (d = 0; d < numNotes4; d++) { if (names[d] == note) { return(frequencies[d]); } } return(0); } int frequency5(char note) { int e; const int numNotes5 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (e = 0; e < numNotes5; e++) { if (names[e] == note) { return(frequencies[e]); } } return(0); } int frequency6(char note) { int f; const int numNotes6 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (f = 0; f < numNotes6; f++) { if (names[f] == note) { return(frequencies[f]); } } return(0); } int frequency7(char note) { int g; const int numNotes7 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (g = 0; g < numNotes7; g++) { if (names[g] == note) { return(frequencies[g]); } } return(0); } int frequency8(char note) { int h; const int numNotes8 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (h = 0; h < numNotes8; h++) { if (names[h] == note) { return(frequencies[h]); } } return(0); } int frequency9(char note) { int i; const int numNotes9 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (i = 0; i < numNotes9; i++) { if (names[i] == note) { return(frequencies[i]); } } return(0); } int frequency10(char note) { int j; const int numNotes10 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (j = 0; j < numNotes10; j++) { if (names[j] == note) { return(frequencies[j]); } } return(0); } int frequency11(char note) { int k; const int numNotes11 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (k = 0; k < numNotes11; k++) { if (names[k] == note) { return(frequencies[k]); } } return(0); } int frequency12(char note) { int l; const int numNotes12 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (l = 0; l < numNotes12; l++) { if (names[l] == note) { return(frequencies[l]); } } return(0); } int frequency13(char note) { int m; const int numNotes13 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (m = 0; m < numNotes13; m++) { if (names[m] == note) { return(frequencies[m]); } } return(0); } int frequency14(char note) { int n; const int numNotes14 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (n = 0; n < numNotes14; n++) { if (names[n] == note) { return(frequencies[n]); } } return(0); } int frequency15(char note) { int o; const int numNotes15 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (o = 0; o < numNotes15; o++) { if (names[o] == note) { return(frequencies[o]); } } return(0); } int frequency16(char note) { int p; const int numNotes16 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (p = 0; p < numNotes16; p++) { if (names[p] == note) { return(frequencies[p]); } } return(0); } int frequency17(char note) { int q; const int numNotes17 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (q = 0; q < numNotes17; q++) { if (names[q] == note) { return(frequencies[q]); } } return(0); } int frequency18(char note) { int r; const int numNotes18 = 11; char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G'}; int frequencies[] = {131, 147, 165, 175, 196, 220, 247, 262, 294, 330, 349, 392}; for (r = 0; r < numNotes18; r++) { if (names[r] == note) { return(frequencies[r]); } } return(0); } //end of sound //light below void shiftWrite(int desiredPin, boolean desiredState) //sets the icu to turn on LED { bitWrite(data,desiredPin,desiredState); shiftOut(datapin, clockpin, MSBFIRST, data); digitalWrite(latchpin, HIGH); digitalWrite(latchpin, LOW); } void pingPong() //shows how the LEDs light up { int index; //sets up a variable int delayTime = 100; //sets up delay variable for(index = 0; index <= 7; index++) { shiftWrite(index, HIGH); // turn LED on delay(delayTime); // pause to slow down the sequence shiftWrite(index, LOW); // turn LED off } for(index = 7; index >= 0; index--) //turns LEDs on and off in order { shiftWrite(index, HIGH); // turn LED on delay(delayTime); // pause to slow down the sequence shiftWrite(index, LOW); // turn LED off } } |
Concepts
Circuit- A loop of conductive material from positive to negative sides of a power source.
Resistance- A measure of how much the current is slowed or how many obstacles.
Current- "Flow" of electricity through a circuit.
Voltage- Potential energy drop across a component of a circle.
Kirchhoff's Laws: Current Law- The sum of the currents going into a connection much equal the sum of the currents leaving the connection.
Voltage Law- The sum of the voltages around a circuit must equal zero.
Ohm's Law- Voltage= current* resistance (V=IR)
Series Circuit- The total resistance of resistors in series is the sum of the resistors.
Parallel circuit- You add the resistors in a series to get the total resistance.
Voltmeter- An instrument for measuring electric potential in volts
Potentiometer- An instrument for measuring an electromotive force by balancing it against the potential difference produced by passing a known current through a known variable resistance.
Ammeter- An instrument for measuring electric current in amperes.
Power- The rate at which electric power is moved in a circuit.
Electricity- A form of energy resulting from the existence of charged particles.
Voltage- Potential energy drop across a component of a circuit.
Circuit- A loop of conductive material from positive to negative sides of a power source.
Resistance- A measure of how much the current is slowed or how many obstacles.
Current- "Flow" of electricity through a circuit.
Voltage- Potential energy drop across a component of a circle.
Kirchhoff's Laws: Current Law- The sum of the currents going into a connection much equal the sum of the currents leaving the connection.
Voltage Law- The sum of the voltages around a circuit must equal zero.
Ohm's Law- Voltage= current* resistance (V=IR)
Series Circuit- The total resistance of resistors in series is the sum of the resistors.
Parallel circuit- You add the resistors in a series to get the total resistance.
Voltmeter- An instrument for measuring electric potential in volts
Potentiometer- An instrument for measuring an electromotive force by balancing it against the potential difference produced by passing a known current through a known variable resistance.
Ammeter- An instrument for measuring electric current in amperes.
Power- The rate at which electric power is moved in a circuit.
Electricity- A form of energy resulting from the existence of charged particles.
Voltage- Potential energy drop across a component of a circuit.
Reflection
Throughout this project my partner and I reached some challenges. One challenge was getting the right tones to be played by the piazza buzzer. We fixed this problem by changing the frequency of our notes in our code. Another problem we ran into was getting the lyrics to play at the same time as our song. To make this work we decided to break the song into 18 smaller songs. During this project my partner and I did a good job at agreeing on our end product. We also did a good job with finding ways that we could put everything together. On the next project I will try to help my partner more with their work instead of just focusing on my own. During this project I learned what a bread board is and I also learned how to use it. I also learned how to understand code.
Throughout this project my partner and I reached some challenges. One challenge was getting the right tones to be played by the piazza buzzer. We fixed this problem by changing the frequency of our notes in our code. Another problem we ran into was getting the lyrics to play at the same time as our song. To make this work we decided to break the song into 18 smaller songs. During this project my partner and I did a good job at agreeing on our end product. We also did a good job with finding ways that we could put everything together. On the next project I will try to help my partner more with their work instead of just focusing on my own. During this project I learned what a bread board is and I also learned how to use it. I also learned how to understand code.