jueves, 28 de mayo de 2015

Sensor de aparcamiento con Arduino

realizando un sensor de aparcamiento por ultrasonidos, con un Arduino UNO, un sensor HC-SR04 y un altavoz para señal acústica.
¿Qué son los ultrasonidos?
Un ultrasonido es una onda acústica o sonora cuya frecuencia está por encima del espectro audible del oído humano (aproximadamente 20.000 Hz).
Sabiendo esto, veamos como es y como funciona el sensor utilizado:

El sensor HC-SR04 y su funcionamiento
Como componente principal del proyecto, utilizaré un sensor de ultrasonidos HC-SR04. Este sensor contiene un emisor y un receptor de ondas de ultrasonidos, y funciona a modo de sonar, de tal forma que el emisor lanza un tren de pulsos ultrasónicos – de 40 kHz en este caso – y el receptor espera el “eco” de dicho tren de pulsos en algún objeto.
En el datasheet del sensor podemos ver que la distancia medida es proporcional a la amplitud del eco de la señal enviada, y para calcular dicha distancia, nos remitimos a la formula Distancia = Velocidad x Tiempo”.
Sigue leyendo!
Si tenemos en cuenta que la velocidad del sonido a temperatura ambiente (20º) es de:
343 m/s o
34300 cm/s, podemos calcular que las ondas tardan en recorrer 1 centímetro:1 centímetro = 1 segundo / 34300 = 29,15 uS
Sabiendo que la onda tarda 29,15 uS en recorrer 1 cm, y que el sensor nos dará el tiempo de la señal desde que es enviada hasta que el receptor captura su eco, calculamos la distancia de la siguiente manera: Distancia en cm = (tiempo de la señal / 29,15 uS) / 2 ”
La división por 2 se debe a que la señal desde que es enviada por el emisor, recorre la distancia hasta el objeto, y vuelve por el mismo camino hasta el receptor como se puede ver en la siguiente imagen, de modo que la onda recorre 2 veces el mismo camino, por lo que si no realizamos esta operación, la distancia resultante en centímetros sería el doble de la que hay realmente entre el sensor y el objeto.

Para nuestra suerte, existen librerías para Arduino y PIC que realizan estos cálculos por nosotros, y nos dejan la simple tarea de hacer una llamada a una función que nos dará el valor de la distancia lista para utilizar en nuestro proyecto.
Sabiendo como funciona el sensor me he puesto a programar un sensor de aparcamiento.
El funcionamiento de un sensor de aparcamiento es muy sencillo, simplemente se basa en un sensor colocado en la parte trasera de un coche que se activa en el momento en que se mete la marcha atrás, que mide la distancia que hay entre nuestro coche y el objeto que esté detrás (otro coche o una pared), y mediante una señal acústica nos va indicando.
La frecuencia de la señal acústica irá en aumento a medida que se reduce la distancia con el objeto y a una mínima distancia, la señal acústica es continua. Si la distancia aumenta, la frecuencia de la señal acústica aumentará hasta una distancia máxima.
El proyecto consta de varios componentes como es una placa Arduino UNO, un Sensor HC-SR04 y un Altavoz 8Ω con su resistencia 120Ω, se conecta de la siguiente forma:


El código de programación de la placa Arduino es muy simple, aunque consta de varias librerías para el control del sensor HC-SR04 y una librería de sonidos.
Los archivos son los siguientes:
CODIGO DE LA PROGRAMACION

/*Opiron Electronics by A.Girod
Programación de un sensor de ultrasonidos HC-SR04
by Anton Girod (mahamadou.diarra@alu.escuelassj.com@gmail.com)

int Pin_echo = 13;
int Pin_trig = 12;
void setup() {
Serial.begin (9600);
pinMode(Pin_trig, OUTPUT);
pinMode(Pin_echo, INPUT);
}
void loop() {
int pulso, cm;
digitalWrite(Pin_trig, LOW);
delayMicroseconds(2);
digitalWrite(Pin_trig, HIGH);
delayMicroseconds(10);
digitalWrite(Pin_trig, LOW);
pulso = pulseIn(Pin_echo, HIGH); //Medición del ancho de pulso recibido en el pin Echo
cm = pulso / 29 / 2; // Convertimos ese pulso en una distancia y a cm
Serial.print("Distancia:"); //Imprimimos todo por el puerto Serial
Serial.print(cm);
Serial.println(" cm");
delay(500);
}

Y conectado y programado… podemos comprobar el funcionamiento en foto o video de demostración haciendo clic aquí: https://www.youtube.com/watch?v=m_2jvYjFJrk



No hay comentarios:

Publicar un comentario