Indholdsfortegnelse:
Video: Arduino Soundlab: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Det er utroligt, hvad en lang række fantastiske lyde kan genereres med FM -synteseteknikken, selv ved hjælp af en almindelig Arduino. I en tidligere instruerbar blev dette illustreret med en synthesizer, der havde 12 forprogrammerede lyde, men en seer foreslog, at det ville være meget køligere at have fuld kontrol over lydparametrene med potentiometre, og det er det også!
I dette lydlaboratorium kan toner styres af 8 parametre: 4 for ADSR -kuvert for lydstyrken og 4 for frekvensmodulationen, der bestemmer teksturen.
Tilføjelsen af de 8 potentiometre gik ikke på bekostning af antallet af taster: tre sæt med 8 taster læses et par mikrosekunder efter hinanden, i alt 24 nøgler, svarende til to hele oktaver. Faktisk er to Arduino -pins ubrugte, og det ville være muligt at udvide til 40 nøgler.
Se på videoen for at lave vilde lyde, her er en kort oversigt:
* A = angreb: tid for en tone at nå sin maksimale lydstyrke (område 8ms-2s)
* D = henfald: tid for en tone til at falde til dens faste lydstyrkeniveau (område 8ms-2s)
* S = sustain: konstant lydstyrke (område 0-100%)
* R = frigivelse: tid for en tone til at dø ud (interval 8ms-2s)
* f_m: forholdet mellem modulationsfrekvensen og bærefrekvensværdierne (område 0,06-16) under 1 resulterer i undertoner, højere værdier i overtoner
* beta1: amplitude af FM-modulationen i begyndelsen af noten (område 0,06-16) små værdier resulterer i mindre variationer af lydtekstur. store værdier resulterer i skøre lyde
* beta2: amplitude af FM-modulationen i slutningen af noten (område 0,06-16) Giv beta2 en anden værdi end beta1 for at få lydtekstur til at udvikle sig i tide.
* tau: hastighed, hvormed FM-amplituden udvikler sig fra beta1 til beta 2 (interval 8ms-2s) Små værdier giver et kort brag i begyndelsen af en note, store værdier en lang og langsom udvikling.
Trin 1: Konstruktion
Det er klart, at dette stadig er en prototype, jeg håber, at jeg eller en anden dag vil bygge denne store og stærke og smukke med store nøgler og ægte urskiver til potentiometrene i et fantastisk kabinet ….
Nødvendige komponenter:
1 Arduino Nano (Det fungerer ikke med Uno, som kun har 6 analoge indgange)
24 trykknapper
8 potentiometre, i området 1kOhm - 100kOhm
1 potentiometer på 10 kOhm til lydstyrkekontrol
1 kondensator - 10microfarad elektrolit
1 3,5 mm øretelefonstik
1 LM386 lydforstærkerchip
2 1000microfarad elektrolitisk kondensator
1 keramisk 1microfarad kondensator
1 mikrokontakt
1 8 Ohm 2 Watt højttaler
1 prototavle på 10 x 15 cm
Sørg for at du forstår vedlagte skemaer. De 24 knapper får forbindelse i 3 grupper på 8, der skal læses op ved D0-D7 og aktiveres på D8, D10 og D11. Gryderne har +5V og jordet på endehanerne, og de centrale vandhaner føres til de analoge indgange A0-A7. D9 har lydudgangen og får AC-kobling til et 10kOhm potentiometer til lydstyrkekontrol. Lyden kan lyttes direkte med øretelefoner eller forstærkes med en LM386 lydforstærkerchip.
Det hele passer på et 10x15cm protoptype -bord, men knapperne er for tætte til at spille godt, så det ville være bedre at konstruere et større keyboard.
Kredsløbet kan drives via USB -forbindelsen på Arduino Nano eller med en ekstern 5V strømforsyning. En 2xAA batteriboks efterfulgt af en step-up converter er en perfekt strømforsyningsløsning.
Trin 2: Software
Upload den vedhæftede skitse til Arduino Nano, og alt burde fungere.
Koden er ligetil og let at ændre, der er ingen maskinkode og ingen afbrydelser, men der er et par direkte interaktioner med registre, for at interagere med timeren, for at fremskynde knappeaflæsning og for at kontrollere ADC's adfærd til udlæsning af potentiometer
Trin 3: Fremtidige forbedringer
Ideer fra samfundet er altid velkomne!
Jeg er mest generet af knapperne: de er små og klikker hårdt, når de skubbes. Det ville være rart at have større knapper, der er mere behagelige at trykke på. Kraft- eller hastighedsfølsomme knapper gør det også muligt at styre tonernes lydstyrke. Måske kunne 3-vejs trykknapper eller berøringsfølsomme knapper fungere?
Andre gode ting ville være at gemme lydindstillinger i EEPROM, gemme korte melodier i EEPROM ville også give mulighed for at lave meget mere interessant musik. Endelig kunne mere komplekse lyde genereres, hvis nogen ved, hvordan man genererer perkussionslyde på en beregningsmæssigt effektiv måde, ville det være fantastisk …
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
RC -sporet robot ved hjælp af Arduino - Trin for trin: 3 trin
RC Tracked Robot Using Arduino - Step by Step: Hey guys, I are back with another cool Robot chassis from BangGood. Håber du har gennemgået vores tidligere projekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot med Robotic Arms og The Badland Braw
DIY Arduino robotarm, trin for trin: 9 trin
DIY Arduino robotarm, trin for trin: Denne vejledning lærer dig, hvordan du bygger en robotarm selv