Indholdsfortegnelse:

MIDI Sonar "Theremin": 10 trin (med billeder)
MIDI Sonar "Theremin": 10 trin (med billeder)

Video: MIDI Sonar "Theremin": 10 trin (med billeder)

Video: MIDI Sonar
Video: I Built a MIDI THEREMIN! Theremidi - A DIY Arduino MIDI Controller 2024, November
Anonim
MIDI ekkolod
MIDI ekkolod

Dette er et musikinstrument, der bruger to sonarafstandssensorer til at styre tonehøjden og kvaliteten af noterne. Det er naturligvis ikke en Theremin, men "Theremin" er blevet det generiske udtryk for instrumenter, der spilles ved at vinke dine hænder rundt.

Den har en indbygget MIDI-synthesizer, forstærker og højttalere. Musiknoterne er produceret af en MIDI -chip - VS1053 - som har 127 stemmer (dvs. angiveligt forskellige instrumenter). Den har en høj grad af polyfoni (op til 64), så den kan spille enkeltnoter eller akkorder.

Din højre hånd styrer den note, der spilles. I "diskret" tilstand er rummet til højre opdelt i "skraldespande". Når din hånd kommer ind i en skraldespand, starter sedlen til denne bakke. Når du forlader skraldespanden, kan noten stoppe (f.eks. Et orgel) eller dø naturligt (f.eks. Et klaver).

I "kontinuerlig" tilstand bestemmer rummet til højre en kontinuerligt variabel tonehøjde - ligesom den originale Theremin. Noten starter, når din hånd kommer ind i rummet og stopper, når du forlader rummet.

Din venstre hånd styrer kvaliteten af den note, der spilles. Det kan styre lydstyrken, tremolo, vibrato, pitch-bend, rumklang osv.

En lille LCD -skærm har en menu, der giver dig mulighed for at vælge det aktuelle instrument, funktionen på venstre hånd, skalaen (eller "nøglen") på den højre hånd, vibrato, tremolo osv. Du kan gemme og indlæse forskellige "opsætninger "og skift hurtigt mellem dem under en forestilling.

Hele MIDI "Theremin" -instrumentet fungerer enkeltstående med sin egen højttaler og genopladelige batteri.

Hvis du vil kopiere min build, skal du bruge en Arduino Nano (£ 1,50), et VS1053-modul (£ 4,50), et 1,44 ST7735 LCD-display (£ 3,50), to HC-SR04-moduler (£ 1 hver) og et par modstande. Du skal også bruge nogle drevne højttalere og måske en litiumcelle og en PSU, men detaljerne vil afhænge af, hvordan du beslutter dig for at bygge den. Jeg har alle de ekstra ting fra bil-boot-salg og velgørende butikker. Plus dig skal bruge det sædvanlige elektroniske værkstedsudstyr.

Trin 1: Styring af VS1053

Styring af VS1053
Styring af VS1053
Styring af VS1053
Styring af VS1053

Jeg valgte VS1053 -modulet vist på billedet. (Bemærk de to SOT223 -regulatorer, de to jackstik og stikets placering.) Søg på eBay, Alibaba eller din foretrukne leverandør efter et VS1053 -modul, der ser sådan ud. De fås hos Aliexpress her og her.

Jeg købte den for et par år siden, og den ser ikke længere ud til at være tilgængelig på eBay, kun på Alibaba. En rød PCB -version er nu tilgængelig på eBay. Det ser ud til at være funktionelt identisk, men pinout er anderledes, så du skal justere mine skemaer og layout. Jeg har ikke testet det. I diskussionen (herunder) kan du finde instruktioner om, hvordan du tilføjer en modstand til det røde printkort for at aktivere "live" MIDI. Eller du kan sende yderligere kommandoer under opsætningen for at aktivere det.

VS1053 er en fin chip, men ret kompliceret. Jeg bruger kun MIDI -delen af det. Det er muligt at styre VS1053 over et serielt interface, men jeg bruger SPI -bussen, da det er mere bekvemt med en Arduino Nano. Enhver byte, du sender over SPI -bussen, behandles som en MIDI -kommando.

Du finder lister over MIDI -kommandoer på internettet. VS1053 reagerer på nogle, men ikke dem alle. Miditheremin0.exe -programmet viser dem, som jeg ved fungerer.

Du kan downloade VS1053 -databladet fra internettet. Det er et kæmpe dokument og er hårdt gået. Afsnit "8.9 Understøttede MIDI -formater" er næsten alt, hvad det siger om MIDI. Afsnit "10.10 Real-Time MIDI" taler om at bruge GPIO0 og GPIO1 til at aktivere MIDI, men det board jeg ikke har krævet nogen særlig aktivering. Du kan også downloade en liste over MIDI -meddelelser (ikke alle understøttes af VS1053).

Led VS1053 -modulet til en Arduino Nano som vist, og upload INO -filen til Arduino. Jeg brugte et loddefrit brødbræt. Jeg har ikke et foto af det på dette tidspunkt, men du kan se brødbrættet med andre komponenter i et trin nedenfor.

INO -skitsen modtager en byte fra pc'en over serielinjen og sender byten til VS1053. Det er et meget enkelt program, som giver dig mulighed for at teste VS1053. Slut output -jackstikket til hovedtelefoner eller en computerhøjttaler.

Windows Miditheremin0.exe -programmet (download Step1.zip fra github) sender kommandoer til VS1053. Klik på knappen "90 note vel" for at afspille en note. Eller du kan skrive dit eget Windows -program. Eller brug et af de mange terminalprogrammer, der er tilgængelige på internettet.

VS1053 -modulet har følgende stifter:

  • SPI -bussen har den sædvanlige MISO, MOSI og SCLK
  • hvis XRST er lav, nulstilles chippen
  • XDCS gør ikke noget i SPI -tilstand, så bind det til XCS
  • XCS er Chip Select
  • DREQ fortæller dig, hvornår chippen er klar til en ny kommando.

XCS bør sættes lavt, mens du sender en byte; derefter høj. På den måde er du sikker på, at du har synkroniseret den første bit af hver byte. Læsning af DREQ fortæller dig, at chippen er klar til at modtage en ny kommando.

Efter at Arduino sender en byte, skal den sende en dummy -byte for at skifte uret og tillade VS1053 at sende en byte tilbage som svar. Funktionen SPItransfer () viser dig hvordan.

Det røde modul, der findes på eBay, indeholder en SD -kortplads, så det har et par ekstra pins. Ignorer dem.

Nu er du sikker på, at du kan få VS1053 til at fungere, vi vil gøre den til mere af et musikinstrument.

Trin 2: Brug af ekkoloddet

Brug af ekkolod
Brug af ekkolod
Brug af ekkolod
Brug af ekkolod

Led HC-SR04-modulerne til Arduino Nano som vist, og upload INO-filen til Arduino.

Bemærk i skematikken, at DC3 - afkoblingskondensatoren til HC -SR04 -modulerne - skal tilsluttes tæt på HC -SR04 -modulerne. De tager en del strøm, når de sender, hvilken DC3 hjælper med at levere.

I denne fase af projektet sender Windows-pc'en stadig kommandoer til VS1053, men VS1053 styres også af sonarsensorerne HC-SR04 (download Step2.zip fra github).

De nye kommandoer starter alle med 0xFF og fortolkes af Arduino -skitsen (frem for at blive sendt direkte til VS1053). Ikke "FF-kommando" -bytes sendes til VS1053.

Der er kommandoer til at ændre instrumentet, ændre skalaen, tilføje vibrato og tremolo osv. Programmet kan køres i "diskret" tilstand, hvor der er separate toner (som et klaver) eller i "kontinuerlig" tilstand, hvor en enkelt tone er bøjet op og ned (som en theremin).

Det gør ret godt alt det sidste instrument vil gøre, men det styres af en pc.

Den højre HC-SR04 ekkolodssensor vælger tonehøjden, der spilles. I "diskret" tilstand er rummet til højre opdelt i "skraldespande". Når din hånd kommer ind i en skraldespand, starter sedlen til denne bakke. Når du forlader skraldespanden, kan noten stoppe (f.eks. Et orgel) eller dø naturligt (f.eks. Et klaver). Når din hånd kommer ind i en skraldespand, udvider skraldespanden sig en smule, så du ikke bliver rystet ved kanten.

Funktionen GetSonar () returnerer den tid, der har taget, indtil det første ekko. Det ignorerer meget hurtige ekkoer (varighed <10), som HC-SR04 undertiden rapporterer. Hvis der ikke er modtaget noget ekko ved maxDuration, returnerer det maxDuration. Varigheden måles ikke i bestemte enheder - det er bare et tal.

