Étape 3: Codage - partie II
Deuxième essai - geste style iPodJ’ai adapté le code un peu, donc il pourrait réagir à un geste circulaire du style iPod. Cela pourrait être utilisé pour accélérer un moteur, augmenter le volume, mettre un servo etc.... hmm... un jeu de safe cracker peut-être...;)
Le code peut ne pas être la plus haute qualité, mais il devrait vous donner l’idée ce qui se passe.
----------------------------
Le code :
Arduino + TouchPad ordinateur portable. geste de style iPod
//
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) ;
int valeur ;
int i ;
int l ;
int dir ; indique où se trouve l’utilisateur « tourant »
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() ;
valeur = 7 ;
}
void loop()
{
données int [2] ;
mouse_one.Report(Data) ;
gérer les leds. Fait ce chemin pour lutter contre le scintillement...
pour (i = 7; i > = 0; i--)
{
Si (valeur < = i)
{
pour (l = 0; l < = 7; l ++)
lc.setLed(0,l,i,true) ;
}
d’autre
{
pour (l = 0; l < = 7; l ++)
lc.setLed(0,l,i,false) ;
}
}
Déplacer vers la droite
Si (données [1] > sensibilité)
{
if(dir==0) / / direction est contraire dans le sens horaire
dir =-1 ; déc
}
Déplaçant vers la gauche
Si (données [1] <-sensibilité)
{
if(dir==0) / / direction est vers la droite
dir = 1 ; incrémentation
}
haut de la « tour »
Si (données [2] > sensibilité)
{
dir = 0 ; Nous avons obtenu l’indication de départ (partie supérieure du cercle)
}
bas de la « tour »
Si (données [2] <-sensibilité)
{
if(dir==-1) / / nous avons obtenu des aiguilles compteur
{
if(value>0)
{
valeur = valeur-1 ;
dir =-2 ; remettre la valeur à quelque chose de non valide
}
}
if(dir==1)
{
if(Value<7)
{
valeur = valeur + 1 ;
dir =-2 ; remettre la valeur à quelque chose de non valide
}
}
}
quelque retard donc on peut voir la LED properl
Delay(100) ;
}
--------------
J’espère que vous avez trouvé ce court tutoriel utile. Si jamais vous trouvez ce matériel utile, s’il vous plaît, partagez vos résultats et vos projets avec nous. Soit en vous inscrivant ici à Allthemods.com ou en visitant Metku.net . Merci.