Secuencia de bits del joystick HID USB [cerrado]

0

Quería conectar un controlador HID USB a un Arduino y usarlo para controlar un automóvil con control remoto.

Pero no puedo encontrar qué secuencia de bits se envía cuando se presiona un botón en el joystick. Me gustaría encontrar cuál es esa secuencia.

Estoy ejecutando un sistema de arranque dual con Linux y Windows, por lo que el software que funciona con cualquiera de los dos está bien.

    
pregunta Prateek Dhanuka

3 respuestas

3
  

Pero no puedo encontrar qué secuencia de bits se envía cuando se presiona un botón en el joystick. Me gustaría encontrar cuál es esa secuencia.

No hay uno.

Los dispositivos USB funcionan sobre una base de sondeo. No se comunican a través del bus fuera de una transacción del host. Llegar al punto de comunicarse con el dispositivo requiere una cantidad significativa de trabajo para enumerar el dispositivo y configurarlo con una dirección.

Incluso una vez que todo está hecho, no se usa un mensaje específico cuando se presiona un botón. La respuesta del informe de estado del dispositivo tendrá un campo que incluye un mapa de bits que representa los botones del mouse; uno de los bits de ese campo se establecerá cuando se mantenga presionado el botón y se borrará cuando no lo esté.

Dado que el Arduino carece de un periférico de host USB y se ejecuta a una velocidad relativamente baja (8-16 MHz) en comparación con la velocidad de línea USB (1,5 o 12 Mbit / seg), será extremadamente difícil, si no imposible, Implementar un host USB en un dispositivo Arduino. Use un accesorio que implemente un host USB para usted, como el USB Host Shield, o use un microcontrolador diferente que admita la operación del host USB.

    
respondido por el duskwuff
2

USB realmente no es tan fácil, pero afortunadamente alguien ya ha escrito una biblioteca y un código de ejemplo, puedes encontrarlo aquí . También el código que funciona en Linux o Windows sería irrelevante para Arduino.

El ejemplo anterior utiliza el protector del host USB . Debe tener un Arduino que admita el modo de host USB, no solo el modo de dispositivo USB. Por lo general, estos Arduino tienen puertos USB-A o puertos USB OTG.

Por cierto, si tiene preguntas específicas sobre Arduino, hay un Arduino Stack Exchange que está mejor equipado para manejar este tipo de preguntas.

    
respondido por el Ron Beyer
0

Según sus comentarios, lo que desea es el paquete usbhid-dump para Linux. Esto imprimirá en tiempo real el descriptor oculto para su joystick usb hid.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas