Obsah:

Digitalizujte pieseň pomocou Arduina: 6 krokov
Digitalizujte pieseň pomocou Arduina: 6 krokov

Video: Digitalizujte pieseň pomocou Arduina: 6 krokov

Video: Digitalizujte pieseň pomocou Arduina: 6 krokov
Video: Массимо Банци: Как Arduino пробуждает воображение 2024, Júl
Anonim
Digitalizujte pieseň pomocou Arduina
Digitalizujte pieseň pomocou Arduina

Chcel som vytvoriť projekt, ktorý by kombinoval dva moje obľúbené predmety: vedu a hudbu. Myslel som na všetky spôsoby, ako by som mohol tieto dve domény skombinovať, a povedal som si, že by bolo zaujímavé vytvoriť Arduino na hranie Fur Elise pri zobrazení výšky tónu v Hertz. Teraz začnime stavať!

Budete potrebovať jeden Arduino Uno alebo Mega, veľa prepojovacích káblov, piezoelektrický bzučiak, nepájivú dosku, obrazovku 16*2 LCD so všetkými stieracími kolíkmi na mieste a 10k potenciometer (môžete ich tiež počuť ako potmetre). Najlepšie je dať všetky tieto zásoby dohromady, než sa pustíme do stavby.

Krok 1: Premeňte hudobné skóre na digitálne poznámky: Hodnoty oneskorenia

Premeňte hudobné skóre na digitálne poznámky: hodnoty oneskorenia
Premeňte hudobné skóre na digitálne poznámky: hodnoty oneskorenia

Existujú dva kroky na digitálny prepis poznámky zo skóre do jej digitálneho ekvivalentu. Najprv budeme musieť napísať čas, počas ktorého poznámka trvá, v milisekundách. Na túto úlohu som použil graf nájdený online. Na základe toho, či bola nota polovičná, štvrtinová, ôsma, atď., Som prepísal dĺžku noty na milisekundy. Tieto čísla v mojom kóde môžete vidieť ako delay (); funkcia a číslo v zátvorkách bude hodnota oneskorenia v milisekundách, ktorú sme určili v tomto kroku.

Krok 2: Premeňte hudobné skóre na digitálne poznámky: Hertzove hodnoty

Premeňte hudobné skóre na digitálne poznámky: Hertzove hodnoty
Premeňte hudobné skóre na digitálne poznámky: Hertzove hodnoty

Pred týmto krokom mi dovoľte definovať niekoľko technických pojmov. „Hodnota“poznámky môže byť zameniteľná so slovami „výška“, „hodnota“a „poznámka“. Teraz musíte prečítať každú notu piesne zo skóre. Potom budete musieť každú notu preložiť do tabuľky Hertz pomocou tabuľky hudby do hry Hertz, ktorú môžete ľahko nájsť online. Jedna vec, ktorú si musíte zapamätať, je, že stredný C je v tabuľke uvedený ako C4 a o oktávu vyššie je C5 atď. Akonáhle sú všetky tieto poznámky prepísané do Hertza, umiestnite hodnoty do funkčného tónu (x, y, z); kde X je číslo PIN alebo const int, spôsob definovania premenných, ktorý vysvetlím neskôr. Y bude hodnota Hertz, ktorú ste práve prepísali, a Z bude trvanie poznámky v milisekundách zaokrúhlené na najbližšiu stotinu. Meškanie(); hodnoty budú trvaním poznámky. Teraz navrhneme obvod, ktorý môže prehrávať hudbu.

Krok 3: Návrh obvodu

Návrh obvodu
Návrh obvodu

Teraz, keď sme všetky poznámky preložili do digitálnych hodnôt, ktorým môže počítač porozumieť, je čas postaviť obvod. Začnite tým, že vezmete nepájivú dosku a umiestnite obrazovku LCD s prvým kolíkom (GND) do radu 14. Bzučiak umiestnite kdekoľvek chcete, a vedľa neho umiestnite potenciometer. Cieľom je zoskupiť všetko tak, aby sa minimalizovalo preplnenie káblov. Umiestnite Arduino vedľa doštičky a 5V kolík pripojte k kladnej lište nepájivej dosky a uzemňovací kolík k zápornej lište. Teraz sme pripravení prepojiť prepojky medzi Arduinom a komponentmi.

Teraz si povedzme o kolíkoch na LCD displeji a o tom, ako ich zapojiť.

GND znamená zem, toto je záporný vodič v jednosmernom prúde. Pripojte GND k zápornej lište nepájivého poľa.

