Boletín No. 54
1o. de mayo de 2016
MEDICIÓN DE DISTANCIAS MEDIANTE UN SENSOR ULTRASÓNIO Y ARDUINO
C. Márquez-Sánchez,
C. A. Merlo-Zapata,
R. Silva-Ortigoza,
J. R. García-Sánchez,
M. Antonio-Cruz
Instituto Politécnico Nacional, CIDETEC.
Área de Mecatrónica. Unidad Profesional Adolfo López Mateos.
Resumen
Este trabajo presenta el sensor ultrasónico SRF05 como una herramienta útil para la medición de distancias en conjunto con un sistema embebido Arduino. Se presentan algunos conceptos básicos, el diseño utilizado para la implementación paso a paso, los esquemas de conexión, así como también una propuesta de código para su uso.
I. Introducción
En la robótica y mecatrónica el empleo de sensores es indispensable para la estimación de parámetros que permiten tener una retroalimentación, ya sea del entorno o del mismo sistema que se desea controlar. De este modo, será posible una actualización continua y así abrir la posibilidad a cierto grado de autonomía del sistema. A su vez, estos sensores requieren un sistema de procesamiento que se encargue de recibir señales recibidas de cada sensor, en algunos casos será necesario acondicionarlas, interpretarlas, tomar decisiones pre-programadas y finalmente enviar información al actuador correspondiente. Hoy en día se pueden encontrar muchos sistemas embebidos con características suficientes para realizar estas operaciones con una gran variedad de entradas/salidas, velocidad de procesamiento, memoria, no obstante, para este caso el sistema embebido conocido como Arduino es suficiente para realizar estas tareas. Además, por ser un sistema en “código abierto” y bastante estudiado, es fácil encontrar una gran cantidad de librerías para realizar la programación requerida para controlar sensores, en este caso un sensor ultrasónico. El cual, en este trabajo es utilizado para la medición de distancias.
II. Diseño y descripción del sistema
Los sensores ultrasónicos tienen un gran número de aplicaciones. Dentro de estas aplicaciones se encuentra la de medición. En ese sentido, a continuación se presenta la descripción de un sistema que permita obtener la distancia entre un objeto y el sensor ultrasónico. Para esto, un microcontrolador será el encargado de llevar a cabo los cálculos para poder obtener la distancia por medio de los datos obtenidos del sensor ultrasónico. Por otro lado, el funcionamiento, de manera muy general, del sensor ultrasónico es el siguiente:
1. El sensor emite un sonido.
2. El sonido viaja hasta chocar con algún objeto.
3. El sensor recibe el eco producido.
4. El eco se convierte en señales eléctricas.
Una vez obtenidas las señales del eco, se puede calcular el tiempo de transcurso del eco. Con este valor y sabiendo que la velocidad del sonido es aproximadamente 340 m/s (esto depende de diversos factores, los principales son: temperatura, humedad y nivel del mar), podemos calcular la distancia recorrida por el sonido. Ya que el sonido llega hasta el objeto, rebota y regresa como eco, se toma el tiempo en milisegundos y se divide entre 29 para obtener la distancia. Después, se divide entre dos porque solo se requiere la distancia que al pulso de sonido le tomó regresar o llegar, no las dos.
Una vez conocida la distancia del objeto se puede mostrarla al usuario del sistema. Para esto, se usará el protocolo de comunicación RS-232. Con el cual se enviará la distancia calculada por el microcontrolador hacia un PC y se visualizará en una interfaz gráfica. Un esquema del funcionamiento del sistema se muestra en la Fig. 1.
Figura 1. Esquema de funcionamiento del sistema |
Por otro lado, una imagen del diseño del sistema se muestra en la Fig. 2, donde el número 1 representa el microcontrolador (una tarjeta Arduino) y el número 2 el sensor ultrasónico.
Figura 2. Diseño del sistema |
III. Construcción y pruebas
Para la construcción del sistema se ocuparon los siguientes elementos: tarjeta Arduino Uno y Sensor Ultrasónico, los cuales serán descritos a continuación.
La tarjeta Arduino UNO [1], es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. La tarjeta Arduino UNO tiene un micro ATmega328 y cuenta tanto con E/S digitales como analógicas. Así mismo cuenta con comunicación serial entre otras características.
En cuanto el sensor ultrasónico, se empleó el sensor ultrasónico SRF05. Este sensor tiene 2 modos de funcionamiento [2]. Modo 1, en este modo se utilizan pines independientes para la señal de activación y para la señal de retorno del eco. Para activar este modo se debe dejar la terminal de modo sin conexión. Modo 2, en este modo se utiliza un solo pin para las señales de activación y eco lo que permite reducir el número de pines que deben utilizarse en el microcontrolador. Para utilizar este modo es necesario conectar la terminal de modo a la tierra del Arduino.
Para poder calcular la distancia con ayuda de la tarjeta Arduino se utiliza la función predefinida “pulseIn( )”. Esta función lee un pulso en estado HIGH o LOW sobre el pin seleccionado y espera a que el pin se ponga en estado lógico 1 o 0, es decir detecta un cambio de flanco POSITIVO o NEGATIVO. Cuando el cambio es detectado se inicia una cuenta que se detendrá en cuanto se detecte otro cambio, entonces la función entregará como resultado un valor en microsegundos. A partir de este resultado se puede calcular la distancia. Para calcular la distancia en cm se debe tener en cuenta que la velocidad del sonido es 340 m/s o 29 µs/cm. De esta forma, sabiendo que el sonido llega hasta un objeto, rebota y regresa como eco, se calcula la distancia simplemente tomando el tiempo transcurrido y dividiendo por 29 para obtener la distancia. Este resultado es necesario dividirlo por dos, ya que solo se requiere la distancia que el pulso recorrio en el regreso o en la llegada al objeto, no las dos. El código implementado en la tarjeta Arduino fue el siguiente.
El sistema real es presentado en la Fig. 3. Para probar el sistema se llevaron a cabo varios experimentos de los cuales solo se reportan un caso. El experimento se lleva a cabo colocando un objeto a una distancia de 20 cm del sensor ultrasónico. Para corroborar la distancia una regla de 30 cm es colocada como referencia, ver Fig. 4. Por otro lado el resultado del cálculo de la distancia es mostrado en la Fig. 5.
Figura 3. Diseño del sistema |
Figura 4. Objeto a una distancia de 20 cm del sensor ultrasónico. |
Figura 5. Resultado de la distancia calculada |
IV. Conclusiones
El trabajo aquí presentado, la implementación de un sensor ultrasónico con el objetivo de medir distancias mediante el uso de una tarjeta Arduino. También, se ha presentado el código empleado para lograr lo anteriormente planteado. De igual forma, la descripción del funcionamiento del sistema ha sido descrita, presentado los diagramas y esquemas de conexión. El sistema fue diseñado pensando en la selección de componentes de bajo costo y de fácil adquisición dentro del país. Todo esto, con la finalidad de que el sistema de medición con ayuda de un sensor ultrasónico pueda ser replicado de manera sencilla.
Referencias
[1] Arduino. Consultado el 22 de Febrero de 2016. Disponible en: https://www.arduino.cc/en/pmwiki.php?n=Guide/Introduction
[2] Sensor Ultrasónico. Consultado el 22 de Febrero de 2016. http://www.picaxe.com/docs/srf005.pdf