Innehållsförteckning:
Video: Arduino Soundlab: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Det är otroligt vad ett brett spektrum av fantastiska ljud kan genereras med FM -syntestekniken, även med en vanlig Arduino. I en tidigare instruerbar illustrerades detta med en synthesizer som hade 12 förprogrammerade ljud, men en tittare föreslog att det skulle vara mycket svalare att ha full kontroll över ljudparametrarna med potentiometrar, och så är det!
I detta ljudlabb kan toner styras av 8 parametrar: 4 för ADSR -kuvertet för ljudstyrkan och 4 för frekvensmoduleringen som bestämmer strukturen.
Tillägget av de 8 potentiometrarna gick inte på bekostnad av antalet nycklar: tre uppsättningar med 8 nycklar avläses några mikrosekunder efter varandra, för totalt 24 nycklar, motsvarande två hela oktaver. Faktum är att två Arduino -stift är oanvända och att expandera till 40 nycklar skulle vara möjligt.
Titta på videon för hur man gör vilda ljud, här är en kort översikt:
* A = attack: tid för en ton att nå sin maximala ljudstyrka (intervall 8ms-2s)
* D = förfall: tid för en ton att sjunka till sin konstanta ljudnivå (intervall 8ms-2s)
* S = Sustain: stadig ljudnivå (intervall 0-100%)
* R = release: tid för en ton att dö ut (intervall 8ms-2s)
* f_m: förhållandet mellan moduleringsfrekvensen och bärvågsfrekvensen (intervall 0,06-16) under 1 resulterar i undertoner, högre värden i övertoner
* beta1: amplituden för FM-moduleringen i början av noten (intervall 0,06-16) resulterar i små variationer i ljudstrukturen. stora värden resulterar i galna ljud
* beta2: amplituden för FM-moduleringen i slutet av noten (intervall 0,06-16) Ge beta2 ett annat värde än beta1 för att få ljudstrukturen att utvecklas i tid.
* tau: hastighet med vilken FM-amplituden utvecklas från beta1 till beta 2 (intervall 8ms-2s) Små värden ger en kort smäll i början av en ton, stora värden en lång och långsam utveckling.
Steg 1: Konstruktion
Det är klart att detta fortfarande är en prototyp, jag hoppas att jag eller någon annan en dag kommer att bygga detta stora och starka och vackra med stora nycklar och riktiga urtavlor för potentiometrarna i ett fantastiskt hölje ….
Komponenter som behövs:
1 Arduino Nano (Det fungerar inte med Uno, som bara har 6 analoga ingångar)
24 tryckknappar
8 potentiometrar, i intervallet 1kOhm - 100kOhm
1 potentiometer på 10 kOhm för volymkontroll
1 kondensator - 10 mikrofarad elektrolit
1 3,5 mm hörlursuttag
1 LM386 ljudförstärkarkrets
2 1000microfarad elektrolitkondensator
1 keramisk 1microfarad kondensator
1 mikrobrytare
1 8 Ohm 2 Watt högtalare
1 10x15cm prototypbräda
Se till att du förstår den bifogade schemat. De 24 knapparna ansluts i 3 grupper om 8, läses ut vid D0-D7 och aktiveras på D8, D10 och D11. Krukorna har +5V och mark på ändkranarna och de centrala kranarna matas till de analoga ingångarna A0-A7. D9 har ljudutgång och blir AC-kopplad till en 10 kOhm potentiometer för volymkontroll. Ljudet kan lyssna direkt med hörlurar eller förstärkas med ett LM386 ljudförstärkarkrets.
Allt passar på ett 10x15cm protoptypskort, men knapparna är för nära för att spela bra, så det är bättre att bygga ett större tangentbord.
Kretsen kan drivas via USB -anslutningen på Arduino Nano, eller med en extern 5V strömförsörjning. En 2xAA batterilåda följt av en stegomvandlare är en perfekt drivande lösning.
Steg 2: Programvara
Ladda upp den bifogade skissen till Arduino Nano och allt borde fungera.
Koden är enkel och enkel att ändra, det finns ingen maskinkod och inga avbrott, men det finns ett par direkta interaktioner med registren, för att interagera med timern, för att påskynda knappavläsningen och för att kontrollera ADC: s beteende för avläsning av potentiometern
Steg 3: Framtida förbättringar
Idéer från samhället är alltid välkomna!
Jag stör mig mest på knapparna: de är små och klickar hårt när de trycks. Det skulle vara riktigt trevligt att ha större knappar som är mer bekväma att trycka på. Knappar för kraft- eller hastighetskänslighet gör det också möjligt att styra tonernas ljudstyrka. Kanske kan 3-vägs tryckknappar eller beröringskänsliga knappar fungera?
Andra trevliga saker skulle vara att lagra ljudinställningar i EEPROM, lagring av korta låtar i EEPROM skulle också göra det möjligt att göra mycket mer intressant musik. Slutligen kan mer komplexa ljud genereras, om någon vet hur man genererar slagverksljud på ett beräkningseffektivt sätt skulle det vara fantastiskt …
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
RC -spårad robot med Arduino - Steg för steg: 3 steg
RC -spårad robot med Arduino - Steg för steg: Hej killar, jag är tillbaka med ett annat häftigt robotchassi från BangGood. Hoppas att du har gått igenom våra tidigare projekt - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot med Robotic Arms och The Badland Braw
DIY Arduino robotarm, steg för steg: 9 steg
DIY Arduino robotarm, steg för steg: Denna handledning lär dig hur du bygger en robotarm själv