VCC je skratka pre napätie na spoločnom zberači a tu pripojíte svoj 5-voltový zdroj energie (kladná napájacia lišta).

VO je skratka pre kontrast, zapojte ho k strednému kolíku potenciometra. Pripojte ľavý kolík potenciometra k kladnej silovej lište a pravý kolík k uzemňovacej napájacej lište.

RS je skratka pre Register Select a ten Arduino používa na informovanie displeja, kam uložiť údaje. Pripojte tento kolík k pinu 12 na Arduine.

RW znamená pin na čítanie/zápis, ktorý Arduino používa na kontrolu, či obrazovka zobrazuje to, čo ste naprogramovali. Pripojte tento kolík k negatívnej koľajnici na doske.

E znamená Enable, ktorý LCD zobrazuje, ktoré pixely má povoliť (zapnúť) alebo zakázať (vypnúť). Pripojte tento pin k pinu Arduino 11.

D4, D5, D6 a D7 sú kolíky displeja, ktoré ovládajú zobrazené znaky a písmena. Pripojte ich k pinom Arduino 5, 4, 3 a 2.

Pin A, niekedy označovaný ako LED, je dióda LED pre podsvietenie. Pripojte to na kladnú napájaciu lištu pomocou drôtu alebo s 220 ohmovým odporom. Rezistor je lepší na dlhšie používanie, pretože šetrí LCD, ale ak sa zariadenie nebude používať vo dne v noci, nepotrebujete ho.

Pin K, niekedy tiež (mätúco) označený ako LED, je uzemňovací kolík LED. Pripojte to k pozemnej napájacej lište.

Krok 4: Nahranie kódu: Ako na to

Pripojte Arduino k USB portu vášho počítača. Nasledujúci kód nahrajte pomocou programátora Arduino IDE.

#zahrnúť

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

