Po namyśle zdecydowałem jednak, że przepustnica Cougara dostanie swoją zoptymalizowaną elektronikę, dzięki czemu można ją będzie wykorzystać jako osobne urządzenie, a nie tylko w zestawie z joystickiem. Na bazie HEX Controllera wymyśliłem coś takiego:

To dość sporo uproszczona wersja, za to można dokonać wręcz bezinwazyjnej przeróbki przepustnicy, po prostu z jednej strony podłaczyć oryginalny kabel, a z drugiej USB do płytki CY8CKIT-059.
Z drugiej strony znajduje się złącze goldpin do podpięcia oryginalnej elektroniki, w przypadku, gdy moduł będzie zamontowany wewnątrz przepustnicy.
Naturalnie oprócz obsługi wszytkich osi i przycisków można będzie podłączyć co nieco więcej. Matrycę przycisków rozszerzyłem do 6x6, co daje 36 przycisków (łącznie z oryginalnymi), do tego dochodzą 4 wejścia dla enkoderów (sprzętowe odkłócanie itd.), dwie dodatkowe osie 16bit i kilka furtek na przyszłość w postaci wyprowadzonych magistral I2C, UART i CAN. To ostanie może stać się pomostem do projektu kol.
piotrva.
Płytki już jadą.
Równolegle pracuję nad interfejstem użytkownika dla głównego projektu. Powieje trochę czasami DOS lub terminalem Linuxa. Obawiam się, że gdybym zaczął pisać jakiś program na PC do ustawień, projekt jeszcze długo nie uzyskałby statusu gotowego do użycia. Dlatego też w duchu "set & forget" wszelakie ustawienia i konfiguracja dokonywana będzie przy pomocy portu szeregowego, konsoli i poleceń wpisywanych z klawiatury. Krótki film demonstracyjny jak to działa w tej chwili:
https://youtu.be/gAaHJnZVBZkDo obsługi używam programu Putty. Polecenia są krótkie i intuicyjne oraz w razie czego służą podpowiedzią o składni. Przykładowo do odwrócenia osi numer 1 w joysticku-bazie należy wpisać:
invaxis 0 1 1
gdzie
invaxis to polecenie, pierwszy parametr to
numer joysticka (0=baza, 1=moduł zewnętrzny), drugi to
numer osi (1-8), a trzeci to
włączenie (=1) lub
wyłączenie (=0) odwrócenia osi.
Jeśli polecenie zostanie wykonane prawidłowo, konsola poinformuje o zmianie parametru. Zmiana zapisana jest w pamięci EEPROM, więc nie zostanie utracona po wyłączeniu zasilania.
Oczywiście poleceń będzie nieco więcej. Np. mapowanie fizycznych numerów przycisków pod inne, opcjonalne włączanie martwej strefy na osiach, reset do ustawień fabrycznych.