Taula de continguts:

Arduino Uno Midi Fighter: 5 passos
Arduino Uno Midi Fighter: 5 passos

Vídeo: Arduino Uno Midi Fighter: 5 passos

Vídeo: Arduino Uno Midi Fighter: 5 passos
Vídeo: #2 How to Build a MIDI controller with an Arduino: The DIY MIDI Controller Workshop 2.0 2024, Desembre
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Aquesta instrucció es va crear per complir el requisit del projecte del Makecourse de la Universitat del Sud de Florida (www.makecourse.com)

Basat en el popular MidiFighter de DJ Techtools, aquest controlador casolà d’interfície digital (MIDI) d’instruments musicals alimentat per Arduino es pot utilitzar com a dispositiu MIDI en qualsevol programari DAW (Digital Audio Workstation). Un controlador MIDI pot enviar i rebre missatges MIDI des d’un ordinador i es pot utilitzar per controlar directament el programari que s’utilitza. A més, els controls d’un controlador MIDI són totalment personalitzables, cosa que significa que cada botó, control lliscant i botó individual es poden assignar a qualsevol funció d’un DAW. Per exemple, prement un botó es pot reproduir una nota específica o es pot programar per canviar el tempo del vostre projecte d'àudio.

github.com/jdtar/Arduino-Midi-Controller

Pas 1: materials

A continuació es mostra una llista de materials i eines utilitzats en aquest projecte.

Arduino Uno

Taula de pa

Multiplexor 4051/4067

Filferros de pont

Cable extra

Potenciòmetres lineals de 2x 10k ohmis

16 botons Sanwa de 24 mm

Reducció de calor

Soldador

Navalla

Resistència de 4,7 kΩ

Full acrílic (per a tapa)

Carcassa per a botons i Arduino

Impressora 3D

Tallador làser

Pas 2: disseny

Disseny
Disseny
Disseny
Disseny

Abans d’iniciar el projecte, ja m’havien proporcionat la carcassa del meu controlador MIDI, així que vaig fer un esbós de la tapa per tal de visualitzar on s’havia de col·locar tot. Sabia que volia almenys 16 botons i un parell de potenciòmetres com a característica, així que vaig intentar espaiar els components de la manera més uniforme possible.

Després de dibuixar el disseny de la tapa, vaig exportar el fitxer en format PDF 1: 1 i el vaig enviar a un tallador làser per tallar una làmina d’acrílic. Per als forats de cargol, vaig marcar on volia que fossin els forats amb retolador i vaig fondre l’acrílic amb un filament calent.

S'adjunta el PDF 1: 1 que es pot imprimir com a 1: 1 i tallar-lo amb eines elèctriques si no hi ha un tallador làser.

Pas 3: construcció i cablejat

Construcció i cablejat
Construcció i cablejat
Construcció i cablejat
Construcció i cablejat
Construcció i cablejat
Construcció i cablejat

Després de tallar l’acrílic, vaig descobrir que l’acrílic era massa prim per suportar prou tots els components. Després vaig retallar un altre full i els vaig enganxar, cosa que va funcionar perfectament.

El cablejat dels components va comportar una prova i un error, però va resultar en l'esbós de Fritzing adjunt. Primer vaig connectar els cables de terra i la resistència de 4,7 kΩ, soldar i reduir la calor de les connexions dels botons. El muntatge dels dos potenciòmetres de lliscament requeria forats de fusió per als cargols de l’acrílic. Després de cargolar els dos potenciòmetres, es van connectar als pins analògics A0 i A1. Un cop finalitzat el cablejat, vaig recordar que no hi havia cap tap de botó per als meus faders, de manera que, en lloc de comprar-los, vaig imprimir alguns taps de botons amb una impressora en 3D esbossant-lo a Autodesk Fusion 360 i exportant-lo a un fitxer STL. De

L'Arduino Uno només disposa de 12 pins d'entrada digitals disponibles, però s'haurien de connectar 16 botons. Per compensar-ho, he connectat un multiplexor 74HC4051 a una placa de control que utilitza 4 pins d'entrada digitals i permet que diversos senyals utilitzin una línia compartida, donant lloc a 8 pins d'entrada digitals disponibles per a un total de 16 pins digitals disponibles per al seu ús.

El cablejat dels botons als pins correctes era simplement qüestió de crear una matriu 4x4 i utilitzar-la al codi. La part complicada, però, era que el multiplexor específic comprat tenia un disseny de pin específic que ajudava el full de dades i també tenia present un disseny de notes específic en connectar els botons que acabaven tenint un aspecte semblant:

NOTA 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 = ENTRADA MUX)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Pas 4: Programació

Programació
Programació

Un cop acabat el muntatge, només queda programar l'Arduino. El guió adjunt està escrit de manera que es pugui personalitzar fàcilment.

El començament de l'script inclou la biblioteca MIDI.h i una biblioteca de controladors prestats del bloc Notes i Volts, que s'inclouen al fitxer zip del codi. Mitjançant la biblioteca del controlador, es poden crear objectes per a botons, potenciòmetres i botons multiplexats que contenen valors de dades que inclouen el número de nota, els valors de control, la velocitat de la nota, el número de canal MIDI, etc. La biblioteca MIDI.h permet comunicacions MIDI I / O Ports sèrie Arduino que al seu torn pren les dades dels objectes del controlador, els converteix en missatges MIDI i envia els missatges a qualsevol interfície midi connectada.

La part de configuració de la seqüència buida inicialitza tots els canals com a apagats i també inicia una connexió sèrie a 115200 baud, una velocitat més ràpida que els senyals MIDI que s’intercanvien.

El bucle principal pren essencialment les matrius de botons i botons multiplexats i executa un bucle for que comprova si s’ha premut o alliberat el botó i envia els bytes de dades corresponents a la interfície midi. El bucle del potenciòmetre comprova la posició del potenciòmetre i envia els canvis de tensió corresponents a la interfície midi.

Pas 5: Configuració

Image
Image
Configuració
Configuració
Configuració
Configuració
Configuració
Configuració

Un cop carregat l’script a l’Arduino, el següent pas és connectar-lo i reproduir-lo. Tanmateix, hi ha un parell de passos abans que es pugui utilitzar.

A OSX, Apple va incorporar una característica per crear dispositius midi virtuals als quals es pot accedir mitjançant l’aplicació Audio Midi Setup en macs. Un cop creat el nou dispositiu, el MIDI sense pèl es pot utilitzar per crear una connexió en sèrie entre l'Arduino i el nou dispositiu virtual midi. La connexió en sèrie des de l'Arduino a través de Hairless MIDI funciona a la velocitat de transmissió definida a la part de configuració del buit de l'script i s'ha d'establir equivalent a la configuració de preferències de Hairless MIDI.

A efectes de proves, vaig utilitzar Midi Monitor per comprovar si s’enviaven les dades correctes pensant en la connexió serial-MIDI. Un cop vaig determinar que tots els botons enviaven les dades correctes pels canals correctes, vaig configurar el senyal MIDI per encaminar-lo a Ableton Live 9 com a entrada MIDI. A Ableton vaig poder assignar mostres d’àudio en rodanxes a cada botó i reproduir-les.

Recomanat: