Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)

p.kaczmarek2 08 Sty 2020 19:44 1341 7
  • Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Witajcie moi drodzy
    Dzisiaj przedstawię mój projekt prostego gamepada (urządzenia sterującego na USB) z 4 osiami i dwoma przyciskami opartego o mikrokontroler PIC18F45K50.
    Mój gamepad będzie oferować 4 tryby pracy (4 różne wsady):
    - tryb UART (wymagający przejściówki)
    - tryb gamepada/joysticka USB/HID Plug And Play
    - tryb myszki USB/HID Plug And Play
    - tryb CDC (wirtualny port COM podłączamy przez USB)
    Skupię się tutaj na powyżej opisanych firmware i oczywiście udostępnię je wraz z kodem źródłowym.

    Wstęp
    Przedstawię tutaj zrobiony przeze mnie prosty gamepad zgodny ze standardem HID i działający na zasadzie plug and play. Będzie on składać się z następujących elementów:
    - obudowa - zaprojektowana przeze mnie w 3D i wydrukowana na drukarce 3d (Creality Ender 3 PRO)
    - serce układu (płytka z PIC18F45K50) - zaprojektowana przeze mnie w programie Eagle, samo PCB wyprodukowane w chinach, ale zlutowane już samodzielnie
    - dwóch modułów gałek/joysticka - kupionych na Ebay
    - odpowiedniego firmware dla mikrokontrolera - napisanego w MikroC PRO for PIC (właściwie to przedstawię kilka różnych firmware)
    Kody źródłowe i pliki projektowe udostępnię w tym temacie do pobrania.
    Do wgrywania firmware na PICa użyję mojego klona programatora PICKIT2.

    Użyty moduł joysticka/gałki
    Cały projekt oparłem o ogólnodostępne, tanie moduły gałki:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Oferują one:
    - oś X (wychylanie prawo/lewo)
    - oś Y (wychylanie przód/tył)
    - przycisk (wciskanie gałki)
    Obie osie oczywiście działają tak jak potencjometr, stanowią dzielnik napięcia między VDD i GND i można je odczytać poprzez ADC (Analog-to-Digital Converter).
    Wyjścia modułu joysticka są opisane na PCB, ale można je przedstawić prosto na obrazku:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Do projektu użyłem dwóch takich modułów, by docelowo mieć 4 osie i 2 przyciski.

    Użyte PCB
    Do projektu użyłem zaprojektowanej przeze mnie wcześniej płytki PIC18F4550/PIC18F45K50 wykonanej w technologii SMD.
    Jej rozmiar to 45mm na 30mm.
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Schemat:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Jedna z wykonanych wcześniej sztuk:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Całość opisana jest tutaj:
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=3601583
    Do projektu użyłem tej płytki w wersji z PIC18F45K50 bez zewnętrznego oscylatora, gdyż jego wewnętrzny oscylator 16MHz jest wystarczający dla USB:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Tutaj macie pełną notę katalogową mikrokontrolera którego użyłem (PIC18F45K50):
    pic18f45k5...asheet.pdf Download (4.98 MB)
    Zdaję sobie sprawę z tego, że nieco ładniej całość gamepada by wyszła na dedykowanej pod ten projekt płytce (można by zaprojektować te PCB tak, by moduły gałek joysticka wchodziły w nią na złączach kątowych), ale po prostu zostało mi tych starych płytek trochę i chciałem z nich skorzystać.
    Załącznik: źródła Eagle tej płytki:
    p4550new..0.zip Download (32.14 kB)Punkty: 4 dla użytkownika
    Załącznik: Gerbery tej płytki:
    P4550_10_g..ers.zip Download (54.99 kB)Punkty: 3 dla użytkownika

    Lutowanie serca kontrolera z PIC18F45K50
    Na potrzeby projektu zlutowałem kolejną sztukę mojej płytki z PIC18F45K50.
    Przygotowałem mniej więcej to co będzie potrzebne:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Ta niebieska szpulka na zdjęciu powyżej to spoiwo lutownicze cynel Sn60Pb40 (o ile dobrze pamiętam) 0.1mm.
    Do tego użyłem jeszcze m. in. topnik którego brakuje na zdjęciu.
    Dodatkowo oczywiście moje "narzędzie do lutowania SMD":
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    ... czyli najtańszą lutownicę oporową z regulacją temperatury.

    Zacząłem od przylutowania złącza USB:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Następnie przylutowałem mikrokontroler PIC18F45K50 w obudowie TQFP44:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Potem przylutowałem też kondensatory 100nF, kondensator 220nF na pin VUSB oraz rezystor 10k od układu RESET i przycisk RESET.
    Na koniec przylutowałem goldpiny:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC) Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Tak prezentowała się gotowa całość, jeszcze przed czyszczeniem z topnika:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Płytkę jeszcze dla pewności sprawdziłem multimetrem, ale nie było zwarć/zimnych lutów.

    Pierwsze testy na stole
    Na początek złożyłem wszystko poza obudową gamepada i testowałem na stole:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Obie gałki podłączyłem do pinów z ADC, czyli AN*:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Przyciski podłączyłem do portu B, a dokładnie do pinów RB0 i RB1, gdyż port B w PIC18F45(K)50 ma programowalne rezystory pull up:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    (włącza się je wszystkie na raz z pomocą bitu RPBU z INTCON2)
    Całość podłączyłem do mojego klona programatora PICKIT2 i jego softu używałem do programowania:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Dodatkowo do pinu TX PICa podłączyłem przejściówkę UART<->USB by móc szybciej testować czy całość działa.
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)


    Model 3D prototypu gamepada
    Pierwszy model gamepada oparłem o zwymiarowany już poprawnie element z Thingiverse (Thumbstick Joystick Case) dostępny na licencji Creative Commons:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Link: https://www.thingiverse.com/thing:1162200
    Całość w zasadzie oszczędziła mi tylko mierzenia płytki od modułu z gałką.
    Początkowo chciałem zrobić mój gamepad tak, że jego prawa strona byłaby idealnym odbiciem lustrzanym lewej strony, ale niestety okazało się, że moduł z gałką nie jest symetryczny.
    Uznałem, że całość będzie składała się z dwóch części - dolnej i górnej.
    Zacząłem od testowych wydruków do przymiarek:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Przymiarka do płytki od PICa:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Przymiarka do gałek:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)

    Ostatecznie przystanąłem na taki design prototypu:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)

    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)

    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Mocowanie obu połówek gamepada zaplanowałem z pomocą śrub M2:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Wykorzystać do tego można te same otwory które są od mocowania dwóch modułów gałek:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Filament nie jest gwintowany, ale dzięki jego plastyczności dobrze się w niego wkręca śrubki.

    Moduły gałki niestety muszą być przylutowane kabelkami do PCB. Jest to bardzo niefortunne, ale ciężko to inaczej było zrealizować w tej wersji. W następnej wersji projektu planuję zrobić PCB pod gamepad takie, że po prostu goldpiny gałek będą wchodzić w złącza na bokach głównej płytki i całość będzie się łatwo łączyć i rozłaczać.
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Kabelki lutowałem do spodu gamepada:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Zdjęcie pochodzi jeszcze z prototypu-prototypu obudowy, który nie miał wypełnionego spodu tylko dlatego, że przy testach oszczędzałem filament.

    Po całym złożeniu:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC) Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    W sam raz do pierwszych testów. W przyszłości zamierzam pod projekt zrobić dedykowana PCB, więc też powstanie lepsza obudowa.

    Firmware - tryb UART
    Pierwszy, najprostszy kod obsługi gamepada/joysticka nie posiada wcale wsparcia USB. Opracowałem go w ramach pierwszych testów tego czy sam PIC18F45K50 działa poprawnie, czy ma dobrze skonfigurowany oscylator oraz czy sam odczyt ADC i przycisków jest w porządku.
    Kod napisany jest tak, że wypisuje bieżący stan gamepada na UART (pin TX PIC18F45K50):
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    i by ten stan odebrać, potrzebna jest przejściówka USB-UART do komputera (ja użyłem HW-597):
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Wyniki tak prezentują się w RealTerm:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Całość poprawnie wykrywa częściowe wychylenie gałki oraz wciśnięcia przycisków:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Załącznik (cały projekt w MikroC dla PIC18F45K50 wraz z .hex do pobrania):
    45K50_joys...intOsc.zip Download (159.62 kB)Punkty: 2 dla użytkownika
    Firmware - tryb wirtualny port COM aka VCP (wymaga sterowników!)
    Tryb wirtualnego portu COM korzysta już ze sprzętowego USB od PICa które znajduje się na jego pinach D+ i D- i zasadniczo nie wymaga żadnych dodatkowych komponentów do działania.
    Działa podobnie jak te znane przejściówki oparte o CH340.
    Ten firmware oparty jest o darmową bibliotekę VCPDemo od MikroE, pobraną stąd:
    https://libstock.mikroe.com/projects/view/568/usb-device-library
    Załączam jej bieżącą wersję:
    1409037396...oc_pic.zip Download (619.49 kB)
    Oraz wymagane przez nią sterowniki:
    USB-CDC-D..er.zip Download (6.63 kB)
    Sterowniki testowałem na systemie Windows 7.
    Windows po podłączeniu PICa z wsadem VCP nie daje rady samodzielnie zainstalować sterowników:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Urządzenie pokazuje się z wykrzyknikiem w Menedżerze Urządzeń, nazywa się tam "VCP Demo":
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Ma tam pokazany kod błędu 28 (brak sterowników):
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Sterowniki oczywiście trzeba zainstalować ręcznie poprzez wskazanie systemowi ścieżki do nich:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    W trakcie instalacji trzeba potwierdzić, że ufamy sterownikom od "Niezweryfikowanego wydawcy" (aka Mikroelektronika):
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Po potwierdzeniu sterowniki instalują się już pomyślnie:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Urządzenie zaczyna być widoczne jako "Port COM" (już nie "VCP Demo"):
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    I można się z nim skomunikować poprzez RealTerm:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Poprawnie odbierane są stany gałek i przycisków gamepada:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Zauważyłem jednak, że po ponownym wgraniu wsadu (?) muszę odłączyć przewód USB od PICa do komputera i podłączyć go ponownie bo inaczej wirtualny port COM się blokuje. Podejrzewam, że to jest wina użytej biblioteki VCP. Jednak nie uważam tego za duży problem, ponieważ i tak raczej zamierzam docelowo używać czystego USB/HID.

    UWAGA: To rozwiązanie z wirtualnym portem COM ma pewną dość dużą wadę.
    A mianowicie nie poradzi sobie ono z takim kodem:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Taki kod spowoduje wysyłanie śmieci, ponieważ funkcja Send_Data_To_Uart kopiuje tekst do wysłania do bufora 'buffer' o adresie 0x500 w pamięci RAM USB z PIC18F45K50, a sam kod biblioteki VCP nie sprawdza, czy nie nadpisuje czegoś co nie zostało jeszcze wysłane.
    To po stronie programisty tutaj leży dopilnowanie, by nie nadpisywać niewysłanych danych.
    Co ciekawe, w przypadku użycia zwykłego UART z PIC (UART_Write) nie byłoby tego problemu.
    Poprawnym natomiast rozwiązaniem jest zrobienie czegoś w stylu:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    i dodanie odpowiedniego oczekiwania (delay) po wysłaniu pakietu.

    Załącznik (cały projekt w MikroC dla PIC18F45K50 wraz z .hex do pobrania):
    45K50_joys...intOsc.zip Download (135.98 kB)Punkty: 2 dla użytkownika

    Firmware - tryb gamepada USB/HID (Plug and play)
    Ten tryb działa już jak pełnoprawny, normalny gamepad/joystick. Oparty jest o biblioteki HID/USB od MikroC i używa sprzętowego USB PICa. Ten wsad nie wymaga żadnych sterowników po stronie komputera, wszystko jest Plug And Play.
    Gamepad widziany jest przez komputer jako "Urządzenie wejściowe USB":
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Jego identyfikatory sprzętu (USB\VID_1403&PID_0005&REV_0001) są zgodne z tym, co jest zdefiniowane w kodzie (plik USB CDC_Descriptor.c):
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Gamepad z miejsca działa z różnymi programami, a nawet ze stroną HTML5 Gamepad Tester, dostępną tutaj:
    https://html5gamepad.com/
    Ta strona pozwala testować różne gamepady/joysticki w przeglądarce:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Po podłączeniu mojej konstrukcji od razu wykrywa nowe urządzenie:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    (jeśli nie wykrywa, to warto ruszyć którąś z osi na gamepadzie lub wcisnąć przycisk by go 'obudzić')
    Małym niedociągnięciem jest to, że pokazane wartości w stanie spoczynku są niezerowe, ale można to łatwo naprawić w kodzie (skalibrować odczyt wartości z ADC).

    Strona GamePad Tester jest też w stanie poprawnie odczytywać stany osi:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Delikatne przesunięcie gałki gamepada skutkuje odczytaniem wartości innej niż 1.
    Przyciski również są poprawnie wykrywane:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)

    Na potrzeby tego firmware opracowałem specjalny HID Descriptor dla mojego gamepada. W dużym skrócie, standard HID pozwala opisać jakie informacje przesyła nasze urządzenie do komputera. Można tam określić, ile mamy przycisków, osi, jaki jest zakres wartości osi (też ich rozmiar w bajtach), itp.
    Oto kod deskryptora HID mojego gamepada (wersja okrojona; pełna jest w załączniku):
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Powyższy deskryptor HID mówi, że PIC przesyła kolejno do USB w pakiecie cztery wartości osi (X,Y,Z, Rx - każda 8 bitów) a potem kolejne 8 bitów, z czego 2 bity używane są dla przycisków.
    Oczywiście, samo to przesyłanie też musi być w kodzie i jest u mnie w funkcji main().

    Załącznik (cały projekt w MikroC dla PIC18F45K50 wraz z .hex do pobrania):
    45K50_joys...uttons.zip Download (107.26 kB)Punkty: 2 dla użytkownika
    Firmware - tryb myszki USB/HID (Plug and play)
    Ten firmware powstał raczej w ramach ciekawostki. Jak już mamy obsługę USB/HID to równie prosto jak gamepad/joystick można zrobić myszkę. I właśnie na te potrzeby opracowałem deskryptor HID który pozwala mojemu gamepadowi udawać myszkę.
    Działa oczywiście bez instalacji sterowników, tak jak każda myszka na USB.
    Użyty deskryptor HID (wersja okrojona; pełna jest w załączniku):
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Powyższy deskryptor HID mówi, że PIC przesyła kolejno do USB w pakiecie jeden bajt którego trzy bity to przyciski (pozostałe nie są używane), a następnie wartość przesunięcia myszki X, Y oraz wartość scrolla (kółko myszy)..
    Oczywiście, samo to przesyłanie też musi być w kodzie i jest u mnie w funkcji main().

    Dzięki temu po podłączeniu mojego gamepada do komputera można z jego pomocą sterować kursorem (prawa gałka pada), scrollem (lewa gałka - tylko góra/dół) oraz klikać (prawy i lewy przycisk myszki).
    Po prostu pełnoprawna myszka.

    Załącznik (cały projekt w MikroC dla PIC18F45K50 wraz z .hex do pobrania):
    45K50_joys...Scroll.zip Download (111.05 kB)Punkty: 2 dla użytkownika

    Nowy, lepszy model 3D gamepada
    Przedstawiony tu wydruk 3D w początkowym założeniu miał być tylko wersją testową. Zaprojektowałem nowy model, bardziej smukły, który prezentuje się tak:
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Gamepad USB/HID na PIC18F45K50 (z dodatkowym trybem myszki oraz CDC)
    Niestety ze względu na awarię drukarki 3D (wciąż czekam aż przyjdą części zza oceanu) nie mam jak go teraz wydrukować, więc całość jest w takiej postaci w jakiej jest.
    Całkiem możliwe, że już zamiast drukować ten model to zrobię jeszcze nowszą wersję - z dodatkowymi przyciskami i lepszym PCB.

    Dalszy rozwój projektu
    Widzę co najmniej kilka możliwości co można by dalej w kwestii mojego gamepada zrobić. Są to m. in:
    - można zaprojektować/wykonać lepszą obudowę (już było napisane)
    - można zaprojektować specjalną płytkę pod projekt która łączy się z modułami gałek gamepada za pomocą dwóch złącz kątowych
    - można dodać kalibrację ADC, albo ręczną albo całkiem automatyczną (po włączeniu gamepad odczytuje jakie są wartości w stanie spoczynku i wysyła ich zmianę)
    - można by poprawić deskryptor USB gamepada by używał komplementarnych osi (teraz używam X, Y, Z oraz rX; to chyba przez to na GamePad Tester pokazuje mi 6 osi, a nie 4; można spróbować użyć X, Y oraz rX i rY).

    Podsumowanie
    Z mojego gamepada jestem zadowolony. Standard HID okazał się bardzo prosty w użyciu, a PIC18F45K50 naprawdę wymaga absolutnego minimum elementów do ogarnięcia USB (nie trzeba nawet zewnętrznego oscylatora!). W planach mam już kolejną, bardziej rozbudowaną wersję kontrolera którą wzbogacę o dodatkowe przyciski i przede wszystkim wymodeluję w bardziej przyjaznym dla użytkownika kształcie.
    Finalny software/firmware projektu zasadniczo jest gotowy, a w przyszłości zamierzam pod całość zaprojektować dedykowaną płytkę i zrobić wygodniejszą, dobrze leżącą w ręce obudowę.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Computer ControlsComputer Controls
  • Computer ControlsComputer Controls
  • #3
    Tomek515
    Poziom 21  
    Zrobiłeś go dla sportu czy właśnie taki potrzebujesz do obsługi jakiejś retro gry?
  • #4
    p.kaczmarek2
    Poziom 24  
    Sareph napisał:
    Pssst, tak w zasadzie to nie jest joystick a pad. ;)


    Nie jestem graczem, dzięki za zwrócenie uwagi, przeredaguję zaraz temat by było poprawnie.

    Tomek515 napisał:
    Zrobiłeś go dla sportu czy właśnie taki potrzebujesz do obsługi jakiejś retro gry?


    Dla sportu, by ogarnąć jak działa HID, by podzielić się gotowymi, sprawnymi kodami, i bo docelowo myślę o zrobieniu jakiegoś bardziej zaawansowanego kontrolera do symulatorów, itp.

    Ogólnie w HID bardzo spodobało mi się, że całość działa Plug and Play i że poprzez modyfikowanie deskryptora HID można naprawdę różnego rodzaju pady/joysticki utworzyć, można o wiele więcej osi wysyłać w ten sposób, nie tylko 4 tak jak u mnie. Bardzo łatwo całość zmodyfikować i mieć np. 6 osi - X, Y, Z oraz rX, rY, rZ. Itp. itd. Przycisków też można mieć dużo.
  • #5
    Tomek515
    Poziom 21  
    Życzę kolejnych równie udanych wersji.
    Ostatnio korzystam z c64 mini- retro konsoli do której dołączony joystick jest niezbyt wygodny. Myślę że przy twoich umiejętnościach mógłbyś np do takiego sprzętu stworzyć coś fajnego co mogło by cieszyć się zainteresowaniem.
  • #6
    p.kaczmarek2
    Poziom 24  
    Tomek515 napisał:

    Ostatnio korzystam z c64 mini- retro konsoli do której dołączony joystick jest niezbyt wygodny.

    Pierwsze słyszę o tej reinkarnacji C64, ale mógłbym spróbować.
    Ten joystick tam jest na USB?
    Chyba tak, widzę że jednak dość dużo różnorodnych kontrolerów jest przez te c64-mini wspieranych:
    https://gurce.net/c64mini/hardware_compatibility_lists