Jak zbudować kontroler USB z pokrętłami, suwakami i przełącznikami

34

W jaki sposób buduje się interfejs dla urządzenia USB, który umożliwia łączenie garnków, zwężeń liniowych / logów oraz chwilowych / przełączanych przełączników do komputera?

Byłbym wdzięczny, gdyby ktoś mógł podać mi ogólny opis. Potrafię czytać arkusze specyfikacji, więc zrozumienie szczegółów nie stanowi problemu, o ile wiem, gdzie je znaleźć.

Robert Harvey
źródło

Odpowiedzi:

29

Użyłbym jednej z tablic Teensy . Są to mikrokontrolery podobne do Arduino, które obsługują USB. W przeciwieństwie do Arduino, mogą wyglądać na PC jak każde urządzenie USB. Oznacza to, że możesz utworzyć własną klawiaturę USB, joystick, urządzenie MIDI itp., A komputer może używać standardowych sterowników.

Teensy obsługuje Arduino IDE , lub możesz programować w C i używać bezpośrednio LUFA (do obsługi USB).

Oto kilka linków do projektów, które pomogą.

Toby Jaffey
źródło
10
W przypadku tego rodzaju aplikacji sugerowałbym udawanie HID. Sterowniki już napisane, wystarczy emulować mysz lub podobne urządzenie.
Kortuk
1
+1 za joystick, nie musisz nawet budować tablicy mcu, tablica odzyskana z joysticka borken z osiami analogowymi będzie działać równie dobrze ...
peufeu
6

Użyłbym płytki mikrokontrolera jak Arduino. Odczytujesz ADC i cyfrowe we / wy i wysyłasz znaki ASCII do komputera za pomocą połączenia UART-> USB.

Ile potrzebujesz zewnętrznego sprzętu zależy od wymaganej dokładności. Sądzę, że dla większości aplikacji wystarczający byłby sprzęt wewnętrzny mikrokontrolera. Chciałbym ogłosić przełączniki sprzętowo.

Dla interfejsu USB wystarczy napisać prosty parser, aby można było odczytać odczyt. Na przykład, jeśli komputer wysłał ciąg „A00?” uC może odesłać odczyt na kanale analogowym 0. „D00?” uC może odesłać stan wejścia cyfrowego 0. Aby zmienić wyjście cyfrowe, może coś takiego jak „D00 = 1” lub „D00 = 0”. Są to krótkie sznurki o stałej długości. Powinny być bardzo łatwe do przeanalizowania.

jluciani
źródło
4

Lubię korzystać z Arduinos, są one łatwe do zaprogramowania i można łatwo wysyłać dane do komputera z różnych wejść przez wbudowane złącze USB. Dane mogą być przesyłane do środowiska programistycznego Arduino Serial Monitor - przydatnego do debugowania.

Następnie używam programu takiego jak Pure Data (PD) lub Max MSP, aby odbierać dane szeregowe. Dane mogą być wysyłane z tych programów we wszelkiego rodzaju przydatnych formatach. Ponieważ w oprogramowaniu jest wystarczająco proste wykonywanie krzywych kłód lub skalowanie - nie musisz się martwić o kupowanie drogich doniczek lub trudnych do znalezienia wartości - wystarczy kupić zadanie o tej samej wartości i martwić się o szczegóły później (1K lub 10K jest zwykle łatwo dostępne).

Ten jest bezpłatny: http://puredata.info/

Ten jest płatny za swanky wersję, ale ma dobre demo: http://cycling74.com/downloads/

Jim
źródło
4

Zdobądź Arduino

Zdobądź DangerShield .

Napisz kod, aby wysłać dane czujnika DangerShield do komputera przez RS-232 przez połączenie USB.

Napisz niestandardową aplikację, taką jak VB.NET lub coś, co przekształci dane w coś użytecznego na PC, na przykład komunikaty okna Win32 lub coś takiego.

J. Polfer
źródło
3

Sugerowałbym użycie PoKeys . Bardzo łatwe dodanie 55 cyfrowych wejść / wyjść, 7 wejść analogowych (12-bitowych), wyjść PWM i innych. Może nawet być połączony z czymś takim to .

avra
źródło
2

Wybrałbym Arduino lub Sanguino, jak sugeruje większość ludzi. Po prostu google dla nich. Są niezwykle łatwe w użyciu i możesz zacząć działać w ciągu kilku godzin, gdy będziesz mieć wszystkie niezbędne komponenty.

Sushrut J Mair
źródło
2
„Po prostu google dla nich” nie jest tutaj akceptowane. Podaj szczegóły tutaj.
stevenvh
1

Alternatywą, która może nie pasować, jest zakup dostępnych w handlu analogowych joysticków / joypadów (od $ fckall w serwisie eBay china lub w sklepie z grami) i zamiana ich analogowych komponentów wejściowych na własne lub po prostu zerwanie głównej płytki drukowanej i przeszczep do twojego sprzętu.

Musisz dopasować niektóre parametry elektryczne, ale ciężka praca związana z kodowaniem / komunikacją USB itp. Jest dla Ciebie wykonywana i zwykle protokoły komunikacyjne / mapowanie danych wejściowych są dobrze znane.

Chińskie podróbki kontrolerów USB w stylu PlayStation itp. Można dostać za kilka dolarów, co jest znacznie poniżej ceny hobbystycznych * kart duo IO itp. I jest wystarczająco tanie, aby można je było wyrzucić, gdy wysadzisz pierwszego lub dwóch.

John U
źródło
0

W GamepadBlock posługuje się ATmega32U2 razem z lufa do wdrożenia pełnego urządzenie USB HID prędkości do sondowania kilka oryginalnych kontrolerów gier. ATmega ma sprzętowy interfejs USB i rozpoczęcie pracy było łatwe, ponieważ LUFA zapewnia kilka projektów demonstracyjnych.

użytkownik165785
źródło