Aiji Napisano Styczeń 9, 2018 Udostępnij Napisano Styczeń 9, 2018 Witam. Znalazłem na YT taki oto film przedstawiający użycie Joysticka jako myszki komputerowej. A tutaj kod: https://www.dropbox.com/sh/m6c40pu99fqxb5b/AADmt0grA9RdJtuGajwIePn0a/arduino_mouse_emulation?dl=0 I pytanie: Jak emulować scrolla myszy? Chciałbym przerobić ten kod, aby poruszanie joystickiem emulowało poruszanie myszą (to już jest w kodzie), dodać dwa tact switche jako prawy i lewy przycisk myszy oraz po naciśnięciu joysticka (wbudowany przycisk tact swich) i poruszaniu nim w górę i w dół emulować scrolla (przewijanie strony). Mam problem z tym ostatnim czyli emulowaniem scrolla myszy. Macie jakieś pomysły jak mógłbym to wykonać? Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Styczeń 9, 2018 Udostępnij Styczeń 9, 2018 Scroll to po prostu kolejne przyciski myszy, jeden do przesunięcia trochę w górę, drugi w dół. O ile dobrze pamiętam to czwarty i piąty są do przewijania pionowo, a szósty i siódmy poziomo. Cytuj Link do komentarza Share on other sites More sharing options...
Aiji Styczeń 9, 2018 Autor tematu Udostępnij Styczeń 9, 2018 Chyba nie rozumiem. O jakie przyciski myszy dokładnie chodzi? Cytuj Link do komentarza Share on other sites More sharing options...
Elvis Styczeń 9, 2018 Udostępnij Styczeń 9, 2018 Metoda move() ma trzy parametry, ostatni odpowiada za scroll. Przyciski nic do tego nie mają. https://www.arduino.cc/reference/en/language/functions/usb/mouse/mousemove/ Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
deshipu Styczeń 9, 2018 Udostępnij Styczeń 9, 2018 Oczywiście, że mają, tylko ta konkretna biblioteka to ukrywa. Cytuj Link do komentarza Share on other sites More sharing options...
Elvis Styczeń 9, 2018 Udostępnij Styczeń 9, 2018 deshipu, możesz podać skąd taki pomysł? Bo patrząc w źródła biblioteki nie znalazłem, żeby to ukrywała. Po prostu wysyła raport HID mouse, który ma oddzielne pole dla scrolla. Przyciski nic do tego nie mają - może jak czegoś nie wiesz to nie pisz... 1 Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Styczeń 9, 2018 Udostępnij Styczeń 9, 2018 Żeby nie pisać jak się nie wie, to trzeba najpierw wiedzieć, że się nie wie. Poszperałem i już wiem co się dzieje. Oczywiście masz rację, myszki USB wysyłają liczbę kroków kółka od ostatniego raportu. A czemu napisałem o przyciskach? Bo tak jest to obsługiwane przez X-owe sterowniki myszy. Zapewne zaszłość z czasów, kiedy myszki kółka nie miały, a Microsoft jeszcze nie "rozszerzył" standardu swoją Intellimouse. Założyłem, jak widać błędnie, że sterowniki są tylko cienką warstwą nad samym protokołem, zapominając, że protokół ten zmienił się przecież już wielokrotnie, a sterowniki nadal używają tego samego interfejsu. W każdym razie przepraszam Aiji za wprowadzenie w błąd, a Elvisowi dziękuję za poprawienie. Cytuj Link do komentarza Share on other sites More sharing options...
Aiji Styczeń 9, 2018 Autor tematu Udostępnij Styczeń 9, 2018 Wg. tego co pisał Elvis metoda move() ma trzy parametry [ Mouse.move(xVal, yPos, wheel); ] i trzeci odpowiada za scrolla myszy. Napisałem kod, dzięki któremu mogę scrollować za pomocą joysticka, jednakże scroll zamiast powoli przewijać stronę, od razu przeskakuję na koniec (joystick w dół - strona błyskawicznie przeskakuje na sam dół; joystick w górę - strona błyskawicznie przeskakuje na samą górę). Co mam zrobić, aby przewijanie było powolne? Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 9, 2018 Udostępnij Styczeń 9, 2018 Aiji, zapewne musisz stopniowo podawać informacje o "obrocie scrolla". Gdy przekręcasz kółko na myszce nie dzieje się to w ciągu ułamka sekundy tylko cały ruch jednak chwilę trwa. Dobierz doświadczalnie jakieś opóźnienia między kolejnym scrollami i będzie dobrze 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!