Hecho con 2 Telémetros ultrasónicos (SRF02), viejo teclado de mac & 1 Arduino Uno.
Proyecto School (curso: Mecatrónica), Kortrijk de escuela de Diseño Industrial.
En el sitio de TIII (Tangible Interfaces interactivas intuitivas) usted puede encontrar inspiración y otros proyectos basados en Arduino (está en holandés, pero visualmente, usted conseguirá el punto).
ver el instructivo para la piratería: piratería un teclado USB
Código de Arduino:
MATHIEU LEFEBVRE & YORICK STUYTS
2011-2012: MECHATRONIA
LAAD bibliotecas voor communicatie met ultrasoon sensor SRF02
#include < Wire.h >
#include < SRF02.h >
int w = 300;
Crear una nueva instancia de un sensor SRF02 con el modo de identificación y medición de dispositivo especificado (7 bits) (SRF02_INCHES, SRF02_CENTIMETERS, SRF02_MICROSECONDS).
SRF02 srf02 [2] = {}
SRF02 (0X70, SRF02_CENTIMETERS),
SRF02 (0X71, SRF02_CENTIMETERS)
};
variabelen puja voor positiemeting
int afstandVA = 0;
int afstandLR = 0;
lectura de int = 0;
variabelen puja voor positiebepaling
Llave de cadena = "leeg";
variabelen puja voor de positieberekening
int grenzenVA [4] = {150.190, 260.300}; Binnen welke afstanden liggen descarga comando 's (vooruit/achteruit)
int grenzenLR [4] = {150.190, 260.300}; de Binnen welke afstanden liggen descarga comando (enlaces/der.)
void setup() {}
Wire.Begin(); Únete a bus i2c (dirección opcional para el maestro)
Serial.Begin(9600); iniciar la comunicación serial a 9600bps
SRF02::setInterval(70); el valor predeterminado es 70
Pin x = > relais x = > toetsslag = > PC/MAC
pinMode (2, salida); HASTA
pinMode (3, salida); ABAJO
pinMode (4, salida); IZQUIERDA
pinMode (5, salida); DERECHO
}
void loop() {}
meetAfstand(); afstanden tot alle sensoren
berekenPositie(); berekendde positie met behulp van de gemeten afstanden
coordenadas van positie
en ken een toets toe aan een bepaalde positie
activeerToets(); activeer toets través de:
mm2 1: relais = > toetsenbord = > usbkabel = > PC, de aflojando relais wordt aangestuurd
}
void meetAfstand() {}
hier gaan nos van software de naar de hardware
Código: http://www.grapelabs.org/arduino/libraries/srf02-ultrasonic-distance-sensor
EERSTE LEZING
SRF02::Update();
afstandVA=srf02[0].read();
afstandLR=srf02[1].read();
na de lezingen acopios-controle de salida van de
Serial.Print ("VA:");
Serial.Print(afstandVA);
Serial.Print ("LR:");
Serial.Print(afstandLR);
Serial.Print("");
}
void berekenPositie() {}
Este functie berekend de positie en kent een toests aan een welbepaalde positie del dedo del pie
berekening positie: vooruit, achteruit, enlaces y der.
Si (afstandVA > grenzenVA [0] & & afstandVA si (afstandVA > grenzenVA [2] & & afstandVA si (afstandLR > grenzenLR [0] & & afstandLR si (afstandLR > grenzenLR [2] & & afstandLR
Si (afstandVA > grenzenVA [1] & & afstandVAgrenzenLR [1] & & afstandLR clave = "";
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
}
salida ter controle tijdens programeren/werking
Serial.Print ("POSITIE BEREKENDE");
Serial.Print(Key);
Serial.println("");
}
void activeerToets() {}
hier gaan que encima van de software naar de hardware relais worden aangestuurd om zo een toestslag vía ordenador de aangesloten de la de "naar sturen een toestenbord usb puerta te"
Si (clave == "UP") {//activeer para arriba-relais
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
Delay(50);
digitalWrite (2, alto);
Delay(w-50);
}
else if (clave == "Hacia abajo") {//activeer abajo-relais
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
Delay(50);
digitalWrite (3, alto);
Delay(w-50);
}
else if (clave == "Izquierda") {//activeer izquierda-relais
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(5,LOW);
Delay(50);
digitalWrite(4,LOW);
digitalWrite (4, alto);
Delay(w-50);
}
else if (clave == "Derecho") {//activeer derecho-relais
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
Delay(50);
digitalWrite(5,LOW);
digitalWrite (5, alto);
Delay(w-50);
}
}