Tabla de contenido:

Midi Record / Play / Overdub con conexiones de 5 pines: 3 pasos
Midi Record / Play / Overdub con conexiones de 5 pines: 3 pasos

Video: Midi Record / Play / Overdub con conexiones de 5 pines: 3 pasos

Video: Midi Record / Play / Overdub con conexiones de 5 pines: 3 pasos
Video: Grabar MIDI en "modo loop" en REAPER. 2024, Mes de julio
Anonim
Midi Record / Play / Overdub con conexiones de 5 pines
Midi Record / Play / Overdub con conexiones de 5 pines

* Utiliza un chip ATMega-1284 que se ejecuta a 8 MHz, con 4 k Bytes de RAM y 4 kBytes de eeprom

* Utiliza los antiguos conectores DIN de 5 pines

* Permite grabar y reproducir, así como sobregrabar: grabar junto con algo que grabaste antes.

* Menú completo

* Capacidad de nombrar y almacenar un archivo en eeprom

* Tempos editables y firmas de tiempo

* Cuantización rudimentaria

Utilidad * Prueba de concepto: este proyecto puede resultarle desafiante.

Qué incluye este tutorial:

* Lista de partes

* Informe del proyecto (adjunto a este panel)

Contiene mucha información que necesita saber sobre el proyecto.

* Enlace al código C en GitHub

github.com/sugarvillela/ATMega1284

* Instrucciones paso a paso para construir el proyecto y adaptar el código.

Paso 1: Lista de piezas

Lista de partes
Lista de partes

Algunas partes las obtuve en la escuela con descuento. Algunos los compré en una tienda y pagué demasiado. Si tienes tiempo, obtén todo esto en línea.

1 Protoboard, cualquier modelo, aproximadamente del mismo tamaño que el de la foto de presentación, $ 20

1 microprocesador, modelo ATMega1284, $ 5

Este es un chip versátil con excelentes características. Encuentre la hoja de datos aquí:

ww1.microchip.com/downloads/en/devicedoc/atmel-42718-atmega1284_datasheet.pdf

1 fuente de alimentación de 5 voltios

1 ATMEL-HIELO

Esta es la interfaz entre su computadora y el microprocesador. También necesita algún software de edición de código (un IDE) y un compilador que pueda realizar una compilación cruzada de C con la arquitectura del chip ATMega. Atmel proporciona un entorno, Atmel Studio, que cumple con estos requisitos. Descárgalo aquí:

1 optoacoplador, modelo 6N138 o equivalente, $ 5

Esto es para la entrada; el estándar midi requiere que los dispositivos estén aislados entre sí para evitar bucles de tierra. Usé el chip equivalente a NEC con idéntica disposición de pin-out. Vea la foto de arriba para obtener información o simplemente busque en Google '6n138 pinout'. Si usa un modelo con diferentes asignaciones de pines, busque los pines correspondientes (con cuidado).

2 pantallas LCD, modelo 1602A1, $ 3 cada una

Usé pantallas de 2 * 16, lo que significa que tienen 2 filas, cada una de 16 caracteres de ancho. El código está escrito específicamente para estos, así que intente utilizar los mismos. Las conexiones son: 8 líneas de datos y 2 líneas de control. Puede compartir las líneas de datos entre las dos pantallas, pero necesita 2 líneas de control para cada una, para un total de 4 líneas de control. Mi proyecto usa el bus C para las líneas de datos LCD y el nibble superior del bus D para las líneas de control. Si conecta el suyo de manera diferente, cambie los buses de salida en su código.

1 altavoz

Para salida de metrónomo; cualquier orador servirá. Lo alimentarás con ondas cuadradas de 3-5 voltios, por lo que no es necesario que suene bonito. También puede conectarse a un amplificador externo.

1 condensador, para suavizar la salida de onda cuadrada al altavoz

2 conectores DIN de 5 pines, macho o hembra

Usé cables macho y los conecté a la placa. Para una solución más elegante, utilice conectores hembra y conecte cables macho a otros dispositivos. (Recuerde que los números de los pines están al revés dependiendo de cómo mire el conector).

Resistencias, 180-330 ohmios, 1k-10kOhm

Es posible que deba experimentar con valores de resistencia para que el optoacoplador rastree la entrada lo suficientemente rápido

LEDs

El diseño requiere un diodo a través de la entrada del optoaislador, pero un LED servirá. Utilice un LED para el metrónomo para que parpadee al ritmo del pitido del altavoz. Tenga más LED a mano para depurar la salida si los necesita.

Alambres, muchos alambres

Calibre 20-22, alambres sólidos, largos, cortos y diminutos.

Paso 2: Código C

Vaya a github para obtener el código:

* Asegúrese de leer y comprender el código porque es posible que deba modificarlo para que se adapte a un hardware diferente.

* El informe del proyecto en el panel de introducción contiene descripciones detalladas de los módulos de software y cómo interactúan.

* Sin copiar y pegar. Interactuar con el código; experimentar; volver a escribir. Probablemente puedas mejorarlo.

Paso 3: cableado inicial (consulte la foto del proyecto para obtener orientación)

Cableado inicial (consulte la foto del proyecto para obtener orientación)
Cableado inicial (consulte la foto del proyecto para obtener orientación)
Cableado inicial (consulte la foto del proyecto para obtener orientación)
Cableado inicial (consulte la foto del proyecto para obtener orientación)

Notas sobre la foto del proyecto antes de comenzar

En la foto, el optoacoplador es el último chip de la derecha y el procesador es el chip grande de la izquierda.

Notarás otros dos chips en el medio con un montón de resistencias conectadas. Ignóralos por favor. Esos son registros de turnos, que no se utilizan en este proyecto. Si alguna vez tiene ganas de agregar una matriz de LED, descubrirá para qué sirven.

La cosa negra redonda es el altavoz (un zumbador piezoeléctrico).

Los botones están arriba a la izquierda. Eso está bastante lejos del bus A en la parte inferior derecha del chip.

La pantalla LCD de la izquierda es LCD 0. La de la derecha es LCD 1.

En estas instrucciones, asumiré que está utilizando la pieza exacta especificada (siempre que se proporcione un número de modelo en la lista de piezas).

Cablee la fuente de alimentación

La placa tiene rieles eléctricos alrededor de los bordes y entre las secciones. Utilice cables cortos para unirlos a todos y para conectarlos a la fuente de alimentación. Ahora puede acceder a positivo y a tierra desde cualquier lugar del tablero.

Papas fritas

Instale el chip ATMega, teniendo cuidado de no doblar los pines (una buena precaución para cualquier chip) y asegurándose de que esté completamente asentado.

Instale el optoacoplador junto al procesador.

Conecte los rieles de la fuente de alimentación a los pines correspondientes del procesador y el optoacoplador.

LCD

Lea el archivo LCDhookup.pdf incluido (a continuación) para obtener ayuda sobre la conexión de una pantalla LCD.

Cada pantalla tiene dos conexiones de alimentación y tres conexiones a tierra.

El pin 3 es un control de brillo que, si se configura incorrectamente, hará que el contenido de la pantalla sea invisible. Si tiene un potenciómetro a mano, utilícelo para ajustar el voltaje de control. También puede probar resistencias fijas, para obtener un voltaje de aproximadamente 1/2 de VCC.

Los pines 4 y 6 en la pantalla LCD 0 se conectan a D4 y D5 en el procesador. Se utilizan para habilitar y restablecer la pantalla.

Los pines 4 y 6 en la pantalla LCD 1 se conectan a D6 y D7 en el procesador.

Los pines 7-17 en ambas pantallas LCD se conectan a C0-C7 en el procesador. Este es un bus de datos compartido. Cada pantalla ignorará los datos hasta que entre una señal de control en los pines 4 y 6.

Lea: Información de la pantalla LCD y más información para comprender cómo funcionan las pantallas LCD.

Botones

Conecte los cuatro botones a A2-A4 en el procesador. (Dejé A1 abierto para la entrada del convertidor A / D, pero no lo usé).

En cualquier tipo de chip lógico, una entrada no conectada flota en alto, lo que significa que el procesador verá un 1 en esa entrada. Para controlar esto, debe conectar los pines a tierra a través de una resistencia. Conecté los botones para que estuvieran a tierra (a través de la resistencia) cuando no los presioné, y altos cuando los presioné. Utilice cualquier resistencia de 330 a 1k para este propósito.

Alternativamente, y tal vez con mayor eficiencia energética, puede conectar los botones para que estén altos cuando no se presionan y bajos cuando se presionan. Debería cambiar el código (buttonBus.c) para buscar ~ PINA en lugar de PINA.

Recomendado: