Skip to main content

Evitando obstáculos

El sensor de distancia

El kit básico de Cutebot incluye un sensor de distancia. Se trata de un accesorio conectable al frontal de Cutebot mediante cuatro pines marcados en la placa como "SONAR". El funcionamiento de la placa se basa en la emisión de ultrasonidos y en la recepción de los ecos generados cuando las ondas rebotan contra objetos cercanos.

SONAR00.pngEl sensor de distancias debe conectarse en el puerto marcado como "SONAR" y no en el marcado como "IIC". Es muy posible confundirse, ya que ambos conectores se encuentran juntos.SONAR01.pngEl bloque que proporciona la medida de la distancia detectada por el sensor es Sensor de distancia cm HC-SR04, y se encuentra en el menú de bloques de Cutebot. La medida proporcionada por el sensor puede ajustarse en cm y en pulgadas.

Sonar00.png

El programa mostrado sobre estas líneas es el código básico que detiene el movimiento de Cutebot al encontrar un obstáculo. Cuando el sensor de distancia detecta un obstáculo a menos de 10 cm, el coche se detiene por completo y enciende las luces rojas. En caso de no encontrar ningún obstáculo, el robot simplemente se mueve hacia adelante con las luces apagadas.

Recordatorio: si Cutebot no anvanza en línea recta, habrá que aumentar ligeramente la velocidad de una de las ruedas. Si el desvío se produce hacia  la izquierda, habrá que aumentar la velocidad de la rueda izquierda. Si el desvío se produce hacia  la derecha, habrá que aumentar la velocidad de la rueda derecha.

Detección y evitación de obstáculos

Es posible refinar el código para que Cutebot no se detenga ante un obstáculo, sino que lo esquive. Para ello haremos que cuando el robot se encuentre con un obstáculo, haga un giro al azar a la izquierda o a la derecha durante 250 ms y continúe con la ejecución del programa.

Sonar01.png

Un ligero retroceso antes de empezar a girar puede mejorar el comportamiento del robot.

Sonar02.png

Jugando con la distancia de detección y con los tiempos de giro y retroceso también puede mejorarse el comportamiento del robot ante los obstáculos.