Paso 3: Codificación - parte II
Segunda prueba - gesto de estilo iPodAdapté el código un poco para que pudiera reaccionar a un gesto circular de estilo iPod. Esto se podría utilizar para la velocidad de un motor, aumentar el volumen, gire a un servo etc.... Hmm... un juego de la galleta seguro tal vez... ;)
El código puede no ser la más alta calidad pero debe dar la idea de lo que está sucediendo.
----------------------------
El código:
Arduino + TouchPad del ordenador portátil. gesto de estilo iPod
//
http://Metku.net
Jani Pönkkö
23.07.2009
#include "PS2Mouse.h"
#include "LedControl.h"
#define MDATA 5 / / pin de datos de ps/2 touchpad
#define MCLK 6 / ps/2 touchpad reloj pin
#define sensibilidad 5 / cantidad de movimiento necesaria obtener una reacción
LedControl lc=LedControl(12,11,10,1); Foro pin outs
PS2Mouse mouse_one (MCLK, MDATA, mando a distancia);
int valor;
int i;
int l;
dir int; indica que el usuario está "convirtiendo" el dial
void setup()
{
lc.setIntensity(0,8);
LC.Shutdown(0,false); necesita sacar el máximo de parada
lc.clearDisplay(0);
Delay(10);
Serial.Begin(115200);
mouse_one.Initialize();
mouse_one.set_scaling_1_1();
valor = 7;
}
void loop()
{
int datos [2];
mouse_one.Report(Data);
manejar los leds. Hecho de esta manera combatir el parpadeo...
para (i = 7; i > = 0; i--)
{
Si (valor < = i)
{
para (l = 0; l < = 7; l ++)
lc.setLed(0,l,i,true);
}
otra cosa
{
para (l = 0; l < = 7; l ++)
lc.setLed(0,l,i,false);
}
}
Mover a la derecha
Si (datos [1] > sensibilidad)
{
if(Dir==0) / / dirección contraria hacia la derecha
DIR =-1; Dec
}
Hacia la izquierda
Si (datos [1] <-sensibilidad)
{
if(Dir==0) / / dirección es hacia la derecha
DIR = 1; aumento
}
parte superior de la "vuelta"
Si (datos [2] > sensibilidad)
{
DIR = 0; Tenemos la indicación de inicio (parte superior del círculo)
}
parte inferior de la "vuelta"
Si (datos [2] <-sensibilidad)
{
if(Dir==-1) / / tiene contador de vuelta derecha
{
if(Value>0)
{
valor = valor-1;
DIR =-2; restablecer el valor a algo no válido
}
}
if(Dir==1)
{
if(Value<7)
{
valor = valor + 1;
DIR =-2; restablecer el valor a algo no válido
}
}
}
algunos retrasan así que uno puede ver el properl de leds
Delay(100);
}
--------------
Espero que encuentre útil este breve tutorial. Si alguna vez encuentras este material útil, por favor, comparte tus resultados y proyectos con nosotros. O registrarse aquí a Allthemods.com o visitando Metku.net . Gracias.