Arduino y disco CD-ROM hacen un reproductor de CD
En una era de transmisión de medios, el CD de audio se olvida fácilmente, pero permanece como formato físico desde los días en que el botón "Reproducir" aún no era el botón "Pagar". Es posible que un reproductor de CD ya no sea la posesión más preciada que alguna vez fue, pero aún es posible involucrarse en el mundo de los discos de policarbonato de 120 mm si lo desea. Es algo [Daniel1111] hecho con su reproductor de CD Arduino, que utiliza la pequeña placa del microcontrolador para controlar una unidad de CD-ROM a través de su bus IDE.
El proyecto se basa mucho en el trabajo de experimentadores anteriores, especialmente ATAPIDUINO, pero los amplía tomando su audio de la salida S / PDIF del disco. Un expansor de puerto opera la interfaz IDE, mientras que un transmisor Cirrus Logic WM8805 S / PDIF maneja el audio digital y lo convierte en un flujo I2S. Esto, a su vez, se envía al DAC PCM5102 de Texas Instruments, que proporciona una salida de sonido de nivel lineal. Todo el código y el esquema se pueden encontrar en el repositorio de GitHub.
Para cualquiera que haya trabajado en la compañía de CD-ROM en la década de 1990, este proyecto presiona bastantes botones, aunque puede que no sea suficiente para desenterrar todos esos CD nuevamente. Sería interesante ver si el flujo I2S se puede extraer del interior del disco, o incluso si los datos de audio se pueden recibir a través del bus IDE. Si quieres saber un poco más sobre I2S, tenemos un artículo para ti.
Gente, la máquina rebanadora dice:
Sí, los datos de audio digital se pueden leer mediante comandos ATAPI. Recuerdo algunos programas de "extracción de CD" en el día que convertían el sonido de un CD a MP3. Sin embargo, necesitaría un transmisor i2 en la MCU para alimentarlo al DAC.
Shirley Dulcey dice:
Si tuviera que manejar los datos de audio con el procesador, elegiría algo con un poco más de eficiencia que un Arduino basado en AVR. Raspberry Pi funcionaría bien, y convenientemente tiene una salida i2 en su SoC.
Osgeld dice:
O qué tal un foro de discusión, porque traemos una computadora y un sistema operativo para ejecutar un disco de computadora ffs
Shirley Dulcey dice:
Una pequeña diferencia de costo. Raspberry Pi Zero cuesta alrededor de $ 10; eso no es mucho más que un clon de Arduino. Threadripper cuesta un poco más de $ 10.
Olin dice:
La aguja de la abuela quedó gratis comprando pernos.
Paul dice:
Realmente, si solo intentáramos ser pragmáticos y no intentar piratear algo, puede obtener un reproductor de CD que funcione con un producto de sonido en Benevolent Shop por $ 3-10. Pero entonces la página no se llamaría un truco todos los días.
Joe Sammarco dice:
Está bien, puedes conseguir un adaptador USB y ahorrar tiempo.
RW versión 0.0.1 dice:
IIRC, necesita alrededor de 300Mhz de x86 para reproducir el sonido digitalmente desde un CD sin tartamudear ... mientras hace otra cosa como jugar solo o navegar por la luz. Entonces, ¿tal vez un equivalente de 200Mhz dedicado? IDK en lo que respecta a la velocidad de la CPU o si la unidad admitía DMA y transferencia de 32 bits, fue a finales de los 90 cuando se convirtió en una "cosa" no necesitar el cable analógico para su tarjeta de sonido.
Joel dice:
Tenía un HP Vectra 486 @ 33 Mhz, 4 MB de RAM, y podía escuchar perfectamente cualquier CDROM de audio. Incluso cambio el nombre de la grabación de algunas canciones con ESS AudioRack a 44.1 Khz-16-bit estéreo en mi disco duro de 200 MB. Nunca tuve problemas con la reproducción.
RW versión 0.0.1 dice:
Eso suena como un sistema que estaba casi garantizado que se creó con el cable analógico a la tarjeta de sonido, lo cual no se comenta. Los IBM XT podrían coincidir con una tarjeta SCSI de 8 bits, controlar (probablemente una sola velocidad) el disco y reproducir sonido analógico.
Osgeld dice:
Sí, solíamos copiar pistas en nuestro disco duro y editar las malas palabras para poder reproducirlas en la radio de la universidad con 486
Pero ese era un sonido analógico que iba al adc de la tarjeta de sonido sin descifrar el flujo sin procesar
Kaz dice:
Tenía un 486 de 133MHz que podía descomprimir y reproducir archivos MP3 (bajo Windows) fácilmente. El sonido PCM sin comprimir en un CD es efectivamente un formato separado de un archivo WAV. ¡Windows 3.11 los tomaría felizmente!
¿Quizás está pensando en la velocidad de la CPU que necesitaría para usar la grabadora de CD ATAPI de manera confiable? Tenía un P3 de 500 MHz, entregado con un quemador 4x, por lo que se siente bien en el estadio correcto.
Adolf Osborne dice:
Grabé CD digitalmente en 1997 en una máquina Pentium con una frecuencia de 120 MHz.
El procesador no fue un factor limitante de ninguna manera notable que yo recuerde: es solo IO.
RW versión 0.0.1 dice:
No hay restricción para rasgar el CD en Pentium 60, no significa que lo hagas en tiempo real. Tal vez fue el software temprano, pero en 1997 recuerdo que las cabinas P100 necesitan alrededor de media hora de pista para copiar un CD.
ziew dice:
El problema es que no obtiene muestras de 16 bits a 44,1 kHz a través de ATAPI; obtiene datos sin procesar con corrección errónea con muchas contraseñas. Como mencionan otros, probablemente requiera mucho más procesamiento del que puede proporcionar Arduino.
Gente, la máquina rebanadora dice:
Bonificaciones si aprende a decodificar formatos HDCD y SACD.
Shirley Dulcey dice:
La decodificación de HDCD requeriría que el procesador manejara los datos (hay decodificadores de software) o que use DAC con procesamiento HDCD.
SACD es una olla de pescado adicional por completo. Esto requiere un disco DVD, y no uno estándar, pero capaz de leer la codificación especial de oscilación para la clave de descifrado. (No en el DVD estándar, los datos se pueden leer con un disco DVD normal). Debe recopilar dicho disco desde un reproductor SACD o una PlayStation 3 de primera generación. Y para hacerlo correctamente, necesita un DAC que acepte la entrada DSD.
Luego está el DVD de audio. Para ello, necesita un disco DVD y la capacidad de descomprimir MLP (en este contexto, Meridian Lossless Packing). Para la mayoría de los discos, también necesita la capacidad de descifrar DVD-CSS.
Hacer cualquiera de estas cosas probablemente requeriría una CPU con más potencia que ATMega328P. (Este proyecto utiliza un Arduino Pro Mini). Es posible que uno de los ARM basados en Arduino esté realizando la tarea.
Shirley Dulcey dice:
Un problema es que muchas unidades de CD-ROM no tienen salida S / PDIF. Los más antiguos tenían una salida de sonido analógica que se podía conectar a una entrada de su tarjeta de sonido o circuito base. Los más nuevos ni siquiera tienen eso; dependen de la computadora host para leer los datos del CD y enviarlos a la computadora DAC. De esta forma, todas las versiones modernas de Windows reproducen CD, incluso si tiene un disco con salida analógica.
Adán dice:
Los realmente antiguos ni siquiera necesitaban programas, algunos venían equipados con conector para auriculares, control regular y botones básicos de juego / salto al frente. Proporcione energía y podrá tocar melodías sin una computadora.
CRJEEA dice:
De hecho. Todavía tengo algunos de esos.
La línea exterior, un conector spdif, en la parte trasera solo emite sonido, suficiente para alimentar un altavoz sin amplificador.MIGUEL dice:
Tengo uno de estos: lo uso para escuchar música antes de acostarme. Encontré una capacidad de disco externo de 5 1/4 con fuente de alimentación. El audio del conector de salida es un poco ruidoso, así que utilicé la tarjeta de sonido de la parte posterior y un pequeño amplificador IC con un par de LM386.
RW versión 0.0.1 dice:
Tengo una computadora vieja con 7 botones en el panel frontal y una pantalla LCD para una pantalla de seguimiento, una mejor interfaz que algunos reproductores de CD de bajo sonido LOL
Cuenta dice:
Puntos extra extra para aquellos de nosotros que tenemos unidades de CD que utilizan caballos. Todavía tengo algunos cadetes pateando en mi sótano y creo que todavía podría tener una vieja HP XU90 con una unidad de CD SCSI.
La primera unidad de CD de datos que tuve fue una Sanyo tipo bahía de altura completa en su propia caja exterior con dos enormes conectores SCSI Amphenol de 50 pines azules en la parte posterior. Había un montón de controladores y declaraciones que tenían que cargarse en CONFIG.SYS y AUTOEXEC.BAT para ejecutar el problema, y consumía gran parte de los 640K de memoria inferiores, por lo que era difícil ejecutar muchos programas. Windows 386 apenas se podía utilizar con extensiones multimedia que debían cargarse por separado. ¡Esos eran los días!
RW versión 0.0.3 dice:
Algunos de ellos están en alguna parte, un poco de suerte con las cosas de SCSI ... tengo piezas que elegí para tocar, pero o es mi talón de Aillesila o muy poco funciona. Creo que uno de los CDROM funciona, pero su valor de funcionamiento no fue lo suficientemente alto como para permitir el arranque, lo cual era necesario en el sistema en el que lo puse. Puede que nunca lo haya guardado en ese disco. Creo que la configuración todavía está intacta en algún lugar con PIII y algunas unidades SCSI, y mi único éxito es lograr algo. No he intentado probar dispositivos externos, tal vez no tenga el cable correcto, pero uno de ellos es un escáner HP y otro es un disco duro de "$ 5000", una altura completa de 5.25 en una caja y un total gigabyte…. Lo que valoraba una lista de 5k a principios de los 90 ... Todavía estoy buscando en el gabinete un servidor de medios o algo ... De alguna manera sacaré mi valor de $ 2 de su piel. Pero cualquiera, ese CD compacto que funciona por un valor dado de obras puede terminar en un XT o 286 con una tarjeta SCSI de 8 bits con la que tengo dos pasando el rato.
Pero para los controles de medios, lo mejor que he visto es una marca SoundBlaster, con una salpicadura azul y naranja en la parte delantera, con seis velocidades, en mi opinión, que tenía un control remoto emergente.
Olin dice:
Los primeros vehículos SCSI de Sony ahora necesitan media docena de condensadores reemplazados para expulsarlos correctamente. Sin embargo, no es difícil reemplazar las tapas con fugas si están presentes en alguna unidad.
Mella dice:
A mediados de los noventa había una unidad de CDROM portátil genial que también tenía una interfaz SCSI. Era más caro que un reproductor de CD personal "normal" y sólo podía leer CD a 2 velocidades ... Pero realmente quería uno para mi Amiga. Definitivamente un producto de nicho, pero maldita sea, encajaría bien en ese nicho.
Foldi-One dice:
Si el objetivo solo lo está escuchando o emitiendo, el tipo con una salida analógica nativa es aún más fácil: simplemente conéctelo directamente al altavoz (o amplificador, si el objetivo son salidas de nivel lineal). No necesita convertidores spdif en su edificio.
Con este último, te obsesionas, no con el pequeño La atmósfera se ocupará de la banda sonora del CD en tiempo real. Estoy seguro de que podría leerlo y luego reproducirlo (probablemente con una calidad inferior), pero debe ser demasiado para que procese el flujo de sonido del CD y active un altavoz en tiempo real.
Paulvdh dice:
Hace mucho tiempo usé la salida S / PDIF de un reproductor de CD de este tipo y lo conecté a mi dispositivo estéreo.
Hizo una especie de trabajo, pero por alguna razón el sonido sonaba horrible. Tuve la idea de que de ese puerto solo salía audio de 12 bits. Fue completamente extraño.Luego tenía algunos planes para conectarlo a la entrada digital de mi computadora y compararlo con la versión extraída a través del puerto IDE, pero en realidad nunca lo hice.
Y luego, probablemente hace unos 15 años vendí mi colección de 150 CD alrededor de EUD60. Justo antes de que se perdiera todo interés en ese entorno arcaico.
Luego dice:
¡Genial! ¡Me encantaría jugar con esto! ¿Algún código, archivos kicad disponibles?
luego dice:
¡Ha extrañado al idiota!
Foldi-One dice:
Un problema de frecuencia sería mi apuesta, no los bits; entonces dudo que algo haya sido escuchado y adaptado automáticamente a diferentes frecuencias. Pero toma eso, con un poco de sal, yo era demasiado joven para saber o preocuparme por estas cosas. .
Shirley Dulcey dice:
Quizás paulvdh reprodujo los primeros CD con pre-énfasis y el estéreo no aplicó (o no tenía la capacidad de aplicar) el de-énfasis compatible. La bandera para activar esto está en el flujo de datos, pero eso no significa necesariamente que el estéreo lo haya reconocido.
Gregg Eshelman dice:
Su estéreo puede haber esperado 48 Khz mientras que el CD de audio es 44,1 Khz. 44.1 Khz para CD existe solo porque esa es la cantidad exacta de ejemplos por segundo que podrían codificarse en video PAL U-Matic con convertidor de PCM a analógico. La cinta NTSC podría codificarse un poco más alta debido a más fotogramas por segundo, aunque podría contener menos datos por fotograma, pero no tenía la precisión de 44,100.
Vagabundo hastiado dice:
Simplemente tome una unidad de CD Plextor y lea el sonido a través de SCSI. Así es como lo hicimos cuando una banda usó un CD-R como su maestro y querían que los CD fueran impresos por ellos.
Joshua dice:
¡Fresco! Me recuerda a los días de DOS y Windows 3.x / 9x,
en el que el propio disco CD-ROM maneja la reproducción real del sonido.
Este último a menudo usaba MCI para controlar funciones como reproducir, detener, retroceder, avanzar y expulsar.
En estos días, era aconsejable tener una conexión de sonido dedicada (analógica, spdif) entre una tarjeta de sonido y un disco CD-ROM.Irónicamente, por otro lado, el uso de sonido de CD-ROM en juegos de computadora terminó con la era del uso dinámico, que usaba archivos MOD, síntesis FM o MIDI (MT-32, SC-55, XG, etc.).
Shirley Dulcey dice:
Si mal no recuerdo, Windows 98 fue la primera versión que ofreció la capacidad de reproducir CD de audio mediante extracción de audio digital (DAE) en lugar de la salida de audio del disco. En general, DAE sonaba mucho mejor porque los discos generalmente tenían DAC terribles y porque el cable del disco desde el disco al circuito base o la tarjeta de sonido estallaba. Pero aún no pudieron eliminar la reproducción a través de la salida de audio porque algunos discos más antiguos no eran compatibles con DAE.
La reproducción de CD en los sistemas modernos siempre usa DAE. Algunas unidades PATA posteriores omiten el puerto de sonido, las unidades SATA nunca lo tuvieron y el USB no tiene la capacidad de transmitir sonido analógico (aparte de volver a digitalizarlo y hacer que el disco también parezca una entrada de audio, pero eso sería realmente estúpido ).
RW versión 0.0.3 dice:
No estoy del todo seguro si fue nativo en Win98 o vino con una actualización de MediaPlayer 6 o 7.
Gregg Eshelman dice:
La mayoría de las unidades de CD-ROM SCSI tienen una camiseta de "modo de prueba" que las hace jugar (o replicar como dicen los manuales) para escuchar su salida analógica sin la necesidad de nada más.
El primer sistema operativo que pudo descifrar CD Audio a través del cable de datos fue Be-OS, aunque algunos discos no pudieron hacerlo.
RW versión 0.0.1 dice:
Realmente, sí, algunos discos solo podían admitir un formato de datos, y de un solo tipo, ¿cuáles eran todos esos formatos de los que tenía que preocuparse en lugar de que solo funcionaran, como la mayoría de los discos desde ~ 1998? alta montaña, libro rojo, etc. Algunos discos no podían leer un bloque de arranque, por lo que si los inserta en un sistema "demasiado moderno" que permite el arranque desde CD, no lo harán.
Gregg Eshelman dice:
Red Book es un CD de audio. También había libros naranjas, verdes y amarillos, IIRC no es broma, seguro si era azul. También High Sierra e ISO9660. Hubo una reunión de gente con una unidad óptica y una industria informática en el Hotel High Sierra (de ahí el nombre de * ese * formato) para agotar y clavar firmemente todos estos “libros”. Alguien trajo un paquete de carpetas multicolores y los formatos recibieron sus colores simplemente por la carpeta en la que la persona que recogió los papeles finales los colocó. Si alguien recogiera los papeles para un CD de audio, capturaría una carpeta azul en lugar de una roja, se llamaría “Libro azul de audio” todos estos años. Si tuvieran que realizar la reunión en Timberline Lodge o Chula Vista, entonces el formato High Sierra sería en su lugar.
ziew dice:
La última vez que vi un proyecto similar fue alrededor del año 2000, usó una CPU basada en 8051 conectada directamente a un IDE, alimentada por una computadora, LCD de 2 × 16 y sonido analógico tomado directamente del CD. Es bueno ver lo lejos que ha llegado la electrónica de bricolaje:
- Arduino, mira.
- Pantalla OLED barata, cheque.
- IDE total alimentado por 2 pines con expansiones I2C, verifique.
- SPDIF a I2S, comprobar.
- I2S a analógico, comprobar.
- convertidores paso a paso de China, comprobar.
- reutilizar la fuente de alimentación redundante del portátil, comprobar.RW versión 0.0.1 dice:
Tenía la idea de que Elektor o EE lanzaron uno con PIC cuando los discos de computadora eran relativamente baratos.
Bellota dice:
Hice lo mismo en RaspberryPi usando un cable conversor IDE-USB. Usando RISC OS, pude reproducir un CD y leer datos sin problemas y verificar desde el sistema operativo.
Cada CDROM IDE tiene un DAC incorporado desde el cual puede soldar algunos cables de audio para un puerto de salida o simplemente puede usar la toma de salida en el panel frontal si desea altavoces o auriculares.
lksjdlkfj lkjsdlkfjlk dice:
Esto realmente no reproduce un CD con un arduino. Es más como usar un arduino como interfaz de usuario para controlar el reproductor de CD. Todos los discos cdrom de computadora ya tienen todo lo que necesita para reproducir sonido. Todo este arduino e incluso su computadora que estaba reproduciendo un CD de audio estaba enviando comandos a través del bus IDE. Básicamente, se presiona un botón de reproducción, se presiona el botón siguiente, se presiona el botón anterior, se busca MM: SS, se presiona el botón de parada. Luego, el disco solo emite el sonido a través del spdif analógico de 4 pines y de 2 pines a la tarjeta de sonido, donde la tarjeta de sonido lo envía a los altavoces. Incluso hubo algunos discos cdrom en los años 90 que tenían botones de reproducción / seguimiento en la parte frontal del disco. Literalmente, podría conectar una fuente de alimentación a la parte posterior de estos, auriculares / altavoces amplificados a la toma de auriculares frontal, insertar un CD de sonido y presionar el botón para reproducir el panel frontal y se reproduciría completamente sin una computadora conectada al IDE. autobús. No fue hasta finales de los 90 y principios de los 2000 cuando ya no se necesitaba un cable de sonido entre el cdrom y la tarjeta de sonido, ya que el software de reproducción básicamente extraía el CD a través del bus IDE y masticaba los ciclos de la CPU para descifrarlo. en tiempo real y reproducir el sonido. Realmente no hay ninguna razón por la que una computadora clásica 8088/8086 no pueda reproducir archivos de audio, suponiendo que pueda encontrar una tarjeta IDE de 8 bits, rara, pero existen. y que los controladores cdrom de DOS se ejecutarían en el 8088/8086. No importa que estas CPU sean muy poco poderosas porque no tienen nada en común con el juego de audio más que enviar reproducción, luego, antes, buscar, detener comandos en el disco.
Leland Clayton dice:
A finales de los 90, tenía un XT Clone 8088 y encontré un IDE / Disk Controller que funcionaba con 8Bit ISA BUS pero solo lo limitaba a un solo IDE cuando se usaba en 8Bit ISA BUS. De todos modos, lancé Creative IDE 2x Optical y con Bootdisk pude reproducir CD de audio. El software funcionó muy lentamente, pero después de que se inició el CD, estaba en orden. Tuve que usar altavoces externos en el conector para auriculares de la unidad. No funcionó bien leyendo Archivos.
skljsdf lkjslkfdj dice:
¿Es siquiera necesaria la conversión de spdif a i2c a analógico? Sin mencionar que la unidad probablemente tenga una salida analógica de 4 pines justo al lado del spdif. Me cuesta creer, considerando cuánto tiempo existe spdif, que no hay ningún paquete de 8 o 16 pines especialmente construido que no pueda convertir directamente la corriente spdif en analógica. Después de algunas búsquedas, el chip en la parte inferior de este dispositivo parece hacer exactamente eso https://www.aliexpress.com/item/32844859074.html
Jehú dice:
Muy genial. Me gustaría ver algo con más control sobre el disco. Hace años quería ver si podía hacer que una unidad de CD funcionara más rápido que sus RPM máximas y durante mucho tiempo ver si podía reproducir las historias de discos explosivos que todos habíamos escuchado. También quería ver si podía tener control manual sobre una grabadora de DVD para grabar constantemente el disco. Miré la creación de grafeno usando un láser para quemar óxido de grafeno o sacarosa con las espirales en el disco haciendo que quemara una cuerda larga.
ksldjf lkjsdf dice:
Probablemente ya esté conduciendo allí en eBay capaz de controlar magníficamente el láser. Se desconoce qué tan abiertas están las API para este control. Había dos tipos de tecnología de "quemado de etiquetas" en el día. Uno de ellos utilizó un disco patentado con una capa termosensible en el lado de la etiqueta. Piense en papel térmico para recibos. Después de quemar sus datos, voltearía el disco y luego "grabaría" la etiqueta. Esto fue lo suficientemente lento, algo así como 15-30 minutos para grabar un disco completo. Esto era solo un b / n, pero podía grabar la etiqueta consecutivamente para oscurecerla, o si era creativo con su proyecto de etiqueta, crear una imagen en escala de grises simplemente volteando partes de la etiqueta que necesitaban ser más oscuras. El otro quemó una etiqueta en el lado de datos de cualquier disco. Aunque para hacer esto no podría usar todo el lado de datos del disco. Por lo tanto, si quemó algo como 200 MB de datos en un CD, podría "etiquetar" la parte de datos no utilizada del disco. Estas no será más fácil leer la etiqueta debido a la necesidad de que la luz golpee el disco solo para leerlo.
Jehú dice:
Sí, serían Lightscribe y Labelflash para la superficie de la etiqueta y DiskT @ 2 para el lado de los datos. Ambos requerían discos especiales. Curiosamente, Wikipedia actualizó algunas de sus páginas y había otra que no conocía, Labeltag. Podría hacer lo que quisiera.