I diskret tilstand filtreres varigheden først for at fjerne lejlighedsvise frafald (når der ikke modtages ekko). Hånden antages kun at være til stede, efter at 10 prøver af maxDuration er modtaget. Derefter filtreres varigheden ved hjælp af et medianfilter. Medianfiltre er gode til at fjerne "impulsiv" støj (dvs. lejlighedsvise pigge). Den filtrerede varighed bruges til at vælge en beholder.

I kontinuerlig tilstand filtreres varigheden igen for at fjerne lejlighedsvise frafald. Derefter udjævnes det ved hjælp af et eksponentielt filter. Den filtrerede varighed bruges til at indstille notens frekvens ved hjælp af "pitch bend".

Trin 3: Tilføjelse af en skærm

Tilføjelse af en skærm
Tilføjelse af en skærm
Tilføjelse af en skærm
Tilføjelse af en skærm
Tilføjelse af en skærm
Tilføjelse af en skærm

Displayet er en 1,44 farve TFT LCD-skærm med en ST7735-controller, 128x128 pixels. Der er masser af skærme tilgængelige på eBay, for eksempel foretrækker du måske at udvikle dit instrument med en større berøringsskærm. Jeg havde ikke brugt ST7735 controller og ville prøve det.

Jeg fik min fra denne leverandør. Det samme modul sælges bredt på eBay - få bare et, der ligner billedet.

LCD'et har følgende pins:

  • GND jord
  • VCC 3.3V
  • SCL SPI bus SCLK
  • SDA SPI bus MOSI fra Arduino
  • RES nulstillet
  • DC data/kommando
  • Vælg CS -chip
  • BL baglygte

Modulet kører på 3,3V, så du bør ikke slutte det direkte til din 5V Arduino. Jeg har brugt 1k modstande til at tabe spændingen. Det er ikke god praksis (generelt bør man bruge en potentialdeler eller en spændingsdropper-chip), men fungerer perfekt godt i dette kredsløb. Jeg var doven.

Skærmen er drevet af 3,3V fra Arduino. Arduino -regulatoren virker glad nok.

Adafruit udgiver meget venligt et ST7735 -bibliotek, og flere andre biblioteker er tilgængelige i Github og andre steder. Jeg prøvede et par stykker og kunne ikke lide nogen af dem. Nogle virkede simpelthen ikke, og alle var enorme. Du skriver en Arduino -skitse, der tegner en streg og noget tekst, og du finder din hukommelse, hvis den er 75% fuld. Så jeg skrev mit eget bibliotek.

SimpleST7735 -biblioteket kan downloades (download Step3.zip fra github).

Det har et standardsæt med tegningskommandoer, der ligner alle sådanne biblioteker.

Nogle af de "hurtige" biblioteker, du kan downloade, bruger særlige timing loops og er kede af det, når andre, måske langsommere, enheder bruges på den samme bus. SimpleST7735 er skrevet i C frem for assembler, så det er ikke helt så hurtigt, som det kunne være, men er meget mere bærbart, og det deler SPI -bussen høfligt med andre enheder. Et Windows -program kan downloades, så du kan lave dine egne skrifttyper og ikoner.

Du kan downloade ST7735 -databladet fra internettet. Du taler til det ved

  • sæt CS lavt
  • sæt DC lavt
  • sende en kommandobyte
  • sæt DC højt
  • sende nul eller flere databyte
  • sæt CS højt

Du kan se, hvordan jeg gør det i funktionen spiSend_TFT_CW () i biblioteket. Databyte kan være en hel række pixels eller en indstilling til et kontrolregister.

Funktionen ST7735Begin () i biblioteket viser dig det initialiserings kommandosæt, jeg har valgt. Du vil måske ændre kommandoerne, hvis du vælger en anden ST7735 -skærm (f.eks. Med flere pixels) eller ønsker en anden retning. Jeg håber, at min kode er let for dig at se, hvordan du ændrer, hvis du har brug for det.

Skematisk viser en betjeningsknap "SW1" og en fodpedal SW2 ". Betjeningsknappen vælger forskellige" Opsætninger "(se næste trin) eller vælger menutilstand. Fodpedalen er valgfri og vælger kun forskellige opsætninger - det gjorde jeg ikke monterede selv en fodpedal. Opsætninger er nyttige under en forestilling, når du hurtigt vil skifte nøgle eller ændre instrumentet.

Trin 4: Menusystemet

Menusystemet
Menusystemet
Menusystemet
Menusystemet

Denne Miditheremin3.ino Arduino -skitse tilføjer et menusystem til MIDI Theremin og styrer det endelige komplette instrument.

MIDI Theremin kører normalt i "Play" -tilstand. Din højre hånd vælger, hvilken seddel og din venstre hånd styrer notens kvalitet. LCD'et viser et klavertastatur med den aktuelle note markeret.

Hvis du holder kontrolknappen nede i et sekund, går programmet i tilstanden "Menu". I menutilstand, hvis du holder kontrolknappen nede i et sekund, vender programmet tilbage til "Afspil" -tilstand.

Menuen har en træstruktur med hovedelementer og underpunkter. Det aktuelle menupunkt er fremhævet. Du flytter markeringen op/ned via venstre ekkolod. Undermenuerne for et større element udvides kun, når hovedelementet er valgt.

Efter at have valgt en undermenu, når du klikker på knappen, fremhæves værdien af det pågældende element. Den venstre hånd øger eller formindsker nu værdien. Klik på knappen igen for at gå tilbage til valg af undermenuer.

I diskret tilstand er menutræet

  • Instrument

    • 0: Flygel
    • Skift hænder: normal
  • Højre hånd

    Tilstand: diskret

  • Venstre hånd

    • Tilstand: Vibrato
    • Maksimal dybde: 10
  • vægt

    • Skala: større Heptatonisk
    • Oktaver: 2
    • Laveste note: 60 C
  • Akkord

    • Akkord: Major triade
    • Inversion: 0
    • Polyfoni: 1
  • Tremolo

    • Størrelse: 20
    • Periode: 10
  • Vibrato

    • Størrelse: 20
    • Periode: 10

Instrumentet kan være "flygel", "kirkeorgel", "violin" osv. Der er 127 instrumenter i VS1053, hvoraf mange lyder identiske, og mange er fjollede som "skud". Undermenuen Swap Hands giver dig mulighed for at skifte funktioner i venstre og højre hånd - måske foretrækker du det på den måde, eller måske vil du have højttalerne til at vende publikum.

Den højre hånd kan være "Diskret" eller "Kontinuerlig". Se menuen "kontinuerlig" nedenfor.

Venstre hånd kan styre "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" eller "ChordSize".

"Volumen" er indlysende. "Tremolo" er en hurtig variation i volumen; venstre hånd styrer variationen; perioden indstilles med et andet menupunkt. "Vibrato" er en hurtig variation i tonehøjde; venstre hånd styrer variationens størrelse; perioden indstilles med et andet menupunkt. "PitchBendUp" og "PitchBendDown" ændrer tonehøjden for den note, der spilles; venstre hånd styrer bøjningens størrelse. "Reverb" er ret imponerende i VS1053; venstre hånd styrer rumklangens størrelse. "Polyfoni" styrer, hvor mange toner der spilles på én gang op til det maksimum, der er angivet af menuen Polyfoni (se nedenfor). "ChordSize" betyder, at venstre hånd styrer, hvor mange toner af en akkord (se nedenfor) der spilles.

I musik er en "skala" eller "nøgle" den delmængde af noter, du bruger. For eksempel, hvis du begrænsede dig til den heptatoniske skala i C -dur, ville du kun spille klaverets hvide toner. Hvis du valgte C# Major Pentatonic, ville du bare bruge de sorte toner (f.eks. Til skotske folkemelodier).

Menuen Skala vælger, hvilke noter det højre mellemrum svarer til, og hvor mange oktaver det højre mellemrum dækker. Så hvis du vælger 1 oktav E Major, er højre rum opdelt i 8 bakker med E ved den laveste tonehøjde og E en oktav over ved den højeste tonehøjde.

Skala-menuen giver dig mulighed for at vælge en masse usædvanlige "ikke-vestlige musik" -skalaer, men det går ud fra, at alle noterne er fra det jævnt tempererede tastatur-sådan fungerer MIDI, du kan ikke let angive frekvensen af en note. Så hvis du ville sige den arabiske kvarttonetone, ville du have problemer.

Undermenuen Oktaver giver dig mulighed for at vælge, hvor mange oktaver af skalaen du vil have. Og den laveste note siger, hvor skalaen starter.

Normalt når der spilles en note, lyder kun den note. Chord -menuen giver dig mulighed for at spille flere noter på én gang. En Major Triad -akkord betyder 'spil den valgte note plus noten fire halvtoner højere plus noten syv halvtoner højere'.

Undermenuen Inversion giver dig akkordinversioner. Det betyder, at det flytter nogle af noterne i akkorden til en oktav nedenfor. Den første inversion flytter alle de "ekstra" toner ned en oktav, den anden inversion flytter en færre af de ekstra toner ned osv.

Undermenuen Polyfoni siger, hvor mange toner der spilles på én gang; hvis polyfoni er 1, så stopper den forrige, når en note starter; hvis polyfoni er større, kan flere noter overlappe hinanden - prøv det med kirkeorglet.

Tremolo -menuen angiver dybden af enhver tremolo og perioden for tremolo -cyklussen. En periode på "100" betyder en cyklus i sekundet. Hvis venstre hånd styrer tremolo, er undermenuen Størrelse skjult.

Menuen Vibrato angiver størrelsen på enhver vibrato og perioden for vibrato -cyklussen. Hvis venstre hånd styrer vibrato, er undermenuen Størrelse skjult.

Programmet giver dig mulighed for at gemme og indlæse op til 5 forskellige "opsætninger". En opsætning gemmer alle de værdier, du kan angive i menuen. Når du forlader menutilstand, gemmes den aktuelle opsætning. Opsætning gemmes i EEPROM.

I afspilningstilstand skifter klik på knappen til den næste opsætning. Hvis du holder knappen inde i et sekund, vises menuen. Et tryk på fodpedalen skifter også til den næste opsætning; fodpedalen vælger aldrig menuen.

I kontinuerlig tilstand er menutræet

  • Instrument

    • 0: Flygel
    • Skift hænder: normal
  • Højre hånd

    Tilstand: kontinuerlig

  • Rækkevidde

    • Antal halvtoner: 12
    • Mellemnote: 60 C
  • Venstre hånd

    • Tilstand: Tremolo
    • Maksimal dybde: 10
  • Tremolo

    • Størrelse: 20
    • Periode: 10
  • Vibrato

    • Størrelse: 20
    • Periode 10

Menuen Område vælger, hvilket frekvensområde, højre-hånden angiver: antallet af dækkede halvtoner og midternoten.

Venstre hånd kan kun styre "Volume", "Tremolo" og "Vibrato".

Trin 5: Lodning sammen

Lodning sammen
Lodning sammen
Lodning sammen
Lodning sammen
Lodning sammen
Lodning sammen

Jeg byggede kredsløbet på stripboard. Jeg kan ikke se pointen i at få lavet et printkort til en engangssats med kun 4 modstande, men jeg er klar over, at nogle mennesker ikke kan lide stripboard.

Mit stripboard layout er vist ovenfor. De fire tavler - Arduino, VS1053, display og stripboard - danner en sandwich. I layoutet er omridset af Arduino gul, VS1053 er blå, displayet er grønt og tavlen er orange.

De cyan linjer er kobberstrimlerne på tavlen - sørg for at sætte pauser ind, hvor det er nødvendigt. De røde linjer er links på komponentsiden af båndet eller ledninger, der går andre steder.

Jeg brugte ekstra lange stifter til VS1053-kortet, fordi det står over Arduino. Stifter i de fjerneste hjørner af displayet og VS1053 -plader hjælper med at stabilisere dem. Monteringshullerne på modulerne er belagt, så du kan lodde dem. Sørg for, at din ikke er forbundet til jorden - monteringshullerne på mine moduler er ikke.

Hvis du har et andet VS1053 -modul eller et andet display, kan du ændre Arduino -benene:

  • D2 til D10 og A0 til A5 kan bruges i enhver rækkefølge, du kan lide; opdater pin -numrene nær starten af INO -skitsen
  • D11, D12, D13 er dedikeret til SPI og kan ikke tildeles igen
  • D0, D1 er dedikeret til seriel I/O
  • A6, A7 kan ikke bruges som digitale ben

HC-SR04 modulerne er 90 ° til hinanden forbundet med et stykke stripboard. Trykknappen er mellem dem. Du vil uden tvivl have dit eget foretrukne design.

Hvis du beslutter dig for at have en fodpedal, skal du tilslutte den via en stikdåse.

Trin 6: Tilføjelse af en PSU

Tilføjelse af en PSU
Tilføjelse af en PSU
Tilføjelse af en PSU
Tilføjelse af en PSU
Tilføjelse af en PSU
Tilføjelse af en PSU

