Tabla de contenido:

Chip de sonido retro con un Arduino: el SAA1099: 16 pasos (con imágenes)
Chip de sonido retro con un Arduino: el SAA1099: 16 pasos (con imágenes)

Video: Chip de sonido retro con un Arduino: el SAA1099: 16 pasos (con imágenes)

Video: Chip de sonido retro con un Arduino: el SAA1099: 16 pasos (con imágenes)
Video: Commander X16 - Proto #2 - Design Updates and Next Steps 2024, Noviembre
Anonim
Image
Image
Cableado - SAA1099
Cableado - SAA1099

En este instructivo, te mostraré cómo usar un Arduino Uno con un chip de síntesis de sonido vintage, ¡para reproducir archivos midi con bondad ondulada cuadrada!

Si solo desea una descripción general rápida de lo que hace este proyecto, mire el video anterior. De lo contrario, ¡continúe!

Paso 1: video

Image
Image

Si prefiere todas sus instrucciones en videos claros y concisos, ¡lo tenemos cubierto!

Para el resto de nosotros, puede continuar, para obtener un poco más de detalles e instrucciones escritas.

Paso 2: Piezas y materiales

Para ello, necesitará estas cosas:

(Los enlaces son para artículos de eBay)

  • Un Arduino (Uno, Nano, Leonardo, todos deberían funcionar)
  • Al menos una placa de pruebas de tamaño mediano
  • El chip generador de sonido estéreo SAA1099
  • Cables de puente de tablero (alternativamente, me gusta usar puentes dupont hembra a hembra, con pines de cabezal de 20 mm insertados en cada extremo, mucho más resistentes)
  • Oscilador TTL de 8Mhz (enlace AliExpress proporcionado por zweigelt)
  • Conector de audio estéreo (o mono)
  • 2 resistencias de 1K (lote de 100)
  • 1 x resistencia de 10K (lote de 50)
  • Condensadores 2 x 100pF
  • (Opcional) Algunos LED, al menos 1 (¡Cualquier color, aquí hay 100 colores surtidos por un dólar!)

Usando los enlaces proporcionados, el costo total es de $ 23.25, incluido el envío. Por supuesto, la mayor parte proviene del otro lado del mundo, por lo que el envío generalmente demora alrededor de un mes. Si desea un envío más rápido, probablemente tendrá que pagar un poco más.

Paso 3: Cableado - SAA1099

Cableado - SAA1099
Cableado - SAA1099
Cableado - SAA1099
Cableado - SAA1099

Si lo tuyo son los esquemas, ¡aquí tienes! El resto de nosotros puede ir paso a paso o ver el video.

  • Coloque el SAA1099 al final de la placa de pruebas, con la muesca en el chip hacia el extremo.
  • Ahora, poder. VDD (pin 18) en el SAA1099 se conecta a la alimentación, luego pin VSS (pin 9) a tierra.
  • A continuación, coloque un cable entre CS (pin 2) y tierra, para mantenerlo bajo

También recomendaría echar un vistazo a la hoja de datos que he adjuntado.

Paso 4: Cableado - Oscilador TTL

Cableado: oscilador TTL
Cableado: oscilador TTL
Cableado: oscilador TTL
Cableado: oscilador TTL
  • Pondremos el oscilador TTL en la placa junto a la placa, de modo que el pin de salida del reloj esté más cerca de la entrada del reloj en el SAA1099 (pin 8)
  • Puede continuar y conectar la alimentación y la tierra al oscilador TTL. (Esperé hasta más tarde en mi video, así que no tengo una foto). La imagen de arriba muestra qué pines son cuáles.

Paso 5: Cableado - Interfaz de chip e Iref

Cableado - Interfaz de chip e Iref
Cableado - Interfaz de chip e Iref
Cableado: interfaz de chip e Iref
Cableado: interfaz de chip e Iref
  • Conecte la resistencia de 10K entre Iref (pin 6) y 5V.
  • Conecte el pin digital 8 al WR (pin 1) del SAA1099.
  • Conecte el pin digital 9 a A0 (pin 3) en el SAA1099.

Paso 6: Cableado - Componentes de sonido

Cableado: componentes de sonido
Cableado: componentes de sonido
Cableado: componentes de sonido
Cableado: componentes de sonido
Cableado: componentes de sonido
Cableado: componentes de sonido
  • Conecte un condensador de 100pF entre OUTR (pin 4) y GND
  • Conecte una resistencia de 1K entre OUTR (pin 4) y 5V
  • Haremos lo mismo con OUTL (pin 5)
  • Conecte un condensador de 100pF entre OUTL (pin 5) y GND
  • Conecte una resistencia de 1K entre OUTL (pin 5) y 5V

¡Nota! Asegúrese de que ninguno de los cables de las resistencias / condensadores se toque, de lo contrario, las cosas no funcionarán y podrían (tentativamente) estallar en su cara.

Paso 7: Cableado: conector de audio

Cableado: conector de audio
Cableado: conector de audio
Cableado: conector de audio
Cableado: conector de audio
Cableado: conector de audio
Cableado: conector de audio
  • Conecte un pequeño cable de puente entre 5 V y una fila vacía en la placa de pruebas.
  • Coloque su conector de audio, de modo que el puente de 5 V se conecte al pin "Sleeve" en el conector de audio
  • Conecte los pines L y R (o audio, si tiene un conector Mono) a los pines OUTL (pin 5) y OUTR (pin 4) del SAA1099, respectivamente.

¡Nota! En las tomas de audio mono, realmente no importa lo que vaya, siempre que un pin se conecte a 5V y otro a OUTL u OUTR. Sonará bien. A menos que no sea así, en cuyo caso es posible que desee volver a comprobar su cableado.

Paso 8: Cableado: alimentación a la placa de pruebas

Cableado: alimentación a la placa de pruebas
Cableado: alimentación a la placa de pruebas
Cableado: alimentación a la placa de pruebas
Cableado: alimentación a la placa de pruebas
  • Conecte ambos lados del bus de alimentación de la placa de pruebas entre sí, utilizando cables de puente.
  • Conecte un lado a los pines 5V y GND en el Arduino, asegurándose de no haber mezclado los cables en ninguna parte. Si lo hizo, el humo mágico puede escapar.

Paso 9: Cableado - Líneas de datos

Cableado: líneas de datos
Cableado: líneas de datos

Conecte D0 a D7 en el Arduino a D0 (pin 10) a D7 (pin 17) en el SAA1099, en orden

Encuentro que los cables de puente hembra-hembra de DuPont, con pines de cabezal de 15-20 mm en cada extremo, funcionan mucho mejor que los cables dupont macho-macho. Además, también puedes usarlos como mujer-mujer o hombre-mujer. Ambos se encuentran fácilmente en eBay en grandes cantidades, por pequeñas cantidades de cambio. ¡Un buen regalo de Navidad para el aspirante a adicto a Arduino!

Paso 10: LED (s) opcionales

LED (s) opcionales
LED (s) opcionales
LED (s) opcionales
LED (s) opcionales

No repasaré paso a paso cómo construir todo aquí, pero hay varios lugares buenos para agregar LED. En primer lugar, conecté un LED rojo de 3 mm entre WR (pin 1) y GND, para mostrar cada vez que el Arduino envía un comando al SAA1099.

También he conectado LED a las líneas de datos antes, lo que le permite ver los datos binarios reales en cada línea. Usé esta configuración en mi video "Arduino y SAA1099 - Luciérnagas", así como 6 LED más y un código adicional para iluminar cada LED de cada canal que estaba activo.

¡Cuantos más LED, más fresco se ve!

Paso 11: ¡Código

¡Código!
¡Código!
¡Código!
¡Código!

Ahora que ha construido el circuito, ¡vuelva a verificar las conexiones! ¡No querrás hacer explotar tu costoso arduino y Soundchip! (Si lo hace, bueno. Eso no es asunto mío)

Suponiendo que esté cuerdo y haya comprobado todo, podemos empezar a programarlo.

  • La biblioteca está en
  • Querrá el archivo SAATunes.zip, así que descárguelo.
  • Ahora, abra el IDE de Arduino.
  • En "Sketch", "Incluir biblioteca", haga clic en "Agregar biblioteca.zip".
  • Navegue hasta donde haya descargado la biblioteca de SAATunes. (No me importa si fue su escritorio, descargas o carpeta (inserte algo vergonzoso), solo encuéntrelo)
  • Selecciónelo y haga clic en "Abrir"
  • Debería decirle que se ha agregado a sus bibliotecas.

Paso 12: ¡Pruébelo

¡Pruébalo!
¡Pruébalo!
¡Pruébalo!
¡Pruébalo!
  • Abra el programa de ejemplo SAATunes, en "Archivo", "Ejemplos", "SAATunes", "SAATunes-Uno".
  • Conecte su Arduino a la computadora y a un altavoz de algún tipo.
  • Sube el programa al Arduino.

Deberías escuchar un acorde, luego la rabia de Beethoven por un centavo perdido. Si Classical no es lo tuyo, no tengas miedo, porque en breve aprenderemos a usar archivos MIDI de nuestra elección con él.

Si no oye nada, compruebe algunas cosas: Primero, ¿está encendido el altavoz? Dale la vuelta al máximo. Entonces, ¿está realmente encendido el arduino? ¿El programa se cargó correctamente? Verifique todo el cableado con la escemática y la hoja de datos, luego intente nuevamente.

Paso 13: Uso de sus propios archivos MIDI - Programa de conversión

Uso de sus propios archivos MIDI: programa de conversión
Uso de sus propios archivos MIDI: programa de conversión

¿Listo para probar algo más que Beethoven? Muy bien, aquí tienes.

Para convertir archivos MIDI a C ++ Bytestreams, necesitaremos un programa de Len Shustek. Él es el creador de la biblioteca en la que basé mi código, y mi biblioteca usa el mismo formato de bytestream que él.

  • Puede encontrar el programa en
  • El programa que desea es "miditones.exe". Adelante, descárgalo.

Paso 14: Conversión de archivos MIDI

Conversión de archivos MIDI
Conversión de archivos MIDI
Conversión de archivos MIDI
Conversión de archivos MIDI
Conversión de archivos MIDI
Conversión de archivos MIDI

¡Advertencia! ¡Aquí hay dragones ascii! Puede que le resulte más fácil ver el video, donde puede ver exactamente de lo que estoy hablando. Si te atreves a entrar, ¡continúa!

Para utilizar el programa de conversión de MIDI a Bytestream, deberá abrir una ventana de símbolo del sistema. Lo sentimos, usuarios de Mac y Linux, es posible que tenga que encontrar una solución.

  • Abra el menú de inicio y escriba "CMD", luego presione Intro.
  • Aprenderemos un poco de magia MS-DOS ahora. Con el comando "CD", navegue hasta el lugar donde descargó el archivo "miditones.exe". En la mayoría de los casos, los comandos serán "descargas de cd".
  • Ejecute el programa "miditones.exe" escribiendo "miditones". Debería mostrarte una lista de ayuda con los comandos más comunes.

Ahora, necesitamos un archivo MIDI para convertir. Encuentra uno en algún lugar de las redes, preferiblemente sin percusión o efectos especiales además de insturments / velocidad. (Si no sabes cuáles son, no te preocupes, estarás bien)

  • Descarga tu archivo MIDI en el mismo lugar donde tienes el programa "miditones".
  • Ahora, usando la ventana del símbolo del sistema, escriba "miditones -d -v [nombre de archivo]" (Reemplace [nombre de archivo] con el nombre de su archivo MIDI).
  • miditones generará un archivo. C con el bytestream de C ++ en la misma carpeta, con el mismo nombre que el archivo MIDI.

Paso 15: Uso de su archivo MIDI convertido

Uso de su archivo MIDI convertido
Uso de su archivo MIDI convertido
Uso de su archivo MIDI convertido
Uso de su archivo MIDI convertido
Uso de su archivo MIDI convertido
Uso de su archivo MIDI convertido

Ahora que ha convertido su archivo MIDI, ¡alimentémoslo en pequeños bytes al arduino!

  • Suponiendo que ya tiene abierto el ejemplo de SAATunes-Uno, sigamos adelante y "guardemos como" otra cosa, para que podamos editarlo.
  • Una vez que lo haya guardado, haga clic en el pequeño icono de "flecha hacia abajo" en la esquina superior derecha.
  • Haga clic en "nueva pestaña" y asígnele el nombre "[nombre].h" (Reemplace [nombre] con el nombre de su canción MIDI, o lo que quiera)
  • Ahora, abra el archivo. C que miditones creó anteriormente. Puede usar el bloc de notas para abrirlo.
  • Use CNTRL / A para seleccionar todo y luego cópielo.
  • Péguelo en su nueva pestaña "[nombre].h" en el editor arduino.

Todo está bien aquí, así que volvamos al programa.

  • Busque donde dice "#include" RagePenny.h "", y cópielo / péguelo en una nueva línea a continuación.
  • Cambie "RagePenny.h" por el nombre que le haya dado a su nuevo archivo.
  • Ahora, comenta el "#include" RagePenny.h "", agregando dos barras diagonales (//) delante de él.
  • ¡Sube el programa!

Si todo salió bien, debería reproducir su propio archivo MIDI. Si no es así, vuelva a verificar para asegurarse de que los nombres de la nueva pestaña y el nombre que cambió en el "#include" RagePenny.h "" sean los mismos. Verifique los otros pasos y asegúrese de que hizo todo bien. Algunos archivos MIDI simplemente no funcionan, pero son raros.

Paso 16: ¡Fin

¡Aleta!
¡Aleta!

¡Con suerte, todo ha ido bien contigo y estás escuchando archivos MIDI en una antigua pieza de tecnología que ha cobrado nueva vida!

Sin embargo, si no es así, ¡no se rinda! Envía un comentario a mi manera y estaré encantado de ayudarte. Por supuesto, no dudes en darme sugerencias en los comentarios.

¡Felices chiptunes!

Recomendado: