Stap 3: Codering - deel II
Tweede test - iPod stijl gebaarIk aangepast de code een beetje, zodat het op een iPod stijl circulaire gebaar reageren kan. Dit kan worden gebruikt om te versnellen van een motor, volume verhogen, zet een servo enz... Hmm... een spel van veilige cracker misschien... ;)
De code kan niet de hoogste kwaliteit maar het moet geven u het idee wat er gebeurt.
----------------------------
De code:
Arduino + Laptop TouchPad. iPod stijl gebaar
//
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);
int waarde;
int i;
int l;
int dir; geeft aan waar de gebruiker zich "draaien" van het wiel
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();
waarde = 7;
}
void loop
{
int gegevens [2];
mouse_one.Report(Data);
omgaan met de LED's. Op deze manier gemaakt ter bestrijding van flikkeren...
voor (ik = 7; ik > = 0; i--)
{
Als (waarde < = i)
{
voor (l = 0; l < = 7; l ++)
lc.setLed(0,l,i,true);
}
anders
{
voor (l = 0; l < = 7; l ++)
lc.setLed(0,l,i,false);
}
}
Verplaatsen naar de rechterzijde
Als (gegevens [1] > gevoeligheid)
{
if(dir==0) / / richting is tegen de klok
dir =-1; dec
}
Verplaatsen naar de linkerzijde
Als (gegevens [1] <-gevoeligheid)
{
if(dir==0) / / richting is met de klok mee
dir = 1; incrementele
}
Top van de "turn"
Als (gegevens [2] > gevoeligheid)
{
DIR = 0; We kregen de aanduiding van de start (bovenste gedeelte van de cirkel)
}
onderkant van de "turn"
Als (gegevens [2] <-gevoeligheid)
{
if(dir==-1) / / wij got teller rechtsom beurt
{
if(Value>0)
{
waarde = waarde-1;
dir =-2; Reset de waarde tot iets niet-geldig
}
}
if(dir==1)
{
if(value<7)
{
waarde = waarde + 1;
dir =-2; Reset de waarde tot iets niet-geldig
}
}
}
enige vertraging zodat men de leds-properl zien kan
delay(100);
}
--------------
Ik hoop dat u vond deze korte tutorial nuttig. Als u ooit dit materiaal nuttig vindt, gelieve uw bevindingen en projecten met ons delen. Ofwel registreren door hier te Allthemods.com of door Metku.net te bezoeken. Bedankt.