Wykorzystanie encodera z myszki do budowy prostej kierownicy do gier - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Wykorzystanie encodera z myszki do budowy prostej kierownicy do gier (/watek-wykorzystanie-encodera-z-myszki-do-budowy-prostej-kierownicy-do-gier) |
Wykorzystanie encodera z myszki do budowy prostej kierownicy do gier - fghghgffhjgu6ru585g - 10-07-2020 Witam, A wiec tak wpadlem na taki pomysł by wykorzystać encoder z rolki do przewijania tekstu z myszki jako element sterujacy do gier np. ets i samochodówki (kierownica do gier). No i o ile poradziłem sobie od strony mechanicznej to już gorzej z kodem. Znalazłem taki kod służący do sterowania głośnością góra-dół, który robi prawie to co chce tylko nie wiem czym zastąpić Vol up/down tak żeby ta kierownica skręcała. Próbowałem keykode arow left/raight kompilowało sie to bez błędów ale nie reagowało kierownica nie skręcała. W TrinketHidCombo są jeszcze jakieś funkcje sterujące myszką no ale nie wiem jak ich użyć. Tak mam to podłączone do digisparka A taki kod znalazłem na necie, który trzeba zmodyfikować Kod: // see tutorial at http://learn.adafruit.com/trinket-usb-volume-knob Próbowałem też czegoś takiego zmodyfikowałem kod wysyłający pozycje enkodera do serial no ale wciąż nie reaguje domyślam się że problem z odczytem pozycji enkodera jest jakiś inny typ czy coś ale kompiluje się to: #include <DigiMouse.h> int val; int encoder0PinA = 0; int encoder0PinB = 0; int encoder0Pos = 0; int encoder0PinALast = LOW; int n = LOW; void setup() { pinMode (encoder0PinA,INPUT); pinMode (encoder0PinB,INPUT); digitalWrite(encoder0PinA, HIGH); digitalWrite(encoder0PinB, HIGH); DigiMouse.begin(); } void loop() { n = digitalRead(encoder0PinA); if ((encoder0PinALast == LOW) && (n == HIGH)) { if (digitalRead(encoder0PinB) == LOW) { encoder0Pos--; } else { encoder0Pos++; } DigiMouse.moveY(encoder0Pos); } encoder0PinALast = n; } |