emulación de impresora Arduino

0

Estoy trabajando en un proyecto en el que un arduino debería emular una impresora térmica. Actualmente estoy usando una placa Arduino UNO R3 con controlador ATmega16U2 para manejar la comunicación entre USB y el microprocesador ATmega328. Usé el paquete FLIP de ATMEL para borrar el firmware en el ATmega16U2 y reprogramé nuevamente con el firmware arduino. ¿Cuáles son los pasos a seguir para que la pizarra aparezca en la computadora como un soporte de impresión USB? ¿Hay algún firmware disponible? Básicamente, lo que necesito es poder usar la placa arduino con un controlador de impresora estándar de Windows y capturar los mensajes enviados a la impresora emulada. Revisé la biblioteca LUFA pero no tengo claro cómo usarla.

    
pregunta Francesco

1 respuesta

3

editado para agregar: pregunta relacionada

Necesitas cambiar la ID de USB del Arduino para que coincida con el código que Windows esperaría ver en tu impresora. Aquí hay una lista de muestra . Y un ejemplo de esa lista:

03f0  Hewlett-Packard
    0004  DeskJet 895c
    0011  OfficeJet G55

03f0:0011 que aparece en el USB significa que el dispositivo aparece en Windows como un HP OfficeJet G55. Puede determinar este número fácilmente si tiene una de las impresoras físicamente. Conéctelo a Windows y Computer -> Properties -> Device Manager encuentre el dispositivo, ábralo, haga clic en la pestaña Details , seleccione Hardware Ids desplegable y la ID del fabricante y la ID del dispositivo se encuentran en la ventana "Valor".

La siguiente parte (y la parte difícil) es programar el Arduino para que haga lo que necesita / desea con los datos una vez que se adjunta a Windows. Ah, y cómo programar el Arduino cuando Windows piensa que es una impresora. ESO, solo puedo decir lo que ya tengo y nada más, ya que no lo he hecho antes. Normalmente, cuando uso dispositivos USB o serie como este, hay una puerta trasera de Ethernet que utilizo para programar el sistema de destino.

Suena divertido, por favor actualice con su progreso, me gustaría aprender de esto.

    
respondido por el Chris K

Lea otras preguntas en las etiquetas