Sommario:

Arduino Uno Midi Fighter: 5 passaggi
Arduino Uno Midi Fighter: 5 passaggi

Video: Arduino Uno Midi Fighter: 5 passaggi

Video: Arduino Uno Midi Fighter: 5 passaggi
Video: Arduino midi Controller 2024, Dicembre
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Questo istruttivo è stato creato in adempimento del requisito del progetto del Makecourse presso la University of South Florida (www.makecourse.com)

Basato sul famoso MidiFighter di DJ Techtools, questo controller MIDI (Music Instrument Digital Interface) alimentato da Arduino fatto in casa può essere utilizzato come dispositivo MIDI su qualsiasi software DAW (Digital Audio Workstation). Un controller MIDI può inviare e ricevere messaggi MIDI da un computer e può essere utilizzato per controllare direttamente il software utilizzato. Inoltre, i controlli su un controller MIDI sono completamente personalizzabili, il che significa che ogni singolo pulsante, slider e manopola può essere mappato a qualsiasi funzione in una DAW. Ad esempio, premendo un pulsante è possibile riprodurre una nota specifica o essere programmato per alternare il tempo del progetto audio.

github.com/jdtar/Arduino-Midi-Controller

Passaggio 1: materiali

Di seguito è riportato un elenco di materiali e strumenti utilizzati in questo progetto.

Arduino Uno

tagliere

4051/4067 Multiplexer

Ponticelli

Cavo extra

2 potenziometri lineari a scorrimento da 10k ohm

16 pulsanti Sanwa da 24 mm

Termoretraibile

Saldatore

Lama del rasoio

Resistenza da 4,7 kΩ

Foglio acrilico (per coperchio)

Alloggiamento per pulsanti e Arduino

stampante 3d

Taglierina laser

Passaggio 2: progettazione

Design
Design
Design
Design

Mi era già stato fornito l'alloggiamento per il mio controller MIDI prima di iniziare il progetto, quindi ho simulato uno schizzo per il coperchio per visualizzare dove doveva essere posizionato tutto. Sapevo di volere almeno 16 pulsanti e un paio di potenziometri come caratteristica, quindi ho cercato di distanziare i componenti nel modo più uniforme possibile.

Dopo aver disegnato il layout per il coperchio, ho esportato il file come PDF 1:1 e l'ho inviato a un laser cutter per tagliare un foglio di acrilico. Per i fori delle viti, ho segnato dove volevo che fossero i fori con un pennarello e ho sciolto l'acrilico con un filamento caldo.

In allegato è il PDF 1:1 che può essere stampato come 1:1 e tagliato con utensili elettrici se non è disponibile un laser cutter.

Passaggio 3: costruzione e cablaggio

Costruzione e cablaggio
Costruzione e cablaggio
Costruzione e cablaggio
Costruzione e cablaggio
Costruzione e cablaggio
Costruzione e cablaggio

Dopo aver tagliato l'acrilico, ho scoperto che l'acrilico era troppo sottile per supportare sufficientemente tutti i componenti. Quindi ho ritagliato un altro foglio e li ho incollati insieme, il che ha funzionato perfettamente.

Il cablaggio dei componenti ha richiesto alcuni tentativi ed errori, ma ha portato allo schizzo Fritzing allegato. Per prima cosa ho cablato i fili di terra e il resistore da 4,7 kΩ, saldato e termoretratto le connessioni sui pulsanti. Il montaggio dei due potenziometri a slitta ha richiesto fori di fusione per le viti nell'acrilico. Dopo che i due potenziometri sono stati avvitati, sono stati collegati ai pin analogici A0 e A1. Dopo che il cablaggio è stato completato, mi sono ricordato che non c'erano cappucci per le manopole per i miei fader, quindi invece di acquistarli, ho stampato alcuni cappucci per manopola utilizzando una stampante 3D disegnandoli in Autodesk Fusion 360 ed esportandoli in un file STL. De

L'Arduino Uno ha solo 12 pin di ingresso digitale disponibili ma 16 pulsanti dovevano essere cablati. Per compensare ciò, ho collegato un multiplexer 74HC4051 su una breadboard che utilizza 4 pin di ingresso digitale e consente a più segnali di utilizzare una linea condivisa risultando in 8 pin di ingresso digitale disponibili per un totale di 16 pin digitali disponibili per l'uso.

Collegare i pulsanti ai pin corretti era semplicemente questione di creare una matrice 4x4 e utilizzarla nel codice. La parte difficile, tuttavia, era che il multiplexer specifico acquistato aveva un layout di pin specifico che il foglio dati aiutava e avevo anche in mente un layout di note specifico durante il cablaggio dei pulsanti che ha finito per assomigliare un po' a questo:

MATRICE DI NOTE

[DO2] [DO#2] [RE2] [RE#2]

[LA#2] [LA1] [LA#2] [LA1]

[MI1] [FA1] [FA#1] [SOL1]

[DO2] [DO#2] [RE2] [RE#2]

MATRICE PIN (M = INGRESSO MUX)

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

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

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

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

Passaggio 4: programmazione

Programmazione
Programmazione

Una volta completato l'assemblaggio, non resta che programmare Arduino. Lo script allegato è scritto in modo tale da essere facilmente personalizzabile.

L'inizio dello script include la libreria MIDI.h e una libreria controller presa in prestito dal blog Notes and Volts, entrambe incluse nel file zip per il codice. Utilizzando la libreria controller, è possibile creare oggetti per pulsanti, potenziometri e pulsanti multiplex contenenti valori di dati che includono il numero di nota, i valori di controllo, la velocità della nota, il numero di canale MIDI, ecc. La libreria MIDI.h abilita le comunicazioni MIDI I/O sul Porte seriali Arduino che a sua volta preleva i dati dagli oggetti controller, li converte in messaggi MIDI e invia i messaggi a qualsiasi interfaccia midi collegata.

La parte di configurazione del vuoto dello script inizializza tutti i canali come off e avvia anche una connessione seriale a 115200 baud, una velocità più veloce dello scambio dei segnali MIDI.

Il ciclo principale prende essenzialmente gli array di pulsanti e pulsanti multiplexati ed esegue un ciclo for che controlla se il pulsante è stato premuto o rilasciato e invia i byte di dati corrispondenti all'interfaccia midi. Il loop del potenziometro controlla la posizione del potenziometro e invia le corrispondenti variazioni di tensione all'interfaccia midi.

Passaggio 5: configurazione

Image
Image
Impostare
Impostare
Impostare
Impostare
Impostare
Impostare

Una volta che lo script è stato caricato su Arduino, il passaggio successivo è collegare e riprodurre. Ci sono un paio di passaggi, tuttavia, prima che possa essere utilizzato.

Su OSX, Apple ha incorporato una funzione per creare dispositivi midi virtuali a cui è possibile accedere tramite l'applicazione Audio Midi Setup su Mac. Una volta creato il nuovo dispositivo, Hairless MIDI può essere utilizzato per creare una connessione seriale tra Arduino e il nuovo dispositivo midi virtuale. La connessione seriale da Arduino tramite MIDI Hairless funziona alla velocità di trasmissione definita nella parte di configurazione del vuoto dello script e deve essere impostata in modo equivalente nelle impostazioni delle preferenze MIDI Hairless.

A scopo di test ho utilizzato Midi Monitor per verificare se i dati corretti venivano inviati tramite la connessione seriale-MIDI. Una volta determinato che tutti i pulsanti inviano i dati corretti attraverso i canali corretti, ho impostato il segnale MIDI in modo che venga indirizzato ad Ableton Live 9 come ingresso MIDI. In Ableton sono stato in grado di mappare campioni audio tagliati su ciascun pulsante e riprodurre ogni campione.

Consigliato: