Índice:
Vídeo: HX1-DM - a Drum Machine Upcycled Arduino DUE Powered DIY (feita com um Dead Maschine MK2): 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
As especificações
- Controlador / drum machine híbrido Midi: Arduino DUE alimentado!
- 16 almofadas de detecção de velocidade com latência muito baixa 1> ms
- 8 botões do usuário atribuíveis a qualquer comando Midi #CC
- Sequenciador integrado de 16 canais (não é necessário computador !!)
- Funcionalidade MIDI in / out / thru (pode ser usada como uma interface USB midi!)
- Suporte parcial de relógio MIDI e MTC (trabalhando no controle MMC e DAW)
Este é definitivamente um dos projetos mais complicados em que trabalhei, falando de 17 registradores de mudança de saída, 6 registradores de mudança de entrada, 2x multiplexadores de 16 canais trabalhando em uma placa de circuito. Não tenho ideia do que é o quê e onde, além disso, nunca baguncei com registradores de deslocamento / multiplexadores antes de …
Tudo começou como uma compra por impulso do eBay, eu realmente queria um Native Instruments Maschine porque sempre gostei dos drum pads deles em comparação com os do estúdio MPC que eu possuía, então quando vi um com defeito no eBay por £ 40 libras, pensei Eu tentaria consertá-lo com o pior cenário possível, sendo 'se eu não posso consertar, tenho um Arduino DUE e alguns UNO por aí, sempre posso fazer algum hack'
Eu realmente gosto dessas almofadas de bateria de qualquer maneira !!!!
Suprimentos
1 x Native Instruments Maschine MK2 com defeito
1 x Arduino devido.
17 x SN74HC595’s - registradores de deslocamento de saída de 8 bits
6 x SN74HC165’s - registradores de deslocamento de entrada de 8 bits
2 x 74HC4067 - multiplexadores de 16 canais.
2 visores OLED de 256x64 de 3,2”.
um pouco de fio achatado (um cabo flexível antigo serve)
Etapa 1: o reparo
O vendedor do eBay teve a gentileza de dar uma ideia do que esperar na descrição e removeu a porta USB. A placa sofreu uma sobretensão e não ligou. Faça o sinal do multímetro…. A placa parecia ter um curto.. 'Eu já consertei inúmeras placas-mãe com curtos antes Então, quão difícil pode ser!?!' componente na placa incluindo a CPU principal. Esta prancha estava de um jeito muito ruim!
Eu continuei a cutucar e cutucar com meu multímetro, fiz um pouco de pesquisa sobre os componentes e descobri o que cada um faz além da NI fez um ótimo trabalho em tornar as coisas bastante óbvias com os vários pontos de teste ao redor da placa-mãe ??.
Etapa 2: o hack
Sabendo que vou precisar substituir tudo, exceto a CPU principal (que não será necessária), procurei o eBay. Felizmente, tudo que precisava era barato, então pedir um monte deles foi divertido. ?
17 x SN74HC595’s - registradores de deslocamento de saída de 8 bits
Os 17 registradores de deslocamento de saída são usados para controlar os LEDs multicoloridos do pad de bateria e todos os LEDs de botão (136 para ser mais exato!). Eles são realmente fáceis de usar e rapidamente encontrei uma biblioteca usando o IDE do Arduino para me salvar de fazer uma.. eles estão acorrentados.
6 x SN74HC165’s - registrador de deslocamento de entrada de 8 bits
Esses registradores de deslocamento de entrada são ótimos para várias entradas em 1 canal. Existem 48 botões no total.
2 x 74HC4067 - multiplexadores de 16 canais
Temos 16 pads e 8 botões restantes, esses também são analógicos. Achei mais fácil usá-los, pois os da placa eram de 8 canais e tive problemas para encontrar onde conectar os pinos de dados.. cue spaghetti junction….
2 visores OLED de 256x64 de 3,2”
Tem que ter algumas telas !!! Não consegui encontrar nenhuma informação nas telas de LCD originais que vinham no NI Maschine e não me incomodava mais em perder tempo tentando, então decidi pedir algumas da China … Usei a biblioteca UG8x8 para fazê-las funcionar. As novas telas eram um pouco menores do que a original, então eu apenas apaguei as 'partes ruins'.
1 x Arduino devido
Eu tive isso por aí esperando por um tempo esperando por um projeto digno o suficiente por todo aquele poder !! Ocorreu um problema que encontrei. Parece que algumas revisões dessas placas apresentam um problema de redefinição que significava que às vezes eu precisava apertar o botão de redefinir para que funcionasse depois de enviar um esboço. Isso foi facilmente corrigido com um resistor de 10K (há uma postagem no fórum do Arduino sobre isso).
Etapa 3: o código
Fiquei realmente impressionado com a quantidade de suporte que existe na comunidade Arduino, encontrar exemplos de código e bibliotecas para os vários componentes foi muito simples e direto.
Colocar o midi USB em funcionamento foi fácil e demorou alguns minutos. Os LEDs demoraram um pouco e tive que criar um esboço que incrementasse cada pino HIGH em intervalos de 1 segundo e fiz uma anotação. Fiz uma matriz que continha os números do PIN para facilitar quando se tratava de codificar tudo.
Fiz 2 bibliotecas para falar com os multiplexadores, uma lida com os pads analógicos e a outra com os botões. Novamente, isso foi muito simples. Anexei-os, sinta-se à vontade para usar edição etc.
Eu queria ter um sequenciador e a capacidade de gravar sem a necessidade de um computador, encontrei algumas informações sobre como converter BPM para ms e encontrei uma ótima biblioteca de cronômetros DUE do Arduino.
Usando a biblioteca de cronômetros, consegui definir entradas de leitura e coisas em intervalos:
Pads @ 1ms - descobri que isso dá o melhor equilíbrio entre artefatos de resposta / de-bounce.
Botões a 40ms - usei uma biblioteca de filas para que não houvesse perda de pressionamentos.
O processamento é feito no loop principal, você não pode fazer muito quando estiver em uma interrupção, pois isso bloqueará o Arduino.
Midi stuff @BPM (em ms) - para o sequenciamento, no BPM desejado, uma função é chamada que atualiza quais notas ETC devem ser tocadas e aumenta o contador de batidas.
Etapa 4: Conclusão
Não tenho certeza do que fiz aqui, mas estou muito orgulhoso, os pads respondem excelente, eu tive que mexer com o tempo para obter o equilíbrio certo com a capacidade de resposta e problemas de debounce. O sequenciamento funciona muito bem e, depois de descobrir o suporte DAW, posso integrar totalmente isso ao meu fluxo de trabalho e adicionar coisas em um controlador que sempre quis!. Este foi um projeto muito divertido de se trabalhar e um ótimo exercício em se familiarizar com C, compreender a engenharia reversa e como multiplexadores, registradores de deslocamento e sequenciamento de MIDI funcionam. Estou continuando a melhorar o código principal e posso lançá-lo um dia como um designer de ritmo de código aberto.
PONTAS:
Descobri como alterar o nome USB do DUE editando um dos arquivos de cabeçalho na pasta Arduino / SAM.
MIDI-OX é uma ótima ferramenta para testar a funcionalidade Midi
LINKS:
www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Algumas informações sobre como converter BPM para ms
travis-ci.com/SMFSW/Queue - Para entradas de botão para não perder nenhum pressionamento!
github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib para telas de LED / LCD
github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib
www.pjrc.com/teensy/td_libs_Encoder.html - Biblioteca do codificador para o botão grande
shiftregister.simsso.de/ - ShiftIn Register lib - Criado por Henrik Heine, 24 de julho de 2016
forum.arduino.cc/index.php?topic=57636.0 - material MIDI Time Code
Recomendado:
Fechadura de porta feita em casa por RFID: 4 etapas
RFID Home Made Door Lock: O dispositivo RFID Door Lock é um dispositivo prático que você pode usar na sua vida diária. Ao digitalizar seu cartão-chave, você pode abrir a fechadura da porta. Modifiquei o projeto deste site: https://atceiling.blogspot.com/2017/05/arduino-rfid.html?m=1Yo
Pasta de trabalho feita por uma mulher: 14 etapas (com fotos)
Maleta PC construída por uma mulher: PASSO 1: Anote os materiais a serem usados: monitor de tela de 3”de madeira balsa AMD RYZEN 5 3500X 3,6 GHZ 35 MB AMD CPU (6C / 6T) GIGABYTE B550 AORUS PRO A WIFI AM4 ATX DDR4 CORSAIR VENGEANCE LPX3600416GB (2X8GB) KIT CL18 DDR4 (RYZEN) ADATA XPG SX8200 2TB PRO 2 P
Placa Arduino feita por você mesmo: 8 etapas
Placa Arduino de fabricação própria: Ao projetar sua própria placa Arduino, você aprenderá sobre alguns novos componentes e circuitos eletrônicos, incluindo alguns tópicos avançados como fonte de alimentação, circuito de temporização e o uso de ATmega IC (Circuito Integrado). o futuro com
Escala de contagem feita com um Arduino: 6 etapas
Escala de contagem feita com um Arduino: Este projeto ainda é um trabalho em andamento, mas chegou a um ponto em que é útil compartilhar os detalhes para que outros se beneficiem dele e da ideia. É basicamente uma escala construída usando o Arduino como microcontrolador, um sistema genérico
A Raspberry Pi Powered Junk Drum Machine: 15 etapas (com fotos)
Uma bateria eletrônica movida a Raspberry Pi: Este manual mostrará como fazer uma bateria eletrônica robótica movida a Raspberry Pi. É realmente um projeto divertido, criativo e interativo. Eu vou te mostrar como fazer o funcionamento interno, mas a bateria real vai depender de você, dando-lhe o