Introducción a la programación
del robot mOway
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 1
Índice
Introducción ............................................................................................................................ 2
Diagramas de flujo ................................................................................................................. 2
Bloques de Movimiento .......................................................................................................... 5
Condicionales ......................................................................................................................... 6
Bucles ..................................................................................................................................... 7
Operadores AND / OR ........................................................................................................... 8
Orden en los diagramas ....................................................................................................... 10
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 2
Introducción
En este tutorial vamos a explicar algunos conceptos básicos para quienes van a programar
el robot mOway por primera vez. La forma más fácil de comenzar es a través de la
programación gráfica, en diagramas de flujo.
Comentaremos aspectos básicos de la programación como por ejemplo qué es una
condición, los conceptos lógicos AND y OR, y cómo pueden servir para controlar nuestro robot
como nosotros queramos.
Para poder entenderlo mejor, se incluyen ejemplos de
programas realizados en MowayWorld, el software de
programación de mOway. De esta forma, puedes probar a
programar el robot con estos ejemplos y entender mejor cómo
funcionan.
Una vez que hayas probado los ejemplos de este tutorial, podrás atreverte con programas
más complicados.
Diagramas de flujo
Un robot funciona según un programa, el cual consiste en una serie de acciones que el
robot realiza en un orden determinado. Para programar el robot mOway se emplea diagramas
de flujo.
Pregunta:
¿Qué es un diagrama de flujo?
Respuesta:
Un diagrama de flujo representa un programa
gráficamente, por medio de bloques y flechas.
Los bloques (o módulos) son las acciones que va a
realizar el robot cuando lo programemos, por ejemplo:
avanzar, encender una luz, comprobar los sensores, etc.
Las flechas indican el flujo del programa, es decir, el
orden en el que el robot va a realizar las acciones indicadas
en los bloques.
Acción 1
Acción 2
Etc.
(…)
(…)
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 3
A continuación, se enumeran unas acciones de ejemplo, que podrían ser un programa
para el robot. Las acciones serían “avanzar” y “encender la luz”:
1. Inicio del programa
2. Avanza durante 1 segundo
3. Enciende la luz frontal
4. Final del programa
Vamos a ver cómo se representaría el programa anterior en un diagrama de flujo. Como se
ha explicado antes, las acciones se indican dentro de los bloques. El orden del programa se
indica por medio de las flechas. A la derecha se muestra lo que haría el robot:
Esta forma de representar los programas hace que sean mucho más fáciles de entender,
sobre todo si son programas complicados, con muchas acciones. De un solo vistazo podemos
comprender qué acciones va a realizar el robot y en qué orden.
NOTA: El orden de las acciones es importante. En el ejemplo anterior, el robot avanzaría
con la luz apagada, se pararía y después encendería la luz. Si cambiásemos el orden de las
acciones (primero encender la luz y después avanzar), el robot avanzaría con la luz encendida
y después se pararía.
INICIO
Enciende la luz frontal
Avanza durante 1 segundo
FINAL
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 4
El software MowayWorld permite programar el mOway con diagramas de flujo, haciendo
que sea muy fácil empezar a trabajar con el robot. El ejemplo anterior en MowayWorld se
muestra a continuación. Se utiliza un bloque de “Movimiento -> Recta” y un bloque de “Luces”.
Para terminar el programa, se usa un bloque “Fin”.
La configuración de los bloques “Movimiento -> Recta” y “Luces” sería la siguiente:
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 5
Bloques de Movimiento
Los bloques de movimiento se usan para que el robot se desplace por medio de sus
ruedas. Se puede ordenar al robot que avance, retroceda, gire o incluso controlar cada una de
sus dos ruedas de forma independiente.
Estos bloques tienen la opción de ejecutarse durante un tiempo determinado, durante una
distancia o bien de forma indefinida. Es decir, se puede elegir que el robot se mueva durante
un tiempo y después se detenga, que se mueva hasta recorrer la distancia que le indiquemos,
o bien que se mueva continuamente sin detenerse.
PONLO A PRUEBA: Puedes comenzar con un programa para que
mOway avance (módulo “Movimiento -> Recta”). Ve cambiando los
parámetros del apartado Control de flujo (indefinidamente, tiempo
constante, distancia constante…) y comprueba lo que ocurre.
Si colocas un bloque de avance recto que se ejecute de forma indefinida, y a continuación
colocas un bloque de “Movimiento -> Rotación”, verás que el robot solo hará la rotación.
PONLO A PRUEBA: Programa este ejemplo en el robot y pruébalo. Verás que el robot
solo realiza la rotación, sin avanzar. Si quieres saber por qué, sigue leyendo.
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 6
Al elegir la opción “indefinidamente”, el robot avanza hasta que en el diagrama se
encuentre el siguiente módulo de movimiento. Pero como el siguiente módulo (rotación) se
encuentra justo después, al robot apenas le da tiempo a avanzar y pasa a realizar la rotación
instantáneamente. Por eso no vemos que el robot avance.
Para solucionarlo, en el módulo “Movimiento -> Recta” debemos elegir bien una distancia o
bien un tiempo durante el cual queremos que el robot avance antes de realizar la rotación.
Condicionales
Un bloque condicional es una acción cuyo resultado va a depender de una condición.
Por ejemplo, imagina que queremos que mOway avance hasta que encuentre un obstáculo.
Cuando lo detecte, el robot deberá pararse hasta que apartemos el obstáculo. Entonces el
robot reanudará su avance.
Es decir, la condición para que el robot se detenga es que sus sensores de obstáculos
detecten un obstáculo delante del robot.
Si hay un obstáculo, los sensores lo detectarán y la
condición será verdadera (marca verde). Entonces el
robot se parará.
Si no hay ningún obstáculo, los sensores no detectarán
nada y la condición será falsa (cruz roja). Entonces el
robot avanzará.
PONLO A PRUEBA: Programa este ejemplo en el robot y pruébalo. Verás que no
funciona correctamente. Si quieres saber por qué, sigue leyendo el siguiente apartado.
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 7
Bucles
Hasta ahora hemos visto que los programas tienen un inicio y un final. Esto no siempre es
así. El problema en el capítulo anterior era que el mOway comprobaba una sola vez los
sensores de obstáculos, realizaba una acción (avanzar si no detecta obstáculo o detenerse en
caso de detectarlo) y el programa finalizaba.
Para que el ejemplo anterior funcione correctamente es necesario comprobar los sensores
continuamente. Para ello haremos que el programa sea un bucle, es decir, un “círculo”
cerrado:
1. Borramos el bloque “Fin”:
2. Unimos el bloque de “Stop” con el módulo de
“Obstáculos”:
3. Finalmente, unimos el bloque de avance con el
módulo de “Obstáculos”:
Acabamos de crear un bucle. De este modo el programa se repetirá continuamente y el
robot estará siempre comprobando si hay un obstáculo.
PONLO A PRUEBA: Programa este ejemplo en el robot. El bloque de obstáculos puede
configurarse para comprobar los sensores centrales. El bloque de avance se configura
para que se ejecute indefinidamente.
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 8
Al encenderlo, el robot avanzará. Si pones la mano delante del robot, permanecerá parado
esperando a que la mano se aparte.
Operadores AND / OR
En los bloques condicionales de “Obstáculo” y “Línea”,
además de elegir qué sensores queremos que utilice el mOway,
tenemos la opción de elegir entre AND y OR. Vamos a ver cuál
es la diferencia entre estas dos opciones.
Pregunta:
¿Qué significan las opciones AND y OR?
Respuesta:
Si elegimos la opción AND, la salida del bloque será verdadera cuando se cumplan
TODAS las condiciones. Por ejemplo, si activamos los dos sensores centrales de obstáculos y
marcamos AND, la salida será verdadera cuando el sensor central izquierdo detecte obstáculo
Y el sensor central derecho detecte también un obstáculo.
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 9
PONLO A PRUEBA: Haz un programa que encienda el LED frontal cuando la salida del
bloque “Obstáculos” sea verdadera. Verás que el LED solo se enciende cuando ambos
sensores detectan obstáculos.
Por el contrario, si elegimos la opción OR, la salida del bloque será verdadera cuando se
cumpla ALGUNA de las condiciones. Por ejemplo, si activamos los dos sensores centrales de
obstáculos y marcamos OR, la salida será verdadera cuando bien el sensor central izquierdo
detecte obstáculo O bien el sensor central derecho detecte un obstáculo.
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 10
PONLO A PRUEBA: Haz un programa que encienda el LED frontal cuando la salida del
bloque “Obstáculos” sea verdadera. Verás que, en este caso, el LED se enciende cuando
cualquiera de los sensores detecta un obstáculo.
Orden en los diagramas
Por último, algunos consejos a la hora de realizar tus diagramas:
Colocar los bloques de forma ordenada, para comprender fácilmente el flujo del
programa. A continuación, se ve un ejemplo en el que, siendo el mismo programa,
se entiende mucho mejor cuando los bloques están colocados en línea (imagen de
la izquierda).
Tutorial de mOway Introducción a la Programación
www.moway-robot.com 11
Colocar las salidas verdaderas de los condicionales en el mismo lado. Por
ejemplo, en un diagrama con varios bloques condicionales, colocar las acciones de
las salidas verdaderas a la izquierda y las falsas a la derecha. Esto no es
obligatorio, pero facilita la comprensión del programa.
Tratar de que las flechas no se crucen. Si ocurre esto, se puede modificar el
trazado desplazando las mismas por medio de las marcas que aparecerán al
poner el cursor sobre ellas.