En este reto hay que intentar hacer que nuestro robot avance paralelo a una pared, bien a la derecha o bien a la izquierda.
Se trata de un reto de nivel medio.
Reto #8: Robot avanzando en paralelo a una pared.
El reto lanzado en el twitter de Juegos Robótica era el siguiente:
Para poder hacer que un robot, en este caso mBot, avance paralelo a una pared vamos a colocar el sensor de ultrasonidos en un lateral. Vigilaremos constantemente la distancia a la que se encuentra el robot de la pared para variar la velocidad de las ruedas de manera que se acerque o se aleje de la pared según su distancia.
Además tendremos en cuenta una posible curva de manera que si detectamos que el robot se ha alejado excesivamente de la pared significará que hemos llegado a una esquina y debemos girar.
Resolver este reto es fundamental para posteriormente poder resolver un reto de nivel alto que será salir de un laberinto.
En este vídeo puedes ver esta solución implementada en mBot para entender mejor el planteamiento del programa en mBlock.
Si queréis ser vosotros los que lancéis el reto con Lego Mindstorms EV3, mBot o Arduino no tenéis más que poneros en contacto o dejar un comentario.
La semana que viene tendremos nuevo reto, estad atent@s!
NECESITO PRIGRAMAR EL LEGO EV3 CON MBLOCK
Hola Johanna!
Si el lenguaje de bloques de Lego te resulta complicado y necesitas algo como mBlock, es decir Scratch, te recomiendo que pruebes a instalar Open Roberta.
Al final de la entrada que dediqué a Open Roberta en Lego Mindstorms EV3 tienes un vídeo donde puedes ver como se programa con bloques tipo Scratch utilizando Open Roberta.
Saludos!
Dani S.
hola buenas tardes, necesito programar un robot lego mindstorm ev3 para que desarrolle un laberinto de forma que siga la pared y las esquinas gire siempre a la derecha. podrias ayudarme?
Hola Viviana,
Visita el reto resuelto del robot resuelve laberintos. Se ha resuelto en tres fases con otro kit de robótica, pero si entiendes el concepto no deberías tener problema para hacerlo con Mindstorms utilizando sensor de infrarrojos, ultrasonidos, el sensor de color o el de contacto.
Si no consigues resolverlo quizá sea buena idea plantearlo como reto en fases para daros la solución con Mindstorms. Ponte en contacto a través del formulario y me dices si lo has conseguido o queda algún fleco.
Saludos,
Dani S.
Puedo programar un lego ministros 9797 con m-block?
Hola Aldo,
Puedes programar Mindstorms EV3 con el nuevo Scratch 3.0, y mBlock es un fork de Scratch, sin embargo el 9797 es de la versión NXT y en principio no puedes programarlo ni con Scratch ni con mBlock.
Quizá haya alguna otra alternativa para poderlo programar por bloques diferente al entorno de programación de LEGO pero lo desconozco.
Saludos
Hola Dani, tengo una duda: Con qué piezas sitúas el ultrasonidos en el lateral?.
Yo tengo una L hecha en impresión 3D pero no queda bien del todo.
Ya me cuentas.
Saludos,
Hola,

Efectivamente es con una L de 3×3 que está atornillada a uno de los tornillos que sujeta la carcasa de la placa mCore de una esquina.
Saludos
Hola de nuevo,
El problema lo tengo en las curvas. Al ir el sensor por delante de la rueda izquierda gira antes y se come la rueda izquierda la esquina de la curva. Te adjunto una foto de la colocación del sensor. Estoy variando los valores de distancia>9 pero se me abre mucho para realizar el giro.
https://drive.google.com/file/d/1LpuJTtrICTob4MATl_9c8okNSxsyaROE/view?usp=sharing
Gracias, Dani
Hola Fran,
Por un lado puedes intentar separar más el robot de la pared cuando va en paralelo. Si lo tienes a 5cm prueba a separarlo 10cm. Al estar más alejado te va a permitir tomar la curva con un radio más cerrado sin tropezar.
También puedes añadir un retardo en el condicional de distancia >9 haciendo que tarde unas décimas en cambiar la velocidad y que entonces haga el giro cerrado, una vez la rueda interior esté más cerca de la esquina.
En cualquier caso intenta que la rueda interior no quede del todo parada y que acompañe a la exterior aunque sea con un movimiento más lento. La diferencia entre las dos velocidades determinará el radio de giro, pero sin hacer un giro de pivote sobre la rueda interior parada.
Y bueno, efectivamente podrías crear otro soporte para retrasar la posición del sensor, pero creo que no es necesario.
Si no das con la tecla continuamos a través de formulario de soporte ya que tienes esa opción.
Saludos
Buenos días, a mí me gustaría implementat el algoritmo de avanzar en paralelo en código en Arduino. Cómo podría implementarlo si quisiera hacerlo mediante un control PD??
Hola Diego,
No podría explicarte como respuesta a un comentario cómo implementar un control PD en Arduino, pero si lo has hecho con cualquier otro proyecto es perfectamente aplicable a este proyecto. La consigna sería la distancia a la que quieres que el robot se separe de la pared y el control proporcional se hace directo y el derivativo lo puedes hacer acumulando error a lo largo del tiempo.