Innehållsförteckning:
- Steg 1: Material
- Steg 2: Design
- Steg 3: Konstruktion och ledningar
- Steg 4: Programmering
- Steg 5: Inställning
Video: Arduino Uno Midi Fighter: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Denna instruerbara skapades för att uppfylla projektkravet för Makecourse vid University of South Florida (www.makecourse.com)
Baserad på den populära MidiFighter av DJ Techtools, kan denna hemgjorda Arduino -drivna Musical Instrument Digital Interface (MIDI) -kontroller användas som en MIDI -enhet i alla Digital Audio Workstation (DAW) -programvara. En MIDI -controller kan skicka och ta emot MIDI -meddelanden från en dator och kan användas för att direkt styra vilken programvara som används. Dessutom är kontrollerna på en MIDI -kontroller helt anpassningsbara - vilket innebär att varje enskild knapp, reglage och vred kan mappas till valfri funktion i en DAW. Om du till exempel trycker på en knapp kan du spela en specifik ton eller programmeras för att växla tempot för ditt ljudprojekt.
github.com/jdtar/Arduino-Midi-Controller
Steg 1: Material
Nedan finns en lista över material och verktyg som används i detta projekt.
Arduino Uno
Bakbord
4051/4067 Multiplexer
Bygelkablar
Extra tråd
2x 10k ohm linjära glidpotentiometrar
16x Sanwa 24mm knappar
Värmekrympning
Lödkolv
Rakblad
4,7 kΩ motstånd
Akrylark (för lock)
Hus för knappar och Arduino
3d skrivare
Laserskärare
Steg 2: Design
Jag fick redan huset för min MIDI -controller innan jag startade projektet, så jag hånade en skiss för locket för att visualisera var allt skulle placeras. Jag visste att jag ville ha minst 16 knappar och ett par potentiometrar som en funktion, så jag försökte dela ut komponenterna så jämnt som möjligt.
Efter att ha gjort layouten för locket exporterade jag filen som en 1: 1 PDF och skickade den till en laserskärare för att skära ett ark akryl. För skruvhål markerade jag var jag ville att hålen skulle vara med markör och smälte akrylen med en het glödtråd.
Bifogad 1: 1 PDF som kan skrivas ut som 1: 1 och klippas med elverktyg om en laserskärare inte är tillgänglig.
Steg 3: Konstruktion och ledningar
Efter att ha klippt akryl, fick jag reda på att akrylen var för tunn för att tillräckligt stödja alla komponenter. Jag klippte sedan ut ett annat ark och limmade ihop dem som råkade fungera perfekt.
Kabeldragning av komponenterna tog lite försök och fel men resulterade i att Fritzing -skissen bifogades. Jag kopplade först upp jordtrådarna och motståndet på 4,7 kΩ, lödde och värme krympte anslutningarna på knapparna. Montering av de två glidpotentiometrarna krävde smälthål för skruvarna i akryl. Efter att de två potentiometrarna skruvats fast kopplades de upp till de analoga stiften A0 och A1. Efter att kabeldragningen var klar kom jag ihåg att det inte fanns några rattlock för mina faders så istället för att köpa dem skrev jag ut några rattlock med en 3D-skrivare genom att skissa ut det i Autodesk Fusion 360 och exportera till en STL-fil. De
Arduino Uno har bara 12 tillgängliga digitala ingångsstiften men 16 knappar skulle kopplas upp. För att kompensera för detta kopplade jag upp en 74HC4051 Multiplexer på en brödbräda som använder 4 digitala ingångsstiften och gör det möjligt för flera signaler att använda en delad linje, vilket resulterar i 8 tillgängliga digitala ingångsstift för totalt 16 digitala stift tillgängliga för användning.
Att koppla upp knapparna till rätt stift handlade helt enkelt om att skapa en 4x4 -matris och använda den i koden. Den knepiga delen var dock att den specifika multiplexern som köptes hade en specifik pin -layout som databladet hjälpte till och jag hade också en specifik notlayout i åtanke när jag kopplade upp knapparna som slutade se ut ungefär så här:
OBS MATRIX
[C2] [C#2] [D2] [D#2]
[G#2] [A1] [A#2] [B1]
[E1] [F1] [F#1] [G1]
[C2] [C#2] [D2] [D#2]
PIN -matris (M = MUX -ingång)
[6] [7] [8] [9]
[10] [11] [12] [13]
[M0] [M1] [M2] [M3]
[M4] [M5] [M6] [M7]
Steg 4: Programmering
När monteringen är klar är det bara att programmera Arduino. Manuset som bifogas är skrivet på ett sådant sätt att det är lätt att anpassa.
Skriptets början inkluderar MIDI.h -biblioteket och ett controllerbibliotek lånat från Notes and Volts -bloggen som båda ingår i zip -filen för koden. Med hjälp av controllerbiblioteket kan objekt för knappar, potentiometrar och multiplexknappar skapas som innehåller datavärden som inkluderar notnummer, kontrollvärden, nothastighet, MIDI -kanalnummer etc. MIDI.h -biblioteket möjliggör MIDI I/O -kommunikation på Arduino seriella portar som i sin tur tar data från controllerobjekten, konverterar dem till MIDI -meddelanden och skickar meddelandena till vilket midi -gränssnitt som är anslutet.
Tomrumsinställningsdelen av skriptet initierar alla kanaler som avstängda och initierar också en seriell anslutning vid 115200 baud, en hastighet snabbare än MIDI -signalerna utbyts.
Huvudslingan tar i huvudsak matriserna med knappar och multiplexknappar och kör en for -loop som kontrollerar om knappen har tryckts in eller släppts och skickar ut motsvarande databyte till midi -gränssnittet. Potentiometerslingan kontrollerar positionen för potentiometern och skickar motsvarande spänningsändringar tillbaka till midi -gränssnittet.
Steg 5: Inställning
När manuset laddades in på Arduino är nästa steg att plugga och spela. Det finns dock ett par steg innan den kan användas.
På OSX införlivade Apple en funktion för att skapa virtuella midi -enheter som kan nås via programmet Audio Midi Setup på Mac. När den nya enheten har skapats kan Hairless MIDI användas för att skapa en seriell anslutning mellan Arduino och den nya virtuella midi -enheten. Den seriella anslutningen från Arduino via Hairless MIDI fungerar med den överföringshastighet som definieras i tomrumsinställningsdelen av manuset och måste ställas in likvärdig i inställningarna för Hairless MIDI.
För teständamål använde jag Midi Monitor för att kontrollera om rätt data skickades trodde den seriella MIDI-anslutningen. När jag väl hade bestämt att alla knappar skickade över rätt data via rätt kanaler ställde jag in MIDI -signalen för att dirigera till Ableton Live 9 som en MIDI -ingång. I Ableton kunde jag kartlägga skivade ljudprover till varje knapp och spela varje prov.
Rekommenderad:
Arduino Uno fiskmatare i 6 billiga och enkla steg !: 6 steg
Arduino Uno Fish Feeder i 6 billiga och enkla steg !: Så lite bakgrundshistoria kan behövas för detta projekt. Människor med sällskapsdjurfisk presenterades förmodligen med samma problem som jag: semester och glömska. Jag glömde ständigt att mata mina fiskar och försökte alltid göra det innan det gick till
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 ++)
Den mer kraftfulla Arduino-UNO, Massduino-UNO: 9 steg
Den mer kraftfulla Arduino-UNO, Massduino-UNO: Vad är Massduino? Massduino är en ny produktserie, som kombinerar Arduino-plattformens perifera-rika, praktiska och snabba utveckling, låg kostnad och lätt att tillverka storskaliga produktionsfördelar. Nästan hela Arduino -koden kan vara en
Arduino -baserad MIDI Fighter (Touch Sensitive): 7 steg (med bilder)
Arduino Based MIDI Fighter (Touch Sensitive): MIDI står för Musical Instrument Digital Interface. Här gör vi en beröringskänslig MIDI -fighter. Den har 16 kuddar. dessa kan ökas eller minskas. Här har jag använt 16 på grund av de begränsade arduino -stiften. Jag har också använt analoga ingångsstiften
MIDI 5V LED Strip Light Controller för Spielatron eller annan MIDI Synth: 7 steg (med bilder)
MIDI 5V LED Strip Light Controller för Spielatron eller annan MIDI Synth: Denna kontroller blinkar trefärgade LED-remsor för 50 ms per ton. Blå för G5 till D#6, röd för E6 till B6 och grön för C7 till G7. Styrenheten är en ALSA MIDI -enhet så att MIDI -programvara kan mata ut till lysdioderna samtidigt som en MIDI -syntenhet