Sonar múltiple por ultrasonidos controlado por PC
Por Pablo Pompa
Con la aparición en el mercado de los nuevos sensores de distancia por ultrasonidos de un solo detector como el SRF02 y
el circuito de interfaz USBI2C se puede realizar de una forma fácil un completo sonar por
ultrasonidos que cubre un área de 180 grados.
El sensor seleccionado es el SRF02 que destaca principalmente por dos cosas, la primera es que
es compatible con el bus I2C y la segunda es que emplea un solo detector para hacer la medida de la distancia, por lo que
su coste es menor y resulta muy economico. Como el sonar emplea 9 unidades de este sensor, el factor precio también
es importante. En cualquier caso, el sonar puede realizarse con cualquiera de los sensores por ultrasonidos compatibles con
conexión I2C de nuestro catálogo, por lo que si se desea pueden emplearse sensores SRF10,
o SRF08 para realizar el sonar. El número de sensores empleado es de 9, que permiten cubrir un ángulo
de 180 grados de forma completa, aunque es posible emplear cualquier número de sensores entre 1 y 16.
El circuito de interfaz USBI2C proporciona la conexión entre el PC y los sensores, además
también suministra los 5V de alimentación necesarios para el funcionamiento de los sensores, por lo que todo
el sonar se alimenta directamente desde el bus USB del ordenador y no es necesaria ningún tipo de fuente de alimentación
externa. El circuito USBI2C se conecta al ordenador con la ayuda de un cable USB de tipo AB y una
vez instalados los controladores necesarios (consultar la página del producto aquí)
el circuito aparece en el PC como si fuera un puerto serie, por lo que a efectos del programa de control, todas las ordenes
se envían a un puerto serie.
La Electrónica
Desde el punto de vista del montaje, lo único que hay que hacer es conectar todos los sensores en paralelo con el
circuito USBI2C. Como este último ya incluye las resistencias de polarización necesarias
para el funcionamiento del bus I2C, basta con realizar las conexiones entre todos los pines para que esté listo. El pin de
modo de los sensores no es necesario conectarlo, aunque se ha preferido hacerlo para mayor compatibilidad en las conexiones.
Los sensores se montan sobre cualquier tipo de soporte con forma circular, semicircular o cualquier otro que se adapte a
la forma deseada.
El número de sensores no es crítico y puede variar entre 1 y 16. Con nueve sensores se cubren 180 grados con una separación
de 20 grados entre ellos, lo que da una buena resolución, sobre todo teniendo en cuenta que el cono de los impulsos
de ultrasonidos es de unos 30 grados de ancho. 16 es el tope máximo de sensores, ya que solo hay disponible 16 direcciones
en el bus I2C para este tipo de sensores. La dirección de los sensores puede cambiarse fácilmente por software,
mediante un comando especial que se ha preparado en el programa para tal efecto.
Para mayor claridad se muestra a continuación el esquema eléctrico del multisonar.
El programa
El programa de control esta escrito utilizando Visual Basic 6, que es uno de los lenguajes mas conocidos y populares entre
los aficionados a la robótica por su facilidad de uso y sencillez de aprendizaje. Se incluye el proyecto completo
tanto en versión compilada y lista para instalar en cualquier ordenador con Windows, como el código fuente
comentado para facilitar su comprensión y entendimiento.
Como puede verse en la imagen se tiene una representación gráfica de las medidas tomadas por los distintos
sensores de distancia por ultrasonidos SRF02, además de mostrar también los valores
numéricos de las medidas en cada
ángulo
Al hacer clic sobre el botón 'Scaner' se hace una medición de todos los sensores y se muestra los resultados
en la pantalla. El rango de trabajo del gráfico puede cambiarse mediante los selectores de rango que permite que la
representación gráfica de las distancias se adapte al entorno de trabajo. Lo primero que hay que hacer es instalar
los controladores del circuito USBI2C siguiendo las instrucciones que aparecen en la pagina de
mas información del mismo y determinar cual puerto serie es el que va a utilizar la aplicación. Una vez conocido
el puerto serie, hay que seleccionarlo en el programa la primera vez. Si se selecciona un puerto no valido, se obtendrá un
mensaje de error.
Para facilitar el cambio de dirección de los diferentes sensores, se ha incluido un botón "Cambiar Dirección" que
como su nombre indica lo que hace es cambiar la dirección interna de los sensores SRF02 conectados
al bus I2C. Para ello se selecciona el valor actual del sensor ( por defecto es E0) y el valor nuevo. Es muy importante que
solo haya un sensor conectado al puerto I2C cuando se haga el cambio de dirección, de lo contrario se obtendrían
resultados impredecibles. Recuerde que es necesario que cada sensor tenga su única dirección dentro del bus.
Los valores permitidos son E0, E2, E4, E6, E8, EA, EC, EE, F0, F2, F4, F6, F8, FA, FC y FE. Una vez cambiada la dirección
de los sensores, es conveniente escribir la nueva dirección en alguna parte del sensor de forma que sea fácilmente
identificable y así evitar confusiones.
Puede descargar el programa Multisonar completo incluyendo el código
fuente aquí.
|