Como criar um controlador USB com botões, controles deslizantes e comutadores


34

Como construir uma interface para um dispositivo USB que permita a interface de potes, cones lineares / log e interruptores momentâneos / alternados para um computador?

Se alguém pudesse me dar uma descrição de alto nível, eu agradeceria. Posso ler folhas de especificações, portanto, entender detalhes não é um problema, desde que eu saiba onde encontrá-las.

Respostas:


29

Eu usaria um dos quadros da Teensy . Estas são placas de microcontrolador semelhantes ao Arduino que possuem suporte USB. Ao contrário do Arduino, eles podem aparecer no PC como qualquer tipo de dispositivo USB. Isso significa que você pode criar seu próprio teclado USB personalizado, joystick, dispositivo MIDI etc. e fazer com que o PC use drivers padrão.

O Teensy suporta o IDE do Arduino , ou você pode programar em C e usar LUFA (para suporte a USB) diretamente.

Aqui estão alguns links do projeto para ajudar.


10
Para este tipo de aplicação, sugiro fingir ser um HID. Drivers já escritos, você apenas emula um mouse ou um dispositivo semelhante.
Kortuk

1
+1 para joystick, você não precisa mesmo de construir uma placa MCU, o conselho recuperado de uma borken joystick com analógico eixos vai funcionar tão bem ...
peufeu

6

Eu usaria uma placa de microcontrolador como um Arduino. Você lê o ADC e as E / S digitais e envia caracteres ASCII para o PC usando a conexão UART-> USB.

A quantidade de hardware externo necessário depende da precisão necessária. Eu acho que para a maioria das aplicações o hardware interno do microcontrolador seria suficiente. Eu rejeitaria os switches no hardware.

Para a interface USB, basta escrever um analisador simples para que você possa consultar as leituras. Por exemplo, se o PC enviou a sequência "A00?" o uC pode enviar de volta a leitura no canal analógico 0. "D00?" o uC pode enviar de volta o estado da entrada digital 0. Para alterar uma saída digital, talvez algo como "D00 = 1" ou "D00 = 0". Estas são cadeias curtas de comprimento fixo. Deve ser muito fácil de analisar.


4

Eu gosto de usar o Arduinos, eles são simples de programar e você pode facilmente enviar dados para o seu computador a partir de várias entradas através da conexão USB integrada. Os dados podem ser enviados para o Serial Monitor dos ambientes de programação do Arduino - que é útil para depuração.

Em seguida, uso um programa como o Pure Data (PD) ou o Max MSP para receber os dados seriais. Os dados podem ser enviados a partir desses programas em todos os tipos de formatos úteis. Porque é simples o suficiente fazer qualquer tipo de curva ou escala de log no software - você não precisa se preocupar em comprar potes de log caros ou usar valores difíceis de encontrar - basta comprar um lote de trabalhos com o mesmo valor e se preocupar com o detalhes mais tarde (normalmente 1K ou 10K é fácil de obter).

Este é grátis: http://puredata.info/

Este é o pago pela versão ostentosa, mas tem uma boa demonstração: http://cycling74.com/downloads/


4

Obtenha um Arduino

Obtenha um DangerShield .

Escreva um código para enviar os dados do sensor DangerShield para o PC via RS-232 via conexão USB.

Escreva um aplicativo personalizado como o VB.NET ou algo assim para converter dados em algo útil no PC, como mensagens da janela Win32 ou algo assim.


3

Eu sugeriria usar PoKeys . É muito fácil adicionar 55 E / S digitais, 7 entradas analógicas (12 bits), saídas PWM e muito mais. Ele pode até mesmo ser combinado com algo como isso .


2

Eu iria com um Arduino ou um Sanguino, como a maioria das pessoas sugeria. Basta pesquisar no google para eles. Eles são extremamente fáceis de usar e você pode começar a operar em algumas horas depois de ter todos os componentes necessários.


2
O "Just google for them" não é aceito como resposta por aqui. Dê detalhes aqui.
Stevenvh



1

Uma alternativa que pode ou não se adequar é comprar joysticks / joypads analógicos disponíveis no mercado (a partir de $ fckall no ebay china ou na loja de jogos) e substituir seus componentes de entrada analógica pelos seus, ou apenas retirar o PCB principal e transplantar no seu hardware.

Você precisará corresponder a algumas das características elétricas, mas o trabalho duro de codificação / comunicação USB etc. é feito para você e, geralmente, os protocolos de comunicação / mapeamento de entrada são bem conhecidos.

Os knock-offs chineses de controladores USB do estilo PlayStation etc. podem ser adquiridos por alguns dólares, muito abaixo do preço das placas amadoras * duino IO etc. e baratos o suficiente para serem descartáveis ​​quando você explode o primeiro ou os dois primeiros.


0

O GamepadBlock utiliza um ATmega32U2 junto com o LUFA para implementar um dispositivo USB HID de velocidade total para pesquisar vários controladores de jogos originais. O ATmega possui uma interface USB de hardware e foi fácil começar, pois o LUFA fornece vários projetos de demonstração.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.