Pages: [1]   Go Down
Author Topic: Arduino Leonardo Mouse Funktion  (Read 538 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

habe meinen Mauszeiger auf meinem PC auf der Position 500,500 .
Wenn ich nun dem Arduino sage er soll das machen:
Mouse.move(150,-200);
Dann bewegt sich die Maus nach Links anstatt nach rechts oben.
Die Maus sollte sich nach der Ausführung eigentlich auf Position 650,300 befinden tut sie aber nicht.

Was ist der fehler?
Und gibt es die möglichkeit sich den Source der Mouse Funktion anzuschauen? Wenn Ja, Wo?


« Last Edit: November 13, 2012, 10:00:59 am by hatemouse » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
void setup() {
Mouse.begin();
}

void loop() {
  delay(5000);
  Mouse.move(150,200);
}
 

Das mit dem "nur" nach Links ist jetzt weg.
Die Maus bewegt sich jetzt nach Links und nach Oben.
Mir ist aber trotzdem aufgefallen das es nicht so will wie ich.
Bei mir am Pc ist links oben 0,0 (sollte bei anderen Windows PC's auch so sein).
Habe dem nach auch -200 angegeben da die Y Koordinate ja verringert werden muss damit der maus zeiger nach oben geht.
Dafür muss man hier jedoch eine Positive Zahl also 200 nehmen.

Jetzt wunder ich mich nur noch warum die Maus sich nach Links bewegt obwohl sie sich doch nach rechts bewegen müsste.
Auch kann ich dort keine Werte eingeben die größer als ~128 sind weil weiter bewegt sich die Maus auch nicht, kann man das ändern?

lg
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Auch kann ich dort keine Werte eingeben die größer als ~128 sind weil weiter bewegt sich die Maus auch nicht, kann man das ändern?

Nein, denn die Definition der move-Funktion ist wie folgt:

Code:
void Mouse_::move(signed char x, signed char y, signed char wheel)

Das macht auch durchaus Sinn, denn pro USB-Meldung wird sich die Maus nie mehr als 128 Punkte bewegen, es wird ja immer eine relative Bewegung gemeldet und nicht der neue Standort übermittelt. Wenn Du die Maus weiter bewegen willst, sende die Information einfach mehrfach:

Code:
for (byte i = 0; i < 10; i++) {
  Mouse.move(15,20);
}

Das dürfte den Effekt haben, den Du eigentlich wolltest.
Logged

Pages: [1]   Go Up
Jump to: