Satura rādītājs:

Digitizēt dziesmu ar Arduino: 6 soļi
Digitizēt dziesmu ar Arduino: 6 soļi

Video: Digitizēt dziesmu ar Arduino: 6 soļi

Video: Digitizēt dziesmu ar Arduino: 6 soļi
Video: It Became Unliveable! ~ Abandoned Home Of The Spenser's In The USA 2024, Novembris
Anonim
Digitalizējiet dziesmu ar Arduino
Digitalizējiet dziesmu ar Arduino

Es gribēju izveidot projektu, kurā apvienoti divi mani iecienītākie priekšmeti: zinātne un mūzika. Es domāju par visiem veidiem, kā apvienot šos divus domēnus, un, manuprāt, būtu interesanti izveidot Arduino lugu Kažokāda Elīze, vienlaikus parādot notis Hertz. Tagad sāksim būvēt!

Jums būs nepieciešams viens Arduino Uno vai Mega, daudz džemperu kabeļu, Piezo skaņas signāls, maizes dēlis, 16*2 LCD ekrāns ar visām stikla tīrītāja tapām un 10k potenciometrs (jūs varat arī dzirdēt, ka tos sauc par potmetriem)). Vislabāk ir savākt visus šos krājumus pirms būvniecības uzsākšanas.

1. darbība. Pārveidojiet mūzikas punktu skaitu digitālās piezīmēs: aizkavēšanās vērtības

Konvertējiet mūzikas punktu skaitu digitālās piezīmēs: aizkavēšanās vērtības
Konvertējiet mūzikas punktu skaitu digitālās piezīmēs: aizkavēšanās vērtības

Ir divi soļi, lai digitāli pārrakstītu piezīmi no partitūras digitālajā ekvivalentā. Pirmkārt, mums būs jāraksta piezīmes ilgums milisekundēs. Šim uzdevumam izmantoju tiešsaistē atrastu diagrammu. Pamatojoties uz to, vai piezīme bija puse, ceturtā, astotā, utt., Es noraksta garumu pārrakstīju milisekundēs. Jūs varat redzēt šos numurus manā kodā kā aizkavi (); funkcija un skaitlis iekavās būs aizkaves vērtība milisekundēs, ko mēs noteicām šajā solī.

2. darbība. Pārveidojiet mūzikas punktu skaitu par digitālām piezīmēm: herca vērtībām

Konvertējiet mūzikas partitūru digitālajās piezīmēs: herca vērtības
Konvertējiet mūzikas partitūru digitālajās piezīmēs: herca vērtības

Pirms sākt šo darbību, ļaujiet man definēt dažus tehniskus terminus. Piezīmes "vērtību" var aizstāt ar vārdiem "piķis", "vērtība" un "piezīme". Tagad jums ir jāizlasa katra dziesmas notis no partitūras. Pēc tam katra piezīme būs jātulko hercos, izmantojot mūziku Hertz tabulā, kuru varat viegli atrast tiešsaistē. Viena lieta, kas jāatceras, ir tā, ka vidējā C uz galda ir norādīta kā C4, un oktāva augstāka ir C5 utt. Kad visas piezīmes ir pārrakstītas hercos, vērtības tiks ievietotas funkcijas tonī (x, y, z); kur X ir pin numurs vai const int, veids, kā definēt mainīgos, ko es paskaidrošu vēlāk. Y būs Herca vērtība, kuru tikko pārrakstījāt, un Z būs piezīmes ilgums milisekundēs, noapaļojot līdz tuvākajai simtdaļai. Aizkavēšanās(); vērtības būs piezīmes ilgums. Tagad izstrādāsim ķēdi, kas var atskaņot mūziku.

3. solis: shēmas dizains

Ķēdes dizains
Ķēdes dizains

Tagad, kad visas piezīmes esam pārvērtušas digitālās vērtībās, kuras dators var saprast, ir pienācis laiks izveidot ķēdi. Vispirms paņemiet maizes dēli un novietojiet LCD ekrānu ar pirmo tapu (GND) 14. rindā. Novietojiet skaņas signālu jebkurā vietā un novietojiet potenciometru blakus. Mērķis ir visu sakārtot, samazināt vadu pārblīvēšanu. Novietojiet Arduino pie maizes dēļa un pievienojiet 5v tapu pie maizes dēļa pozitīvās sliedes, bet zemējuma tapu - pie negatīvās sliedes. Tagad mēs esam gatavi savienot džemperus starp Arduino un komponentiem.

Tagad parunāsim par tapām LCD ekrānā un to vadu pievienošanu.

GND apzīmē zemi, tas ir negatīvais vads līdzstrāvā. Pievienojiet GND pie maizes dēļa negatīvās sliedes.

VCC apzīmē spriegumu pie kopējā kolektora, un šeit jūs pievienojat savu 5 voltu barošanas avotu (pozitīvās barošanas sliedi).

VO apzīmē kontrastu, pievienojiet to potenciometra vidējai tapai. Pievienojiet potenciometra kreiso tapu pie pozitīvās barošanas sliedes un labo tapu pie zemes strāvas sliedes.

RS apzīmē reģistra izvēli, un Arduino to izmanto, lai displejā norādītu, kur glabāt datus. Savienojiet šo tapu ar Arduino 12. tapu.

RW apzīmē lasīšanas/rakstīšanas tapu, ko Arduino izmanto, lai pārbaudītu, vai ekrāns parāda to, ko esat ieprogrammējis parādīt. Pievienojiet šo tapu maizes dēļa negatīvajai sliedei.

E apzīmē Enable (Iespējot), kas LCD paziņo, kurus pikseļus iespējot (ieslēgt) vai atspējot (izslēgt). Pievienojiet šo tapu Arduino tapai 11.

D4, D5, D6 un D7 ir displeja tapas, kas kontrolē parādāmās rakstzīmes un burtus. Pievienojiet tos attiecīgi Arduino tapām 5, 4, 3 un 2.

Pin A, dažreiz apzīmēts ar LED, ir fona apgaismojuma LED anods. Pievienojiet to pozitīvās barošanas sliedei ar vadu vai ar 220 omu rezistoru. Rezistors ir labāks ilgākai lietošanai, jo tas ietaupa LCD, bet, ja ierīce netiks izmantota dienu un nakti, rezistors nav vajadzīgs.

Pin K, dažreiz arī (mulsinoši) apzīmēts LED, ir LED zemējuma tapa. Pievienojiet to zemes strāvas sliedei.

4. darbība: koda augšupielāde: pamācības

Pievienojiet Arduino datora USB. Augšupielādējiet šādu kodu, izmantojot Arduino IDE programmētāju.

#iekļaut

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

void setup () {

// iestatiet LCD kolonnu un rindu skaitu: lcd.begin (16, 2); // Izdrukājiet ziņojumu LCD. lcd.print ("Herca piķis:!"); kavēšanās (1000); void loop () {// atskaņot e4 aizkavi (600); // pauze uz 0,6 sekundēm signāls (10, 329,63, 300); // atskaņot e ar skaņas signālu 10. tapā, pēdējais - 3 sekundes lcd.print (" 329.63 "); // parādīt ziņojumu LCD" 329.63"

aizkave (350); // aizkavēšanās par 0,35 sekundēm

lcd.clear (); // notīrīt LCD un atiestatīt nākamo ziņojumu // atskaņot d4# signālu (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (350); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (350); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (350); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (350); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,66, 300); lcd.print ("293,66"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 900); lcd.print ("220.0"); kavēšanās (1000); lcd.clear (); // line60 // helpave // avrdude.failure.eeprom // atskaņot d3 toni (10, 146,83, 300); lcd.print ("146,63"); kavēšanās (350); lcd.clear (); // atskaņot f3 toni (10, 174,61, 300); lcd.print ("174,61"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 300); lcd.print ("220"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 900); lcd.print ("246,94"); kavēšanās (1000); lcd.clear ();

// spēlēt e3

tonis (10, 164,81, 300); lcd.print ("164,81"); kavēšanās (400); lcd.clear (); // play g3# tone (10, 207,65, 300); lcd.print ("207,65"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 900); lcd.print ("261.63"); kavēšanās (1000); lcd.clear (); // play e tone (10, 164,81, 300); lcd.print ("164,81"); kavēšanās (400); lcd.clear (); // atskaņot e4 toni (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (400); lcd.clear (); // atskaņot e4 toni (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (400); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,66, 300); lcd.print ("293,66"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 900); lcd.print ("220.0"); kavēšanās (1000); lcd.clear (); // atskaņot d3 toni (10, 146,83, 300); lcd.print ("146,83"); kavēšanās (400); lcd.clear (); // atskaņot f3 toni (10, 174,61, 300); // eeprom 20–6 yesno, flash 65–0 noyes lcd.print ("174,61"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 300); lcd.print ("220.0"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 900); lcd.print ("246,94"); kavēšanās (1000); lcd.clear (); // atskaņot f3 toni (10, 174,61, 300); lcd.print ("174,61"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 900); lcd.print ("220.0"); kavēšanās (1000); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,66, 300); lcd.print ("293,66"); kavēšanās (400); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 900); lcd.print ("329,63"); kavēšanās (1000); lcd.clear (); // atskaņot g3 toni (10, 196, 300); lcd.print ("196.0"); kavēšanās (400); lcd.clear (); // atskaņot f4 signālu (10, 349,23, 300); lcd.print ("349,23"); kavēšanās (400); lcd.clear (); // atskaņot e4 signālu (10, 329,23, 300); lcd.print ("329,23"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,63, 900); lcd.print ("293,63"); kavēšanās (1000); lcd.clear (); // atskaņot e3 toni (10, 164,81, 300); lcd.print ("164,81"); kavēšanās (400); lcd.clear (); // atskaņot e4 toni (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot d4 signālu (10, 293,63, 300); lcd.print ("293.63"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 900); lcd.print ("261.63"); kavēšanās (1000); lcd.clear (); // atskaņot d3 toni (10, 146,83, 300); lcd.print ("146,83"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,63, 300); lcd.print ("293.63"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 900); lcd.print ("246,94"); kavēšanās (1000); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (350); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (350); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (350); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (350); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,66, 300); lcd.print ("293,66"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 900); lcd.print ("220.0"); kavēšanās (1000); lcd.clear (); // atskaņot d3 toni (10, 146,83, 300); lcd.print ("146,83"); kavēšanās (350); lcd.clear (); // atskaņot f3 toni (10, 174,61, 300); lcd.print ("174,61"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 300); lcd.print ("220.0"); kavēšanās (400); // atskaņot b3 lcd.clear (); tonis (10, 246,94, 900); lcd.print ("246,94"); kavēšanās (1000); lcd.clear (); // atskaņot e3 toni (10, 164,81, 300); lcd.print ("164,81"); kavēšanās (400); lcd.clear (); // atskaņot g#3 toni (10, 207,65, 300); lcd.print ("207,65"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 900); lcd.print ("261.63"); kavēšanās (1000); kavēšanās (300); lcd.clear (); // atskaņot e3 toni (10, 164,81, 300); lcd.print ("164,81"); kavēšanās (400); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (400); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot d4# toni (10, 311.13, 300); lcd.print ("311.13"); kavēšanās (400); lcd.clear (); // atskaņot e4 signālu (10, 329,63, 300); lcd.print ("329,63"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot d4 toni (10, 293,66, 300); lcd.print ("293,66"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 900); lcd.print ("220.0"); kavēšanās (1000); lcd.clear (); // atskaņot d3 toni (10, 146,83, 300); lcd.print ("146,83"); kavēšanās (400); lcd.clear (); // atskaņot f3 toni (10, 174,61, 300); lcd.print ("174,61"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 300); lcd.print ("220.0"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 900); lcd.print ("246,94"); kavēšanās (1000); lcd.clear (); // atskaņot f3 toni (10, 174,61, 300); lcd.print ("174,61"); kavēšanās (400); lcd.clear (); // atskaņot c4 toni (10, 261,63, 300); lcd.print ("261.63"); kavēšanās (400); lcd.clear (); // atskaņot b3 toni (10, 246,94, 300); lcd.print ("246,94"); kavēšanās (400); lcd.clear (); // atskaņot a3 signālu (10, 220, 900); lcd.print ("220.0"); kavēšanās (1000); lcd.clear (); }

5. darbība: koda augšupielāde: ko tas viss nozīmē?

Definēsim dažas funkcijas angļu valodā, lai jūs varētu saprast kodu.

tonis (x, y, z); = atskaņot signālu ar skaņu y Hercu, līdz skaņas signālam x tapā z milisekundes.

lcd.print ("XYZ"); = izdrukāt LCD ekrānā ziņojumu ar XYZ rakstzīmēm. (piemēram, parādīt Hertz piķi)

kavēšanās (x); = pauze x milisekundēm.

const int X = Y = iestatiet konstantu mainīgo X uz tapu Y un izmantojiet X vai Y, lai piešķirtu ierīcei uzdevumus.

lcd.clear (); = notīriet LCD ekrānu un atiestatiet jaunu displeju

pinMode (X, OUTPUT); = iestatiet tapu X izvades režīmam

Kad esat sapratis visas šīs funkcijas, varat viegli aizstāt mainīgos ar datiem, kurus apkopojat, pārtulkojot dziesmu, un pēc tam varat kodēt savu dziesmu!

6. darbība: pabeigta !

Pabeigts !!!
Pabeigts !!!
Pabeigts !!!
Pabeigts !!!

Jums ir vai nu Arduino, kas spēlē Fur Elise un parāda piezīmju vērtības hercos, vai arī esat izveidojis Arduino, kas atskaņo jūsu izvēlētās dziesmas melodiju un parāda tekstu, kuru vēlaties parādīt. Paldies, ka apmeklējāt šo apmācību, un es ceru, ka jums šis projekts Arduino.

Ieteicams: