Los sensores de ultrasonidos en plena pandemia
¡Aloha equipo! Y bienvenidos a la nueva normalidad. En esta nueva normalidad nos tendremos que mantener a 2 metros de la gente, utilizar mascarilla y vivir en espacios al 75% de su capacidad.
Y muchos son los que han creado maneras muy imaginativas de mantener esta distancia de seguridad. Por ejemplo han aparecido una serie de gorros con los palos flotantes utilizados en la piscina (los “churros” como dirían los niños), de manera que físicamente, el acercamiento es imposible (Bueno, si dos cuerpos se quieren encontrar se encuentran pero eso es otra cosa).
Un restaurante americano también ha creado mesas en flotadores bastante anchos. De esta manera, las personas toman su bebida en su propia mesa mientras pueden chocarse con otras personas con las que van a mantener perfectamente la distancia de seguridad.
En China, un colegio ha creado unos sombreros con forma de avión para que los niños mantengan la distancia de seguridad mediante las alas del avión.
Y mientras, parques y playas están siendo marcados con parcelas separadas a una distancia prudencial.
Y digo yo, ¿Y si pudiésemos medir esta distancia de seguridad con nuestro Arduino? Pues eso…
Los sensores de ultrasonidos como solución
La forma más típica de medición de distancias con Arduino es el uso de sensores de ultrasonidos. Estos que tienen forma de ojos, como los que incluye el PrintBot Evolution.
El funcionamiento se basa en el envío de unos pulsos de ondas hacia una dirección. Al encontrar un objeto, estas ondas rebotan y vuelven a nuestro sensor (Al final, se trata de un micrófono).
Con el tiempo que ha pasado desde el envío hasta la recepción y conociendo la velocidad del sonido, parece sencillo calcular la distancia a la que se encuentra el objeto.
El nombre de ultrasonidos (Que parece así bastante pomposo) proviene de que las frecuencias de los sonidos son más altas de las audibles por el oído humano (Mayores de 20kHz). También están las frecuencias bajas que son los infrasonidos.
Si te fijas, hemos hablado ya de infra cuando hablábamos de los infrarrojos, que tenían un procedimiento muy similar a este: Enviaban una señal (Eso sí, esta era lumínica) y el sensor se encargaba de detectar el color con la señal recibida.
Cómo conectar los sensores, sea lo que sea lo que pidan
Estos sensores nos van a permitir medir una distancia de 2 metros a un precio bastante asequible. El ejemplo más conocido en Arduino es el sensor HC-SR04 y su precio es bastante bastante bajo.
Además, su conexionado es sencillo, solamente tiene 4 pines:
- Vcc: Se trata de la alimentación, que la conectaremos a los 5V de Arduino.
- GND: Es Ground en nuestro sensor y por ello debe de conectarse al GND de Arduino
- Trigger: Se trata de la onda inicial, la que enviamos y que es un tren de pulsos por lo que debe de ir conectado a un pin con capacidad de PWM, como el pin digital 9
- Echo: Es la onda que vuelve, el eco (echo en inglés) que proviene del rebote con un objeto y que nos permitirá medir el tiempo de diferencia entre ambas ondas. Este pin también lo conectaremos a un pin digital, pero en lugar de salida lo programaremos como entrada.
Información básica sobre Proteción de datos
Responsable ➥ Sergio Luján Cuenca
Finalidad ➥ Gestionar el envío de correos electrónicos con artículos, noticias y publicidad. Todo relacionado con los temas de rufianenlared.com
Legitimación ➥ Consentimiento del interesado
Destinatarios ➥ Estos datos se comunicarán a MailRelay para gestionar el envío de los correos electrónicos
Derechos ➥ Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad
Plazo de conservación de los datos ➥ Hasta que se solicite la supresión por parte del interesado
Información adicional ➥ Puedes encontrarla en la política de privacidad y el aviso legal
¿Y si lo programamos?
El problema real son los cálculos de distancia ya que hay que utilizar la velocidad del sonido para calcular, con el tiempo de desfase de ambas señales, el valor de la distancia. Y dividirla entre dos porque esta señal ha tardado un tiempo en recorrer la misma distancia dos veces (Una en la ida y otra en la vuelta).
Y claro, además, añadir todo esto en un programa de Arduino… Se hace una tarea ardua. Una tarea ardua que ya ha hecho otra persona por nosotros creando una maravillosa librería.
De hecho parece que no hay una oficial por parte de Arduino pero hay varias pululando por la red, como la de Martinsos, la de JRodrigoTech o la de gamegine.
Utilizaré la primera, pero parecen tener un funcionamiento muy similar. En el primer caso, tenemos que crear un sensor dentro del programa:
UltraSonicDistanceSensor sensor(NumeroPinTrigger, NumeroPinEcho);
Dónde le pasamos a la función como parámetros el número del pin digital utilizado para el trigger (onda que enviamos) y el número del pin digital utilizado para el echo (onda que recibimos). Luego solamente queda medir la distancia:
double distance = sensor.measureDistanceCm();
Donde la función measureDistanceCm del sensor nos da el valor en centímetros de la distancia a la que se encuentra el objeto.
Gracias por estar. Estar aquí vale la pena…
Ya hemos visto cómo medir la distancia con Arduino. Pero este es un método casi de niños (Por eso de que todos los kits infantiles lo incluyen) ya que la precisión no es que sea excesivamente alta…
Para más precisión deberíamos ir a mediciones con infrarrojos (Sí si, igual que para medir la temperatura).
El problema de los ultrasonidos es que se pueden ver afectados por ecos o similares aunque comparte problema con los infrarrojos: Ambos miden hacia adelante y debes de tener muy bien direccionado el sensor para detectar ese objeto que quieres detectar.
Así que, mirando las horas que son… ¿Hablamos en el siguiente post sobre esos infrarrojos que nos ayudan a medir?
Mientras tanto.. Prueben los ultrasonidos, ¡Son sus amigos!
P.D. Este post va dedicado a CCT, por su amistad.