Tabla de contenido:
Video: HX1-DM: la máquina de tambor de bricolaje con Arduino DUE reciclada (hecha con una Dead Maschine MK2): 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
El Spec
- Controlador híbrido Midi / caja de ritmos: ¡alimentado por Arduino DUE!
- 16 pads de detección de velocidad con latencia muy baja 1> ms
- 8 perillas asignables por el usuario a cualquier comando Midi #CC
- Secuenciador incorporado de 16 canales (¡no se necesita computadora!)
- Funcionalidad MIDI in / out / thru (¡se puede utilizar como interfaz USB midi!)
- Soporte parcial de reloj MIDI y MTC (trabajando en control MMC y DAW)
Este es definitivamente uno de los proyectos más complicados en los que he trabajado, hablamos de 17 registros de desplazamiento de salida, 6 registros de desplazamiento de entrada, 2x multiplexores de 16 canales trabajando en una placa de circuito. No tengo idea de qué es qué y dónde, además, nunca me he equivocado. con registros de desplazamiento / multiplexores antes de ……
Comenzó como una compra impulsiva en eBay, realmente quería una Native Instruments Maschine porque siempre me gustaron las almohadillas de batería en comparación con las del estudio MPC que tenía, así que cuando vi una defectuosa en eBay por £ 40 libras, pensé Daría una oportunidad para arreglarlo con el peor de los casos siendo 'si no puedo arreglarlo, tengo un Arduino DUE y algunos UNO están por ahí, siempre podría hacer algún truco'
¡Me gustan mucho esos pads de batería de todos modos!
Suministros
1 x Native Instruments Maschine MK2 defectuoso
1 x Arduino Due.
17 x SN74HC595's: registros de desplazamiento de salida de 8 bits
6 x SN74HC165's: registros de desplazamiento de entrada de 8 bits
2 x 74HC4067 - multiplexores de 16 canales.
2 pantallas OLED de 3,2”256x64.
un poco de cable plano (el cable de disquete viejo servirá)
Paso 1: la reparación
El vendedor de eBay tuvo la amabilidad de dar una idea de qué esperar en la descripción y había quitado el puerto USB. La placa había sufrido una sobretensión y no se encendió. Cue el multímetro…. La placa parecía tener un corto … 'He reparado innumerables placas base con cortocircuitos antes. componente de la placa, incluida la CPU principal. ¡Este tablero estaba en muy mal estado!
Continué pinchando y pinchando con mi multímetro, investigué un poco sobre los componentes y descubrí lo que hace cada uno y NI hizo un gran trabajo al hacer las cosas bastante obvias con los diversos puntos de prueba alrededor de la placa base.
Paso 2: El truco
Sabiendo que tendré que reemplazar todo excepto la CPU principal (que no será necesaria), recurrí a eBay. Afortunadamente, todo lo que se necesitaba era barato, por lo que pedir un montón de ellos fue divertido. ?
17 x SN74HC595's: registros de desplazamiento de salida de 8 bits
Los 17 registros de desplazamiento de salida se utilizan para controlar los LED multicolores de la almohadilla de batería y todos los LED de los botones (¡136 para ser exactos!) Estos son realmente fáciles de usar y rápidamente encontré una biblioteca usando el IDE de Arduino para ahorrarme a mí mismo haciendo uno.. están encadenados entre sí.
6 x SN74HC165's: registro de desplazamiento de entrada de 8 bits
Estos registros de desplazamiento de entrada son excelentes para múltiples entradas en 1 canal. Hay 48 botones en total.
2 x 74HC4067 - multiplexores de 16 canales
Tenemos 16 pads y 8 perillas restantes, que también son analógicas. Me resultó más fácil usarlos, ya que los que estaban en la placa eran de 8 canales y tuve problemas para encontrar dónde conectar los pines de datos.
2 pantallas OLED de 3,2”256x64
¡¡¡Debe tener algunas pantallas !!! No pude encontrar ninguna información sobre las pantallas LCD originales que venían en NI Maschine y no podía molestarme en perder más tiempo intentándolo, así que decidí pedir algunas de China … Usé la biblioteca UG8x8 para que funcionen. Las nuevas pantallas eran un poco más pequeñas que las originales, por lo que simplemente borré las 'partes malas'.
1 x Arduino Due
¡Tuve esto por ahí durante algún tiempo esperando un proyecto lo suficientemente digno para todo ese poder! Hubo un problema que encontré. Parece que algunas revisiones de estos tableros tienen un problema de reinicio que significaba que tenía que presionar el botón de reinicio a veces para que la cosa se ejecutara después de cargar un boceto. Esto se solucionó fácilmente con una resistencia de 10K (hay una publicación en el foro de Arduino sobre esto).
Paso 3: el código
Me impresionó mucho la cantidad de soporte que hay en la comunidad Arduino, encontrar ejemplos de código y bibliotecas para los diversos componentes fue realmente simple y directo.
Poner en funcionamiento el midi USB fue fácil y tomó unos minutos. Los LED tomaron algo de tiempo y tuve que crear un boceto que estableciera incrementalmente cada pin en ALTO en intervalos de 1 segundo y tomé una nota. Hice una matriz que contenía los números de PIN para facilitar la codificación de todo.
Hice 2 bibliotecas para hablar con los multiplexores, una maneja los pads analógicos y la otra las perillas. Nuevamente, esto fue realmente simple. Los he adjuntado, siéntase libre de usar editar, etc.
Quería tener un secuenciador y la capacidad de grabar sin la necesidad de una computadora, encontré información sobre cómo convertir BPM a ms y encontré una gran biblioteca de temporizadores Arduino DUE.
Usando la biblioteca de temporizadores, pude configurar entradas de lectura y cosas en intervalos:
Pads @ 1ms: encontré que esto brinda el mejor equilibrio entre los artefactos de respuesta / eliminación de rebote.
Botones a 40 ms: utilicé una biblioteca de colas para que no se perdieran las pulsaciones.
El procesamiento se realiza en el bucle principal, no puede hacer demasiado cuando está en una interrupción, ya que esto bloqueará el Arduino.
Midi stuff @BPM (en ms): para la secuenciación, al BPM deseado se llama una función que actualiza qué notas ETC se van a reproducir y aumenta el contador de tiempo.
Paso 4: Conclusión
No estoy seguro de lo que hice aquí, pero estoy bastante orgulloso, las almohadillas responden excelentemente, tuve que manipular el tiempo para lograr el equilibrio correcto con problemas de capacidad de respuesta y de rebote. La secuenciación funciona muy bien y una vez que descubro el soporte DAW puedo integrar completamente esto en mi flujo de trabajo y puedo agregar cosas en un controlador que siempre quise. Este fue un proyecto muy divertido para trabajar y un gran ejercicio para familiarizarse con C, comprender la ingeniería inversa y cómo funcionan los multiplexores, los registros de desplazamiento y la secuenciación MIDI. Continúo mejorando el código principal y podría lanzarlo algún día como diseñador de ritmo de código abierto.
CONSEJOS:
Encontré cómo cambiar el nombre USB del DUE editando uno de los archivos de encabezado en la carpeta Arduino / SAM.
MIDI-OX es una gran herramienta para probar la funcionalidad Midi
ENLACES:
www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Alguna información sobre cómo convertir BPM a ms
travis-ci.com/SMFSW/Queue - ¡Para entradas de botones para que no perdamos ninguna pulsación!
github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib para pantallas LED / LCD
github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib
www.pjrc.com/teensy/td_libs_Encoder.html - Codificador Lib para la perilla grande
shiftregister.simsso.de/ - ShiftIn Register lib - Creado por Henrik Heine, 24 de julio de 2016
forum.arduino.cc/index.php?topic=57636.0 - Cosas de código de tiempo MIDI
Recomendado:
Tambor musical piezoeléctrico de bricolaje: 7 pasos
Tambor musical piezoeléctrico de bricolaje: los pasos 1-5 se pueden realizar principalmente en cualquier orden, depende de lo que quieras hacer primero.Este es mi primer Instructable, ¡así que dime si algo está mal! Lo siento si algún paso está mezclado, espero que no te importe
Easy Wake-Up: una luz de despertador inteligente hecha con Raspberry Pi: 6 pasos
Easy Wake-Up: una luz de despertador inteligente hecha con Raspberry Pi: Introducción Para el plan de estudios Project1 tenía que hacer algo. Siempre me fascinó cómo una luz de despertador como las de Philips te beneficiaría al despertar, así que decidí hacer una luz de despertador. Hice la luz del despertador con un Raspberr
SafetyLock: una cerradura inteligente hecha con Raspberry Pi (huella digital y RFID): 10 pasos
SafetyLock: una cerradura inteligente hecha con Raspberry Pi (huella digital y RFID): ¿Alguna vez ha querido una forma más accesible de proteger su casa? Si es así, ¡esta es la solución para ti! Hice SafetyLock, este es un candado que se puede abrir con tu huella digital, una tarjeta RFID e incluso a través de un sitio web. Gracias a este concepto podrás
Reciclar la lámpara de recordatorio de una botella de agua reciclada: 7 pasos
Reciclar la lámpara de recordatorio de una botella de agua reciclada: este I'ble le mostrará cómo fabricar una lámpara portátil ordenada y simple a partir de una botella de agua reciclada. No solo arrojará su luz durante horas y horas, sino que también creará una pieza de conversación para incitar a otros a unirse a nuestra lucha para salvar el mundo. Guarde estos va
Linterna LED simple: hecha de batería reciclada: 6 pasos
Linterna LED simple: hecha de batería reciclada: utilicé un LED rojo para este instructable, porque es más fácil de ver que uno claro y no tenía uno pequeño claro a mano. Si haces uno de estos siguiendo las instrucciones, será mucho más brillante que el de la foto, es más fácil de