Stap 2: Codering - deel I
Eerste test - richting en knoppen
TouchPad meldt de beweging van de vinger. Men krijgt een combinatie van coördinaten aangegeven van de hoeveelheid beweging en de richting van de laatste positie. Bijvoorbeeld -12, 2 zou betekenen een uithaal richting 10 uur en de beweging van de x-as wordt sneller.
Het blijkt dat, zelfs de kraan functionaliteit werken perfect.
----------------------
De code:
Arduino + Laptop TouchPad. Basisfunctionaliteit
//
http://Metku.net
Jani Pönkkö
23.07.2009
#include "PS2Mouse.h"
#include "LedControl.h"
#define MDATA 5 / / touchpad ps/2 gegevens pin
#define MCLK 6 / / touchpad ps/2 clock pin
#define gevoeligheid 5 / / het bedrag van de beweging die nodig zijn om een reactie
LedControl lc=LedControl(12,11,10,1); Forum pin-outs
PS2Mouse mouse_one (MCLK, MDATA, extern);
VOID Setup
{
lc.setIntensity(0,8);
LC.shutdown(0,false); moet nemen MAX uit afsluiten
lc.clearDisplay(0);
delay(10);
Serial.begin(115200);
mouse_one.initialize();
mouse_one.set_scaling_1_1();
}
void loop
{
int gegevens [2];
mouse_one.Report(Data);
Serial.Print(data[0]); Byte status
Serial.Print(":");
Serial.Print(data[1]); X verkeer gegevens
Serial.Print(",");
Serial.Print(data[2]); Y verkeer gegevens
Serial.println();
het eerste vak vestigen op het center
lc.clearDisplay(0);
Als geen beweging, het oplichten van het centrum blok
Als (gegevens [1] == 0 & & data[2]==0)
{
lc.setLed(0,3,3,true);
lc.setLed(0,3,4,true);
lc.setLed(0,4,3,true);
lc.setLed(0,4,4,true);
}
X-beweging
Als (gegevens [1] > gevoeligheid)
{
lc.setLed(0,1,3,true);
lc.setLed(0,1,4,true);
lc.setLed(0,2,3,true);
lc.setLed(0,2,4,true);
}
Als (gegevens [1] <-gevoeligheid)
{
lc.setLed(0,5,3,true);
lc.setLed(0,5,4,true);
lc.setLed(0,6,3,true);
lc.setLed(0,6,4,true);
}
Y-beweging
Als (gegevens [2] > gevoeligheid)
{
lc.setLed(0,3,1,true);
lc.setLed(0,3,2,true);
lc.setLed(0,4,1,true);
lc.setLed(0,4,2,true);
}
Als (gegevens [2] <-gevoeligheid)
{
lc.setLed(0,3,5,true);
lc.setLed(0,3,6,true);
lc.setLed(0,4,5,true);
lc.setLed(0,4,6,true);
}
Linker knop
if(data[0]==10)
{
lc.setLed(0,0,6,true);
lc.setLed(0,0,7,true);
lc.setLed(0,1,6,true);
lc.setLed(0,1,7,true);
}
Middelste knop
if(data[0]==12)
{
lc.setLed(0,3,6,true);
lc.setLed(0,3,7,true);
lc.setLed(0,4,6,true);
lc.setLed(0,4,7,true);
}
Rechterknop
if(data[0]==9)
{
lc.setLed(0,6,6,true);
lc.setLed(0,6,7,true);
lc.setLed(0,7,6,true);
lc.setLed(0,7,7,true);
}
enige vertraging zodat men de leds goed zien kan
delay(100);
}