martes, 16 de junio de 2009

Radar...midiendo la velocidad.

Despues de mucho tiempo abro otra vez el blog para empezar con un nuevo proyecto...

El circuito diseñado es capaz de medir la velocidad de un objeto que pasa entre dos sensores, el “corazón” del circuito es el sistema Arduino, del que hay una sección en esta página.

Este radar es capaz de medir velocidades entre 0 y 500km/h, una vez que detecta la velocidad la muestra en una pantalla LCD retroiluminada, manda un mensaje por USB al PC y si la velocidad medida excede a la indicada, activará una cámara de fotos y muestra un mensaje en ambas pantallas (PC y LCD).

Un sensor detecta el paso del objeto y guarda una constante de tiempo, al pasar por el segundo sensor guarda una segunda constante de tiempo, para medir el tiempo que tarda en pasar entre los dos sensores, resta el tiempo del primer sensor al tiempo del segundo sensor.

Después se tratan los datos para convertirlos a Km/h.




!!!los sensores estan a 10cm de distancia!!!

Lista de componentes

· Arduino Duemilanove.
· Pantalla LCD hitachi 44780 azul. 16x2.
· Sensores sharp 2D120X
· Potenciómetro 4,7K
· Servo futaba s3003
· Software Arduino 0013 alpha.

Sensor sharp 2D120X

El sharp 2d120X es un sensor analógico de distancias, presenta un valor analógico en relación a la distancia del objeto, a mayor distancia menos tensión y viceversa.

podemos ver su data sheet en esta pagina:
http://www.datasheetcatalog.org/datasheets/480/87977_DS.pdf

La funcion del servo, no es otra que la de pulsar el boton de disparo de la cámara...( no disponia de camara por control por PC, ni con disparador a distancia). El servo hace un pequeño giro en el momento de activarse el "radar" que pulsa el boton de disparo.
También al activarse el radar, se activa la salida 13 del arduino en la que podemos conectar un disparador "mas profesional" para la cámara o por ejemplo un flash.

Para manejar cualquier carga desde el arduino necesitamos usar un relé para ello montamos este circuito:

El circuito completo que se ha montado es el siguiente:



El codigo de programa para rduino es el siguiente:


#include
#define recorrido 50
#define radar 13
#define MAX 50
unsigned long int Tiemposensor1, Tiemposensor2; // declara las variables
long int TiempoReal;
int x,x2;
int distancia = 400;
int sensor1 = 0;
int sensor2 = 1;
float velocidad;

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // se eligen las patillas que controlan el LCD
void setup (){
Serial.begin(9600); // velocidad de transmisión 9600 Baudios
pinMode (sensor1, INPUT); // sensor 1 y 2 como entradas.
pinMode (sensor2, INPUT);
pinMode (radar , OUTPUT); // Salida de radar
}
void loop (){
x= analogRead (sensor1); // lee el sensor 1 hasta que la distancia sea menor a la seleccionada
do{
x = analogRead (sensor1);
}while (x < tiemposensor1 =" millis();" x2 ="analogRead" x2 =" analogRead" tiemposensor2 =" millis();" tiemporeal =" (Tiemposensor2" velocidad =" ((0.1" velocidad =" espacio/"> MAX){ //si la velocidad es mayor a la velocidad maxima predefinida
digitalWrite (radar , HIGH); //el radar se activa
delay (200);
digitalWrite (radar , LOW);
Serial.print("Velocidad excesiva...RADAR ON "); //mensaje en la pantalla de PC
Serial.println(velocidad);
lcd.clear();
lcd.home();
lcd.print("RADAR ON!!!"); //mensaje en el LCD
delay (500);
}
}

ejemplo de una imagen tomada por el "radar" con una maqueta:







En este proyecto a colaborado David Alfaro Muñoz .