Étape 2: Codage - partie I
Premier essai - Direction et boutons
TouchPad signale le mouvement du doigt. On obtient une paire de coordonnées indiquant la quantité de mouvement et la direction de la dernière position. Par exemple -12, 2 signifierait un coup vers 10:00 et le mouvement de l’axe des abscisses étant plus rapide.
Il s’avère que, même le robinet fonctionnalité fonctionne parfaitement.
----------------------
Le code :
Arduino + TouchPad ordinateur portable. Fonctionnalités de base
//
http://metku.net
Jani Pönkkö
23.07.2009
#include « PS2Mouse.h »
#include « LedControl.h »
#define Montana 5 / / pin données ps/2 touchpad
#define MCLK 6 / / horloge de touchpad ps/2 broches
#define sensibilité 5 / / quantité de mouvement nécessaire obtenir une réaction
LedControl lc=LedControl(12,11,10,1) ; Forum de brochage
PS2Mouse mouse_one (MCLK, Montana, télécommande) ;
void setup()
{
lc.setIntensity(0,8) ;
LC.Shutdown(0,false) ; devons faire un MAX d’arrêt
lc.clearDisplay(0) ;
Delay(10) ;
Serial.Begin(115200) ;
mouse_one.Initialize() ;
mouse_one.set_scaling_1_1() ;
}
void loop()
{
données int [2] ;
mouse_one.Report(Data) ;
Serial.Print(Data[0]) ; Octet d’État
Serial.Print(":") ;
Serial.Print(Data[1]) ; Données de mouvement x
Serial.Print(",") ;
Serial.Print(Data[2]) ; Données de mouvement Y
Serial.println() ;
dessine la zone initiale au centre
lc.clearDisplay(0) ;
Si aucun mouvement, lumière vers le haut de l’édifice du centre
Si (données [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-mouvement
Si (données [1] > sensibilité)
{
lc.setLed(0,1,3,true) ;
lc.setLed(0,1,4,true) ;
lc.setLed(0,2,3,true) ;
lc.setLed(0,2,4,true) ;
}
Si (données [1] <-sensibilité)
{
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-mouvement
Si (données [2] > sensibilité)
{
lc.setLed(0,3,1,true) ;
lc.setLed(0,3,2,true) ;
lc.setLed(0,4,1,true) ;
lc.setLed(0,4,2,true) ;
}
Si (données [2] <-sensibilité)
{
lc.setLed(0,3,5,true) ;
lc.setLed(0,3,6,true) ;
lc.setLed(0,4,5,true) ;
lc.setLed(0,4,6,true) ;
}
Bouton gauche
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) ;
}
Bouton du milieu
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) ;
}
Bouton droit
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) ;
}
quelque retard donc on voit les LED correctement
Delay(100) ;
}