Jeg målte den samlede strøm af Arduino, VS1053 og viste som 79mA. Ifølge databladene er Arduino 20mA, displayet er 25mA, VS1053 er 11mA og HC -SR04 er 15mA hver, når de "arbejder" - så 80mA ser ud til at være rigtigt.

Skærmen tager 25mA og drives af 3V3 -udgangen på Arduino, der er klassificeret til at give 50mA. Så kredsløbet bør ikke stresse Arduinos 3V3 -regulator.

Kan vi drive kredsløbet gennem Arduino's Vin pin? Det kan jeg ikke finde svaret på nogen steder på nettet. Det er ikke i Arduino -dokumentationen. Den indbyggede 5V-regulator forsvinder (Vin-5)*80 mW. Hvad er dens maksimale spredning? Det ser ud til, at ingen rigtig ved det. Ifølge databladet kan NCP1117-regulatoren i en SOT-223-pakke med et minimum af kobberpude sprede 650mW. Så for en 80mA strøm,

  • Vin Power
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

For at være sikker, formoder jeg, at vi ikke bør overstige 9V på Vin.

En ekstern 5V PSU ville være langt sikrere, men jeg brugte Arduino's regulator, og det er fint.

For at drive kredsløbet valgte jeg et modul, der kombinerer en LI-ion oplader og en boost PSU. De er bredt tilgængelige på eBay eller søg efter "Li Charger Boost".

Opladeren bruger en TC4056 -chip, der har en kompliceret konstant strøm og konstant spændingsalgoritme. Når du fjerner USB -strømindgangen, går den i standbytilstand med et batteridrænse på mindre end 2uA. TC4056 har et input til temperaturmåling, men det er ikke tilgængeligt på modulkortet (stiften er jordet).

Boostkredsløbet er angiveligt 87-91% effektivt over det normale batterispændingsområde med en udgangsstrøm på 50-300mA. (Jeg målte det ikke selv.) Det er ret godt.

Imidlertid er dens "standby" -strøm, når du fjerner belastningen, 0,3 mA, hvilket er ringe. En 300mAH celle ville blive tømt på 6 uger. Måske ville det blive drænet indtil videre, dets spænding ville falde til et skadeligt niveau.

Der er et enkelt spor, der forbinder batteriet med boost -PSU'en. Du kan nemt skære sporet (se foto). Lod en ledning på den store modstand øverst, så du kan bygge bro over snittet via en switch.

Strømmen er nu 0,7uA med brættet, jeg testede. Så cellen vil vare 50 år-ja, selvfølgelig ikke, selvudladningen af en Li-ion-celle er omkring 3% om måneden. 3% om måneden for en 300mAH celle er en strøm på 13uA. Sammenlign det med 300uA, boost -kredsløbet tager. Jeg tror, det er værd at slukke for boostkredsløbet.

Du bør ikke tænde for belastningen, når cellen oplades. Strømmen trukket af belastningen vil forvirre opladningsalgoritmen.

Så du har brug for en 2-polet omskifterkontakt (f.eks. En glidekontakt), som enten er i "On" eller "Charge" position.

Du kan ignorere det indbyggede USB-stik og lodde separate ledninger til kontakten og dit eget USB-stik.

Eller du kan beholde den indbyggede stikkontakt og afbryde forbindelsen mellem stikket og chippen. Diagrammet ovenfor viser, hvor der skal klippes.

Tilslut 5V -udgangen fra boost -PSU'en til 5V -stiften på Arduino. Folk siger "gør ikke det - du omgår Arduino's beskyttelsesdiode". Men Nano har ikke en pin tilsluttet USB -siden af dioden. Tilslut bare til 5V pin. Hvad er det værste, der kan ske? Du mister en Nano, der kostede under £ 3.

PSU -kredsløbet skal også drive forstærkeren til højttalerne.

Trin 7: Tilføjelse af højttalere

Tilføjelse af højttalere
Tilføjelse af højttalere

Jeg ville have MIDI Theremin til at være bærbar. Det skal indeholde sine egne højttalere og forstærker.

Du kan bygge din egen forstærker eller købe et forstærkermodul, derefter købe højttalere og lægge dem i en kasse. Men hvad er meningen? I min techno-midden har jeg et halvt dusin drevne højttalere, som jeg har købt fra velgørenhedsbutikker og bil-boot-salg alt for under £ 1 hver.

De lyseblå højttalere brugte kun 30mA ved 5V, men har et dårligt basrespons. Den sorte radio er en flot form - jeg kan forestille mig at montere HC -SR04 -modulerne i hjørnerne og displayet på den øverste overflade. De grå "fladskærme" er drevet fra en USB -stik, hvilket er ideelt.

Med lidt søgning bør du finde drevne højttalere, der allerede har et godt kabinet. Sørg for, at de kører ved spændingen på din strømforsyning. Hvis den drives af fire AA -celler, fungerer den sandsynligvis OK ved 5V.

Men jeg gravede længere ind i techno-midten og fandt en meget flot dockingstation, jeg fik ved en "alt for £ 0,50" bod. Den havde mistet sin oplader og IR -fjernbetjening, men fungerer godt.

Hvis du er fast besluttet på at bygge dine egne højttalere, er der her en god instruks. Eller søg Instructables efter PAM8403 eller forstærker.

Trin 8: Dockingstation

Dockingstation
Dockingstation
Dockingstation
Dockingstation
Dockingstation
Dockingstation
Dockingstation
Dockingstation

Dette er en meget flot Logitech bærbar dockingstation. Det er usandsynligt, at du får det samme, men konstruktionsprincipperne vil være de samme.

Dockingstationen indeholder sin egen genopladelige Li-ion-celle og boost-PSU. (Hvis din ikke gør det, skal du bygge PSU'en beskrevet ovenfor og springe de næste par afsnit over.)

Hvis din forstærker har en Li-ion-celle, har den sandsynligvis en boost-PSU. (Spændingen af den enkelte Li-ion-celle er uhensigtsmæssigt lav, så det skal øges.)

Find først forbindelserne til strømmen til forstærkeren. PSU'en vil have store udjævningskondensatorer - se billedet af uønsket printkort. Mål spændingen ved deres loddepuder på undersiden. Den negative pude skal være kredsløbets "jordede" pude. Hvis printkortet er blevet oversvømmet, vil det blive formalet. Eller jorden kan være en tyk bane, der går mange steder på brættet.

Der kan være store kondensatorer på forstærkerens outputfase - det er den gammeldags måde at gøre det på. Mål spændingen på tværs af dem, mens den virker. Det vil sandsynligvis variere afhængigt af musikken og kan gennemsnitligt være halvdelen af spændingen på strømforsyningskondensatorerne. Det er de forkerte kondensatorer - du vil have dem i PSU'en.

Det er meget usandsynligt, at brættet vil have både positiv og negativ effekt (store stereo -forstærkere gør, men jeg har aldrig set en let sådan). Sørg for, at du virkelig har valgt jord og positiv magt.

Logitech -dockingstationen, jeg bruger, har komplicerede digitale kredsløb samt den analoge forstærker. Hvis din er sådan, vil den have udjævningskondensatorer til 5V eller 3.3V plus måske 9V til forstærkeren. Mål spændingerne på tværs af alle de store kondensatorer og vælg den største spænding.

Sørg for, at spændingen i den strømforbindelse, du har valgt, afhænger af tænd/sluk -kontakten. (Når du slukker kontakten, kan spændingen tage et stykke tid at falde, når kondensatoren tømmes.)

Loddekabler til det, du har valgt som din strømkilde. Logitech docking station producerer omkring 9V, som vil forbinde pænt til Vin pin på Arduino.

Dine højttalere eller dockingstation skal have et 3,5 mm stik til lydindgang. En af loddefugerne bliver slebet - sandsynligvis den, der er nærmest kanten af brættet. Brug en ohm-måler til at kontrollere, at den er forbundet med det, du tror er jorden. Med nogle lydindgange er jackets "skjold" ikke forbundet direkte til jorden. Det flyder. Så hvis ingen af jackstifterne er formalet, skal du ikke bekymre dig i øjeblikket. ("Skjoldet" på stikket på VS1053 -modulet flyder også.)

Brug en måler til at kontrollere, at stikket "jordet" er på samme spænding som strømforsyningens jord.

Logitech -dockingstationen var underlig. Hvis jeg sluttede "jorden" af Logitech -jackstikket til "jorden" på VS1053 -kortet (ved hjælp af et lydkabel fungerede det fint, men strømmen til mit Theremin -system gik op fra 80mA til over 200mA. Så jeg sørgede for Jeg forbandt ikke de to "grunde". Det fungerer godt, men jeg aner ikke, hvad der foregik.

Trin 9: Lav en sag

At lave en sag
At lave en sag
At lave en sag
At lave en sag
At lave en sag
At lave en sag
At lave en sag
At lave en sag

Hvilken sag du laver, afhænger af de materialer, du skal have i hånden, hvad du nyder at arbejde med og de højttalere, du har valgt. Uanset hvad du laver, skal sonerne pege væk fra hinanden og op ved 45 °. Så vil der være displayskærmen og trykknappen.

Hvis du har kigget på mine andre Instuctables, ved du, at jeg er en stor fan af blik. Den kan bukkes i form, blødloddes og males. Billederne viser, hvordan jeg arrangerede tingene.

Den øverste trekant er bukket, loddet, fyldt, glattet og malet. PCB'erne er varmlimet i trekanten og har små træskiver til at fungere som afstandsstykker.

"Frontpanelet" er 1 mm polystyrenark. Afstande er fremstillet af mere polystyrenplade, og selvskærende skruer holder strippladen på plads. Træstøtter varmlimes ind i hulrummet foran på dockingstationen, og pcb'erne skrues på dem med lange selvskærende skruer.

Jeg formoder, at jeg kunne have 3D-printet noget, men jeg foretrækker old-school-metoderne, hvor jeg kan justere tingene, mens jeg går. At lave ting er en opdagelsesrejse frem for "teknik".

Trin 10: Fremtidig udvikling

Fremtidig udvikling
Fremtidig udvikling

Hvordan kunne du udvikle instrumentet yderligere? Du kan ændre brugergrænsefladen. Du kan udskifte knappen med en IR -afstandssensor, så du slet ikke behøver at røre ved instrumentet. Eller måske bruge en berøringsskærm frem for en knap og venstre for at styre menuen.

Skala-menuen giver dig mulighed for at vælge "ikke-vestlig musik" -skalaer, men det forudsætter, at alle toner er fra det jævnhærdede tastatur-sådan fungerer MIDI. Andre skalaer er ikke relateret til et jævnt tempereret tastatur på nogen måde. Det kan være muligt at bruge pitch-bend til at producere sådanne noter. Du skal bruge en eller anden måde for menuen til at angive frekvensen af hver note. Jeg tror, at pitch bend kan gælde alle noterne i kanalen. Jeg bruger i øjeblikket kun en kanal - kanal 0. Så hvis den er polyfonisk eller har akkorder, skal du spille hver note i en anden kanal.

Instrumentet kan blive en trommesynthesizer. Den venstre hånd kan bestemme tonehøjden for en Melodic Tom, mens den højre ekkolod er udskiftet med en piezosensor, som du slår for at lyde på tromlen.

De to hænder kunne styre to forskellige instrumenter.

Venstre hånd kunne vælge et instrument.

Cirka halvvejs gennem dette projekt opdagede jeg Altura MkII Theremin MIDI Controller af Zeppelin Design Labs. Det ligner et fint instrument.

De har et par videoer, som er meget værd at se:

(Jeg stjal ordet "skraldespande" fra Altura og tanken om, at en skraldespand udvider sig, når du går ind i det for at hjælpe dig med at blive i det.)

Min MIDI Theremin adskiller sig fra Altura på få måder. Mine producerer sin egen lyd med sin indbyggede MIDI-synth, forstærker osv.; Altura sender beskeder til en ekstern synth. Du foretrækker måske deres måde at gøre det på. Min har en TFT -skærm frem for en 7 -segment skærm - det er helt sikkert bedre, men du tror måske, at en større skærm ville være en forbedring. Mine bruger menuer til at konfigurere parametrene, mens deres bruger knapper. Menuer er påkrævet, fordi min har brug for mange kontrolelementer til inputenheden (sonarerne) og synthen; Altura har brug for færre kontroller. Måske er knapper bedre under en live optræden. Måske skulle mine have knapper. En knap til valg af opsætninger kan være god.

Altura har en "Articulation" kontrol, der angiver, hvor hurtigt noter kan spilles. Jeg har ikke inkluderet det i min software - måske skulle det være der. Altura har en Arpeggiator (trin sequencer). Det er en god ide; min har akkorder, der ikke er det samme.

Så det er det. Jeg håber du nyder at bygge og bruge en MIDI-Theremin. Lad mig vide, hvis du finder fejl i min beskrivelse, eller hvis du kan tænke på forbedringer.

Anbefalede: