Innehållsförteckning:

MIDI -ekolod "Theremin": 10 steg (med bilder)
MIDI -ekolod "Theremin": 10 steg (med bilder)

Video: MIDI -ekolod "Theremin": 10 steg (med bilder)

Video: MIDI -ekolod
Video: Arduino MIDI Theremin 2024, November
Anonim
MIDI -ekolod
MIDI -ekolod

Detta är ett musikinstrument som använder två ekolodsavståndssensorer för att styra tonhöjden och kvaliteten på noterna. Det är verkligen inte en Theremin naturligtvis men "Theremin" har blivit den allmänna termen för instrument som spelas genom att vifta med händerna.

Den har en inbyggd MIDI-synthesizer, förstärkare och högtalare. Musiknoterna produceras av ett MIDI -chip - VS1053 - som har 127 röster (dvs. påstås olika instrument). Den har en hög grad av polyfoni (upp till 64) så att den kan spela enstaka toner eller ackord.

Din högra hand styr noten som spelas. I "diskret" läge är utrymmet till höger uppdelat i "fack". När din hand går in i en papperskorg startar anteckningen för den. När du lämnar papperskorgen kan noten stanna (t.ex. ett orgel) eller dö naturligt (t.ex. ett piano).

I "kontinuerligt" läge bestämmer utrymmet till höger en kontinuerligt variabel tonhöjd - som den ursprungliga Theremin. Anteckningen börjar när din hand kommer in i utrymmet och stannar när du lämnar utrymmet.

Din vänstra hand styr kvaliteten på noten som spelas. Den kan styra volymen, tremolo, vibrato, pitch-bend, reverb, etc.

En liten LCD -skärm har en meny som låter dig välja det aktuella instrumentet, funktionen på vänster hand, skalan (eller "tangenten") på höger hand, vibrato, tremolo, etc. Du kan spara och ladda olika "inställningar "och växla mellan dem snabbt under en föreställning.

Hela MIDI "Theremin" -instrumentet fungerar fristående med sin egen högtalare och uppladdningsbara batteri.

Om du ska kopiera min version behöver du en Arduino Nano (£ 1,50), en VS1053-modul (£ 4,50), en 1,44 ST7735 LCD-skärm (£ 3,50), två HC-SR04-moduler (£ 1 vardera) och några motstånd. Du behöver också några drivna högtalare och kanske en litiumcell och ett nätaggregat, men detaljerna beror på hur du bestämmer dig för att bygga det. Jag har alla dessa tillbehör från bil-boot-försäljning och välgörenhetsbutiker. Plus du behöver den vanliga elektroniska verkstadsutrustningen.

Steg 1: Kontroll av VS1053

Styr VS1053
Styr VS1053
Styr VS1053
Styr VS1053

Jag valde VS1053 -modulen som visas på bilden. (Observera de två SOT223 -regulatorerna, de två uttagen och kontakten.) Sök på eBay, Alibaba eller din favoritleverantör efter en VS1053 -modul som ser ut så. De är tillgängliga från Aliexpress här och här.

Jag köpte den för ett par år sedan och den verkar inte längre vara tillgänglig på eBay, bara på Alibaba. En röd PCB -version är nu tillgänglig på eBay. Det verkar vara funktionellt identiskt men pinout är annorlunda så du måste justera mina scheman och layouter. Jag har inte testat det. I diskussionen (nedan) kan du hitta instruktioner om hur du lägger till ett motstånd i det röda kretskortet för att aktivera "live" MIDI. Eller så kan du skicka ytterligare kommandon under installationen för att aktivera det.

VS1053 är ett fint chip men ganska komplicerat. Jag använder bara MIDI -delen av den. Det är möjligt att styra VS1053 via ett seriellt gränssnitt men jag använder SPI -bussen eftersom det är bekvämare med en Arduino Nano. Varje byte du skickar över SPI -bussen behandlas som ett MIDI -kommando.

Du hittar listor över MIDI -kommandon på webben. VS1053 svarar på vissa men inte alla. Miditheremin0.exe -programmet visar de som jag vet fungerar.