neplatné nastavenie () {

// nastavenie počtu stĺpcov a riadkov na LCD: lcd.begin (16, 2); // Vytlačte správu na LCD. lcd.print ("Hertz Pitch:!"); oneskorenie (1000); void loop () {// prehrávanie s oneskorením e4 (600); // pauza na 0,6 sekundy tón (10, 329,63, 300); // prehranie e na bzučiak na pine 10, naposledy na 0,3 sekundy lcd.print (" 329,63 "); // zobrazí správu na displeji LCD" 329,63"

delay (350); // zdržanie 0,35 sekundy

lcd.clear (); // vymazanie LCD a reset pre nasledujúcu správu // prehranie d4# tónu (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (350); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (350); lcd.clear (); // prehrajte d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (350); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (350); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,66, 300); lcd.print ("293,66"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 900); lcd.print ("220,0"); oneskorenie (1000); lcd.clear (); // line60 // helpsave // avrdude.failure.eeprom // hrať tón d3 (10, 146,83, 300); lcd.print ("146,63"); oneskorenie (350); lcd.clear (); // prehrajte tón f3 (10, 174,61, 300); lcd.print ("174,61"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 300); lcd.print ("220"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 900); lcd.print ("246,94"); oneskorenie (1000); lcd.clear ();

// hraj e3

tón (10, 164,81, 300); lcd.print ("164,81"); oneskorenie (400); lcd.clear (); // hrať g3# tón (10, 207,65, 300); lcd.print ("207,65"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 900); lcd.print ("261,63"); oneskorenie (1000); lcd.clear (); // prehrajte e tón (10, 164,81, 300); lcd.print ("164,81"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // prehrajte d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // prehrajte d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,66, 300); lcd.print ("293,66"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 900); lcd.print ("220,0"); oneskorenie (1000); lcd.clear (); // prehrajte tón d3 (10, 146,83, 300); lcd.print ("146,83"); oneskorenie (400); lcd.clear (); // prehrajte tón f3 (10, 174,61, 300); // eeprom 20–6 yesno, flash 65-0 noy lcd.print ("174,61"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 300); lcd.print ("220,0"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 900); lcd.print ("246,94"); oneskorenie (1000); lcd.clear (); // prehrajte tón f3 (10, 174,61, 300); lcd.print ("174,61"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 900); lcd.print ("220,0"); oneskorenie (1000); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,66, 300); lcd.print ("293,66"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 900); lcd.print ("329,63"); oneskorenie (1000); lcd.clear (); // hrať tón g3 (10, 196, 300); lcd.print ("196,0"); oneskorenie (400); lcd.clear (); // prehrajte tón f4 (10, 349,23, 300); lcd.print ("349,23"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,23, 300); lcd.print ("329,23"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,63, 900); lcd.print ("293,63"); oneskorenie (1000); lcd.clear (); // hrať e3 tón (10, 164,81, 300); lcd.print ("164,81"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,63, 300); lcd.print ("293,63"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 900); lcd.print ("261,63"); oneskorenie (1000); lcd.clear (); // prehrajte tón d3 (10, 146,83, 300); lcd.print ("146,83"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,63, 300); lcd.print ("293,63"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 900); lcd.print ("246,94"); oneskorenie (1000); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // hrať d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (350); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (350); lcd.clear (); // hrať d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (350); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (350); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,66, 300); lcd.print ("293,66"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 900); lcd.print ("220,0"); oneskorenie (1000); lcd.clear (); // prehrajte tón d3 (10, 146,83, 300); lcd.print ("146,83"); oneskorenie (350); lcd.clear (); // prehrajte tón f3 (10, 174,61, 300); lcd.print ("174,61"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 300); lcd.print ("220,0"); oneskorenie (400); // hrať b3 lcd.clear (); tón (10, 246,94, 900); lcd.print ("246,94"); oneskorenie (1000); lcd.clear (); // hrať e3 tón (10, 164,81, 300); lcd.print ("164,81"); oneskorenie (400); lcd.clear (); // prehrajte tón g#3 (10, 207,65, 300); lcd.print ("207,65"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 900); lcd.print ("261,63"); oneskorenie (1000); oneskorenie (300); lcd.clear (); // hrať e3 tón (10, 164,81, 300); lcd.print ("164,81"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // prehrajte d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // prehrajte d4# tón (10, 311,13, 300); lcd.print ("311,13"); oneskorenie (400); lcd.clear (); // hrať e4 tón (10, 329,63, 300); lcd.print ("329,63"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón d4 (10, 293,66, 300); lcd.print ("293,66"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 900); lcd.print ("220,0"); oneskorenie (1000); lcd.clear (); // prehrajte tón d3 (10, 146,83, 300); lcd.print ("146,83"); oneskorenie (400); lcd.clear (); // prehrajte tón f3 (10, 174,61, 300); lcd.print ("174,61"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 300); lcd.print ("220,0"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 900); lcd.print ("246,94"); oneskorenie (1000); lcd.clear (); // prehrajte tón f3 (10, 174,61, 300); lcd.print ("174,61"); oneskorenie (400); lcd.clear (); // prehrajte tón c4 (10, 261,63, 300); lcd.print ("261,63"); oneskorenie (400); lcd.clear (); // hrať b3 tón (10, 246,94, 300); lcd.print ("246,94"); oneskorenie (400); lcd.clear (); // prehrajte tón a3 (10, 220, 900); lcd.print ("220,0"); oneskorenie (1000); lcd.clear (); }

Krok 5: Nahranie kódu: Čo to všetko znamená?

Definujme niektoré funkcie v angličtine, aby ste kódu rozumeli.

tón (x, y, z); = prehrajte tón s výškou y Hertz, na bzučiak na kolíku x, po dobu z milisekúnd.

lcd.print ("XYZ"); = vytlačte správu so znakmi XYZ na LCD obrazovku. (napr. zobraziť výšku Hertz)

oneskorenie (x); = pauza na x milisekúnd.

const int X = Y = nastavte konštantnú premennú X na pin Y a na priradenie úloh zariadeniu použite buď X alebo Y.

lcd.clear (); = vymažte LCD obrazovku a resetujte pre nové zobrazenie

pinMode (X, VÝSTUP); = nastaviť pin X pre režim výstupu

Akonáhle porozumiete všetkým týmto funkciám, môžete ľahko nahradiť premenné údajmi, ktoré zhromažďujete pri preklade piesne, a potom môžete kódovať svoju vlastnú skladbu!

Krok 6: Hotovo !!

Hotovo !!!
Hotovo !!!
Hotovo !!!
Hotovo !!!

Buď máte Arduino, ktoré hrá Fur Elise a zobrazuje hodnoty nôt v Hertzoch, alebo ste vytvorili Arduino, ktoré hrá melódiu zvolenej piesne a zobrazuje text, ktorý ste chceli ukázať. Ďakujem vám za návštevu tohto tutoriálu a dúfam, že vám tento projekt na Arduine.

Odporúča: