Índice:
- Este instrutível foi publicado originalmente em meu blog em 28 de junho de 2020
- Etapa 1: Piscando o LED embutido
- Etapa 2: Piscando o LED na entrada manual
- Etapa 3: Instalando a Biblioteca MIDIUSB
- Etapa 4: Enviando uma mensagem MIDI
- Etapa 5: Enviando uma mensagem MIDI de cada botão
- Etapa 6: Configurando canais ou bancos (opcional)
- Etapa 7: o caso
- Etapa 8: A montagem
- Etapa 9: usando o controlador MIDI
Vídeo: Construindo um controlador MIDI Arduino: 9 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Este instrutível foi publicado originalmente em meu blog em 28 de junho de 2020
Gosto de construir coisas que incluam eletrônicos e sempre quis construir algo usando o Arduino.
Uma das compilações mais comuns para iniciantes que encontrei foi um controlador MIDI. Um controlador MIDI é qualquer hardware que envia dados MIDI (Interface Digital de Instrumento Musical) a um dispositivo para acionar sons e fazer música.
Descobri que muitas implementações são complicadas, mesmo aquelas que são para iniciantes. Foi muito frustrante descobrir que preciso usar centenas de linhas de código ilegível. Ou que preciso soldar um resistor em alguns casos, entre outros exemplos.
O projeto
Ao construir meu próprio Arduino MIDI Controller, minha intenção era fazer um projeto agradável, mantendo o ruído mínimo. Algo que qualquer iniciante poderia seguir. Para fazer isso, usei o MIDI Fighter 3D como uma inspiração básica e removi todos os recursos não essenciais.
O custo total do meu projeto ficou abaixo de $ 30, e a lista de materiais era muito curta (links de afiliados):
- Arduino Leonardo (ou clone): entre $ 10 e $ 20.
- 16 x Botões Sanwa 24mm (ou clone): entre $ 1 e $ 2,50 por botão.
- Ferro de solda
- Fio elétrico 22 AWG
A placa Arduino
Quando comecei este projeto, descobri que há vários novos modelos de Arduino (sem incluir as centenas de placas compatíveis). E todos eles oferecem recursos ligeiramente diferentes.
Eu precisava enviar sinais MIDI para um computador e a maneira mais simples de fazer isso é via USB. Qualquer placa Arduino baseada no microcontrolador ATmega32u4 possui comunicação USB integrada.
As placas Arduino oficiais com suporte nativo a USB são Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Essas placas têm suporte USB integrado, o que significa que podem atuar como um dispositivo USB MIDI.
Resolvi ir com um clone do Arduino Leonardo. Ele tem entradas suficientes para este projeto e também inclui cabeçalhos, o que torna mais fácil conectar / desconectar fios.
Primeiros passos
Embora eu explique passo a passo como implementei o código para este projeto, você pode baixar a versão final.
Para fazer o upload do código para a placa, você precisa usar o IDE Arduino. Eles também têm um editor da Web que é muito útil, mas têm uma cota limitada de vezes por dia em que você pode compilar o código.
Etapa 1: Piscando o LED embutido
É engraçado como o "Hello World" no mundo do hardware está piscando um LED.
Foi uma boa surpresa para mim descobrir que o Arduino Leonardo tem um LED integrado que você pode piscar para testar seu código. Dessa forma, você não precisa construir um circuito externo em uma placa de ensaio com um LED e um resistor.
Código:
Etapa 2: Piscando o LED na entrada manual
O próximo passo lógico era piscar o mesmo LED sempre que eu enviar um sinal. Tirei a tampa de plástico de uma extremidade de 2 fios Dupont e conectei a outra extremidade à placa:
- Pino número 2: uma das entradas digitais (positivo). Pode ser qualquer pino digital.
- Pino GND: Qualquer pino de aterramento (negativo).
Agora, toda vez que uno as pontas expostas dos fios, estou fechando o circuito e, portanto, posso executar o código em consequência
Cada um dos 20 pinos digitais no Leonardo tem um resistor interno (desconectado por padrão) que pode ser habilitado usando INPUT_PULLUP. Lembre-se de que uma entrada pull-up significa que o estado do botão está invertido:
- ALTO quando o circuito está aberto (o botão NÃO é pressionado).
- BAIXO quando o circuito está fechado (botão é pressionado).
Código:
Etapa 3: Instalando a Biblioteca MIDIUSB
Esta biblioteca permite que uma placa Arduino com recursos USB atue como um instrumento MIDI via USB. Verifique a documentação oficial para mais informações.
Usando o Arduino IDE, você pode instalar bibliotecas extras do Arduino usando o Library Manager:
- Abra o IDE e clique no menu "Sketch", depois em "Incluir Biblioteca" e em "Gerenciar Bibliotecas".
- Procure MIDIUSB e clique em Instalar.
- Assim que terminar, um tag Instalado deve aparecer ao lado da biblioteca MIDIUSB.
- Feche o Gerenciador de Biblioteca.
Agora o Leonardo pode enviar mensagens MIDI via USB! Mas, primeiro, algumas dicas sobre como funciona o MIDI são necessárias.
Como funciona o MIDI
"MIDI (Musical Instrument Digital Interface) é um protocolo de comunicação padrão que conecta instrumentos musicais eletrônicos, computadores e dispositivos de áudio relacionados para reproduzir música." - Wikipedia
Ele lida com mensagens de eventos com dados de pitch e velocidade da nota tocada, entre outras instruções
Neste projeto específico, a entrada dos 16 botões envia mensagens diferentes via USB. Essas mensagens podem ser convertidas em som em um computador usando qualquer software adequado, como GarageBand ou Ableton Live.
Anatomia de uma mensagem MIDI
Para enviar uma mensagem MIDI, usei o método sendMIDI () da Biblioteca MIDIUSB que instalei na etapa 3.
Este método pode receber 4 parâmetros:
- Tipo de evento: pode ser 0x09 para nota ligada (tocar nota) ou 0x08 para nota desligada (parar de tocar nota).
- Nota On / Off: O tipo de evento combinado com o canal MIDI (1-16). Eu só uso o canal 1, então é 0x90 para note On ou 0x80 para note Off.
- Número da nota: cada nota tem um tom numérico associado (escala de frequência).
- Velocidade: De 0 (sem velocidade) a 127 (mais rápido).
Etapa 4: Enviando uma mensagem MIDI
Incluí a biblioteca MIDIUSB e, em vez de piscar o LED embutido, enviei uma nota.
Código:
⚠ Importante: a partir desta etapa, o Arduino se transforma em um controlador USB MIDI e para de receber código via USB.
Quando você ficar preso em uma posição em que o Arduino não pode mais ser programado, siga estas etapas:
- Mantenha pressionado o botão de redefinição arredondado na placa Arduino.
- Clique em Upload no IDE do Arduino.
- Solte o botão de reinicialização.
- O código atualizado será enviado ao fórum.
Etapa 5: Enviando uma mensagem MIDI de cada botão
A etapa final foi mapear cada arremesso para um botão. Para os 16 botões, defini uma escala de C2 a E3b, que são os tons de 36 a 51 em uma sequência de baixo para cima e da esquerda para a direita. Verifique este arquivo dos Tutoriais do Arduino para ver qual altura corresponde a cada nota.
Usei pinos digitais de 2 a 12 e pinos analógicos (usando-os como digitais) de A0 a A4.
E é assim que o código final se parece com
Etapa 6: Configurando canais ou bancos (opcional)
Caso você queira adicionar mais botões com a capacidade de alternar canais ou bancos, como no MIDI Fighter 3D (ver imagem), o Arduino Leonardo possui mais quatro pinos para você usar. O Arduino Leonardo possui 20 pinos de entrada / saída digital, dos quais apenas 16 estão em uso para tocar notas.
Você pode usar esses botões extras para atualizar uma variável no código e enviar seu valor como um parâmetro para o método MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Etapa 7: o caso
Para manter este projeto simples, fui extremamente exigente quanto à escolha de quais recursos incluir.
- Botões apenas: 16 botões de arcade tipo Sanwa, em uma grade 4x4. Sem botões, sem controles deslizantes, sem faders ou qualquer outra entrada analógica.
- Caixa monobloco: não use parafusos, porcas, parafusos ou cola para o gabinete ou para segurar a placa Arduino.
- Ferramentas do dia-a-dia: por exemplo, soldei os fios em vez de comprar um cortador de fios específico para os botões de arcade.
Projeto Unibody
Um dos desafios que enfrentei foi projetar uma caixa simples o suficiente para que não precisasse de montagem e pudesse ser impressa em 3D em uma única tiragem.
Para evitar o uso de parafusos ou cola, precisei projetar um gabinete que fornecesse o menor acesso aos componentes eletrônicos. Minha maior inspiração para o gabinete foi o Mac Mini, que tem um orifício em forma de círculo na parte inferior. Eu também queria projetar uma tampa que pudesse ser rosqueada para isso, mas decidi deixá-la aberta para expor os componentes eletrônicos.
Baixe o case para impressão 3D (322 KB). Configurações recomendadas: PLA, camadas de 0,15 mm, preenchimento de 20%, aplicadores de suporte pelo menos para o orifício inferior arredondado, os suportes do Arduino e o micro USB.
Segurando um Arduino sem parafusos
O Leonardo tem 4 furos para aparafusar a placa em qualquer caixa adequada, mas minha ideia era tornar mais fácil adicionar e remover a placa da caixa.
Encontrar um suporte de clipe para Arduino no Thingiverse foi fácil, e levei 5 iterações para integrar esse suporte ao design unibody. A parte mais difícil foi fazer suas pernas para evitar buracos para os botões, e fazer o micro USB ficar alinhado ao centro do case.
Etapa 8: A montagem
Depois de inserir todos os botões no lugar, soldei fios pretos curtos unindo todas as pernas negativas dos botões entre eles.
Em seguida, soldei longos fios vermelhos de cada perna positiva para conectar diretamente à placa.
Para conectar os fios ao Arduino, cortei e soldei algumas pontas Dupont e as cobri com um tubo termorretrátil.
Eu conectei os fios na placa seguindo a mesma ordem do MIDI Fighter. De baixo para cima e da esquerda para a direita
Etapa 9: usando o controlador MIDI
Qualquer software de música (ou hardware adequado) pode ser usado para receber MIDI e fazer algumas músicas. Os mais recomendados são Garage Band, Ableton Live, e eu sei que há um monte de aplicativos para instalar em um telefone.
Todas essas ferramentas são úteis para carregar sons predefinidos para percussão, mas foram feitas para propósitos maiores. Essas ferramentas podem ser difíceis de configurar para iniciantes.
MIDI no navegador da Web
Para deixar algo mais alinhado com este projeto e sua simplicidade, construí uma ferramenta Web totalmente focada em controladores MIDI.
Punchy: Implementação WebMIDI e WebAudio para controladores MIDI.
Ele pode ler mensagens MIDI em qualquer navegador que ofereça suporte à API WebMIDI JavaScript. Em seguida, ele reproduz sons em um sintetizador (usando a API WebAudio) ou em um sampler, carregando sons personalizados de qualquer pacote de som.
Configure o Ableton Live
Para fazer o controlador MIDI funcionar com o Ableton Live, siga estes passos simples da documentação oficial.
Vá em Preferências → Link MIDI e certifique-se de que a "Entrada" esteja com "Faixa" e "Remoto" LIGADOS e a saída tenha "Remoto" LIGADO, bem como mencionado no guia:
Recomendado:
Construir um controlador MIDI Arduino: 5 etapas (com imagens)
Construir um controlador MIDI Arduino: Olá a todos! Neste instrutível, mostrarei como construir seu próprio controlador MIDI com Arduino. MIDI significa Musical Instrument Digital Interface e é um protocolo que permite que computadores, instrumentos musicais e outros hardwares se comuniquem
Lune - Controlador MIDI com Arduino (para DJ ou músico): 5 etapas (com imagens)
Lune - Controlador MIDI com Arduino (para DJ ou músico): Este é o meu primeiro arduino (microcontrolador) nome de projeto Lune. Eu queria aprender arduino com um projeto grande e útil, então decidi fazer um controlador midi DJ que tivesse todas as funções necessárias para ser autônomo para mixar. Cada tipo de sensor (potentio
Construindo um rastreador solar automático com Arduino Nano V2: 17 etapas (com imagens)
Construindo um Rastreador Solar Automático com Arduino Nano V2: Olá! Este Instructable deve ser uma parte dois do meu projeto Solar Tracker. Para obter uma explicação sobre como funcionam os rastreadores solares e como projetei meu primeiro rastreador, use o link abaixo. Isso oferecerá contexto para este projeto.https: //www.instructables.co
Controlador de jogo DIY baseado em Arduino - Controlador de jogo Arduino PS2 - Jogando Tekken com gamepad Arduino DIY: 7 etapas
Controlador de jogo DIY baseado em Arduino | Controlador de jogo Arduino PS2 | Jogando Tekken com DIY Arduino Gamepad: Olá pessoal, jogar é sempre divertido, mas jogar com seu próprio controlador de jogo DIY personalizado é mais divertido. Portanto, faremos um controlador de jogo usando arduino pro micro neste instructables
Construindo um Arduino DIY em um PCB e algumas dicas para iniciantes: 17 etapas (com imagens)
Construindo um Arduino DIY em uma PCB e algumas dicas para iniciantes: Este é um guia para qualquer pessoa que esteja soldando seu próprio Arduino a partir de um kit, que pode ser adquirido na A2D Electronics. Ele contém muitas dicas e truques para construí-lo com sucesso. Você também aprenderá sobre o que todos os diferentes componentes d