Joystick analogowy nadaje się do zdalnego kontrolowania ruchu obiektu, którym może być
zarówno ramię manipulatora jak i kursor na ekranie. Ten przykład demonstruje jak
joystick może symulować działanie myszy komputerowej. Wykorzystany został miniaturowy
joystick analogowy i płytka testowa z modułem ESP32. Do komunikacji z komputerem jest
użyty protokół Bluetooth LE. Oprogramowanie oparto na bibliotece
ESP32-BLE-Mouse.
Projekt przeznaczony jest na platformę Arduino.
Pomimo różnych konstrukcji joysticka analogowego na jego złączu zawsze powinny być dostępne wyprowadzenia:
Joystick i płytkę ESP32 należy połączyć tak jak na rysunku poniżej.
kliknij aby powiększyć
Joystick | ESP32 port | ESP32 sygnał |
---|---|---|
+V | 3V3 | 3,3V |
GND | GND | GND |
VRy | IO 34 | ADC1 CH6 |
VRx | IO 35 | ADC1 CH7 |
Oprogramowanie demonstracyjne zostało przygotowane w formie pakietu dla edytora Arduino.
Aby możliwa była prawidłowa kompilacja i działanie w edytorze musi być zainstalowane rozszerzenie
dla płytki ESP32. W opcjach edytora Narzędzia->Płytka: należy wybrać typ użytej płytki np. "ESP32 Dev Module".
Jeżeli w zestawieniach brak płytek z rodziny ESP32, należy:
Do działania oprogramowanie demonstracyjne potrzebuje dodatkowej biblioteki: ESP32-BLE-Mouse. Pobraną bibliotekę można dodać do Arduino IDE albo poprzez menedżer bibliotek Arduino->Szkic->Dołącz bibliotekę->Zarządzaj bibliotekami albo poprzez ręczne dodanie plików bibliotek do folderu .../Arduino/libraries/
Kompilację i wgranie oprogramowania przeprowadza się w standardowy sposób dla szkicu Arduino. Parametry wybranej płytki ESP32 ustawiane w menu Narzędzia mogą być takie:
Po dołączeniu do zasilania zaprogramowanego modułu ESP32 zgłasza się on jako urządzenie HID. Jeżeli urządzenie zostało wcześniej
zarejestrowane w systemie (Windows lub Linux) zostanie rozpoznane pod nazwą ESP32 Bluetooth Mouse i podłączone. Wychylenie
joysticka z pozycji neutralnej (środkowej) w dowolnym kierunku przekłada się na przesunięcie kursora. Przy silniejszym wychyleniu
joysticka dynamika ruchu kusora się zwiększa.
Przez około 1 sekundę po włączeniu, joystik powinien pozostawać nieruchomy w pozycji środkowej. W tym czasie oprogramowanie oblicza
i zapamiętuje odczyty poziomów napięć VRx i VRy dla pozycji środkowej oznaczającej, że kursor ma być nieruchomy.