Tabla de contenido:

Robot LEGO conduce a través de un laberinto: 9 pasos
Robot LEGO conduce a través de un laberinto: 9 pasos

Video: Robot LEGO conduce a través de un laberinto: 9 pasos

Video: Robot LEGO conduce a través de un laberinto: 9 pasos
Video: El que se equivoca pierde 🤣 2024, Mes de julio
Anonim
Image
Image
Base del Robot
Base del Robot

Este es un robot simple y autónomo diseñado para conducir a través de un laberinto hasta una salida. Está construido con LEGO Mindstorms EV3. El software EV3 se ejecuta en una computadora y genera un programa, que luego se descarga a un microcontrolador llamado Bloque EV3. El método de programación está basado en iconos y de alto nivel. Es muy fácil y versátil.

PARTES

  1. Conjunto LEGO Mindstorms EV3
  2. Sensor ultrasónico LEGO Mindstorms EV3. No está incluido en el conjunto EV3.
  3. Cartón ondulado para el laberinto. Dos cajas deberían ser suficientes.
  4. Un pequeño trozo de cartón fino para ayudar a estabilizar algunas esquinas y paredes.
  5. Pega y pega con cinta adhesiva para unir las piezas de cartón.
  6. Un sobre rojo de tarjetas de felicitación para identificar la salida del laberinto.

INSTRUMENTOS

  1. Navaja para cortar el cartón.
  2. Regla de acero para facilitar el proceso de corte.

MÉTODO PARA RESOLVER LABERINTO

Hay varios métodos para navegar por un laberinto. Si estás interesado en estudiarlos, están muy bien descritos en el siguiente artículo de Wikipedia:

Elegí la regla del seguidor de la pared de la izquierda. La idea es que el robot mantenga una pared en su lado izquierdo tomando las siguientes decisiones a medida que avanza por el laberinto:

  1. Si es posible girar a la izquierda, hágalo.
  2. De lo contrario, siga recto si es posible.
  3. Si no puede ir a la izquierda o en línea recta, gire a la derecha, si es posible.
  4. Si nada de lo anterior es posible, este debe ser un callejón sin salida. Giro de vuelta.

Una advertencia es que el método podría fallar si el laberinto tiene un bucle. Dependiendo de la ubicación del bucle, el robot podría seguir dando vueltas y vueltas alrededor del bucle. Una posible solución para este problema sería que el robot cambiara a la regla de seguidor de pared de la derecha si se diera cuenta de que iba en bucle. No incluí este refinamiento en mi proyecto.

PASOS PARA CONSTRUIR EL ROBOT

Aunque LEGO Mindstorms EV3 es muy versátil, no permite más de uno de cada tipo de sensor conectado a un ladrillo. Se podían conectar en cadena dos o más ladrillos, pero no quería comprar otro ladrillo, por lo que utilicé los siguientes sensores (en lugar de tres sensores ultrasónicos): sensor de infrarrojos, sensor de color y sensor ultrasónico. Esto funcionó bien. Los pares de fotos a continuación muestran cómo construir el robot. La primera foto de cada par muestra las partes necesarias y la segunda foto muestra las mismas partes conectadas entre sí.

Paso 1: Base del robot

Base del Robot
Base del Robot

El primer paso es construir la base del robot, utilizando las piezas que se muestran. La base del robot se muestra al revés. La pequeña parte en forma de L en la parte posterior del robot es un soporte para la espalda. Se desliza mientras el robot se mueve. Esto funciona bien. El kit EV3 no tiene una pieza de tipo bola rodante.

Paso 2: parte superior de la base

Parte superior de la base
Parte superior de la base
Parte superior de la base
Parte superior de la base
Parte superior de la base
Parte superior de la base

Los siguientes 3 pasos son para la parte superior de la base del robot, el sensor de color y los cables, que son cables de 10 pulgadas (26 cm)

Paso 3: Sensores infrarrojos y ultrasónicos

Sensores infrarrojos y ultrasónicos
Sensores infrarrojos y ultrasónicos
Sensores infrarrojos y ultrasónicos
Sensores infrarrojos y ultrasónicos

A continuación, están el sensor de infrarrojos (en el lado izquierdo del robot) y el sensor ultrasónico (a la derecha). Además, los 4 pines para colocar el ladrillo en la parte superior.

Los sensores infrarrojos y ultrasónicos están ubicados verticalmente en lugar de la horizontal normal. Esto proporciona una mejor identificación de las esquinas o extremos de las paredes.

Paso 4: Cables

Cables
Cables

Coloque el Brick y conecte los cables de la siguiente manera:

  • Puerto B: motor grande izquierdo.
  • Puerto C: motor grande derecho.
  • Puerto 2: sensor ultrasónico.
  • Puerto 3: sensor de color.
  • Puerto 4: sensor de infrarrojos.

Paso 5: Paso final en la construcción del robot: decoración

Paso final en la construcción del robot: decoración
Paso final en la construcción del robot: decoración
Paso final en la construcción del robot: decoración
Paso final en la construcción del robot: decoración
Paso final en la construcción del robot: decoración
Paso final en la construcción del robot: decoración

Las alas y las aletas son solo para decoración.

Paso 6: pseudocódigo para el programa

  1. Espere 3 segundos y diga "Adelante".
  2. Inicie el movimiento del robot en línea recta.
  3. Si es posible girar a la izquierda (es decir, si el sensor de infrarrojos no detecta un objeto cercano), diga "Izquierda" y vaya a la izquierda.
  4. Avanza unos 15 cm (6 pulgadas) para evitar un giro a la izquierda en falso. La razón es que después de que el robot haya girado, el sensor vería el gran espacio del que acababa de salir y el robot pensaría que debería girar a la izquierda, lo cual no es lo correcto. Regrese al paso 2.
  5. Si no es posible girar a la izquierda, compruebe lo que ve el sensor de color delante del robot.
  6. Si no hay color (es decir, ningún objeto), vuelva al paso 2.
  7. Si el color es rojo, esta es la salida. Detenga el robot, toque una fanfarria y detenga el programa.
  8. Si el color es marrón (es decir, cartón marrón adelante), detenga el robot.

    1. Si es posible girar a la derecha (es decir, si el sensor ultrasónico no detecta un objeto cercano), diga "Derecha" y vaya a la derecha. Vuelve al paso 2.
    2. Si no es posible girar a la derecha, diga "Uh-oh", retroceda unas 5 pulgadas (12,5 cm) y gire. Regrese al paso 2.

Paso 7: Programa

Programa
Programa

LEGO Mindstorms EV3 tiene un método de programación basado en iconos muy conveniente. Los bloques se muestran en la parte inferior de la pantalla de visualización de la computadora y se pueden arrastrar y soltar en la ventana de programación para crear un programa. La captura de pantalla muestra el programa de este proyecto. Los bloques se describen en el siguiente paso.

No pude averiguar cómo configurar la descarga del programa para ustedes, por lo que los Bloques se describen en el siguiente paso. Cada bloque tiene opciones y parámetros. Es muy fácil y versátil. No debería llevarle mucho tiempo desarrollar el programa y / o cambiarlo para que se adapte a sus necesidades. Como siempre, es una buena idea guardar el programa periódicamente al desarrollarlo.

El Bloque EV3 se puede conectar a la computadora mediante un cable USB, Wi-Fi o Bluetooth. Cuando está conectado y encendido, esto se indica en una pequeña ventana en la esquina inferior derecha de la ventana de EV3 en la computadora. El "EV3" en el lado más a la derecha se vuelve rojo. Cuando esta pantalla está configurada en Vista de puerto, muestra en tiempo real lo que detecta cada sensor. Esto es útil para experimentar.

Al construir este programa, sugeriría trabajar de izquierda a derecha y de arriba a abajo, y ampliar los bloques de bucle y conmutador antes de arrastrar otros bloques al interior. Me encontré con problemas complicados al intentar insertar bloques adicionales en el interior antes de ampliar.

Paso 8: Bloques de programa

  1. Comenzando en el lado izquierdo del programa, el Bloque de inicio está presente automáticamente cuando se está desarrollando un programa.
  2. A continuación se encuentra un Bloque de Espera, que nos da 3 segundos para colocar el robot en la entrada del laberinto, luego de iniciar el programa.
  3. Un bloque de sonido hace que el robot diga "Adelante".
  4. Un bloque de bucle contiene la mayor parte del programa. La pantalla debe alejarse 4 o 5 veces y este bloque de bucle debe agrandarse casi hasta el borde derecho del lienzo de programación antes de comenzar a insertar bloques. Se puede hacer más pequeño después.
  5. El primer bloque dentro del bucle es un bloque de dirección de movimiento con la dirección en cero y la potencia en 20. Esto hace que los motores funcionen en línea recta a baja velocidad. Una velocidad más rápida haría que el robot se moviera demasiado cuando sigue adelante mientras habla en los pasos siguientes.
  6. Un bloque de interruptores en el modo de proximidad del sensor de infrarrojos comprueba si hay algún objeto a más de un valor de 30. Esto equivale a aproximadamente 9 pulgadas (23 cm) para cartón marrón. Si el valor es mayor que 30, entonces se ejecutan los Bloques 7, 8 y 9, de lo contrario el programa pasa al Bloque 10 a continuación.
  7. Un bloque de sonido hace que el robot diga "Izquierda".
  8. Un bloque de dirección de movimiento con la dirección en -45, la potencia en 20, las rotaciones en 1.26 y el freno al final en verdadero. Esto hace que el robot gire a la izquierda.
  9. Un bloque de dirección de movimiento con la dirección en cero, la potencia en 20, las rotaciones en 1,2 y el freno al final en verdadero. Esto hace que el robot avance unos 15 cm (6 pulgadas) para evitar un giro a la izquierda en falso.
  10. Un bloque de interruptores en el modo de color de medición del sensor de color comprueba qué color está por delante del robot. Si no hay color (es decir, ningún objeto), el programa llega al final del ciclo. Si el color es rojo, se ejecutan los bloques 11, 12 y 13. Si el color es marrón, el programa pasa al bloque 14 a continuación.
  11. Mover el bloque de dirección en modo apagado para detener los motores.
  12. Un bloque de sonido toca una fanfarria.
  13. Un bloque de interrupción de bucle sale del bucle.
  14. Un bloque de dirección de movimiento en modo apagado para detener los motores.
  15. Un bloque de interruptores en el modo de pulgadas de distancia de comparación del sensor ultrasónico verifica si hay algún objeto a más de 20 cm (8 pulgadas). Si mide más de 8 pulgadas, entonces se ejecutan los Bloques 16 y 17; de lo contrario, el programa pasa al Bloque 18 a continuación.
  16. Un bloque de sonido hace que el robot diga "Correcto".
  17. Un bloque de dirección de movimiento con la dirección en -55, la potencia en -20, las rotaciones en 1.1 y el freno al final en verdadero. Esto hace que el robot gire a la derecha.
  18. Un bloque de sonido hace que el robot diga "Uh-oh".
  19. Un bloque de tanque de movimiento con la potencia a la izquierda configurada en -20, la potencia derecha configurada en -20, las rotaciones configuradas en 1 y el freno al final configurado en verdadero. Esto hace que el robot retroceda unas 5 pulgadas (12,5 cm) para dejar espacio para dar la vuelta.
  20. Un bloque de tanque de movimiento con la potencia a la izquierda configurada en -20, la potencia derecha configurada en 20, las rotaciones configuradas en 1,14 y el freno al final configurado en verdadero. Esto hace que el robot se dé la vuelta.
  21. A la salida del bucle hay un bloque de programa de parada.