Du kan ladda ner VS1053 -databladet från webben. Det är ett stort dokument och är svårt. Avsnittet "8.9 MIDI -format som stöds" är nästan allt det säger om MIDI. Avsnittet "10.10 Real-Time MIDI" talar om att använda GPIO0 och GPIO1 för att aktivera MIDI men det kort som jag har inte kräver någon speciell aktivering. Du kan också ladda ner en lista över MIDI -meddelanden (som inte alla stöds av VS1053).

Koppla VS1053 -modulen till en Arduino Nano som visas och ladda upp INO -filen till Arduino. Jag använde en lödlös brödbräda. Jag har inte ett foto av det i detta skede men du kan se brödbrädan med andra komponenter i ett steg nedan.

INO -skissen tar emot en byte från datorn över serielinjen och skickar byten till VS1053. Det är ett mycket enkelt program som låter dig testa VS1053. Anslut uttaget till hörlurar eller en datorhögtalare.

Windows Miditheremin0.exe -programmet (ladda ner Step1.zip från github) skickar kommandon till VS1053. Klicka på knappen "90 note vel" för att spela en anteckning. Eller så kan du skriva ditt eget Windows -program. Eller använd ett av de många terminalprogrammen som finns på webben.

VS1053 -modulen har följande stift:

  • SPI -bussen har den vanliga MISO, MOSI och SCLK
  • om XRST är lågt återställs chippet
  • XDCS gör inget i SPI -läge, så knyt det till XCS
  • XCS är Chip Select
  • DREQ berättar när chippet är klart för ett nytt kommando.

XCS bör vara lågt när du skickar en byte; sedan högt. På det sättet är du säker på att du har synkroniserat den första biten i varje byte. Att läsa DREQ berättar att chipet är redo att ta emot ett nytt kommando.

Efter att Arduino skickar en byte måste den skicka en dummybyte för att växla klockan och låta VS1053 skicka en byte tillbaka som svar. Funktionen SPItransfer () visar hur.

Den röda modulen som finns på eBay innehåller en SD -kortplats så att den har ett par extra stift. Ignorera dem.

Nu är du säker på att du kan få VS1053 att fungera, vi kommer att göra det till ett mer musikinstrument.

Steg 2: Använda ekolod

Använda ekolod
Använda ekolod
Använda ekolod
Använda ekolod

Koppla HC-SR04-modulerna till Arduino Nano enligt bilden och ladda upp INO-filen till Arduino.

Notera i schemat att DC3 - avkopplingskondensatorn för HC -SR04 -modulerna - ska anslutas nära HC -SR04 -modulerna. De tar ganska mycket ström när de sänder vilken DC3 hjälper till att leverera.

I detta skede av projektet skickar Windows-datorn fortfarande kommandon till VS1053 men VS1053 styrs också av sonarsensorerna HC-SR04 (ladda ner Step2.zip från github).

De nya kommandona börjar alla med 0xFF och tolkas av Arduino -skissen (snarare än att skickas direkt till VS1053). Icke "FF-kommando" -bytes skickas till VS1053.

Det finns kommandon för att ändra instrument, ändra skala, lägga till vibrato och tremolo, etc. Programmet kan köras i "diskret" läge där det finns separata toner (som ett piano) eller i "kontinuerligt" läge där en enda ton är böjd upp och ner (som en theremin).

Det gör ganska bra allt det sista instrumentet kommer att göra men det styrs av en PC.

Den högra ekolodsgivaren HC-SR04 väljer tonhöjden som spelas. I "diskret" läge är utrymmet till höger uppdelat i "fack". När din hand går in i en papperskorg startar anteckningen för den. När du lämnar papperskorgen kan noten stanna (t.ex. ett orgel) eller dö naturligt (t.ex. ett piano). När din hand kommer in i en papperskorg expanderar papperskorgen något så att du inte blir skakig vid kanten.

Funktionen GetSonar () returnerar tiden det tar innan det första ekot. Den ignorerar mycket snabba ekon (varaktighet <10) som HC-SR04 ibland rapporterar. Om inget eko har tagits emot av maxDuration returnerar det maxDuration. Varaktigheten mäts inte i några specifika enheter - det är bara ett tal.

I diskret läge filtreras varaktigheten först för att ta bort tillfälliga bortfall (när inget eko tas emot). Handen antas vara närvarande först efter att 10 prover av maxDuration har tagits emot. Därefter filtreras varaktigheten med ett medianfilter. Medianfilter är bra på att ta bort "impulsivt" buller (dvs. sporadiska spikar). Den filtrerade varaktigheten används för att välja en behållare.

I kontinuerligt läge filtreras varaktigheten igen för att ta bort tillfälliga bortfall. Sedan utjämnas det med ett exponentiellt filter. Den filtrerade varaktigheten används för att ställa in notens frekvens med "pitch bend".

Steg 3: Lägga till en skärm

Lägga till en skärm
Lägga till en skärm
Lägga till en skärm
Lägga till en skärm
Lägga till en skärm
Lägga till en skärm

Displayen är en 1,44 färg TFT LCD-skärm med en ST7735-kontroller, 128x128 pixlar. Det finns många skärmar tillgängliga på eBay, till exempel kanske du föredrar att utveckla ditt instrument med en större pekskärm. Jag hade inte använt ST7735 controller och ville testa det.

Jag fick min från den här leverantören. Samma modul säljs i stor utsträckning på eBay - skaffa bara en som ser likadan ut som bilden.

LCD -skärmen har följande stift:

  • GND -mark
  • VCC 3.3V
  • SCL SPI -buss SCLK
  • SDA SPI -buss MOSI från Arduino
  • RES återställs
  • DC -data/kommando
  • Välj CS -chip
  • BL bakgrundsbelysning

Modulen körs på 3.3V så att du inte ska ansluta den direkt till din 5V Arduino. Jag har använt 1k motstånd för att tappa spänningen. Det är inte bra praxis (i allmänhet bör man använda en potentialdelare eller ett spänningsdroppchip) men fungerar perfekt i denna krets. Jag var lat.

Skärmen drivs av 3,3V från Arduino. Arduino -regulatorn verkar lycklig nog.

Adafruit publicerar mycket vänligen ett ST7735 -bibliotek och flera andra bibliotek finns i Github och på andra håll. Jag försökte några och tyckte inte om någon av dem. Vissa fungerade helt enkelt och alla var enorma. Du skriver en Arduino -skiss som drar en linje och lite text och du hittar ditt minne om det är 75% fullt. Så jag skrev mitt eget bibliotek.

SimpleST7735 -biblioteket kan laddas ner (ladda ner Step3.zip från github).

Den har en standard uppsättning ritningskommandon som liknar alla sådana bibliotek.

Några av de "snabba" biblioteken du kan ladda ner använder speciella tidsslingor och blir upprörda när andra, kanske långsammare, enheter används på samma buss. SimpleST7735 är skrivet i C snarare än assembler så det är inte riktigt så snabbt som det kan vara men är mycket mer portabelt och det delar SPI -bussen artigt med andra enheter. Ett Windows -program kan laddas ner som låter dig skapa egna teckensnitt och ikoner.

Du kan ladda ner ST7735 -databladet från webben. Du pratar med det

  • sätt CS lågt
  • sätt DC låg
  • skicka en kommandobyte
  • sätt DC högt
  • skicka noll eller fler databyte
  • sätt CS högt

Du kan se hur jag gör det i funktionen spiSend_TFT_CW () i biblioteket. Databyte kan vara en hel rad pixlar eller en inställning för ett kontrollregister.

Funktionen ST7735Begin () i biblioteket visar den initieringskommando som jag har valt. Du kanske vill ändra kommandona om du väljer en annan ST7735 -skärm (t.ex. med fler pixlar) eller vill ha en annan orientering. Jag hoppas att min kod är lätt för dig att se hur du ändrar om du behöver.

Schemat visar en kontrollknapp "SW1" och en fotpedal SW2 ". Kontrollknappen väljer olika" inställningar "(se nästa steg) eller väljer menyläge. Fotpedalen är valfri och väljer bara olika inställningar - det gjorde jag inte monterade själv en fotpedal. Inställningar är användbara under en föreställning när du snabbt vill byta nyckel eller byta instrument.

Steg 4: Menysystemet

Menysystemet
Menysystemet
Menysystemet
Menysystemet

