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


34

¿Cómo se hace para construir una interfaz para un dispositivo USB que permita la conexión de macetas, conos lineales / de registro y conmutadores momentáneos / de palanca a una computadora?

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

Respuestas:


29

Usaría una de las tablas de Teensy . Estas son placas de microcontrolador tipo Arduino que tienen soporte USB. A diferencia del Arduino, pueden aparecer en una PC como cualquier tipo de 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 IDE de Arduino , o puede programar en C y usar LUFA (para compatibilidad con USB) directamente.

Aquí hay algunos enlaces de proyectos para ayudar.


10
Para este tipo de aplicación, sugeriría pretender ser un HID. Controladores ya escritos, simplemente emula un mouse o un dispositivo similar.
Kortuk

1
1 para la palanca de mando, que ni siquiera necesita para construir un tablero MCU, la junta se recuperó de un borken joystick analógico ejes funcionará igual de bien ...
peufeu

6

Usaría una placa de microcontrolador como un Arduino. Usted lee el ADC y la E / S digital y envía caracteres ASCII a la PC usando la conexión UART-> USB.

La cantidad de hardware externo que necesita depende de la precisión que requiera. Creo que para la mayoría de las aplicaciones el hardware interno del microcontrolador sería suficiente. Quitaría los interruptores en el hardware.

Para la interfaz USB simplemente escriba un analizador simplemente para que pueda consultar las lecturas. Por ejemplo, si la PC envió la cadena "A00?" el 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.


4

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

Luego uso 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 escalado en el software: no tiene que preocuparse por comprar costosos botes de registro o usar valores difíciles de encontrar, solo compre un lote de trabajo del mismo valor y preocúpese por el detalles más tarde (1K o 10K normalmente es fácil de obtener).

Este es gratis: http://puredata.info/

Esta es la versión pagada por elegante, pero tiene una buena demostración: http://cycling74.com/downloads/


4

Consigue un Arduino

Consigue un DangerShield .

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

Escriba aplicaciones personalizadas como VB.NET o algo para traducir datos en algo útil para PC, como mensajes de ventana de Win32 o algo así.


3

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


2

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


2
"Solo google for them" no se acepta como respuesta por aquí. Da detalles aquí.
stevenvh



1

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

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

Las imitaciones chinas de los controladores USB de estilo PlayStation, etc., se pueden obtener por unos pocos dólares, que está muy por debajo del precio de las placas hobbyist * duino IO, etc.


0

Los GamepadBlock hace uso de un ATmega32U2 junto con LUFA para implementar un dispositivo USB de velocidad completa HID 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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.