Tabla de contenido:

Arduino Uno Midi Fighter: 5 pasos
Arduino Uno Midi Fighter: 5 pasos

Video: Arduino Uno Midi Fighter: 5 pasos

Video: Arduino Uno Midi Fighter: 5 pasos
Video: Arduino MIDI Controller: Part 1 - Potentiometers 2024, Mes de julio
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Este instructable fue creado en cumplimiento del requisito del proyecto de Makecourse en la Universidad del Sur de Florida (www.makecourse.com)

Basado en el popular MidiFighter de DJ Techtools, este controlador de interfaz digital de instrumentos musicales (MIDI) hecho en casa con Arduino se puede utilizar como un dispositivo MIDI en cualquier software de estación de trabajo de audio digital (DAW). Un controlador MIDI puede enviar y recibir mensajes MIDI desde una computadora y puede usarse para controlar directamente cualquier software que se esté usando. Además, los controles de un controlador MIDI son totalmente personalizables, lo que significa que cada botón, control deslizante y perilla individual se puede asignar a cualquier función en un DAW. Por ejemplo, presionar un botón puede reproducir una nota específica o programarse para alternar el tempo de su proyecto de audio.

github.com/jdtar/Arduino-Midi-Controller

Paso 1: Materiales

A continuación se muestra una lista de materiales y herramientas utilizados en este proyecto.

Arduino Uno

Tablero de circuitos

Multiplexor 4051/4067

Cables de puente

Alambre adicional

2 potenciómetros deslizantes lineales de 10 k ohmios

16 botones Sanwa de 24 mm

Encogimiento de calor

Soldador

Cuchilla de afeitar

Resistencia de 4,7 kΩ

Lámina acrílica (para tapa)

Carcasa para botones y Arduino

impresora 3d

Cortador láser

Paso 2: diseño

Diseño
Diseño
Diseño
Diseño

Ya me proporcionaron la carcasa para mi controlador MIDI antes de comenzar el proyecto, así que hice un boceto de la tapa para visualizar dónde se colocaría todo. Sabía que quería al menos 16 botones y un par de potenciómetros como característica, así que intenté espaciar los componentes de la manera más uniforme posible.

Después de diseñar el diseño de la tapa, exporté el archivo como PDF 1: 1 y lo envié a un cortador láser para cortar una hoja de acrílico. Para los orificios de los tornillos, marqué dónde quería que estuvieran los orificios con un marcador y derretí el acrílico con un filamento caliente.

Se adjunta el PDF 1: 1 que se puede imprimir como 1: 1 y cortar con herramientas eléctricas si no hay una cortadora láser disponible.

Paso 3: Construcción y cableado

Construcción y cableado
Construcción y cableado
Construcción y cableado
Construcción y cableado
Construcción y cableado
Construcción y cableado

Después de cortar el acrílico, descubrí que el acrílico era demasiado delgado para soportar suficientemente todos los componentes. Luego corté otra hoja y las pegué, lo que resultó funcionar perfectamente.

El cableado de los componentes requirió un poco de prueba y error, pero resultó en el boceto de Fritzing adjunto. Primero conecté los cables de tierra y la resistencia de 4.7kΩ, soldé y encogí las conexiones en los botones. El montaje de los dos potenciómetros deslizantes requirió orificios de fusión para los tornillos en el acrílico. Después de atornillar los dos potenciómetros, se conectaron a los pines analógicos A0 y A1. Una vez que se completó el cableado, recordé que no había tapas de perillas para mis faders, así que en lugar de comprarlas, imprimí algunas tapas de perillas con una impresora 3-D dibujándolas en Autodesk Fusion 360 y exportándolas a un archivo STL. Delaware

El Arduino Uno solo tiene 12 pines de entrada digital disponibles, pero se debían conectar 16 botones. Para compensar esto, conecté un multiplexor 74HC4051 en una placa que usa 4 pines de entrada digital y permite que múltiples señales usen una línea compartida, lo que da como resultado 8 pines de entrada digital disponibles para un total de 16 pines digitales disponibles para su uso.

Conectar los botones a los pines correctos fue simplemente una cuestión de crear una matriz 4x4 y usarla en el código. Sin embargo, la parte complicada fue que el multiplexor específico comprado tenía un diseño de pines específico con el que la hoja de datos ayudaba y también tenía un diseño de nota específico en mente al conectar los botones, que terminó pareciéndose un poco a esto:

MATRIZ DE NOTA

[C2] [C # 2] [D2] [D # 2]

[G # 2] [A1] [A # 2] [B1]

[E1] [F1] [F # 1] [G1]

[C2] [C # 2] [D2] [D # 2]

MATRIZ DE PIN (M = ENTRADA MUX)

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

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

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

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

Paso 4: programación

Programación
Programación

Una vez que se completa el ensamblaje, programar el Arduino es todo lo que queda. El script adjunto está escrito de tal manera que se puede personalizar fácilmente.

El comienzo de la secuencia de comandos incluye la biblioteca MIDI.hy una biblioteca de controladores tomada del blog Notes and Volts, que se incluyen en el archivo zip del código. Usando la biblioteca de controladores, se pueden crear objetos para botones, potenciómetros y botones multiplexados que contienen valores de datos que incluyen el número de nota, valores de control, velocidad de nota, número de canal MIDI, etc. La biblioteca MIDI.h habilita las comunicaciones de E / S MIDI en el Puertos serie Arduino que a su vez toma los datos de los objetos del controlador, los convierte en mensajes MIDI y envía los mensajes a cualquier interfaz midi que esté conectada.

La parte de configuración vacía del script inicializa todos los canales como desactivados y también inicia una conexión en serie a 115200 baudios, una velocidad más rápida que la que se intercambian las señales MIDI.

El bucle principal esencialmente toma las matrices de botones y botones multiplexados y ejecuta un bucle for que verifica si el botón ha sido presionado o liberado y envía los bytes de datos correspondientes a la interfaz midi. El lazo del potenciómetro verifica la posición del potenciómetro y envía los cambios de voltaje correspondientes a la interfaz midi.

Paso 5: configuración

Image
Image
Configuración
Configuración
Configuración
Configuración
Configuración
Configuración

Una vez que se cargó el script en Arduino, el siguiente paso es enchufar y jugar. Sin embargo, hay un par de pasos antes de que se pueda usar.

En OSX, Apple incorporó una función para crear dispositivos midi virtuales a los que se puede acceder a través de la aplicación Audio Midi Setup en Mac. Una vez que se ha creado el nuevo dispositivo, Hairless MIDI se puede utilizar para crear una conexión en serie entre el Arduino y el nuevo dispositivo midi virtual. La conexión en serie desde Arduino a través de Hairless MIDI opera a la velocidad en baudios definida en la parte de configuración vacía del script y debe establecerse equivalente en la configuración de preferencias de Hairless MIDI.

Con fines de prueba, utilicé Midi Monitor para verificar si se estaban enviando los datos correctos a través de la conexión MIDI en serie. Una vez que determiné que todos los botones enviaban los datos correctos a través de los canales correctos, configuré la señal MIDI para que se enrutara a Ableton Live 9 como una entrada MIDI. En Ableton pude asignar muestras de audio cortadas a cada botón y reproducir cada muestra.

Recomendado: