lunes, 21 de mayo de 2018

Coche Robótico con Ultrasonido

Buenos días.

En esta entrada vamos a ver como empezar a programar el coche robótico con el ultrasonido para que sea capaz de moverse de manera autónoma por un espacio evitando los obstáculos.

Lo primero será incluir el componente ultrasonido en el apartado de bitbloq para configurar el hardware:



El primer código que vamos a presentar es un sencillo programa que hace que el coche gire hacia la izquierda (rueda derecha alante e izquierda atrás) cuando encuentre un obstáculo a menos de 20cm (valor 20 del ultrasonido).



El mientras del programa hace que el coche siga girando todo el tiempo que siga detectando un obstáculo a menos de 20cm.

Una variante de este programa sería la siguiente opción parecida a la anterior con el añadido de que el coche gira aleatoriamente (con un 50% de probabilidad en cada caso) a izquierda o a derecha.



Partiendo de estos dos programas se pueden plantear algunas otras opciones cómo hacer que el coche, antes de volver a avanzar, detecte la distancia de los obstáculos a un lado y a otro y finalmente decida avanzar por el camino con los obstáculos más alejados. De esta manera el coche comenzaría a comportarse de una manera inteligente a la hora de tomar decisiones.

En el apartado anterior hemos visto como programar el ultrasonido suponiendo que este se encuentra en la parte delantera del coche y va captando la distancia a la que tiene objetos delante según el coche va girando. Otra opción para que el coche sortee obstáculos es colocar el ultrasonido encima de un servo motor de giro que una vez detecta un obstáculo permita girar el ultrasonido para detectar si hay otros obstáculos a los lados sin necesidad de que se mueva el coche.
Para ello lo primero será asegurarnos que el servomotor que vamos a montar está en posición 90º antes de colocarle en posición mirando hacia adelante. Ya que si no es así luego el servo motor no hará el giro a izquierda y derecha cuando le pongamos en posición de 5º o 175º (se le puede poner ir a 0º y 180º pero conviene evitar los ángulos extremos que pueden producir vibraciones).
Para ello podremos realizar un sencillo programa como el siguiente con el que comprobaremos que nuestro servomotor se mueve correctamente y aprovechar a desconectarlo en la pausa más larga en la que sabemos que está a 90º.


Una vez tengamos montado nuestro ultrasonido sobre el servomotor procederemos a programar la detección de objetos y las diferentes acciones que queremos vaya realizando nuestro servomotor en base a los obstáculos que encuentre el coche en su camino.

Un saludo,
Raúl.