Denna Miditheremin3.ino Arduino -skiss lägger till ett menysystem till MIDI Theremin och styr det slutliga kompletta instrumentet.

MIDI Theremin körs vanligtvis i "Play" -läge. Din högra hand väljer vilken anteckning och din vänstra hand styr anteckningens kvalitet. LCD -skärmen visar ett pianotangentbord med den aktuella noten markerad.

Om du håller kontrollknappen intryckt i en sekund går programmet till "Meny" -läge. I menyläget, om du håller ned kontrollknappen i en sekund, återgår programmet till "Play" -läget.

Menyn har en trädstruktur med stora objekt och underartiklar. Det aktuella menyalternativet är markerat. Du flyttar markeringen uppåt/nedåt via det vänstra ekolodet. Undermenyerna för ett större objekt expanderas bara när huvudobjektet är valt.

Efter att ha valt en undermeny, markeras värdet för det objektet när du klickar på knappen. Vänster hand ökar eller minskar nu värdet. Klicka på knappen igen för att gå tillbaka till att välja undermenyer.

I diskret läge är menyträdet

  • Instrument

    • 0: Flygel
    • Byt händer: normalt
  • Höger hand

    Läge: diskret

  • Vänster hand

    • Läge: Vibrato
    • Max djup: 10
  • Skala
    • Skala: major Heptatonisk
    • Oktaver: 2
    • Lägsta ton: 60 C
  • Ackord

    • Ackord: Major triad
    • Inversion: 0
    • Polyfoni: 1
  • Tremolo

    • Storlek: 20
    • Period: 10
  • Vibrato

    • Storlek: 20
    • Period: 10

Instrumentet kan vara "Grand Piano", "Church Organ", "Violin", etc. Det finns 127 instrument i VS1053, varav många låter identiska och många är dumma som "gunshot". Undermenyn Swap Hands låter dig byta funktioner på vänster och höger hand - kanske föredrar du det på det sättet eller kanske vill du att högtalarna vänder sig mot publiken.

Höger hand kan vara "Diskret" eller "Kontinuerlig". Se nedan för "kontinuerlig" meny.

Vänster hand kan styra "Volym", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" eller "ChordSize".

"Volym" är uppenbart. "Tremolo" är en snabb variation i volym; vänster hand styr storleken på variationen; perioden ställs in med ett annat menyalternativ. "Vibrato" är en snabb variation i tonhöjd; vänster hand styr storleken på variationen; perioden ställs in med ett annat menyalternativ. "PitchBendUp" och "PitchBendDown" ändrar tonhöjden för noten som spelas; vänster hand styr böjningens storlek. "Reverb" är ganska imponerande i VS1053; vänster hand styr storleken på reverb. "Polyfoni" styr hur många toner som spelas samtidigt upp till det maximala som anges av menyn Polyfoni (se nedan). "ChordSize" betyder att vänster hand styr hur många toner av ett ackord (se nedan) som spelas.

I musik är en "skala" eller "nyckel" delmängden av anteckningar som du använder. Till exempel, om du begränsade dig till den heptatoniska skalan i C -dur, skulle du bara spela pianots vita toner. Om du valde C# Major Pentatonic skulle du bara använda de svarta tonerna (t.ex. för skotska folkmusik).

Skala -menyn väljer vilka anteckningar det högra utrymmet motsvarar och hur många oktaver det högra utrymmet täcker. Så om du väljer 1 oktav E -dur är högerutrymmet uppdelat i 8 fack med E vid den lägsta tonhöjden och E en oktav ovan vid den högsta tonhöjden.

Skala-menyn låter dig välja en massa ovanliga "icke-västerländsk musik" -skalor men det förutsätter att alla toner är från det jämnt tempererade tangentbordet-så fungerar MIDI, du kan inte enkelt ange frekvensen för en ton. Så om du ville, säg, den arabiska kvartstonen, skulle du ha problem.

Med undermenyn Octaves kan du välja hur många oktaver av skalan du vill ha. Och den lägsta noten säger var skalan börjar.

Normalt hörs endast den noten när en ton spelas upp. Med ackordmenyn kan du spela flera toner samtidigt. Ett Major Triad -ackord betyder 'spela den valda noten plus noten fyra halvtoner högre, plus noten sju halvtoner högre'.

