/*
Deze code is in het publieke domein
Auteur: alpeshVitha
Datum: 18 mei 2013
*/
int sPull = 0; De beginpositie van de x-as
int ePull = 0; Eindpositie van de x-as
int ysPull = 0; De beginpositie van de y-as
int yePull = 0; Eindpositie van de y-as
int bereik = 15;
int netbootAnswerRequests = 1; vertraging van de reactie van de muis, in ms
Verklaring voor het vloeiend maken van de y-as lezing. Ik vond ze erg luidruchtig, waarschijnlijk omdat potentiometer logaritmische in de natuur.
Const int numReadings = 10;
int lezingen [numReadings]; de lezingen van de analoge ingang
int index = 0; de index van de huidige lezing
int totaal = 0; het lopend totaal
int gemiddelde = 0; het gemiddelde
VOID Setup {}
muiscontrole initialiseren:
Mouse.begin();
Serial.begin(9600);
Smoothing initialisatie
voor (int thisReading = 0; thisReading < numReadings; thisReading ++)
lezingen [thisReading] = 0;
}
void loop {}
Lees de beginstaat van sling op x-as en y-as
sPull = analogRead(A0); x-as
ysPull = analogRead(A1); y-as
ePull = sPull; waarde van x opgeslagen in de variabele ePull
delay(100); wachten op 100ms voor de vinger te glijden op de potmeter
sPull = analogRead(A0); Lees de x-as opnieuw
int pull = (ePull - sPull); Delta x
Doe hetzelfde voor de y-as om Delta y
yePull = ysPull;
ysPull = analogRead(A1);
int. ypull = (yePull - ysPull); Delta y
Als (sPull == 0) {}
Als (Mouse.isPressed(MOUSE_LEFT)) {}
Mouse.release(MOUSE_LEFT);
}
}
Als (pull >-200) {/ / aanpassen van deze waarde op basis van uw set up
if(pull<200) {/ / aanpassen van deze waarde op basis van uw set up
berekenen van de afstand van de beweging
int. xDistance = (pull/50) * bereik;
Als (xDistance! = 0) {}
if (!. Mouse.isPressed(MOUSE_LEFT)) {}
Mouse.Press(MOUSE_LEFT);
}
Mouse.move (-xDistance, 0, 0);
}
}
}
Gladstrijken van Y
////////////////////////////////////////////////////////////////////////////////////////////////////
totaal = totaal - lezingen [index];
lezen van de sensor:
lezingen [index] = ypull;
de lezing aan het totaal toevoegen
totaal = totaal + lezingen [index];
verder naar de volgende positie in de matrix:
index = index + 1;
Als we aan het einde van de array...
Als (index > = numReadings)
.. .wrap rond naar het begin:
index = 0;
het gemiddelde berekenen:
gemiddelde = totaal / numReadings;
/////////////////////////////////////////////////////////////////////////////////////////////////
delay(1);
int. yDistance = (gemiddelde) * 2;
Als (yDistance! = 0) {}
Mouse.move (0, - yDistance, 0);
}
een vertraging zodat de muis niet te snel verplaatst:
delay(responseDelay);
}