Paso 9: CONSTRUYE un LABERINTO

CONSTRUYE UN LABERINTO
CONSTRUYE UN LABERINTO
CONSTRUYE UN LABERINTO
CONSTRUYE UN LABERINTO
CONSTRUYE UN LABERINTO
CONSTRUYE UN LABERINTO

Dos cajas de cartón ondulado deberían ser suficientes para el laberinto. Hice las paredes del laberinto de 5 pulgadas (12,5 cm) de alto, pero 4 pulgadas (10 cm) deberían funcionar igual de bien si no tienes cartón corrugado.

Primero, corto alrededor de las paredes de las cajas, a 10 pulgadas (25 cm) de la parte inferior. Luego corté alrededor de las paredes a 5 pulgadas de la parte inferior. Esto proporciona varias paredes de 5 pulgadas. Además, corté alrededor de la parte inferior de las cajas, dejando aproximadamente 1 pulgada (2,5 cm) adheridas a las paredes para mayor estabilidad.

Las diversas piezas se pueden cortar y pegar o pegar con cinta adhesiva donde sea necesario para formar el laberinto. Debe haber un espacio de 12 pulgadas (30 cm) entre las paredes en cualquier camino con un callejón sin salida. Esta distancia es necesaria para que el robot se dé la vuelta.

Es posible que algunas de las esquinas del laberinto deban reforzarse. Además, es necesario evitar que algunas paredes rectas se doblen si incluyen una esquina de cartón enderezada. Se deben pegar pequeños trozos de cartón delgado en la parte inferior en esos lugares, como se muestra.

La salida tiene una barrera roja que consta de medio sobre rojo para tarjetas de felicitación y una base hecha de 2 piezas de cartón delgado, como se muestra.

Una advertencia es que el laberinto no debe ser grande. Si los giros del robot están en un ligero ángulo con respecto al correcto, las discrepancias se acumulan después de algunos giros. Por ejemplo, si un giro a la izquierda está a 3 grados de distancia, luego de 5 giros a la izquierda, el robot se está apagando 15 grados. Un laberinto grande tendría más vueltas y un camino más largo que uno pequeño, y el robot podría chocar contra las paredes. Tuve que jugar varias veces con la configuración de Rotaciones de los giros para poder conducir con éxito incluso el pequeño laberinto que hice.

MEJORAS FUTURAS

Un proyecto de continuación obvio es hacer que el robot pueda determinar una ruta directa a través del laberinto mientras lo navega, y luego conducir esta ruta directa (evitando los callejones sin salida) inmediatamente después.

Esto es mucho más complicado que el proyecto actual. El robot debe recordar la ruta que ha recorrido, eliminar los callejones sin salida, almacenar la nueva ruta y luego seguir la nueva ruta. Planeo trabajar en este proyecto en un futuro próximo. Espero que sea posible lograrlo con LEGO Mindstorms EV3 utilizando Array Operations Blocks y algunos Bloques relacionados con las matemáticas.

OBSERVACIÓN FINAL

Este fue un proyecto divertido. Espero que también os resulte interesante.

Recomendado: