1. El Octavo Bit
  2. / Robotica Educativa
  3. / MBot
  4. / Robot esquiva obstáculos con mBot

Robot esquiva obstáculos con mBot

| Actualizado:
Comentarios: 0

Robot esquiva obstáculos con mBot
Robot esquiva obstáculos con mBot

En este proyecto vamos a programar el mBot para que sea capaz de evitar cualquier obstáculo: paredes, cajas… Para ello vamos a usar el sensor de ultrasonidos. Es un programa sencillo para aprender e iniciarse con la programación por bloques.

Como primer paso vamos a conectar el robot mBot por USB al ordenador y lo encenderemos.

Añadir mBot desde la biblioteca de dispositivos

Desde la biblioteca de dispositivos, seleccionaremos nuestro robot presionando en añadir, buscamos la imagen de nuestro mBot y clicaremos en aceptar.

Para conectar, seleccionar el puerto al que esta conectado el mBot

 

En la zona inferior de la pantalla disponemos de un botón para conectar el robot, presionamos conectar y aparecerá una ventana para seleccionar el puerto donde está conectado mBot.

Comenzamos con la programación por bloques.

Vamos a comprobar si realmente nuestro robot está conectado y para ello en la sección de eventos (color amarillo) seleccionaremos el bloque cuando clic en la bandera verde y lo arrastramos a la zona de bloques. Nos vamos a la sección de acciones (color azul marino), y arrastramos el bloque avanza.

Programación por bloques en mBlock

Activamos el programa con un doble click sobre el bloque amarillo, o sobre la bandera verde. En el momento que nuestro robot se active, debe de comenzar a mover las ruedas para avanzar, recordad colocar el robot sobre una cajita con la finalidad de que las ruedas no toquen la mesa, si no nos va a tocar recojerlo más de una vez del suelo.

Para detenerlo presionamos sobre el botón de stop, y debería parar el movimiento de las ruedas. En mi caso no funciona, así que lo vamos a solucionar añadiendo del bloque de eventos cuando toque una tecla y del bloque de acción, parar. La idea es que en el momento que presionemos la barra espaciadora del teclado, el robot mBot se detenga.

Programación por bloques, controles para siempre y si
Programación por bloques, acción cuando tecla pulsada

Recordemos que el objetivo de este post es crear un robot que esquive los obstáculos. Para ello tenemos que pensar que el robot se va a mover siempre hacia adelante, mientras no tenga ningún objeto a menos de 20 cm de su camino. Necesitamos entonces el bloque de control (color naranja) para siempre y el condicional si para saber si hay algún objeto a menos de 20 cms. Los bloques de operadores son de color verde, arrastramos el menor que y lo colocamos en su sitio. Necesitamos saber la distancia de los objetos, en la categoría de sensores tenemos el bloque ultrasonic sensor, en el que solamente tenemos que seleccionar el puerto donde está conectado nuestro sensor.

La imagen muestra los bloques ordenados.

Programación por bloques, controles para siempre y si

Al probar este código el robot debe avanzar hasta que coloquemos la mano delante del sensor a menos de 20 cm o se encuentre con algún impedimento en el camino. Entonces, según le hemos indicado girará hacia la derecha para esquivar el obstáculo.

Por ahora nuestro robot solo sabe girar hacia la derecha si hay un problema, pero también podemos hacer que retroceda si el objeto está muy cerca. Añadimos un nuevo bloque de control con la condición de que si el objeto está a menos de 10 cm, debe retroceder. Y otro bloque con la condición de que si el impedimento está entre 10 y 20 cm debe girar hacia la derecha.

Como hacer retroceder el robot a una distancia menor de 10 cm.

Hasta el momento nuestro mBot siempre gira hacia la derecha o retrocede si hay un obstáculo, pero también podemos hacer que gire hacia la izquierda.

Programación por bloques, numero al azar para girar a la derecha o izquierda

Como vemos en la imagen, dentro del bloque condicional, añadimos un nuevo bloque condicional. A partir de un número al azar el robot mBot girará a la derecha si es 2 y a la izquierda si es 1.

Por último, indicaremos con unas luces hacia dónde se mueve el robot: luz verde cuando avanze hacia adelante, luz roja cuando retroceda y luz naranja cuando gire. Para hacer esto, de la categoría Luz y Sonido (color morado) arrastramos el bloque enciende LED, y lo posicionamos como en la imagen.

Programación por bloques, encender un led segun la dirección del robot

Todavía podemos complicarlo un poco más, podemos poner una sirena cuando esté dando marcha atrás… pero eso lo veremos en otros tutoriales.

Para subir el programa al robot mBot y poder desconectarlo del ordenador, el bloque de la bandera debe cambiarse por el bloque cuando mBot se pone en marcha.

Programación por bloques, bloque de evento cuando mBot se pone en marcha

Y también debe cambiarse a modo carga. Finalmente, presionamos en el botón subir.

Como subir el programa al robot mBot

Artículos que te pueden interesar

Robot esquiva obstáculos con mBot

Robot esquiva obstáculos con mBot

| Actualizado:
Comentarios: 0

En este proyecto vamos a programar el mBot para que sea capaz de evitar cualquier obstáculo: paredes, cajas… Para ello vamos a usar el sensor de ultrasonidos. Es un programa sencillo para aprender e iniciarse con la programación por bloques.…

Inicios con mBlock y el robot mBot
Inicios con mBlock y el robot mBot, programación por bloques

Inicios con mBlock y el robot mBot, programación por bloques

| Actualizado:
Comentarios: 0

El lenguaje de programación por bloques consiste en crear una serie completa de instrucciones utilizando como herramientas mini-mandatos predefinidos y clasificados en diferentes apartados: acciones, sensores, eventos, operadores, variables… El robot mBot utiliza la placa mCore con un microcontrolador ATmega238…

Comentarios - 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *