2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Jedná sa o jednoduchý projekt generátora tónov pomocou Arduino Pro Mini. Časť super hitu „Jimikky Kammal“z filmu „Velipadinte Pusthakam“je vyvinutá monotónne.
Hudobné noty sa v prírode vyskytujú ako hladké a valcujúce sa sínusové vlny. V tomto projekte budeme namiesto hladkých sínusových vĺn produkovať zvuk so štvorcovými vlnami. Štvorcové vlny vydávajú tón, ale sú ostrejšie a kovovejšie ako normálna sínusová vlna. Hudobnú notu je možné vytvoriť generovaním frekvencie. Každá frekvencia má jedinečný tón. Tu sa na vytvorenie tejto frekvencie používa Arduino.
Krok 1: Nastavenie hardvéru
Nastavenie hardvéru je veľmi jednoduché. Na vývoj tohto projektu potrebujeme
- Arduino Pro Mini
- Rečník
- Adaptér FTDI USB na sériový port (na nahrávanie programu do Arduino Pro Mini)
Rozhranie FTDI USB na sériový adaptér na Arduino Pro Mini na programovanie podľa schémy zapojenia. Pripojte jeden kolík reproduktora k digitálnemu kolíku 11 (číslo kolíka môžete zmeniť v programe) Arduino Pro Mini a iného k zemi.
Do tohto obvodu nepridávame žiadny obvod zosilňovača, takže hlasitosť môže byť veľmi nízka. Môžete pridať ľubovoľný obvod zosilňovača zvuku, takže na výstup dostanete veľa zvuku alebo môžete použiť reproduktor PC s nastaviteľným ovládaním hlasitosti.
Krok 2: Vývoj softvéru
Hudobné poznámky je možné vytvárať generovaním oscilácií v Arduine. Frekvencia oscilácie je výška rýchlosti melódie prehrávaných hudobných tónov Beats je obdobie každej prehrávanej melódie. Preto musíme pre každú hudobnú notu urobiť presnú výšku, údery a tempo.
V tomto programe nevygenerujeme všetky frekvencie pre všetky zvuky. Pridá sa iba zvuk požadovaný pre hudbu „Jimikky Kammal“. Frekvencie pre všetky noty sú uvedené nižšie.
impacttechnolabz.com/fd1_jk.html
Tieto frekvencie musíme previesť na časové obdobie, aby Arduino dostalo trvanie na zapnutie a vypnutie digitálneho kolíka. Výpočet tónov sa vykonáva podľa matematickej operácie:
timeHigh = 1 / (2 * toneFrequency) = bodka / 2
napr:
Na generovanie oscilácií 100 Hz, t.j. časové obdobie = 1/100 S = 0,01 S = 10 000 uS
Musíme teda urobiť kolík VYSOKÝ pre 5 000 uS a NÍZKY pre 5 000 us
tj. timeHigh = 1/(2*100)
= 0,005 S
= 5 000 uS
Stiahnite si celý kód
Krok 3: Simulácia
Simuláciu sme vytvorili pomocou softvéru Proteus Proffessional nainštalovaného v systéme Windows PC, takže zvukový výstup je možné v počítači overiť pomocou zvukovej karty. Do Proteusu musíte výslovne pridať knižnicu Arduino.
Krok 4: Kód
Stiahnite si celý kód