/*
Dieser Code ist in der Public domain
Autor: AlpeshVitha
Datum: 18. Mai 2013
*/
Int sPull = 0; Startposition der x-Achse
Int ePull = 0; Endposition der x-Achse
Int YsPull = 0; Startposition der y-Achse
Int YePull = 0; Endposition der y-Achse
Int-Bereich = 15;
Int ResponseDelay = 1; Ansprechverzögerung der Maus in ms
Erklärung zur Glättung der y-Achse-Lesung. Ich fand sie sehr laut, wahrscheinlich weil Potentiometer logarithmisch in der Natur ist.
const Int NumReadings = 10;
Int Lesungen [NumReadings]; die Lesungen aus den analogen Eingang
Int Index = 0; der Index des aktuellen Messwert
Int Summe = 0; die laufende Summe
Int Durchschnitt = 0; die durchschnittliche
void setup() {}
Maussteuerung zu initialisieren:
Mouse.Begin();
Serial.Begin(9600);
Glättung der Initialisierung
für (Int ThisReading = 0; ThisReading < NumReadings; ThisReading ++)
Messwerte [ThisReading] = 0;
}
void loop() {}
Lesen Sie den Anfangszustand des Sling in x und y Achse
sPull = analogRead(A0); x-Achse
YsPull = analogRead(A1); y-Achse
ePull = sPull; Wert von x in ePull Variablen gespeichert
Delay(100); warten Sie auf 100ms für den Finger auf das Potentiometer zu schieben
sPull = analogRead(A0); Lesen Sie noch einmal die x-Achse
Int ziehen = (ePull - sPull); Delta x
machen Sie dasselbe für die y-Achse zu Delta y
YePull = YsPull;
YsPull = analogRead(A1);
Int Ypull = (YePull - YsPull); Delta y
Wenn (sPull == 0) {}
Wenn (Mouse.isPressed(MOUSE_LEFT)) {}
Mouse.Release(MOUSE_LEFT);
}
}
Wenn (ziehen >-200) {/ / passen Sie diesen Wert entsprechend Ihrem festgelegten bis
If(Pull<200) {/ / passen Sie diesen Wert entsprechend Ihrem festgelegten bis
berechnen Sie den Abstand der Bewegung
Int xDistance = (Pull/50) * reichen;
Wenn (xDistance! = 0) {}
If (!) {Mouse.isPressed(MOUSE_LEFT))}
Mouse.Press(MOUSE_LEFT);
}
Mouse.Move (-xDistance, 0, 0);
}
}
}
Glättung der Y
////////////////////////////////////////////////////////////////////////////////////////////////////
Total = Gesamt - Messwerte [Index];
vom Sensor zu lesen:
Messwerte [Index] = Ypull;
die Summe die Lesung hinzufügen:
Summe = Summe + Messwerte [Index];
gelangen Sie zur nächsten Position im Array:
Index = Index + 1;
Wenn wir am Ende des Arrays sind...
Wenn (Index > = NumReadings)
... .wrap um an den Anfang:
Index = 0;
berechnen Sie den Mittelwert:
Durchschnitt = Summe / NumReadings;
/////////////////////////////////////////////////////////////////////////////////////////////////
Delay(1);
Int yDistance = (Durchschnitt) * 2;
Wenn (yDistance! = 0) {}
Mouse.Move (0, - yDistance, 0);
}
eine Verzögerung, so dass die Maus nicht zu schnell bewegt:
Delay(responseDelay);
}