Cuprins:
Video: Arduino Soundlab: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Este incredibil ce poate fi generat o gamă largă de sunete uimitoare cu tehnica de sinteză FM, chiar și folosind un Arduino simplu. Într-o instrucțiune anterioară, acest lucru a fost ilustrat cu un sintetizator care avea 12 sunete pre-programate, dar un spectator a sugerat că ar fi mult mai răcoros să ai control deplin al parametrilor de sunet cu potențiometre și așa este!
În acest laborator de sunet, tonurile pot fi controlate de 8 parametri: 4 pentru învelișul ADSR al sonorității și 4 pentru modulația de frecvență care determină textura.
Adăugarea celor 8 potențiometre nu s-a dus la costul numărului de taste: trei seturi de 8 taste sunt citite câteva microsecunde unul după altul, pentru un total de 24 de taste, corespunzător a două octave complete. De fapt, doi pini Arduino sunt neutilizați și ar fi posibilă extinderea la 40 de taste.
Uită-te la videoclip pentru a face sunete sălbatice, iată o scurtă prezentare generală:
* A = atac: timpul pentru ca un ton să atingă intensitatea maximă (interval 8ms-2s)
* D = decadere: timpul pentru ca un ton să coboare la nivelul său constant de intensitate (interval 8ms-2s)
* S = sustain: nivel constant de intensitate (interval 0-100%)
* R = eliberare: timpul pentru ca un ton să dispară (interval 8ms-2s)
* f_m: raportul dintre frecvența modulației și frecvența purtătoarei (intervalul 0,06-16) valori sub 1 rezultă în subtonuri, valori mai mari în supratone
* beta1: amplitudinea modulației FM la începutul notei (interval 0,06-16) valori mici duc la variații minore ale texturii sunetului. valorile mari duc la sunete nebunești
* beta2: amplitudinea modulației FM la sfârșitul notei (interval 0,06-16) Dați beta2 o valoare diferită de beta1 pentru a face ca textura sunetului să evolueze în timp.
* tau: viteza la care amplitudinea FM evoluează de la beta1 la beta 2 (interval 8ms-2s) Valorile mici dau o scurtă lovitură la începutul unei note, valorile mari o evoluție lungă și lentă.
Pasul 1: Construcție
În mod clar, acesta este încă un prototip, sper că într-o zi eu sau altcineva vom construi acest mare și puternic și frumos cu taste mari și cadrane reale pentru potențiometre într-o incintă minunată….
Componente necesare:
1 Arduino Nano (Nu va funcționa cu Uno, care are doar 6 intrări analogice)
24 butoane
8 potențiometre, în intervalul 1kOhm - 100kOhm
1 potențiometru de 10kOhm pentru controlul volumului
1 condensator - 10microfarad electrolitic
1 mufă pentru căști de 3,5 mm
1 cip amplificator audio LM386
2 1000microfarad condensator electrolitic
1 condensator ceramic 1microfarad
1 microîntrerupător
1 difuzor de 8 Ohm 2Watt
1 placa prototip de 10x15cm
Asigurați-vă că înțelegeți schemele atașate. Cele 24 de butoane sunt conectate în 3 grupuri de 8, pentru a fi citite la D0-D7 și pentru a fi activate pe D8, D10 și D11. Ghivecele au + 5V și se împământă la robinetele finale, iar robinetele centrale sunt alimentate la intrările analogice A0-A7. D9 are ieșirea audio și este cuplat în curent alternativ la un potențiometru de 10kOhm pentru controlul volumului. Sunetul poate fi ascultat direct cu căști sau amplificat cu un cip amplificator audio LM386.
Totul se potrivește pe o placă de tip prototip de 10x15cm, dar butoanele sunt prea aproape pentru a se putea juca bine, deci ar fi mai bine să construiți o tastatură mai mare.
Circuitul poate fi alimentat prin conexiunea USB de pe Arduino Nano sau cu o sursă de alimentare externă de 5V. O cutie de baterii 2xAA urmată de un convertor step-up este o soluție perfectă de alimentare.
Pasul 2: Software
Încărcați schița atașată pe Arduino Nano și toate ar trebui să funcționeze.
Codul este direct și ușor de modificat, nu există cod mașină și nu există întreruperi, dar există câteva interacțiuni directe cu registrele, pentru a interacționa cu cronometrul, pentru a accelera citirea butonului și pentru a controla comportamentul ADC pentru citirea potențiometrului
Pasul 3: Îmbunătățiri viitoare
Ideile comunității sunt întotdeauna binevenite!
Mă deranjează cel mai mult butoanele: sunt mici și fac clic puternic când sunt apăsate. Ar fi foarte frumos să ai butoane mai mari, care să fie mai confortabile de apăsat. De asemenea, butoanele sensibile la forță sau viteză ar permite controlul intensității notelor. Poate că butoanele cu 3 căi sau butoanele sensibile la atingere ar putea funcționa?
Alte lucruri frumoase ar fi stocarea setărilor de sunet în EEPROM, stocarea melodiilor scurte în EEPROM ar permite, de asemenea, să faci muzică mult mai interesantă. În cele din urmă, s-ar putea genera sunete mai complexe, dacă cineva știe cum să genereze sunete de percuție într-un mod eficient din punct de vedere al calculului, ar fi minunat …
Recomandat:
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Arduino Halloween Edition - Ecran pop-out Zombies (Pași cu imagini): 6 pași
Ediția Arduino Halloween - Ecran pop-out Zombies (Pași cu imagini): Vrei să-ți sperii prietenii și să faci niște zgomote în Halloween? Sau vrei doar să faci niște farse bune? Acest ecran pop-out Zombies poate face asta! În acest instructabil vă voi învăța cum să creați cu ușurință zombi cu ajutorul Arduino. HC-SR0
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli !: 6 pași
Alimentator de pește Arduino Uno în 6 pași ieftini și simpli! Oamenilor cu pești de companie li s-a prezentat probabil aceeași problemă ca mine: vacanțele și uitarea. Am uitat în permanență să-mi hrănesc peștele și m-am străduit mereu să fac asta înainte să ajungă la s
Levitație acustică cu Arduino Uno pas cu pas (8 pași): 8 pași
Levitație acustică cu Arduino Uno pas cu pas (8 pași): traductoare de sunet cu ultrasunete L298N Sursa de alimentare pentru adaptor femelă DC cu pin DC masculin Arduino UNOBreadboard Cum funcționează: Mai întâi, încărcați codul pe Arduino Uno (este un microcontroler echipat cu sistem digital și porturi analogice pentru a converti codul (C ++)
Sistem de alarmă de incendiu care utilizează Arduino [în câțiva pași simpli]: 3 pași
Sistem de alarmă la incendiu care utilizează Arduino [în câțiva pași simpli]: Căutați să faceți un proiect simplu și interesant cu Arduino care, în același timp, ar putea fi cu adevărat util și potențial salvator de vieți? Dacă da, ați venit la locul potrivit pentru a învăța ceva nou și inovator. În această postare suntem plecați