Undermenyn Inversion ger dig ackordinversioner. Det betyder att det flyttar några av ackordets toner till en oktav nedan. Den första inversionen flyttar alla "extra" noter ner en oktav, den andra inversionen flyttar en färre av de extra tonerna nedåt och så vidare.

Undermenyn Polyfoni säger hur många toner som spelas samtidigt; om polyfoni är 1 så stoppas den förra när en ton börjar; om polyfoni är större kan flera toner överlappa varandra - prova med kyrkans orgel.

Tremolo -menyn anger djupet på varje tremolo och perioden för tremolo -cykeln. En period på "100" betyder en cykel per sekund. Om den vänstra handen styr tremolo är undermenyn Storlek dold.

Vibrato -menyn anger storleken på en vibrato och perioden för vibratocykeln. Om den vänstra handen styr vibrato är undermenyn Storlek dold.

Programmet låter dig spara och ladda upp till 5 olika "inställningar". En inställning lagrar alla värden som du kan ställa in i menyn. När du lämnar menyläget sparas den aktuella inställningen. Inställningar sparas i EEPROM.

I uppspelningsläge, genom att klicka på knappen ändras till nästa inställning. Om du håller knappen intryckt i en sekund visas menyn. Genom att trycka på fotpedalen ändras också till nästa inställning; fotpedalen väljer aldrig menyn.

I Kontinuerligt läge är menyträdet

  • Instrument

    • 0: Flygel
    • Byt händer: normalt
  • Höger hand

    Läge: kontinuerligt

  • Räckvidd

    • Antal halvtoner: 12
    • Mittnot: 60 C
  • Vänster hand

    • Läge: Tremolo
    • Max djup: 10
  • Tremolo

    • Storlek: 20
    • Period: 10
  • Vibrato

    • Storlek: 20
    • Period 10

Menyn Område väljer vilket frekvensintervall som högerhanden anger: antalet täckta halvtoner och mitten.

Vänster hand kan bara styra "Volym", "Tremolo" och "Vibrato".

Steg 5: Lödning tillsammans

Lödning tillsammans
Lödning tillsammans
Lödning tillsammans
Lödning tillsammans
Lödning tillsammans
Lödning tillsammans

Jag byggde kretsen på band. Jag kan inte se poängen med att få ett kretskort för en engångskostnad med bara 4 motstånd men jag inser att vissa människor inte gillar bandplatta.

Min bandplans layout visas ovan. De fyra brädorna - Arduino, VS1053, display och stripboard - bildar en smörgås. I layouten är konturen på Arduino gul, VS1053 är blå, displayen är grön och bandet är orange.

Cyanlinjerna är bandplåtens kopparremsor - se till att du sätter in pauser där det behövs. De röda linjerna är länkar på komponentsidan av bandplattan eller trådar som går någon annanstans.

Jag använde extra långa stift för VS1053-kortet eftersom det står ovanför Arduino. Nålar i displayens bortre hörn och VS1053 -kort hjälper till att stabilisera dem. Monteringshålen på modulerna är pläterade så att du kan löda dem. Se till att din inte är ansluten till jord - monteringshålen på mina moduler är inte.

Om du har en annan VS1053 -modul eller en annan skärm kan du ändra Arduino -stiften:

  • D2 till D10 och A0 till A5 kan användas i vilken ordning du vill; uppdatera stiftnumren nära början av INO -skissen
  • D11, D12, D13 är tillägnade SPI och kan inte tilldelas igen
  • D0, D1 är dedikerade till seriell I/O
  • A6, A7 kan inte användas som digitala stift

HC-SR04-modulerna är 90 ° med varandra anslutna med ett band. Tryckknappen är mellan dem. Du kommer utan tvekan att ha din egen föredragna design.

Om du bestämmer dig för att ha en fotpedal, anslut den via ett uttag.

Steg 6: Lägga till ett PSU

Lägger till ett PSU
Lägger till ett PSU
Lägger till ett PSU
Lägger till ett PSU
Lägger till ett PSU
Lägger till ett PSU

Jag mätte den totala strömmen för Arduino, VS1053 och visade som 79mA. Enligt databladen är Arduino 20mA, displayen är 25mA, VS1053 är 11mA och HC -SR04 är 15mA vardera när "den fungerar" - så 80mA verkar ungefär rätt.

Displayen tar 25mA och drivs från 3V3 -utgången från Arduino som är klassad för att ge 50mA. Så kretsen borde inte stressa Arduinos 3V3 -regulator.

Kan vi driva kretsen genom Arduino's Vin pin? Jag kan inte hitta svaret på det någonstans på webben. Det finns inte i Arduino -dokumentationen. Den inbyggda 5V-regulatorn försvinner (Vin-5)*80 mW. Vad är dess maximala spridning? Det verkar som ingen riktigt vet. Enligt databladet kan NCP1117-regulatorn i ett SOT-223-paket med en minsta kopparkudde släppa ut 650mW. Så för en 80mA ström,

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

För säkerhets skull antar jag att vi inte bör överstiga 9V på Vin.

En extern 5V PSU skulle vara mycket säkrare men jag använde Arduinos regulator och det är bra.

För att driva kretsen valde jag en modul som kombinerar en LI-jonladdare och en boost PSU. De är allmänt tillgängliga på eBay eller sök efter "Li Charger Boost".

Laddaren använder ett TC4056 -chip som har en komplicerad konstant ström och konstant spänningsalgoritm. När du tar bort USB -ingången går den i standbyläge med en batteriladdning på mindre än 2uA. TC4056 har en ingång för temperaturavkänning men den är inte tillgänglig på modulkortet (stiftet är jordat).

Boostkretsen påstås vara 87-91% effektiv över det normala batterispänningsområdet med en utström på 50-300mA. (Jag mätte det inte själv.) Det är ganska bra.

Dock är dess "standby" -ström när du tar bort belastningen 0,3mA vilket är dåligt. En 300mAH cell skulle tömmas på 6 veckor. Kanske skulle det tömmas så långt att dess spänning skulle sjunka till en skadlig nivå.

Det finns ett enda spår som ansluter batteriet till boost PSU. Du kan enkelt klippa spåret (se bild). Löd en tråd på det stora motståndet på toppen så att du kan överbrygga snittet via en omkopplare.

Strömmen är nu 0,7uA med brädet jag testade. Så cellen kommer att hålla 50 år-ja, naturligtvis inte, självurladdningen av en litiumjoncell är cirka 3% per månad. 3% per månad för en 300mAH -cell är en ström på 13uA. Jämför det med 300uA som boostkretsen tar. Jag tror att det är värt att stänga av boostkretsen.

Du bör inte slå på lasten när cellen laddas. Den ström som dras av lasten kommer att förvirra laddningsalgoritmen.

Så du behöver en 2-polig omkopplare (t.ex. en skjutströmbrytare) som antingen är i läge "På" eller "Ladda".

Du kan ignorera det inbyggda USB-uttaget och löda separata ledningar till omkopplaren och ditt eget USB-uttag.

Eller så kan du behålla det inbyggda uttaget och bryta anslutningen mellan uttaget och chipet. Diagrammet ovan visar var du ska klippa.

Anslut 5V -utgången från boost -nätaggregatet till 5V -stiftet på Arduino. Folk säger "gör inte det - du går förbi Arduinos skyddsdiod". Men Nano har inte en stift ansluten till diodens USB -sida. Anslut bara till 5V -stiftet. Vad är det värsta som kan hända? Du förlorar en Nano som kostar under £ 3.

PSU -kretsen måste också driva förstärkaren för högtalarna.

Steg 7: Lägga till högtalare

Lägga till högtalare
Lägga till högtalare

Jag ville att MIDI Theremin skulle vara bärbar. Den ska innehålla egna högtalare och förstärkare.

Du kan bygga din egen förstärkare eller köpa en förstärkarmodul, sedan köpa högtalare och sätta dem i ett fodral. Men vad är poängen? I min techno-mitt har jag ett halvt dussin eldrivna högtalare som jag har köpt från välgörenhetsbutiker och bil-boot-försäljning allt för under £ 1 styck.

De ljusblå högtalarna använde endast 30mA vid 5V men har dålig basrespons. Den svarta radion är en fin form - jag kan tänka mig att montera HC -SR04 -modulerna i hörnen och displayen på ovansidan. De gråa "platta panelerna" drivs från ett USB -uttag vilket är perfekt.

Med lite sökning bör du hitta drivna högtalare som redan har ett bra fodral. Se till att de kommer att fungera med spänningen i din nätaggregat. Om den drivs av fyra AA -celler fungerar den förmodligen OK vid 5V.

Men jag grävde längre in i techno-mitten och hittade en mycket trevlig dockningsstation jag fick vid en "allt för £ 0,50" bås. Den hade tappat laddaren och IR -fjärrkontrollen men fungerar bra.

Om du är fast besluten att bygga dina egna högtalare, här är en bra instruerbar. Eller sök Instructables efter PAM8403 eller förstärkare.

Steg 8: Dockningsstation

Dockningsstation
Dockningsstation
Dockningsstation
Dockningsstation
Dockningsstation
Dockningsstation
Dockningsstation
Dockningsstation

Detta är en mycket trevlig Logitech bärbar dockningsstation. Det är osannolikt att du får en likadan men konstruktionsprinciperna kommer att vara desamma.

Dockningsstationen har sin egen laddningsbara Li-ion-cell och boost-PSU. (Om din inte gör det, bygg sedan den PSU som beskrivs ovan och hoppa över de följande styckena.)

Om din förstärkare har en Li-ion-cell har den förmodligen ett boost-PSU. (Spänningen hos enstaka litiumjonceller är obekvämt låg så behöver förstärkas.)

Hitta först anslutningarna för strömmen till förstärkaren. PSU kommer att ha stora utjämningskondensatorer - se fotot av skräp -kretskortet. Mät spänningen vid deras lödkuddar på undersidan. Den negativa dynan bör vara kretsens "mark" -platta. Om kretskortet har översvämmats kommer det att males. Eller mark kan vara ett tjockt spår som går till många platser på brädet.

Det kan finnas stora kondensatorer på förstärkarens utgångssteg - det är det gammaldags sättet att göra det. Mät spänningen över dem medan den fungerar. Det kommer förmodligen att variera beroende på musiken och kan i genomsnitt halva spänningen på strömförsörjningskondensatorerna. Det är fel kondensatorer - du vill ha dem i PSU.

Det är mycket osannolikt att kortet kommer att ha både positiv och negativ effekt (stora stereoförstärkare gör men jag har aldrig sett en lätt sådan). Se till att du verkligen har valt mark och positiv kraft.

Logitech dockningsstation jag använder har komplicerade digitala kretsar samt den analoga förstärkaren. Om din är så kommer den att ha utjämningskondensatorer för 5V eller 3.3V plus kanske 9V för förstärkaren. Mät spänningarna över alla de stora kondensatorerna och välj den största spänningen.

Se till att spänningen på den strömanslutning du valt beror på på/av -omkopplaren. (När du stänger av strömbrytaren kan spänningen ta ett tag att sjunka när kondensatorn töms.)

Lödkablar till vad du än har valt som din strömkälla. Logitech dockningsstation producerar cirka 9V som kommer att ansluta snyggt till Vin -stiftet på Arduino.

Dina högtalare eller dockningsstation bör ha ett 3,5 mm -uttag för ljudingång. En av lödfogarna kommer att slipas - förmodligen den som är närmast kanten på brädet. Använd en ohm-mätare för att kontrollera att den ansluter till det du tror är marken. Med vissa ljudingångar är jackets "skärm" inte ansluten direkt till marken. Det svävar. Så om ingen av domknapparna är slipade, oroa dig inte för tillfället. ("Skölden" på uttaget på VS1053 -modulen flyter också.)

Använd en mätare för att kontrollera att jackens "jordade" stift har samma spänning som strömförsörjningens jord.

Logitech dockningsstation var konstig. Om jag kopplade "jord" på Logitech -uttaget till "jord" på VS1053 -kortet (med hjälp av en ljudkabel fungerade det bra men strömmen till mitt Theremin -system gick upp från 80mA till över 200mA. Så jag såg till att Jag kopplade inte ihop de två "grunderna". Det fungerar bra men jag har ingen aning om vad som hände.

Steg 9: Skapa ett ärende

Att göra ett fall
Att göra ett fall
Att göra ett fall
Att göra ett fall
Att göra ett fall
Att göra ett fall
Att göra ett fall
Att göra ett fall

Vilket fall du gör beror på materialet du måste lämna, vad du tycker om att arbeta med och de högtalare du valt. Vad du än gör ska sonarna peka bort från varandra och uppåt vid 45 °. Därefter kommer displayen och tryckknappen.

Om du har tittat på mina andra Instuctables vet du att jag är ett stort fan av plåt. Den kan böjas till formen, mjuklödas och målas. Bilderna visar hur jag ordnade saker.

Den övre triangeln är böjd, lödd, fylld, slätad och målad. Kretskortet är limmade i triangeln och har små träskivor för att fungera som distanser.

"Frontpanelen" är 1 mm polystyrenplåt. Standoffs är gjorda av mer polystyrenplåt och självgängande skruvar håller bandplattan på plats. Trästöd varmlimmas i hålrummet framför dockningsstationen och kretskortet skruvas fast på dem med långa självgängande skruvar.

Jag antar att jag kunde ha 3D-skrivit ut något men jag föredrar old-school-metoderna där jag kan justera saker när jag går. Att göra saker är en upptäcktsresa snarare än "teknik".

Steg 10: Framtida utveckling

Framtida utveckling
Framtida utveckling

Hur skulle du kunna utveckla instrumentet ytterligare? Du kan ändra användargränssnittet. Du kan byta ut knappen mot en IR -avståndssensor så att du inte behöver röra instrumentet alls. Eller kanske använda en pekskärm snarare än en knapp och vänster hand för att styra menyn.

Skala-menyn låter dig välja "icke-västerländsk musik" -skalor men det förutsätter att alla toner är från det jämntempererade tangentbordet-så fungerar MIDI. Andra skalor är inte relaterade till ett jämnt tangentbord på något sätt. Det kan vara möjligt att använda pitch-bend för att producera sådana noter. Du skulle behöva något sätt för menyn att ange frekvensen för varje anteckning. Jag tror att pitch bend kan gälla alla noter i kanalen. Jag använder för närvarande bara en kanal - kanal 0. Så om den är polyfonisk eller har ackord måste du spela varje ton i en annan kanal.

Instrumentet kan bli en trumsynthesizer. Den vänstra handen kan bestämma tonhöjden för en Melodic Tom medan den högra ekolodet ersätts med en piezosensor som du slår för att låta trumman.

De två händerna kunde styra två olika instrument.

Vänster hand kunde välja ett instrument.

Ungefär halvvägs genom detta projekt upptäckte jag Altura MkII Theremin MIDI Controller av Zeppelin Design Labs. Det ser ut som ett fint instrument.

De har ett par videor som är mycket värda att titta på:

(Jag stal ordet "papperskorgar" från Altura och tanken att en papperskorg expanderar när du går in i den för att hjälpa dig att stanna kvar i den.)

Min MIDI Theremin skiljer sig från Altura på några sätt. Mine producerar sitt eget ljud med sin inbyggda MIDI-synth, förstärkare, etc.; Altura skickar meddelanden till en extern synth. Du kanske föredrar deras sätt att göra det. Min har en TFT -skärm snarare än en 7 -segmentskärm - det är definitivt bättre men du kanske tror att en större skärm skulle vara en förbättring. Mine använder menyer för att ställa in parametrarna medan deras använder rattar. Menyer krävs eftersom min behöver många kontroller för inmatningsenheten (ekoloderna) och synten; Altura behöver färre kontroller. Kanske är knapparna bättre under en liveframträdande. Min kanske borde ha vred. En knapp för att välja inställningar kan vara bra.

Altura har en "Articulation" -kontroll som anger hur snabbt toner kan spelas. Jag har inte inkluderat det i min programvara - kanske borde det finnas där. Altura har en Arpeggiator (stegsekvens). Det är en bra idé; mitt har ackord som inte är samma sak.

Så det är det. Jag hoppas att du gillar att bygga och använda en MIDI-Theremin. Låt mig veta om du hittar några misstag i min beskrivning eller om du kan tänka dig några förbättringar.

Rekommenderad: