COCKPIT SUITELIVE HUB /

Warsztat / FreeJoy i wejścia USB

FreeJoy: własny panel USB do kokpitu bez pisania firmware

Chcesz obsługiwać symulator prawdziwymi przyciskami i przepustnicą, ale nie pisać oprogramowania kontrolera USB? FreeJoy przejmuje wiele podstawowych zadań. Podłączasz odpowiednie elementy do obsługiwanej płytki, konfigurujesz ich zachowanie i przypisujesz wejścia w symulatorze. Zacznij od jednego przycisku, a każdy kolejny krok sprawdzaj oddzielnie.

Twój rezultatZaplanowany kontroler USB ze sprawdzonymi przyciskami i osiami, kopią konfiguracji oraz czytelnymi przypisaniami w symulatorze.

Stan treści: 18 października 2026 r.

Jaką pracę wykonuje FreeJoy

FreeJoy to swobodnie dostępne, konfigurowalne oprogramowanie układowe do własnych kontrolerów gier: paneli przycisków, pedałów, joysticków i przepustnic. Konfigurator pozwala przypisać piny, wybrać działanie przełączników, skalibrować osie i zapisać ustawienia w urządzeniu bez samodzielnego programowania tych funkcji.

Oszczędzasz pracę nad raportami USB, odczytem wejść i typową logiką sterowania. Nadal potrzebujesz mechaniki, poprawnego okablowania i przypisań w grze. Brak doświadczenia programistycznego nie blokuje pierwszego kroku. Podłącz jeden przycisk, obserwuj jego reakcję i dopiero potem dodaj następny. Własny wyświetlacz z indywidualnym programem to uzupełniająca ścieżka opisana w poradniku AI i programowanie.

Najpierw płytka i zgodne wersje

Oryginalny projekt wskazuje STM32F103C8, zwykle na płytce Blue Pill. Kolor laminatu nie potwierdza zgodności. Black Pill z F401/F411, ESP32 ani Arduino Uno nie są zamiennikami dla tego samego pliku firmware. Sprawdź oznaczenie układu, schemat, wymagania pamięci i docelową platformę pliku. Podobnie opisany klon również wymaga weryfikacji.

ST oficjalnie podaje 64 KB pamięci flash dla F103C8. Sprawdzony tutaj jako dane plik wydania 1.7.3b0 mieści się w tym zakresie; nie wymaga zakładania dodatkowych 128 KB. Nadal trzeba zweryfikować rzeczywistą płytkę i wybrać właściwą procedurę instalacji.

Stan na 18 października 2026: oficjalne strony oznaczają firmware v1.7.3b0 i konfigurator Qt 1.7.3b0 jako najnowsze wydania pod nazwą 1.7.3. Używaj pasującej pary. Stary plik konfiguracji lub rysunek połączeń może dotyczyć innych ustawień; historia wydań dokumentuje zmianę pinów I²C. W wyborze pomoże porównanie mikrokontrolerów. Większa częstotliwość procesora nie zapewnia zgodności z firmware przeznaczonym dla innego układu.

USB HID, DirectInput i przyciski DX

HID oznacza Human Interface Device. Z odpowiednim firmware FreeJoy zgłasza się jako kontroler gier USB i korzysta z infrastruktury HID systemu Windows. Po konfiguracji program ustawień nie musi pozostawać uruchomiony podczas zwykłego korzystania z wejść. Możesz podłączyć panel, sprawdzić wykrycie i korzystać z zapisanych przypisań.

DirectInput to interfejs Windows, przez który gry mogą odczytywać kontrolery. „Przycisk DX” jest zgłoszonym przyciskiem joysticka, a nie gotową komendą wypuszczenia podwozia. Znaczenie nadaje mu przypisanie w symulatorze. XInput jest innym interfejsem; gra obsługująca wyłącznie XInput nie musi rozpoznać tego urządzenia. Starszy symulator może też odczytywać mniej przycisków. Sprawdź konkretną grę przed budową rozbudowanego panelu, zamiast poprzestawać na wykryciu USB.

Zaplanuj niewielki panel kokpitu

Przykład obejmuje cztery przyciski chwilowe, przełącznik zatrzaskowy, enkoder z przyciskiem i potencjometr liniowy 10 kΩ. Oczekujemy czterech osobnych poleceń, oddzielnego włączania i wyłączania dostępnej funkcji, dwóch kierunków regulacji oraz płynnej osi. Najpierw sprawdź, czy pojazd w symulatorze rzeczywiście udostępnia potrzebne przypisania.

Tabela przedstawia propozycję dla odpowiedniej Blue Pill z nową konfiguracją. Wymienione wejścia cyfrowe ustaw jako Button_Gnd, a styki zwieraj do wspólnej masy. Skrajne wyprowadzenia potencjometru podłącz do 3,3 V i GND, suwak do A0. Montaż wykonuj bez zasilania. Zweryfikuj opis swojej płytki oraz wolne funkcje pinów. Zarezerwuj USB, złącze programowania i interfejsy używane już przez inne elementy.

Przykładowy plan niewielkiego panelu USB
ElementProponowane pinyOczekiwane działanie
Cztery przyciskiB12, B13, B14, B15 → GNDCztery niezależne zwykłe przyciski
Przełącznik zatrzaskowyB5 → GNDDwa impulsy: zamknięcie / otwarcie
Enkoder z przyciskiemA/B do B6/B7; przycisk B8; wspólna masaPrzycisk na każdy kierunek i naciśnięcie
Potencjometr liniowy 10 kΩ3,3 V / suwak A0 / GNDSkalibrowana oś bez centrowania

Od pustej płytki do pierwszego wejścia

W istniejącym kontrolerze najpierw zapisz konfigurację i zanotuj wersję firmware. Dla pustej płytki projekt opisuje pierwsze programowanie przez ST-Link lub USB-UART. Postępuj według właściwej instrukcji dotyczącej trybu startowego, zasilania i pliku. Sam kabel USB nie zamienia pustej płytki w urządzenie FreeJoy. Podstawy wyjaśnia poradnik oprogramowania układowego.

Odczytaj konfigurację urządzenia, przypisz początkowo tylko B12 jako Button_Gnd i wybierz „Write Config to Device”. Naciśnij przycisk, znajdź jego numer fizyczny, następnie przypisz go do zwykłego przycisku logicznego. Ponownie zapisz i sprawdź działanie. „Save Config to File” tworzy dodatkową kopię na komputerze; nie zastępuje zapisu do płytki. Odłącz i ponownie podłącz USB, aby upewnić się, że ustawienie przetrwało. Dopiero wtedy rozwijaj okablowanie.

Przyciski fizyczne i logiczne

Przycisk fizyczny oznacza wykryty styk, a logiczny sygnał przekazywany komputerowi. Ich numery nie muszą się zgadzać. Zapisuj osobno nazwę elementu, wejście fizyczne i wyjście logiczne. Jeden styk może obsługiwać kilka funkcji. ToggleSwich_On może wygenerować impuls przy zamknięciu przełącznika, a ToggleSwich_Off przy otwarciu. Oddzielne komendy włącz/wyłącz przypisuj tylko wtedy, gdy gra je rzeczywiście oferuje.

Button_normal podąża za stykiem; Button_Toggle przełącza zapamiętany stan po kolejnych naciśnięciach. Eliminacja drgań styków odrzuca zakłócenia, Delay Timer opóźnia aktywację, a Press Timer określa czas jej trwania w odpowiednim trybie. Zacznij od ustawień domyślnych i zmieniaj jeden parametr naraz. Zbyt długie odfiltrowanie styków może zgubić krótki nacisk, a długi impuls przytrzymać komendę gry. Sprawdź start z przełącznikiem już w pozycji włączonej.

Więcej funkcji i połączeń

Dokumentacja podaje do 128 wejść cyfrowych, osiem osi, cztery manipulatory POV i pięć modyfikatorów Shift. Nie oznacza to dowolnego jednoczesnego połączenia funkcji bez konfliktów pinów i zasobów. Grupy Radio utrzymują wybraną funkcję, tryby sekwencyjne przechodzą przez przypisane pozycje, a Shift umożliwia kolejną warstwę sterowania. Oznacz ją na panelu, żeby nie zgadywać w trakcie lotu.

Wejścia można rozszerzyć przez matrycę albo obsługiwane rejestry przesuwne. Matryca wymaga poprawnych wierszy, kolumn i diod według schematu projektu. Sprawdź kilka przycisków naciśniętych jednocześnie. Dla 74HC165 i CD4021 skonfiguruj Clock, Data i Latch zgodnie z układem; dokumentacja zaleca 3,3 V. 74HC595 wykonuje inne zadanie i nie jest zamiennikiem wejściowym. Poradnik elementów sterujących pomoże dobrać ich mechanikę.

Dalsze udokumentowane funkcje obejmują cztery kanały PWM oświetlenia i do 24 diod LED, osobnych lub w matrycy. Wersja 1.7.3 dodaje adresowalne WS2812b/PL9823, uruchamianie przyciskiem, timery jednokolorowych LED oraz ich zewnętrzne sterowanie przez USB HID i konfigurator. Projekt podaje do 50 adresowalnych LED. Raporty UART TX mogą przekazywać dane urządzeniom zewnętrznym. Nie zapewnia to automatycznie telemetrii symulatora ani potwierdzonej integracji z Cockpit Suite.

Enkoder: obrót to nie naciśnięcie

Enkoder inkrementalny dostarcza dwa przesunięte sygnały, z których można rozpoznać kierunek. FreeJoy może utworzyć dwa przyciski logiczne lub zmieniać oś. Wbudowany przycisk to osobny styk. Wiki rozróżnia maksymalnie 15 zwykłych enkoderów i jeden szybki; Fast_Encoder wymaga A8 i A9, nie dowolnych wolnych pinów. W przykładzie zwykły enkoder używa B6/B7, a przycisk B8.

Przypisz Encoder_A i Encoder_B według instrukcji. Obróć pokrętło o dziesięć zapadek powoli w każdą stronę, następnie szybciej, i porównaj liczbę kroków. Odwrócony kierunek, podwójne kroki i zgubione impulsy mają różne przyczyny: kanały, typ enkodera, styki albo ustawienia czasowe. Wiki wskazuje domyślnie 10 ms i zaleca impuls krótszy niż 50 ms. Nie jest to gwarantowana najlepsza wartość dla każdego symulatora; dobieraj ją przez powtarzalne próby.

Osie: od czujnika do użytecznego zakresu

Ustaw A0 jako źródło analogowe potencjometru i przypisz do osi logicznej, na przykład X. Wyłącz osie nieużywane. FreeJoy dokumentuje również czujniki cyfrowe AS5600 i określone warianty TLE501x oraz zewnętrzne przetworniki ADS1115 i MCP3201/02/04/08. Liczy się dokładny model, interfejs, kanał i wersja konfiguracji. Nie oznacza to obsługi dowolnego modułu Halla czy I²C.

Najpierw obserwuj wartość surową: powinna konsekwentnie rosnąć albo maleć podczas ruchu. Rozpocznij kalibrację, osiągnij rzeczywiste końce mechanicznego zakresu i zapisz wynik. Dla osi samocentrującej uwzględnij pozycję spoczynkową; przepustnica zazwyczaj nie wymaga sztucznego środka. Wewnętrzne wejścia analogowe mają rozdzielczość 12 bitów. Większe liczby w raporcie USB nie dodają dokładności pomiaru i nie poprawiają mechaniki.

Martwe strefy, filtry i krzywe

Centralna martwa strefa pomija małe odchylenia wokół środka, dynamiczna niewielkie zmiany wokół bieżącej wartości. Obie mogą ukryć zamierzony ruch, więc zacznij od małego zakresu. Siedem poziomów filtra wygładza sygnał, lecz zwiększa opóźnienie. Projekt odradza poziomy powyżej 3 dla osi wymagających szybkiej reakcji. Mocny filtr nie naprawi luźnego przewodu ani niestabilnego mocowania.

Inwersja odwraca kierunek. Krzywe zmieniają czułość wzdłuż zakresu. Prescaler, łączenie osi, przyciskowe zmiany, centrowanie i resetowanie oraz przyciski wyzwalane obszarem osi należą do opisanych narzędzi. Najpierw uzyskaj przewidywalny przebieg liniowy. Dodawaj tylko potrzebną funkcję i porównuj z zapisaną konfiguracją. Krzywe ustawione równocześnie w FreeJoy oraz symulatorze nakładają się, utrudniając ustalenie przyczyny dziwnej reakcji.

Próba w symulatorze i szukanie usterek

W Windows uruchom joy.cpl i otwórz właściwości kontrolera. Zacznij od niskich numerów przycisków i przykładowej osi. Klasyczny widok może nie pokazywać wszystkich przycisków dużego urządzenia; brak wskaźnika poza jego zakresem nie dowodzi awarii. Następnie przypisz jedną funkcję w symulatorze. Sprawdź nacisk, przytrzymanie, zwolnienie, ponowne podłączenie i restart. Sąsiednie wejścia nie powinny reagować.

Brak surowego kontaktu oznacza kontrolę okablowania i trybu pinu. Poprawne wejście fizyczne przy braku logicznego wymaga kontroli przypisań, Shift i timerów. Gdy Windows reaguje, a gra nie, sprawdź urządzenie, limit przycisków i podwójne przypisania. Potwierdzony stan podwozia dla LED lub OLED wymaga oddzielnej telemetrii zwrotnej. Udokumentowane wyjścia LED i sterowanie przez komputer również potrzebują odpowiedniej integracji. Więcej znajdziesz w wejściach USB i diagnostyce.

Rozwijaj projekt razem ze społecznością

Po każdym udanym etapie zachowaj konfigurację, plan pinów i krótką notatkę testową. Pomocne zgłoszenie brzmi: „B12 reaguje fizycznie, przycisk logiczny 1 nie; obie wersje 1.7.3b0; Shift wyłączony”. Na forum Cockpit Suite pomagamy też z obudowami drukowanymi w 3D, panelami frezowanymi na CNC oraz pracami laserowymi w LightBurn. Zdjęcia oznaczonych przewodów ułatwiają rozmowę.

Cockpit Suite to młody projekt z już dostępnym oprogramowaniem dla obsługiwanych symulatorów i urządzeń. Dążymy do wspólnego środowiska i prostego uruchamiania odpowiednich zestawów; nie oznacza to niezweryfikowanej obietnicy integracji FreeJoy. Chcemy wspólnie rozwiązywać problemy i odpowiadać możliwie tego samego dnia, przy późnych pytaniach czasem później. Doświadczenia europejskiej społeczności i innych użytkowników rozwijają poradniki. Nawet pierwszy dobrze opisany przycisk może pomóc kolejnemu budowniczemu.

Źródła pierwotne i wersje

Sprawdzono 18 października 2026. Funkcje opisano na podstawie dokumentacji projektu i Microsoft. Plan panelu oraz próby są własnym przykładem, nie fizycznie zweryfikowanym zestawem.

Kolejny krok budowy