Índice:

Arduino Uno Midi Fighter: 5 etapas
Arduino Uno Midi Fighter: 5 etapas

Vídeo: Arduino Uno Midi Fighter: 5 etapas

Vídeo: Arduino Uno Midi Fighter: 5 etapas
Vídeo: The 5 BEST ARDUINOS for Building a MIDI CONTROLLER 2024, Julho
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Este instrutível foi criado em cumprimento ao requisito do projeto do Makecourse na University of South Florida (www.makecourse.com)

Baseado no popular MidiFighter da DJ Techtools, este controlador de Interface Digital de Instrumento Musical (MIDI) alimentado por Arduino caseiro pode ser usado como um dispositivo MIDI em qualquer software Digital Audio Workstation (DAW). Um controlador MIDI pode enviar e receber mensagens MIDI de um computador e pode ser usado para controlar diretamente qualquer software que esteja sendo usado. Além disso, os controles em um controlador MIDI são totalmente personalizáveis - o que significa que cada botão individual, controle deslizante e botão giratório podem ser mapeados para qualquer função em uma DAW. Por exemplo, pressionar um botão pode tocar uma nota específica ou ser programado para alternar o andamento do seu projeto de áudio.

github.com/jdtar/Arduino-Midi-Controller

Etapa 1: Materiais

Abaixo está uma lista de materiais e ferramentas usados neste projeto.

Arduino Uno

Tábua de pão

4051/4067 Multiplexer

Fios de ligação

Fio Extra

2x potenciômetros de slide linear de 10k ohm

16x botões Sanwa 24mm

Termoencolhível

Ferro de solda

Lâmina de barbear

Resistor de 4,7 kΩ

Folha de acrílico (para tampa)

Carcaça para botões e Arduino

impressora 3d

Cortador a laser

Etapa 2: Design

Projeto
Projeto
Projeto
Projeto

Eu já tinha fornecido a caixa para meu controlador MIDI antes de iniciar o projeto, então fiz um esboço para a tampa a fim de visualizar onde tudo deveria ser colocado. Eu sabia que queria pelo menos 16 botões e alguns potenciômetros como recurso, então tentei espaçar os componentes da maneira mais uniforme possível.

Depois de desenhar o layout da tampa, exportei o arquivo como PDF 1: 1 e enviei para um cortador a laser para cortar uma folha de acrílico. Para os orifícios dos parafusos, marquei onde queria que os orifícios ficassem com o marcador e derreti o acrílico com um filamento quente.

Em anexo está o PDF 1: 1 que pode ser impresso como 1: 1 e cortado com ferramentas elétricas se um cortador a laser não estiver disponível.

Etapa 3: construção e fiação

Construção e fiação
Construção e fiação
Construção e fiação
Construção e fiação
Construção e fiação
Construção e fiação

Depois de cortar o acrílico, descobri que o acrílico era muito fino para suportar suficientemente todos os componentes. Em seguida, cortei outra folha e colei-as, o que funcionou perfeitamente.

A fiação dos componentes exigiu algumas tentativas e erros, mas resultou no esboço de Fritzing anexado. Primeiro conectei os fios terra e o resistor de 4,7 kΩ, soldou e terminei as conexões nos botões. A montagem dos dois potenciômetros deslizantes exigiu orifícios de fusão para os parafusos no acrílico. Depois que os dois potenciômetros foram aparafusados, eles foram conectados aos pinos analógicos A0 e A1. Depois que a fiação foi concluída, lembrei que não havia tampas de botão para meus faders, então, em vez de comprá-los, imprimi algumas tampas de botão usando uma impressora 3-D fazendo um esboço no Autodesk Fusion 360 e exportando para um arquivo STL. De

O Arduino Uno tem apenas 12 pinos de entrada digital disponíveis, mas 16 botões deveriam ser conectados. Para compensar isso, conectei um multiplexador 74HC4051 em uma placa de ensaio que usa 4 pinos de entrada digital e permite que vários sinais usem uma linha compartilhada, resultando em 8 pinos de entrada digital disponíveis para um total de 16 pinos digitais disponíveis para uso.

Conectar os botões aos pinos corretos foi simplesmente uma questão de criar uma matriz 4x4 e usá-la no código. A parte complicada, entretanto, era que o multiplexador específico adquirido tinha um layout de pino específico com o qual a folha de dados ajudava e também eu tinha um layout de nota específico em mente ao conectar os botões, o que acabou parecendo um pouco com isto:

NOTA MATRIZ

[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]

Etapa 4: Programação

Programação
Programação

Assim que a montagem estiver concluída, a programação do Arduino é tudo o que resta. O script anexado é escrito de forma que seja facilmente personalizável.

O início do script inclui a biblioteca MIDI.h e uma biblioteca de controlador emprestada do blog Notes and Volts, ambas incluídas no arquivo zip do código. Usando a biblioteca de controladores, objetos para botões, potenciômetros e botões multiplexados podem ser criados contendo valores de dados que incluem o número da nota, valores de controle, velocidade da nota, número do canal MIDI, etc. A biblioteca MIDI.h permite comunicações MIDI I / O no Portas seriais do Arduino que, por sua vez, pegam os dados dos objetos do controlador, os convertem em mensagens MIDI e as enviam para qualquer interface midi conectada.

A parte de configuração vazia do script inicializa todos os canais como desligados e também inicia uma conexão serial em 115200 baud, uma taxa mais rápida do que os sinais MIDI estão sendo trocados.

O loop principal basicamente pega os arranjos de botões e botões multiplexados e executa um loop for que verifica se o botão foi pressionado ou solto e envia os bytes de dados correspondentes para a interface midi. O loop do potenciômetro verifica a posição do potenciômetro e envia as mudanças de tensão correspondentes de volta para a interface midi.

Etapa 5: configuração

Image
Image
Configurar
Configurar
Configurar
Configurar
Configurar
Configurar

Depois que o script foi carregado no Arduino, a próxima etapa é plug and play. Existem algumas etapas, no entanto, antes que ele possa ser usado.

No OSX, a Apple incorporou um recurso para criar dispositivos midi virtuais que podem ser acessados através do aplicativo Audio Midi Setup em macs. Depois que o novo dispositivo for criado, o Hairless MIDI pode ser usado para criar uma conexão serial entre o Arduino e o novo dispositivo midi virtual. A conexão serial do Arduino por meio do MIDI sem cabelo opera na taxa de transmissão definida na parte de configuração de vazio do script e deve ser definida como equivalente nas configurações de preferência MIDI sem fio.

Para fins de teste, usei o Midi Monitor para verificar se os dados corretos estavam sendo enviados através da conexão serial-MIDI. Depois de determinar que todos os botões enviam os dados corretos pelos canais corretos, configurei o sinal MIDI para rotear para o Ableton Live 9 como uma entrada MIDI. No Ableton, consegui mapear amostras de áudio fatiadas para cada botão e reproduzir cada amostra.

Recomendado: