Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Design
- Trin 3: Konstruktion og ledninger
- Trin 4: Programmering
- Trin 5: Opsætning
Video: Arduino Uno Midi Fighter: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Denne instruerbare blev oprettet for at opfylde projektkravet fra Makecourse ved University of South Florida (www.makecourse.com)
Baseret på den populære MidiFighter af DJ Techtools kan denne hjemmelavede Arduino -drevne Musical Instrument Digital Interface (MIDI) controller bruges som en MIDI -enhed på tværs af enhver Digital Audio Workstation (DAW) software. En MIDI -controller kan sende og modtage MIDI -meddelelser fra en computer og kan bruges til direkte at styre, hvilken software der bruges. Derudover kan kontrollerne på en MIDI -controller fuldt ud tilpasses - hvilket betyder, at hver enkelt knap, skyder og knap kan knyttes til enhver funktion i en DAW. For eksempel kan et tryk på en knap afspille en bestemt note eller programmeres til at skifte tempoet i dit lydprojekt.
github.com/jdtar/Arduino-Midi-Controller
Trin 1: Materialer
Nedenfor er en liste over materialer og værktøjer, der bruges i dette projekt.
Arduino Uno
Brødbræt
4051/4067 Multiplexer
Jumper ledninger
Ekstra ledning
2x 10k ohm lineære objektglaspotentiometre
16x Sanwa 24mm knapper
Varme krympe
Loddekolbe
Barberblad
4,7 kΩ modstand
Akrylark (til låg)
Hus til knapper og Arduino
3D-printer
Laserskærer
Trin 2: Design
Jeg fik allerede huset til min MIDI -controller, før jeg startede projektet, så jeg lagde en skitse til låget for at visualisere, hvor alt skulle placeres. Jeg vidste, at jeg ville have mindst 16 knapper og et par potentiometre som en funktion, så jeg forsøgte at placere komponenterne så jævnt som muligt.
Efter at have udarbejdet layoutet til låget eksporterede jeg filen som en 1: 1 PDF og sendte den til en laserskærer for at skære et ark akryl. Ved skruehuller markerede jeg, hvor jeg ville have, at hullerne skulle være med markør og smeltede akrylen med en varm filament.
Vedhæftet er 1: 1 PDF -filen, der kan udskrives som en 1: 1 og skæres med elværktøj, hvis der ikke er en laserskærer.
Trin 3: Konstruktion og ledninger
Efter at have skåret i akrylen, fandt jeg ud af, at akrylen var for tynd til tilstrækkeligt at understøtte alle komponenterne. Jeg skar derefter et andet ark ud og limede dem sammen, som tilfældigvis fungerede perfekt.
Tilslutning af komponenterne tog en del forsøg og fejl, men resulterede i vedhæftede Fritzing -skitse. Jeg ledte først jordledningerne og 4,7 kΩ modstanden, loddet og varme krympet forbindelserne på knapperne. Montering af de to glidepotentiometre krævede smeltehuller til skruerne i akrylen. Efter at de to potentiometre var skruet i, blev de forbundet til A0 og A1 analoge ben. Efter at ledningerne var færdige, huskede jeg, at der ikke var knapper til mine fadere, så i stedet for at købe dem, printede jeg nogle knopdæksler ved hjælp af en 3D-printer ved at skitsere det i Autodesk Fusion 360 og eksportere til en STL-fil. De
Arduino Uno har kun 12 tilgængelige digitale indgangsstifter, men 16 knapper skulle forbindes. For at kompensere for dette tilsluttede jeg en 74HC4051 Multiplexer på et brødbræt, der bruger 4 digitale indgangsstifter og gør det muligt for flere signaler at bruge en delt linje, hvilket resulterer i 8 tilgængelige digitale indgangsstifter til i alt 16 digitale ben til rådighed til brug.
Tilslutning af knapperne til de korrekte ben var simpelthen et spørgsmål om at oprette en 4x4 -matrix og bruge den i koden. Den vanskelige del var imidlertid, at den specifikke multiplexer, der blev købt, havde et specifikt pinlayout, som databladet hjalp med, og jeg havde også et specifikt notelayout i tankerne, når jeg tilsluttede knapperne, hvilket endte med at se lidt sådan ud:
BEMÆRK 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 MATRIX (M = MUX INPUT)
[6] [7] [8] [9]
[10] [11] [12] [13]
[M0] [M1] [M2] [M3]
[M4] [M5] [M6] [M7]
Trin 4: Programmering
Når samlingen er fuldført, er det alt, hvad der er tilbage, programmering af Arduino. Det vedhæftede script er skrevet på en sådan måde, at det let kan tilpasses.
Begyndelsen af scriptet inkluderer MIDI.h -biblioteket og et controller -bibliotek lånt fra Notes and Volts -bloggen, som begge er inkluderet i zip -filen til koden. Ved hjælp af controllerbiblioteket kan der oprettes objekter til knapper, potentiometre og multipleksede knapper, der indeholder dataværdier, der inkluderer notenummer, kontrolværdier, notehastighed, MIDI -kanalnummer osv. MIDI.h -biblioteket muliggør MIDI I/O -kommunikation på Arduino serielle porte, som igen tager dataene fra controllerobjekterne, konverterer dem til MIDI -meddelelser og sender meddelelserne til det midi -interface, der er forbundet.
Tomrumsopsætningsdelen af scriptet initialiserer alle kanaler som slukket og starter også en seriel forbindelse med 115200 baud, en hastighed hurtigere end MIDI -signalerne udveksles.
Hovedløkken tager i det væsentlige arrays af knapper og multipleksede knapper og kører en for loop, der kontrollerer, om knappen er blevet trykket eller frigivet og sender de tilsvarende databyte ud til midi -grænsefladen. Potentiometerløkken kontrollerer positionen af potentiometeret og sender de tilsvarende spændingsændringer tilbage til midi -interfacet.
Trin 5: Opsætning
Når scriptet var indlæst på Arduino, er det næste trin at tilslutte og afspille. Der er dog et par trin, før det kan bruges.
På OSX har Apple indarbejdet en funktion til at oprette virtuelle midi -enheder, som kan tilgås via programmet Audio Midi Setup på Mac'er. Når den nye enhed er blevet oprettet, kan Hairless MIDI bruges til at oprette en seriel forbindelse mellem Arduino og den nye virtuelle midi -enhed. Den serielle forbindelse fra Arduino gennem Hairless MIDI fungerer med den baudhastighed, der er defineret i den ugyldige opsætningsdel af scriptet og skal angives ækvivalent i Hairless MIDI -præferencer.
Til testformål brugte jeg Midi Monitor til at kontrollere, om de korrekte data blev sendt, troede den serielle MIDI-forbindelse. Når jeg havde fastslået, at alle knapper sendte de korrekte data via de korrekte kanaler, konfigurerede jeg MIDI -signalet til at rute til Ableton Live 9 som et MIDI -input. I Ableton kunne jeg kortlægge udskårne lydprøver til hver knap og afspille hver prøve.
Anbefalede:
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 ++)
Stop svedige hænder og fødder med Sweat Fighter !: 7 trin (med billeder)
Stop svedige hænder og fødder med Sweat Fighter !: 3/1/19 opdatering: Nogle mennesker rapporterer smerter, som skyldes den hurtige polaritet -vending. Jeg opdaterer koden for at reducere dette problem, men foreløbig bør du holde ud med at bygge dette. Hyperhidrose er en tilstand, der forårsager overskydende
Den mere kraftfulde Arduino-UNO, Massduino-UNO: 9 trin
Den mere kraftfulde Arduino-UNO, Massduino-UNO: Hvad er Massduino? Massduino er en ny produktserie, der kombinerer den perifere Arduino-platform, rig og bekvem udvikling, billig og let at fremstille store produktionsfordele. Næsten hele Arduino -koden kan være en
Arduino -baseret MIDI Fighter (berøringsfølsom): 7 trin (med billeder)
Arduino Based MIDI Fighter (Touch Sensitive): MIDI står for Musical Instrument Digital Interface. Her laver vi en berøringsfølsom MIDI fighter. Den har 16 pads. disse kan øges eller reduceres. Her har jeg brugt 16 på grund af de begrænsede arduino -pins. Jeg har også brugt analoge input -pins
MIDI 5V LED Strip Light Controller til Spielatron eller anden MIDI Synth: 7 trin (med billeder)
MIDI 5V LED Strip Light Controller til Spielatron eller anden MIDI Synth: Denne controller blinker trefarvede LED strip lys for 50mS pr note. Blå for G5 til D#6, rød for E6 til B6 og grøn for C7 til G7. Controlleren er en ALSA MIDI -enhed, så MIDI -software kan sende til lysdioderne samtidig med en MIDI -synthenhed