Zakładam nowy wątek odnośnie projektu joysticka, który wykluł się z rozważań w wątku "
Kontrolery Arduino".
Nie będzie on oparty na Arduino, ale na nieco poważniejszym procesorze PSoC 5LP (Arm Cortex M3).
Początkowo planowałem użyć Bluetooth do bezprzewodowej transmisji, ale okazało się, że to rozwiązanie stwarza problemy, na których rozwiązanie nie wiem, czy chcę poświęcać czas, a do tego wprowadza pewne ograniczenia prędkości trasmisji i ilości danych, które można przepchnąć do PC w odpowiednio krótkim czasie.
Tak więc, po krótkiej i burzliwej przygodzie z Blue-Tooth, który często generował Blue-Screen wróciłem jednak do poczciwego USB. Płytka modelu BLE była na szczęście tak zaprojektowana, że mogę ją spokojnie użyć do prototypu na USB.
Pierwszy sukces:
wygląda na to, że udało mi się obejść problem z ograniczeniem liczby osi i przycisków w DirectX. Kluczem było stworzenie tzw. kompozytowego urządzenia USB-HID, czyli niejako kilku urządzeń w jednym (np. klawiatury z wbudowanym touch-padem są dokładnie czymś takim).
Do testów powstał podwójny joystick, każdy zawierający:
- 8 16 bitowych osi analogowych
- 32 przyciski
- 4 x HAT
Jak widać na fotce, DCS rozpoznaje go jako dwa osobne urządzenia. Przypisałem różne osie dla obydwu joysticków i byłem w stanie przejąć pełną kontrolę nad Żabą, a więc działa

Szkoda, że DCS nie bierze pod uwagę różnych nazw dla podjoysticków nadanych w programie, ale to chyba raczej wina Windowsa. Przynajmniej można je rozróżnić po numerze.
A tu prototyp, Bluetooth zastąpiony prockiem PSoC5LP z USB.

Stosując kable ekranowane, wbudowane w płytkę przedwzmacniacze i analogową kalibrację zakresów, na każdej z osi dostaję pełne 16bitów z minimalnymi szumami. W takim układzie wahania były na poziomie kilku jednostek, co przy maksymalnej wartości 65535 praktycznie jest pomijalne. Nie bez znaczenia jest też parę tricków zastosowanych na płytce, jak np. oddzielne niskoszumne zasilanie dla części analogowej oraz nie używanie zasilania USB, płytka na uniwersane wejście 7-12V DC z zabezpieczeniami przed odwrotną polaryzacją itd.
Cdn...