Arduino Mario Bros. Theme Song: 4 kroki

Arduino Mario Bros. Theme Song: 4 kroki

Spisu treści:

Anonim

Co w tym projekcie będziemy tworzyć na nowo słynny SUPER MARIO BROS. PIOSENKA PRZEWODNIA!!!! Będziemy to robić za pomocą arduino i piezo - głośnika, baw się dobrze!

Kieszonkowe dzieci:

Krok 1: czego potrzebujesz

Do tego projektu potrzebujesz:

Arduino

Przewody rozruchowe

Zaciski krokodylkowe

Piezo-głośnik arduino

Deska do chleba (opcjonalnie)

Twoja A - GRA

Uwaga: nie będę używał tablicy do chleba w tym projekcie

Krok 2: Konfiguracja

Na twoim arduino przyłączysz jeden koniec jednego ze zworek do D3, a drugi koniec do masy (GND)

Następnie za pomocą zacisków aligatora; przypnij jeden koniec każdego klipu do drugiego końca zworki D3 lub zworki GND

Druga strona zacisku aligatora połączonego z GND zostanie przypięta do prawej strony srebrnej części znajdującej się na dole głośnika (jak widać na dostarczonym obrazku), a druga końcówka D3 - połączonego klipu z lewej strony srebrna część

Następnie podłącz arduino do komputera, otwórz arduino IDE i przygotuj się na kod!

Krok 3: Kodowanie

/*

Arduino Mario Bros Tunes Z Piezo Buzzer i PWM Podłącz dodatnią stronę Buzzer do pin 3, a następnie ujemną stronę do rezystora 1k Ohm. Podłącz drugą stronę rezystora 1 kΩ do masy (GND) styku w Arduino.: Ostatnia aktualizacja Dipto Pratyaksa: 31/3/13 * / / *********************************** ************** * Stałe publiczne ********************************* **************** / #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 # zdefiniuj NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTA # G # 87 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 175 #define NOTE_FS3 185 #define NOTE_G3 196 # define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 33 0 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 #define NOTE_D5 587 #define NOTE_DS5 622 #define 587 #define NOTE_DS5 622 #define 587 #define NOTE_DS5 622 #define NOTE_E5 65_ # NOTE_DS5 6 zdefiniuj NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 NOTE_DS6 1245 #define NOTE_E6 13_define NOTE_DS6 1245 #define NOTE_E6 13_define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define 2489 #define NOTE_E7 2637 #define NOTE_F7 NOTE_E7 2637 #define NOTE_F7 NOTE_E7 2637 #define NOTE89_F7 NOTE_E7 2637 #define NOTE_F7 267 # DEFINE define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 #define NOTE_DS8 4978 #define lodyPin 3 // Mario główny motyw melodia int melodia = {NOTE_E7, NOTE_E7, 0, NOTE_E7, 0, NOTE_C7, NOTE_E7, 0, NOTE_G7, 0, 0, 0, NOTE_G6, 0, 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_G7, 0, NOTE_E7, 0, NOTE_G7, NOTE_D7, NOTE_B6, 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6, 0, 0}; // Mario main them tempo int tempo = {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,}; // Underworld melodia int underworld_melody = {NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_F3 NOTE_DS3, NOTE_DS4, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0, NOTE_DS4, NOTE_CS4, NOTE_D4, NOTE_CS4, NOTE_DS4, NOTE_DS4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4, NOTE_GS4, NOTE_DS4, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_GS3, 0, 0, 0}; // Underwolrd tempo int underworld_tempo = {12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 6, 18, 18, 18, 6, 6, 6, 6, 6, 6, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 3, 3, 3}; void setup (void) {pinMode (3, OUTPUT); // buzzer pinMode (13, OUTPUT); // wskaźnik led podczas śpiewania nuty} void loop () {// zaśpiewaj melodie sing (1); śpiewać (1); śpiewać (2); } int song = 0; void sing (int s) {// iteruj po nutach melodii: song = s; if (song == 2) {Serial.println ("'Underworld Theme'"); int size = sizeof (underworld_melody) / sizeof (int); for (int thisNote = 0; thisNote <size; thisNote ++) {// aby obliczyć czas trwania notatki, weź jedną sekundę // podzieloną przez typ notatki. //na przykład. ćwierćnuta = 1000/4, ósma nuta = 1000/8 itd. int noteDuration = 1000 / underworld_tempo thisNote; buzz (melodyPin, underworld_melody thisNote, noteDuration); // aby rozróżnić nuty, ustaw minimalny czas między nimi. // czas trwania notatki + 30% wydaje się działać dobrze: int pauseBetweenNotes = noteDuration * 1.30; delay (pauseBetweenNotes); // zatrzymaj odtwarzanie dźwięku: buzz (melodyPin, 0, noteDuration); }} else {Serial.println ("'Temat Mario'"); int size = sizeof (melodia) / sizeof (int); for (int thisNote = 0; thisNote <size; thisNote ++) {// aby obliczyć czas trwania notatki, weź jedną sekundę // podzieloną przez typ notatki. //na przykład. ćwierćnuta = 1000/4, ósma nuta = 1000/8 itd. int noteDuration = 1000 / tempo thisNote; buzz (melodyPin, melody thisNote, noteDuration); // aby rozróżnić nuty, ustaw minimalny czas między nimi. // czas trwania notatki + 30% wydaje się działać dobrze: int pauseBetweenNotes = noteDuration * 1.30; delay (pauseBetweenNotes); // zatrzymaj odtwarzanie dźwięku: buzz (melodyPin, 0, noteDuration); }}} void buzz (int targetPin, long frequency, long length) {digitalWrite (13, HIGH); long delayValue = 1000000 / frequency / 2; // obliczyć wartość opóźnienia między przejściami //// wartość 1 sekundy mikrosekund, podzieloną przez częstotliwość, a następnie podzielić na połowę, ponieważ //// istnieją dwie fazy dla każdego cyklu długi numCycles = częstotliwość * długość / 1000; // oblicz liczbę cykli dla właściwego taktowania //// pomnóż częstotliwość, która jest tak naprawdę cyklem na sekundę, o liczbę sekund do //// uzyskaj całkowitą liczbę cykli do wyprodukowania (długi i = 0; <numCycles; i ++) {// dla obliczonego czasu … digitalWrite (targetPin, HIGH); // zapisz szpilkę brzęczyka, aby wypchnąć diaphram delayMicroseconds (delayValue); // poczekaj na obliczoną wartość opóźnienia digitalWrite (targetPin, LOW); // napisz pin buzzer low, aby cofnąć diaphram delayMicroseconds (delayValue); // poczekaj ponownie lub obliczona wartość opóźnienia} digitalWrite (13, LOW); }

Uwaga: w kodzie powyżej dioda LED jest używana, możesz to zrobić, jeśli chcesz

Krok 4: Zakończony !!

Wow, zrobiłeś to !! Daj sobie poklepać po plecach i ciesz się ścieżką dźwiękową Mario