Come costruire un controller USB con manopole, cursori e interruttori


34

Come si fa a costruire un'interfaccia per un dispositivo USB che consenta di interfacciare pentole, conici lineari / logici e interruttori momentanei / a levetta su un computer?

Se qualcuno potesse darmi una descrizione di alto livello, lo apprezzerei. Riesco a leggere le schede tecniche, quindi comprendere i dettagli non è un problema finché so dove trovare le schede.

Risposte:


29

Userei una delle schede Teensy . Queste sono schede microcontrollore simili ad Arduino con supporto USB. A differenza di Arduino, possono apparire su un PC come qualsiasi tipo di dispositivo USB. Ciò significa che è possibile creare la propria tastiera USB personalizzata, joystick, dispositivo MIDI, ecc. E fare in modo che il PC utilizzi driver standard.

Teensy supporta l' IDE Arduino oppure è possibile programmare in C e utilizzare LUFA (per il supporto USB) direttamente.

Ecco alcuni link di progetto per aiutare.


10
Per questo tipo di applicazione suggerirei di fingere di essere un HID. Driver già scritti, basta emulare un mouse o un dispositivo simile.
Kortuk,

1
+1 per il joystick, non hai nemmeno bisogno di costruire una scheda mcu, la scheda recuperata da un joystick borken con assi analogici funzionerà altrettanto bene ...
peufeu

6

Vorrei usare una scheda microcontrollore come un Arduino. Leggere l'ADC e l'I / O digitale e inviare caratteri ASCII al PC utilizzando la connessione UART-> USB.

La quantità di hardware esterno necessaria dipende dalla precisione richiesta. Penserei che per la maggior parte delle applicazioni l'hardware interno al microcontrollore sarebbe sufficiente. Vorrei rimbalzare gli switch in hardware.

Per l'interfaccia USB basta scrivere un semplice parser in modo da poter interrogare le letture. Ad esempio se il PC ha inviato la stringa "A00?" l'UC potrebbe inviare la lettura sul canale analogico 0. "D00?" l'UC potrebbe restituire lo stato dell'ingresso digitale 0. Per cambiare un'uscita digitale forse qualcosa come "D00 = 1" o "D00 = 0". Queste sono stringhe corte di lunghezza fissa. Dovrebbe essere molto facile da analizzare.


4

Mi piace usare Arduinos, sono semplici da programmare e puoi facilmente inviare dati al tuo computer dai vari ingressi tramite la connessione USB integrata. I dati possono essere inviati agli ambienti di programmazione Arduino Serial Monitor, utile per il debug.

Quindi uso un programma come Pure Data (PD) o Max MSP per ricevere i dati seriali. I dati possono essere inviati da questi programmi in tutti i tipi di formati utili. Perché è abbastanza semplice fare qualsiasi tipo di curva di log o ridimensionamento nel software - non devi preoccuparti di acquistare costosi log pot o usare valori difficili da trovare - basta acquistare un lotto di lavoro dello stesso valore e preoccuparsi del specifiche successive (1K o 10K è normalmente facile da ottenere).

Questo è gratuito: http://puredata.info/

Questo è il pagamento per la versione sciccosa, ma ha una buona demo: http://cycling74.com/downloads/


4

Ottieni un Arduino

Ottieni un DangerShield .

Scrivi il codice per inviare i dati del sensore DangerShield al PC tramite connessione RS-232 tramite USB.

Scrivi un'app personalizzata come VB.NET o qualcosa per tradurre i dati in qualcosa di utile sul PC, come i messaggi della finestra di Win32 o qualcosa del genere.


3

Suggerirei di usare PoKeys . Aggiunta molto semplice di 55 I / O digitali, 7 ingressi analogici (12 bit), uscite PWM e altro ancora. Si può anche essere combinato con qualcosa di simile a questo .


2

Vorrei andare con un Arduino o un Sanguino come la maggior parte della gente ha suggerito. Solo Google per loro. Sono estremamente facili da usare e puoi essere operativo in poche ore una volta che hai tutti i componenti necessari.


2
"Just google for them" non è accettato come risposta qui. Dai dettagli qui.
Stevenvh,



1

Un'alternativa che può o non può essere quella di acquistare joystick / joypad analogici disponibili in commercio (da $ fckall su ebay china o dal negozio di giochi) e sostituire i loro componenti di input analogici con i tuoi, o semplicemente strappare il PCB principale e trapiantare nel tuo hardware.

Dovrai abbinare alcune delle caratteristiche elettriche, ma il duro lavoro di codifica / comunicazioni USB ecc. È fatto per te e di solito i protocolli di comunicazione / mappatura degli ingressi sono ben noti.

I knock-off cinesi di controller USB in stile PlayStation, ecc. Possono essere ottenuti per pochi dollari, che è molto al di sotto del prezzo delle hoist * duino IO board ecc. Ed è abbastanza economico da essere usa e getta quando si fa saltare il primo o due.


0

I GamepadBlock si avvale di un ATmega32U2 insieme LUFA di implementare un dispositivo HID USB full speed per interrogare diverse periferiche di gioco originali. L'ATmega ha un'interfaccia USB hardware e iniziare è stato facile poiché LUFA offre diversi progetti dimostrativi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.