Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Tai paprastas tonų generatoriaus projektas naudojant „Arduino Pro Mini“. Filmo „Velipadinte Pusthakam“superhito dainos „Jimikky Kammal“dalis sukurta monotoniškai.
Muzikos natos gamtoje atsiranda kaip lygios ir besisukančios sinusinės bangos. Šiame projekte vietoj lygių sinusinių bangų mes skleisime garsą kvadratinėmis bangomis. Kvadratinės bangos sukuria toną, tačiau jis yra ryškesnis ir metališkesnis nei įprasta sinusinė banga. Muzikinę natą galima sukurti generuojant dažnį. Kiekvienas dažnis turi unikalų toną. Čia „Arduino“naudojamas šiam dažniui sukurti.
1 žingsnis: Aparatūros sąranka
Labai lengva nustatyti aparatūrą. Norėdami sukurti šį projektą, mes reikalaujame
- „Arduino Pro Mini“
- Pranešėjas
- FTDI USB į nuoseklųjį adapterį (norint įkelti programą į „Arduino Pro Mini“)
Sąsaja FTDI USB į nuoseklųjį adapterį prie „Arduino Pro Mini“programavimui, kaip parodyta schemoje. Prijunkite vieną garsiakalbio kaištį prie skaitmeninio „Arduino Pro Mini“kištuko 11 (galite pakeisti PIN kodą programoje) ir kitą - prie žemės.
Šioje grandinėje mes nepridedame jokių stiprintuvo grandinių, todėl garsas gali būti labai mažas. Galite pridėti bet kurią garso stiprintuvo grandinę, todėl išvestyje gausite daug garso arba galite naudoti kompiuterio garsiakalbį su reguliuojamu garsumo valdymu.
2 žingsnis: programinės įrangos kūrimas
Muzikos natas galima sukurti sukuriant svyravimus „Arduino“. Virpesių dažnis yra grojamų muzikos natų melodijos greičio žingsnis Beats yra kiekvienos grojamos melodijos laikotarpis. Taigi, kiekvienai muzikinei natai turime nustatyti tikslų žingsnį, ritmus, tempą.
Šioje programoje mes negeneruojame visų garsų dažnių. Pridedamas tik muzikai „Jimikky Kammal“reikalingas garsas. Visų pastabų dažnis pateiktas žemiau esančioje nuorodoje.
impacttechnolabz.com/fd1_jk.html
Turime konvertuoti šiuos dažnius į tam tikrą laikotarpį, kad „Arduino“gautų skaitmeninio kaiščio įjungimo ir išjungimo trukmę. Tonai apskaičiuojami atlikus matematinę operaciją:
timeHigh = 1 / (2 * toneFrequency) = laikotarpis / 2
pvz.:
Norėdami generuoti 100 Hz virpesius, y. laiko periodas = 1/100 S = 0,01 S = 10000 uS
Taigi, mes turime pagaminti kaištį AUKŠTAS 5000 uS ir žemas 5000 uS
y. laikasHigh = 1/(2*100)
= 0,005 S.
= 5000 JAV
Atsisiųsti pilną kodą
3 žingsnis: modeliavimas
Sukūrėme simuliaciją naudodami „Windows PC“įdiegtą „Proteus Proffessional“programinę įrangą, todėl garso išvestį galima patikrinti asmeniniame kompiuteryje naudojant garso plokštę. Turite aiškiai pridėti „Arduino“biblioteką prie „Proteus“.
4 žingsnis: kodas
Atsisiųsti pilną kodą