Cómo construir un controlador USB con mandos, controles deslizantes e interruptores

32

¿Cómo se puede hacer para crear una interfaz para un dispositivo USB que permita la conexión de potes, liners de registros lineales e interruptores momentáneos / alternativos a una computadora?

Si alguien pudiera darme una descripción de alto nivel, lo agradecería. Puedo leer las hojas de especificaciones, por lo que entender los detalles no es un problema siempre que sepa dónde encontrar las hojas.

    
pregunta Robert Harvey

10 respuestas

29

Usaría uno de los tableros Teensy . Estas son placas de microcontroladores de tipo Arduino que tienen soporte USB. A diferencia de Arduino, pueden aparecer en una PC como cualquier dispositivo USB. Esto significa que puede crear su propio teclado USB personalizado, joystick, dispositivo MIDI, etc. y hacer que la PC use controladores estándar.

Teensy admite el Arduino IDE , o puede programar en C y usar LUFA (para soporte de USB) directamente.

Aquí hay algunos enlaces del proyecto para ayudar.

    
respondido por el Toby Jaffey
6

Yo usaría una placa de microcontrolador como un Arduino. Lees el ADC y la E / S digital. y envíe caracteres ASCII a la PC mediante la conexión UART- > USB.

La cantidad de hardware externo que necesite dependerá de la precisión que necesite. pensaría Para la mayoría de las aplicaciones, el hardware interno del microcontrolador sería suficiente. Debería rebotar los interruptores en hardware.

Para la interfaz USB, simplemente escriba un analizador para que pueda consultar las lecturas. Por ejemplo, si la PC envió la cadena "A00?" la uC podría devolver la lectura en el canal analógico 0. "D00?" El uC podría devolver el estado de la entrada digital 0. Para cambiar una salida digital tal vez algo como "D00 = 1" o "D00 = 0". Estas son cadenas cortas en una longitud fija. Debería ser muy fácil de analizar.

    
respondido por el jluciani
4

Me gusta usar Arduinos, son fáciles de programar y puedes enviar datos fácilmente a tu computadora desde las distintas entradas a través de la conexión USB integrada. Los datos se pueden enviar a los entornos de programación Arduino Serial Monitor, que es útil para la depuración.

Luego utilizo un programa como Pure Data (PD) o Max MSP para recibir los datos en serie. Los datos se pueden enviar desde estos programas en todo tipo de formatos útiles. Porque es lo suficientemente simple como para hacer cualquier tipo de curvas de registro o de escalado en el software; no tiene que preocuparse por comprar macetas de troncos costosas o usar valores difíciles de encontrar, solo compre un lote de trabajo del mismo valor y se preocupe por el detalles más tarde (1K o 10K es normalmente fácil de obtener).

Este es gratis: enlace

Esta es la versión de pago de Swanky, pero tiene una buena demostración: enlace

    
respondido por el Jim
4

Obtenga un Arduino

Obtenga un DangerShield .

Escriba el código para enviar los datos del sensor DangerShield a la PC a través de la conexión RS-232 a través de USB.

Escriba una aplicación personalizada como VB.NET o algo para traducir los datos en algo útil en la PC, como los mensajes de la ventana de Win32 o algo así.

    
respondido por el J. Polfer
3

Sugeriría usar PoKeys . Muy fácil de agregar 55 E / S digitales, 7 entradas analógicas (12 bits), salidas PWM y más. Incluso se puede combinar con algo como esto .

    
respondido por el avra
2

Iría con un Arduino o un Sanguino como lo sugiere la mayoría de la gente. Sólo google para ellos. Son extremadamente fáciles de usar y puede estar en funcionamiento en pocas horas una vez que tenga todos los componentes necesarios.

    
respondido por el Sushrut J Mair
1

Eche un vistazo a los proyectos basados en ObDev V-USB AVR: enlace . Creo que este podría ser justo lo que está buscando: enlace .

    
respondido por el avra
1

Si solo necesita mandos, consulte YoctoKnob: enlace

    
respondido por el Janus Troelsen
1

Una alternativa que puede o no ser adecuada es comprar joysticks / joypads analógicos disponibles en el mercado (desde $ fckall en ebay china o en la tienda de juegos) y reemplazar sus componentes de entrada analógicos con los suyos, o simplemente copiar la PCB principal y transplante en su hardware.

Tendrá que coincidir con algunas de las características eléctricas, pero el arduo trabajo de codificación / comunicaciones USB, etc., se realiza por usted y, por lo general, los protocolos de comunicaciones / asignación de entrada son bien conocidos.

Se pueden obtener imitaciones chinas de los controladores USB de estilo PlayStation, etc., por unos pocos dólares, lo que está muy por debajo del precio de las tarjetas Duo IO de aficionados, etc. y es lo suficientemente económico como para ser desechable cuando sopla el primero o más. dos arriba.

    
respondido por el John U
0

El GamepadBlock hace uso de un ATmega32U2 junto con LUFA para implementar un dispositivo USB HID de velocidad completa para sondear varios controladores de juegos originales. El ATmega tiene una interfaz USB de hardware y comenzar fue fácil, ya que LUFA ofrece varios proyectos de demostración.

    
respondido por el user165785

Lea otras preguntas en las etiquetas