Manual para el profesor · 2016-09-18 · Seguidor de línea ..... 36 Qué hemos aprendido ......

82
education Manual para el profesor Prácticas de robótica educativa

Transcript of Manual para el profesor · 2016-09-18 · Seguidor de línea ..... 36 Qué hemos aprendido ......

education

Manual para el profesor

Prácticas de robótica educativa

Manual para elprofesorPrácticas de robótica educativa

Manual teórico y práctico de robótica educativa

Creado por MiniRobots, S.L.

© 2011 MiniRobots, S.L.

Av. de la Ribera de AxpeED. 11-B mod.310-31248950 - ErandioBizkaia, EspañaD.L.: BI-2366/2011

ÍNDICE1. Introducción .......................................................................................4

2. ¿Qué es mOway? .............................................................................52.1 Procesador......................................................................................................6

2.2 Sistema motriz ...............................................................................................6

2.3 Grupo de sensores e indicadores ...................................................................7

2.4 Sistema de alimentación ..............................................................................11

3. Tecnología en Educación Secundaria ...................... 123.1 Cómo trabajar con mOway ...........................................................................13

3.2 Diagramas de flujo. MowayWorld ................................................................15

4. Prácticas ........................................................................................... 204.1 Práctica I. Movimiento de un robot ..............................................................20

Qué hemos aprendido ........................................................................................25

4.2 Práctica II. Condiciones. El encierro ............................................................26

Qué hemos aprendido ........................................................................................31

4.3 Práctica III. El sensor de luz ........................................................................32

Qué hemos aprendido ........................................................................................35

4.4 Práctica IV. Seguidor de línea ......................................................................36

Qué hemos aprendido ........................................................................................42

4.5 Práctica V. Variables .....................................................................................43

Qué hemos aprendido ........................................................................................46

4.6 Práctica VI. Acelerómetros. Aparcando “al toque” ......................................47

Qué hemos aprendido ........................................................................................53

4.7 Práctica VII. La Copia ...................................................................................54

Qué hemos aprendido ........................................................................................62

4.8 Práctica VIII. Altavoz ...................................................................................63

Qué hemos aprendido ........................................................................................66

4.9 Práctica IX. Defensor / Luchador .................................................................67

Qué hemos aprendido ........................................................................................71

4.10 Práctica X. Laberinto ..................................................................................72

Qué hemos aprendido ........................................................................................76

4.11 Práctica XI. Estación de datos remota .......................................................77

Qué hemos aprendido ........................................................................................82

4Manual para el profesor

1. IntroducciónComienza una nueva era, la de los mini robots. Cada vez son más las aplicaciones

de la robótica móvil en nuestra vida cotidiana. Actualmente podemos ver robots que nos ayudan en tareas sencillas como limpiar el suelo de casa, segar el césped o mantener limpia la piscina. A medida que avanza la tecnología estos pequeños artilugios, mezcla de mecánica, electrónica y software, van asumiendo tareas más complejas. Poco a poco se van abriendo camino hacia nosotros siéndonos cada vez más útiles y descargándonos de los trabajos menos gratificantes.

No es ningún disparate pensar que la revolución que se dio en la informática o en las telecomunicaciones se va a repetir en la robótica durante la próxima década. Actualmente disponemos de la tecnología suficiente para fabricar estos dispositivos y la sociedad está cada vez más preparada para recibirlos en el mercado.

Hasta ahora los procesadores no se movían. Las cosas han cambiado. Uno de los elementos fundamentales en el mundo de la robótica móvil es el software. La principal diferencia a la hora de desarrollar programas para estos robots con res-pecto a hacerlo para ejecutarlos en un ordenador personal estriba en la interacción con el entorno. En las aplicaciones para PC el entorno no cambia aleatoriamente, con la que la toma de decisiones se simplifica y con ello los programas. Por otro lado, en la ejecución de comandos dentro de una aplicación para un minirobot lo habitual es que se desconozca de antemano cuál va a ser el resultado, por lo que los algoritmos deben contemplar situaciones con un abanico mucho más amplio de posibilidades, algunas incluso inesperadas.

Los mOways son herramientas diseñadas específicamente para la docencia e in-vestigación. Su objetivo es acercar el mundo de la robótica autónoma a los centros docentes.

El objetivo principal de mOway es ser una herramienta útil tanto para quienes se introducen por primera vez en el mundo de la robótica como para quienes ya tienen experiencia y desean realizar aplicaciones de robótica colaborativa.

mOway aspira a despertar inquietud por esta nueva y apasionante rama de la in-geniería a quien le tenga en su mano, a través de las prácticas contenidas en este manual de una forma rápida y entretenida.

En este libro de prácticas se explica con detalle el funcionamiento de mOway así como algunas prácticas desarrolladas específicamente para su aplicación en la enseñanza a alumnos en las asignaturas de tecnología en Educación Secundaria.

5Manual para el profesor

2. ¿Qué es mOway?mOway es un pequeño robot autónomo programable diseñado principalmente

para realizar aplicaciones prácticas de robótica móvil.

Con él se ha conseguido una plataforma hardware perfecta tanto para quien quie-re dar sus primeros pasos en el mundo de los robots móviles como para quien ya ha trabajado con robots y desea realizar aplicaciones más complejas.

El robot mOway está dotado de una serie de sensores que le ayudarán a desen-volverse en un entorno real. A su vez cuenta con un grupo motor que le permitirá desplazarse sobre el terreno. Todos estos periféricos están conectados a un micro-controlador que será el encargado de gobernar el robot.

Este pequeño robot cuenta además con opciones de ampliación a través de un bus de expansión. En él se puede conectar, por ejemplo, un módulo de comunica-ciones inalámbrico, una cámara de video, una tarjeta de prototipos o cualquier otro dispositivo que se considere interesante para el desempeño de una tarea.

El diseño exterior de mOway es muy compacto, diseñado para que pueda mover-se con agilidad y elegancia sin opción a quedarse enganchado en ninguna esquina. Tan pequeño como un móvil se ha ganado la denominación de “robot de bolsillo”.

mOway es una herramienta perfecta para quien quiere aprender y para quien quie-re enseñar qué es la robótica. El usuario se verá sorprendido con la rapidez que co-mienza a cosechar logros incluso si éste es su primer contacto con los robots móviles.

robot mOway

6Manual para el profesor

En el interior de un mOway tenemos los siguientes elementos:

1. Procesador

2. Sistema motriz

3. Grupo de sensores e indicadores

4. Sistema de alimentación

2.1 ProcesadorLos robots mOway están gobernados por un microcontrolador PIC18f86J50 del

fabricante Microchip Technology que trabaja a 4Mhz. En este microcontrolador es donde descargaremos el programa desarrollado en el PC. De sus puertos de entra-da/salida cuelgan todos los periféricos distribuidos por el robot. Algunos de ellos necesitan de una entrada o salida digital, otros de una analógica y otros en cambio se controlan a través de uno de los buses de comunicación I2C/SPI.

2.2 Sistema motrizLos mOways disponen de un grupo servo-motor doble para poder desplazarse.

Consta de una parte electrónica y otra mecánica. La parte electrónica se encarga principalmente de controlar la velocidad de los motores y la parte mecánica per-mite el desplazamiento con una potencia suficiente para que mOway se mueva en diferentes entornos.

El grupo servo-motor tiene diversas funcionalidades:

1. Control de velocidad: Controla la ve-locidad de cada motor por separado.

2. Control del tiempo: Controla el tiem-po en cada comando con una precisión de 100ms.

3. Control de distancia recorrida: Con-trola la distancia recorrida en cada co-mando con una precisión de 1.7mm.

4. Cuentakilómetros general: Cuenta la distancia recorrida desde el comienzo de los comandos.

5. Control de ángulo: Control de ángulo cuando se produce la rotación de mOway.

PCB de mOway

Sistema motriz: electrónica y mecánica

7Manual para el profesor

El control de velocidad se realiza mediante control en lazo cerrado gracias a la señal de los encoders (sensores para medir la velocidad y recorrido de los moto-res). La rotación de la rueda es monitorizada por medio de un encoder sobre uno de los engranajes del sistema y un sensor infrarrojo. El microcontrolador analiza esta señal y actúa sobre los motores. De esta manera, mOway puede controlar su velocidad y distancia recorrida.

2.3 Grupo de sensores e indicadores

Este grupo consta de diferentes sensores e indicadores luminosos conectados al microprocesador de mOway con los que el robot interactúa con el mundo exterior:

1. Dos sensores de línea

2. Cuatro sensores detectores de obstáculos

3. Sensor de luz

4. Un conector de expansión

5. 4 LEDs

6. Sensor de temperatura

7. Speaker

8. Micrófono

9. Acelerómetro

10. Nivel de batería

Control de motores

Grupo de sensores e indicadores

8Manual para el profesor

2.3.1 Sensores de línea

Los sensores de línea son dos optoacopladores de reflexión montados en la parte inferior delantera del robot. Utilizan la reflexión de luz infrarroja para detectar el tono del suelo en el punto en que se encuentra el robot.

Estos dos sensores están conectados a dos de los puertos analógicos del mi-crocontrolador de manera que no sólo podemos detectar contrastes fuertes en el suelo, como líneas blancas sobre fondo negro, sino que es posible discernir entre diferentes tonos.

El sensor CNY70 de Vishay, está compuesto por una estructura compacta donde la fuente emisora de luz y el detector están dispuestos en la misma dirección para poder detectar mediante el uso de los rayos infrarrojos la luz reflejada en el suelo.

En las siguientes imágenes podemos ver los tres casos que se pueden dar:

• Superficie clara: La superficie blanca hace que toda la luz infrarroja se refleje y por lo tanto a la salida del transistor en modo común obtenemos un voltaje bajo.

• Superficie de color: La superficie de color hace que parte de la luz emitida se refleje obteniendo un voltaje intermedio en la entrada del canal analógico del microcontrolador. De esta manera es fácil identificar colores.

Sensor de línea en superficie clara

Sensor de línea en superficie de color

9Manual para el profesor

• Superficie oscura: La superficie oscura hace que se refleje muy poca luz teniendo un voltaje alto a la salida del sensor.

2.3.2 Sensores detectores de obstáculos

Al igual que los sensores de línea, los sensores detectores de obstáculos utilizan también la luz infrarroja para detectar objetos situados en la parte delantera de mOway. El material del frontal de mOway es un filtro infrarrojo que bloquea parte de la componente infrarroja de la luz ambiente. El sensor está compuesto por una fuente de luz infrarroja (KPA3010-F3C de Kingbright) y cuatro receptores colocados en ambos extremos delanteros de mOway.

La salida de los receptores PT100F0MP de Sharp está conectada a las entradas analógicas del microcontrolador por lo que no sólo se detecta la presencia de al-gún objeto (modo digital) sino que también podemos medir la distancia al mismo (modo analógico).

El funcionamiento del sensor es similar al sensor de línea. El emisor de luz genera un pulso de una duración de 70 microsegundos que, en caso de existir un obstácu-lo, se refleja contra él y es captado por el receptor utilizando una etapa de filtrado y amplificación. Una vez procesada la señal electrónicamente, el microcontrolador puede medirla como entrada digital o analógica.

Sensor de línea en superficie oscura

Sensor detector de obstáculos

10Manual para el profesor

2.3.3 Sensor de luz

Este sensor permite a mOway conocer la intensidad de luz que entra por la aber-tura que está situada en la parte delantera del robot. Gracias a su posición, puede localizar la fuente de luz y actuar en consecuencia.

La salida del sensor APDS9100 está conectada a un puerto analógico del microcon-trolador de manera que con una simple lectura del ADC podemos saber el nivel de in-tensidad de luz y si éste ha aumentado o disminuido con respecto a la última lectura.

2.3.4 Conector de expansión

Este conector permite la conexión de mOway con módulos comerciales o con circuitos electrónicos que el usuario desee.

La primera expansión disponible es el módulo de RF mOway que permite la co-municación de mOway con otros de su especie y con el PC. Este módulo permite hacer aplicaciones colaborativas complejas sin tener que preocuparse de la gestión de la comunicación inalámbrica.

2.3.5 LED frontal

El LED frontal es un LED blanco que está situado en la parte delantera del robot. El LED LW A6SG de OSRAM está conectado a una salida digital del microcontrolador.

2.3.6 LED de freno

El LED de freno es un indicador que está conectado a una salida digital del mi-crocontrolador.

2.3.7 LED superior bicolor

Este indicador doble comparte la misma apertura en la parte superior del robot que el sensor de luz. Están conectados a dos salidas digitales del microcontrolador. Cabe destacar que al compartir la misma apertura que el sensor de luz es funda-mental apagarlos en el momento que se desee hacer una lectura de la intensidad de luz.

2.3.8 Pad libre

El PCB de mOway tiene un Pad, que solo es accesible al abrir el robot. Está situa-do en la parte trasera, al lado del LED de freno, al cual el usuario podrá conectar circuitos electrónicos.

2.3.9 Sensor de temperatura

mOway lleva instalado como medidor de temperatura un termistor NTC de Mura-ta, que es un semiconductor cuya resistencia eléctrica variable decrece a medida que la temperatura aumenta.

El termistor está conectado a una entrada analógica del microcontrolador de for-ma que con una simple lectura del ADC podemos conocer la temperatura que hay y si ha aumentado o disminuido con respecto a la última lectura.

11Manual para el profesor

2.3.10 Speaker

El altavoz CMT-1102 de CUI INC conectado al microcontrolador del robot, es ca-paz de reproducir tonos desde 250 Hz hasta 5,6 KHz en intervalos pares de 100 ms.

2.3.11 Micrófono

El micrófono CMC-5042PF-AC de CUI INC permite al robot detectar sonidos desde 100 Hz hasta 20 KHZ.

La salida del micrófono está conectado a una entrada analógica del microcontro-lador de forma que no sólo es capaz de detectar si hay sonido o no (modo digital), sino que con una simple lectura del ADC, es capaz de detectar la intensidad con la que está llegando ese sonido (modo analógico).

2.3.12 Acelerómetro

Un acelerómetro es un dispositivo que mide la aceleración y las fuerzas inducidas por la gravedad: el movimiento y el giro. Midiendo las coordenadas X, Y, Z, el ace-lerómetro MMA7455L de Freescale Semiconductor permite conocer si mOway está en posición correcta, invertido o ladeado. Además, permite conocer si el robot se ha golpeado o caído.

2.3.13 Nivel de batería

Para la alimentación del robot, se dispone de una célula de LiPo recargable. Para un correcto funcionamiento del microcontrolador, la batería va conectada a una de sus entradas analógicas a través de un adaptador de señal. De esa forma, con una lectura del ADC podemos determinar el nivel de batería que nos queda.

2.4 Sistema de alimentaciónLa batería empleada en el robot mOway es de Litio Polímero recargable y se en-

cuentra en su interior.

La recarga de la batería se realiza por el puerto USB de cualquier ordenador conectado directamente al puerto MINI-USB-B del propio robot. No es necesario esperar a que la batería esté completamente descargada para poder enchufarla, puede hacerse en cualquier momento puesto que este tipo de baterías no tienen efecto memoria. Su pequeño tamaño, ligereza y flexibilidad hacen de estas baterías una perfecta fuente de energía para mOway.

La duración media de la batería es de 1h y 30 minutos aunque depende en gran medida de los sensores activos y del tiempo de utilización de los motores. De todas formas, gracias a la función nivel de batería, se puede saber la cantidad de carga que tiene el robot en cada momento. El tiempo de carga aproximado es de 2h.

12Manual para el profesor

3. Tecnología en Educación SecundariaEl robot mOway es una herramienta didáctica aplicable en la asignatura de Tec-

nología de Educación Secundaria Obligatoria. Las Unidades Didácticas en las que se emplea mOway son las de Control y Robótica y Control por Ordenador.

En el Área de Control y Robótica se aprenderá de manera práctica qué es un ro-bot, qué partes tiene, su funcionamiento y su control. En la unidad de Control por Ordenador se introduce el control por ordenador, sus fundamentos y se practica la programación de aplicaciones empleando diagramas de flujo.

Las competencias que se desarrollan con el robot mOway son:

• Autonomía e iniciativa personal: Los alumnos se enfrentan a una nueva tarea: la programación de un robot y el control de sus acciones. Las diferentes actividades propuestas pretenden que el alumno aborde estos nuevos retos sin miedo a equivocarse.

• Trabajo en grupo: El trabajo en grupo es fundamental en la sociedad ac-tual especialmente a la hora de trabajar y diseñar nuevos proyectos. Con el trabajo en equipo se fomenta el compromiso por las tareas y el respeto hacia las opiniones de otros.

• Tecnología y competencia digital: Los alumnos comprobarán la impor-tancia de la programación de sistemas digitales y observarán el resultado real de una programación desarrollada en un PC.

• Lógica y razonamiento: A través del software intuitivo y la herramienta práctica que constituye el robot, los alumnos comprenden el significado de un diagrama de flujo, sus condiciones y variables, y son capaces de desarrollar sus propios proyectos así como detectar sus aciertos y errores.

• Resultados: Desde el primer momento los alumnos obtendrán resultados, comprenderán la programación y comprobarán lo que son capaces de realizar sin tener que esperar para ello, lo que les motivará a seguir aprendiendo.

• Preparación para el Futuro: Aprender a programar con mOway sienta unas bases de aprendizaje futuro en diversas materias de ciencia y tecnolo-gía, y el alumno recordará fácilmente, aquello que aprendió de una manera sencilla y disfrutando.

Algunos de los criterios de evaluación que se pueden trabajar con el robot mOway son:

• Comprender el funcionamiento básico de los elementos que componen la electrónica de un robot.

• Comprender el funcionamiento de los principales tipos de sensores: luz, in-frarrojos, de línea.

• Diseñar un robot que actúe en función del valor de sus sensores: luz, obs-táculos, línea.

13Manual para el profesor

• Conocer las herramientas de programación de un sistema a través del ordenador.

• Elaborar diagramas de flujo.

• Diseñar programas que controlen entradas y salidas de un robot.

• Control en lazo abierto y lazo cerrado. Diseño de un programa en lazo cerrado.

3.1 Cómo trabajar con mOway1. Primeros pasos en robótica y programación: Conocer y comprender de

un modo práctico la electrónica de un robot, el funcionamiento de sus diferentes sensores, y cómo programarlos.

• Empezaremos a trabajar con mOway, identificando sus diferentes sensores y elementos.

• Los alumnos se familiarizarán con el software MowayWorld, identificando los módulos, procesos, condiciones y variables. Con sólo con un par de módulos tendrán su primer programa y estarán controlando el movimiento del robot. Serán capaces de diseñar cada vez diagramas de flujo más complejos, aña-diendo diferentes procesos y condiciones.

• Al grabar el programa en el robot, comprobarán si éste ejecuta exactamente lo ordenado, pudiendo en caso contrario, localizar fácilmente el módulo que ocasiona el error.

• Podremos hacer prácticas tales como:

- El movimiento de un robot.

- Seguir la línea.

- Seguir un laberinto.

- Seguir la luz.

- El encierro de un robot.

- ...

• Con estas primeras prácticas los alumnos aprenden a programar y el profe-sor habrá completado con éxito este objetivo marcado.

2. Robótica colaborativa: Conocer y comprender los módulos de radio fre-cuencia y su funcionamiento. Realizar programas para comunicar varios mOways entre sí o mOway con el PC.

• El aprendizaje de mOway continúa, y una vez que hemos comprendido su electrónica y programación, introduciremos los módulos de radio frecuencia.

Este módulo permite a mOway comunicarse con otros de su especie (hasta 254) y con el PC. El módulo de radio frecuencia se pincha en la ranura de expansión, situada en la parte superior de los robots mOway que vamos a comunicar.

14Manual para el profesor

• Siguiendo la misma programación de mOway aprendida con MowayWorld, añadiremos un nuevo módulo de Comunicaciones, y empezaremos a utilizar las variables, para realizar los programas oportunos.

• Podremos hacer prácticas más avanzadas como:

- La copia: un robot reproducirá los mismos movimientos que el robot con el que se está comunicando.

- Carreras de relevos.

- Enviar órdenes a otro robot.

- Controlar mOway desde el PC.

- Encontrar el punto de equilibrio.

- ...

• Con estas prácticas los alumnos aprenden a realizar programas más com-plejos y a realizar prácticas colaborativas entre varios robots y el profesor habrá completado con éxito este objetivo marcado.

3. Módulo de Expansión: Diseñar un circuito electrónico, añadirlo a mOway y programarlo.

• Para seguir dando a mOway más posibilidades, introducimos el Kit de expan-sión, un kit que permitirá al alumno crear sus propios desarrollos electrónicos, para añadir a mOway aquello que imaginen, consiguiendo así que su robot sea diferente al resto.

• Para desarrollar este circuito electrónico, utilizaremos el Kit de Expansión mOway, compuesto por 2 placas perforadas sobre las que el alumno añadirá sus propios desarrollos electrónicos al robot.

• Una vez creado nuestro circuito electrónico lo conectaremos a mOway a través del bus de comunicaciones de la ranura de expansión y podremos pro-gramar los diferentes elementos añadidos.

• Los alumnos podrán montar un circuito con:

- Diferentes sensores, como de luz, de temperatura.

- Displays de 7 segmentos, LCD, sintetizadores de voz, actuadores.

- Todos ellos podrán ser leídos por el robot mOway.

• Con estas prácticas los alumnos aprenden a crear su propia electrónica y con los conocimientos previos de programación, a programar cualquier sensor que hayan añadido y el profesor habrá completado con éxito este objetivo marcado.

15Manual para el profesor

3.2 Diagramas de flujo. MowayWorldLos diagramas de flujo se emplean para representar y describir gráficamente

un algoritmo. Cuando hablamos de un algoritmo en programación nos referimos a una sucesión de instrucciones definidas y ordenadas para realizar una actividad mediante pasos sucesivos.

En nuestro caso mediante diagramas de flujo describiremos y representaremos un conjunto de instrucciones para que el robot mOway realice una actividad con-creta como seguir una línea, escapar de un laberinto, etc.

La siguiente imagen muestra el área de trabajo de MowayWorld. Es muy fácil de usar, de modo que incluso un usuario principiante puede programar el robot mOway en unos pocos minutos. A continuación se describen diferentes partes del área de trabajo de MowayWorld.

La Barra de Herramientas de MowayWorld permite al usuario gestionar el pro-yecto, editar el diagrama de flujo, crear variables, programar el robot mOway, etc. En el capítulo siguiente se describirán algunas de estas opciones.

Área de trabajo de MowayWorld

Barra de herramientas de MowayWorld

16Manual para el profesor

La ventana de Flujo de Programa es donde el usuario colocará los módulos y los unirá con flechas, desarrollando el programa. Cuando se crea un nuevo proyec-to, esta ventana sólo contiene el “punto de inicio”. En los diagramas de flujo siem-pre contamos con un “punto de inicio” desde el que comenzaremos el programa y desde el que partirá el “flujo” del mismo.

En la parte izquierda del área de trabajo está la sección de Herramientas. Aquí están todos los módulos para controlar el robot mOway: acciones de movimiento, comprobación de sensores, comunicación, etc.

Los Módulos están agrupados según su tipo de función (Acciones, Sensores, Da-tos, Control de Flujo y Expansión). Las funciones de los módulos se describen en el capítulo siguiente.

Por ejemplo, si quisiéramos encender los LEDs, debemos situar el ratón sobre el módulo de Luces, dentro del menú Acciones de mOway. A continuación lo arrastra-mos y soltamos dentro de la ventana de Flujo de Programa. Si quisiéramos mover el robot mOway, colocamos el ratón sobre la sección Movimiento dentro del menú

Ventana de flujo de programa Herramientas

17Manual para el profesor

Acciones de mOway. Entonces aparecen todos los módulos de movimiento y elegi-mos el que queremos.

Una vez que se ha colocado los módulos del programa, debemos unirlos de forma secuencial por medio de flechas. Para colocar una flecha, se coloca el cursor sobre el primer módulo. Entonces aparecerán cuatro puntos rojos y blancos.

Se hace clic en la marca inferior y se arrastra el cursor al siguiente módulo, hasta que las marcas aparezcan.

Menú de movimiento en las acciones de mOway

Cursor sobre el módulo

Cursor en el siguiente módulo

18Manual para el profesor

A continuación se une la flecha a la parte superior de este módulo.

Si quisiéramos crear un bucle, la flecha puede unirse desde un lado del bloque hasta la parte superior del mismo bloque. Aquí hay un ejemplo:

Dentro de un diagrama de flujo podemos tener dos tipos de acciones: Procesos y Condiciones. Los Procesos son instrucciones que ejecutan una tarea del robot y no varían el flujo de programa. Son bloques de forma rectangular con un camino de entrada y uno de salida. Ejemplos de Procesos son: movimiento recto, encender un LED, realizar una suma, etc.

Unión con flecha

Trazado de felcha para bucle

Ejemplo de proceso

19Manual para el profesor

Las Condiciones son instrucciones que diversifican el flujo de programa en fun-ción de si su resultado es verdadero o falso. Son bloques de forma ovalada. Ejem-plos de condiciones son: comprobar si hay un obstáculo, verificar si una variable es mayor o menor que un valor, etc.

En las condiciones se observa cómo el flujo de programa se divide entre el ca-mino “verdadero” (marca verde) y el camino “falso” (marca roja) en función de la sentencia declarada en la condición.

Los diagramas de flujo anteriores tienen un punto de Fin. El bloque conectado a este punto será el último del programa, que luego se terminará. El punto de Fin no siempre se utiliza. Por ejemplo, en los programas que consisten en un bucle continuo.

Cuando en una condición uno de los flujos de pro-grama vuelve sobre la condición inicial creamos un “bucle”. Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces, hasta que la condición asignada a dicho bucle deja de cumplir-se.

En este ejemplo, el flujo de programa “falso” vuel-ve sobre una sentencia y luego sobre la misma con-dición. Por tanto, estamos repitiendo la primera sen-tencia hasta que la condición sea verdadera. Cuando esto suceda, el flujo de programa continuará hasta la segunda sentencia.

Una vez descrita la programación con diagramas de flujo vamos a introducirnos en el desarrollo de prácti-cas con MowayWorld.

Ejemplo de condición

Ejemplo de bucle

20Manual para el profesor

4. Prácticas4.1 Práctica I. Movimiento de un robot

En esta primera práctica vamos a familiarizarnos con los movimientos del robot. El robot mOway dispone de dos motores independientes con control en lazo cerra-do, conectados a cada una de las dos ruedas. Controlando el sentido de giro de los motores podemos conseguir que el robot avance, gire o retroceda.

En la siguiente tabla se muestra el comportamiento del robot en función del sen-tido de los motores.

También podemos hacer que el robot rote sobre sí mismo si invertimos el sentido de un motor respecto al otro. De esta forma el robot girará sobre su centro.

Si modificamos la velocidad de los motores en los movimientos anteriores po-demos lograr infinitas posibilidades en el movimiento del mOway pudiendo trazar circunferencias, espirales, curvas, etc.

Para la realización de esta práctica emplearemos el robot mOway con su interfaz de programación MowayWorld, basado en diagramas de flujo. En esta primera práctica únicamente utilizaremos procesos, por lo que el flujo de programa será único sin condiciones.

21Manual para el profesor

El objetivo de este primer programa es lograr que un robot avance recto durante 2 segundos, luego gire sobre sí mismo 90 grados hacia la izquierda y más tarde avance 10 cm. Para ello haremos uso de los módulos de Movimiento en el menú de Acciones de mOway.

Para colocar un módulo, se coloca el cursor del ratón sobre el módulo deseado del panel de Herramientas, en la parte izquierda de la ventana principal. Después arrastramos y soltamos en la ventana de Flujo de Programa (panel blanco cuadricu-lado). Haciendo doble clic sobre los módulos podemos acceder a su configuración.

El primer bloque será una pausa, que se encuentra en el menú “Control de flujo → Pausa”. Seleccionamos el tiempo de espera hasta 2 segundos y pulsamos “Aceptar”.

El segundo módulo será un movimiento recto de avance con una duración de dos segundos. Colocamos un nuevo módulo desde “Acciones de mOway → Movimiento → Recta”. La velocidad del movimiento será 50. Seleccionaremos la opción “Ejecu-tar durante tiempo constante” de 2 segundos.

Es importante seleccio-nar la opción “no ejecutar la siguiente orden hasta que alcance el límite de tiempo”, para que la eje-cución del programa no continúe al siguiente mó-dulo hasta haber comple-tado el movimiento de 2 segundos.

El siguiente paso será el giro de 90 grados a la izquierda. Para ello colo-caremos un nuevo mó-

22Manual para el profesor

dulo desde “Acciones de mOway → Movimiento → Rotación”. En la siguiente figura se muestra la configuración del módulo.

Una vez el robot haya girado 90 grados hacia la izquierda, introduciremos el mó-dulo de avance de 10 cm. En la imagen inferior se muestra la configuración del módulo.

23Manual para el profesor

El final del programa se establece con el módulo Fin, desde “Control de flujo → Fin”.

Una vez colocados los módulos del programa, los unimos secuencialmente me-diante flechas. Para colocar las flechas, colocamos el ratón sobre el primer módulo, hacemos clic sobre los puntos rojos y blancos y arrastramos hasta el siguiente mó-dulo. Para más información sobre la colocación de las flechas, referirse al capítulo anterior.

24Manual para el profesor

Al unir todos los módulos, el diagrama quedará como el de la imagen siguiente.

Una vez finalizado el programa, lo grabaremos en el robot. Para conectar el mOway al PC lo haremos a través del puerto USB que se encuentra en la parte trasera del robot.

Cuando mOway esté conectado al ordenador, pulsamos el botón de “Programar mOway”, indicado en la imagen siguiente. Una vez programado, desenchufamos el robot y el programa comenzará su ejecución.

Con esto hemos finalizado nuestra primera práctica. En esta práctica se han visto conceptos sobre la creación de diagramas de flujo y la programación de movimien-tos del robot.

A partir de este primer proyecto se pueden realizar mejoras para ir familiarizán-dose con la programación del robot:

• Práctica 4.1.1. Cambiar el ángulo de giro.

• Práctica 4.1.2. Cambiar la velocidad de los movimientos.

• Práctica 4.1.3. Realizar la rotación sobre una rueda en vez de sobre el cen-tro. De esta manera una rueda permanecerá inmóvil mientras la otra realiza el giro.

25Manual para el profesor

Qué hemos aprendido

Cómo el robot puede avanzar, retroceder y girar dependiendo del sentido de giro de ambas ruedas.

Cómo realizar un diagrama de flujo sencillo.

Cómo programar el robot.

Nuevos retos

• Cambia el ángulo de giro para dar media vuelta.

• Prueba a cambiar la velocidad de los movimientos.

• Gira el robot sobre una de las ruedas en vez de sobre el centro.

Comprueba lo que sabes

1. El robot gira sobre su centro cuando:

a) Una rueda avanza y la otra retrocede

b) Una rueda avanza y la otra está parada

c) Ambas ruedas avanzan

2. ¿Qué valor hay que poner en el bloque “Pausa” si queremos esperar 5 segundos?

a) 0,05

b) 0,50

c) 5,00

26Manual para el profesor

4.2 Práctica II. Condiciones. El encierroEn la práctica II se introduce el concepto de Condición dentro de un diagrama

de flujo. Una condición es una operación que tiene un camino de entrada y dos de salida: uno si la condición es verdadera y otro si la condición es falsa.

Para practicar las condiciones haremos uso de los sensores infrarrojos de línea. El objetivo de esta actividad es programar un robot que avanza continuamente hasta que se encuentre una línea negra. En ese caso realizará un giro de 126 grados y continuará su camino.

Para el desarrollo de esta práctica haremos uso de la pista mOway. El robot se colocará dentro del círculo negro y permanecerá encerrado.

Si queremos detectar marcas en el suelo tendremos que utilizar los sensores de línea. El componente electrónico empleado es un CNY70 que lleva incorporado un emisor y un detector de infrarrojos. El emisor de infrarrojos es un diodo LED y el receptor es un fototransistor, es decir, un transistor que conduce corriente en fun-ción de la luz que incide sobre su base.

Este tipo de sensores se suelen emplear en apli-caciones de escaneado de códigos de barras y me-didores de velocidad de motores. Otra de sus apli-caciones en los productos de consumo es en los teléfonos móviles con grandes pantallas. En este caso el sensor se sitúa al lado de la pantalla para detectar cuando nos acercamos el teléfono para ha-blar. Cuando esto ocurre, el sensor lo detecta y el móvil apaga la pantalla para ahorrar batería.

En este programa utilizaremos los sensores en modo digital (blanco o negro). Sin embargo, el robot mOway puede realizar también lecturas analógicas para discri-minar diferentes niveles de gris.

27Manual para el profesor

La superficie oscura hace que se refleje muy poca luz, teniendo un voltaje alto a la salida del sensor. Si la superficie es clara, la cantidad de luz reflejada es alta y por tanto el transistor se mantiene en saturación, con un nivel de tensión bajo a la salida.

Colocaremos en primer lugar un módulo de pausa de 2 segundos al igual que en la primera práctica. En segundo lugar indicaremos la acción por defecto que será un avance recto indefinido a velocidad 50. El movimiento no está limitado, ya que el avance sólo se interrumpirá cuando se detecte una línea negra.

El siguiente paso será colocar la condición del programa. Para ello, arrastramos y soltamos el módulo “Sensores → Línea”. Haciendo doble clic, podemos acceder a la configuración de este módulo. Nos interesa detectar líneas negras, por tanto, seleccionaremos en ambas líneas el color “Negro”.

Algunos de los módulos de Sensores permiten elegir entre las operaciones AND y OR. Si se selecciona la operación AND, la condición será verdadera si todos los sensores cumplen la condición establecida. En cambio, si se selecciona la operación OR, la condición será verdadera si alguno de los sensores cumple la condición. En este ejemplo, si uno de los sensores (izquierdo o derecho) cumple la condición (es decir, detecta la línea negra), la condición del módulo es verdadera.

En una condición tenemos dos caminos de salida: uno para el caso de que la con-dición sea verdadera y otro si es falsa. En la condición anterior, si uno de los sen-sores de línea detectase un color negro, el camino que tomaría el programa sería el de verdadero. Si no es así, tomaría el falso. Por tanto, el camino verdadero nos conduciría a un módulo de giro de 126 grados. Si en cambio el resultado es falso, deberíamos continuar avanzando recto.

Colocamos entonces el siguiente módulo de rotación de 126 grados. En la si-guiente figura tenemos la configuración necesaria.

28Manual para el profesor

Para terminar el programa debemos unir los diferentes procesos y condiciones. Cuando unimos el módulo de condición con el siguiente módulo, la primera flecha que aparece es la condición “verdadero” y está representada con la marca color verde. Unimos esta flecha al módulo de “Rotación”, ya que es la acción deseada si el robot detecta una línea negra.

Trazamos otra flecha desde la condición, la cual indicará el camino falso y esta vez lo unimos con el módulo anterior de “Movimiento Recto”. Si el robot no ve una línea negra continuará avanzando recto.

29Manual para el profesor

Finalmente unimos el módulo de “Rotación” con el módulo de “Movimiento Rec-to”, ya que una vez terminado el giro el robot continuará avanzando recto.

En esta práctica se introduce el concepto de “bucle”, que es una parte del progra-ma que se repite de forma secuencial mientras se cumple una condición. En este caso el bucle es infinito, ya que el programa se repite indefinidamente. Por esta razón, no hemos colocado un “Fin” de programa.

A partir del proyecto se pueden realizar mejoras para ir familiarizándose con la programación del robot:

• Práctica 4.2.1. Cambiar el ángulo de giro.

• Práctica 4.2.2 Cambiar la velocidad de los movimientos.

• Práctica 4.2.3 Encender los indicadores luminosos al encontrar la línea y apa-garlos una vez concluido el giro.

30Manual para el profesor

Para ello debemos incluir un módulo de Luces “Acciones de mOway → Luces” y configurarlo para encender los LEDs antes de comenzar el giro, luego rotar y una vez finalizada la rotación, apagarlos. El módulo de Luces permite también hacer parpadear los LEDs.

• Práctica 4.2.4. Cambiar las líneas por paredes y utilizar los sensores de obs-táculos. De este modo haremos que el robot avance hasta que ve un obstáculo. En ese momento dará la vuelta.

Para realizar este programa utilizaremos la lógica anterior pero de manera in-versa. Programaremos el robot para que mientras no detecte obstáculos continúe recto. Si hay algún obstáculo (la condición de “no hay obstáculos” es falsa) realiza la rotación. La operación AND debe ser seleccionada.

Tabla de verdad de “p AND q “:

Tabla de verdad de “p OR q “:

31Manual para el profesor

Qué hemos aprendido

Cómo funcionan los sensores de línea de mOway.

Qué es un bloque condicional.

Qué diferencia hay entre las operaciones “AND” y “OR”.

Qué es un bucle.

Nuevos retos

• Prueba a cambiar el ángulo de giro.

• Haz que el robot encienda los LEDs cuando detecte la línea negra.

• Cambiar las líneas por paredes y utilizar los sensores de obstáculos. De este modo haremos que el robot avance hasta que ve un obstáculo. En ese momento dará la vuelta.

Comprueba lo que sabes

1. Cuando los sensores trabajan en modo digital, ¿qué colores detecta?

a) Diferentes niveles de gris

b) Blanco y negro

2. Si quisiéramos que el robot gire sólo cuando sus dos sensores detecten la línea negra, ¿cómo tendríamos que configurar el bloque “Línea”?

a) Con la opción “AND”

b) Con la opción “OR”.

3. ¿Por qué un bloque condicional tiene dos salidas?

32Manual para el profesor

4.3 Práctica III. El sensor de luzUna vez conocido el sensor de línea y el sensor de obstáculos en la práctica an-

terior, vamos a introducir el sensor de luz ambiente. Este sensor nos proporciona la cantidad de luz (de 0 % a 100%) recibida a través de la apertura con forma de media luna en la parte superior del chasis. Al estar orientada hacia delante permite conocer dónde está situada la fuente de luz y actuar en consecuencia.

El sensor es un fotodiodo APDS9102. Un fotodiodo es una unión PN (diodo) que varía su comportamien-to en función de la cantidad de luz que incide sobre él. Estos componentes son muy usados en los pro-ductos de consumo. Por ejemplo, los teléfonos mó-viles y ordenadores portátiles suelen incluir un foto-diodo para detectar la luz ambiente y ajustar el brillo de la pantalla.

El sensor de luz de mOway es un sensor analógico. Una señal analógica es un tipo de señal continua y variable en amplitud y periodo que es generada por algún tipo de fenómeno electromagnético. En la imagen siguiente vemos la diferencia entre las señales digitales que hemos empleado antes (línea negra o blanca, obstáculo sí/no) y la señal analógica del sensor de luz.

El objetivo de esta tercera práctica va a ser el reproducir de una manera aproxi-mada un conocido juego infantil. Diseñaremos un robot que cuando las luces estén encendidas permanecerá quieto. En el momento en el que la luz se apague el robot comenzará a desplazarse con el LED superior rojo parpadeando hasta que la luz vuelva a encenderse.

Para comenzar el programa introducimos una pausa de 2 segundos. En segundo lugar introducimos la condición de esta práctica. La condición empleada será “Da-tos → Comparar → Luminosidad”.

Vamos a comparar el sensor de luminosidad para ver si supera un determinado umbral. En la práctica se ha colocado un valor de 30 como umbral, sin embargo, en función del entorno en el que nos encontremos este valor puede variar.

33Manual para el profesor

La condición la hemos configurado para que siga el camino verdadero cuando el valor del sensor de luz sobrepase el 30%. En este caso el robot estará parado espe-rando que las condiciones cambien, por tanto, introduciremos un módulo detención “Acciones de mOway → Movimiento → Detener”.

En el camino falso (si la luminosidad está por debajo de 30%), colocaremos dos módulos: uno para hacer parpadear el diodo LED rojo superior y otro con un mo-vimiento de avance a velocidad 100. Para configurar el parpadeo del LED seleccio-namos el módulo “Acciones de mOway → Luces”.

Una vez introducidos los módulos y condiciones unimos con flechas el programa que queda configurado como en la imagen inferior.

34Manual para el profesor

A partir del proyecto se pueden realizar mejoras para profundizar en la progra-mación del robot:

• Práctica 4.3.1. Cambiar la velocidad del movimiento y el umbral de luminosidad.

• Práctica 4.3.2. Hacer parpadear el LED verde mientras el robot está detenido.

• Práctica 4.3.3. Cambiar el movimiento recto por movimiento en zig-zag.

35Manual para el profesor

Qué hemos aprendido

Qué es un sensor de luz.

Qué es una señal analógica.

Cómo comparar el valor de un sensor con otro valor.

Nuevos retos

• Cambia el umbral de luminosidad, es decir, el valor con el que se compara el sensor.

• Haz que el LED verde parpadee cuando el robot esté parado.

• Intenta que el avance se haga en zigzag.

Comprueba lo que sabes

1. Una señal analógica puede tener diferentes valores entre un rango, mientras que una señal digital puede tener sólo dos valores.

a) Verdadero

b) Falso

2. El sensor de luz es un sensor:

a) Digital

b) Analógico

3. ¿Cómo configuramos el bloque “Luminosidad” para comprobar si en nivel de luz detectado es menor del 50%?

a) Luminosidad >= 50

b) Luminosidad < 50

c) Luminosidad <> 50

36Manual para el profesor

4.4 Práctica IV. Seguidor de líneaEn la siguiente práctica haremos uso de las condiciones y los módulos de movi-

miento al igual que en actividades anteriores. Sin embargo, en esta práctica vere-mos “condiciones anidadas”, esto es, condiciones en las cuales un camino de salida nos lleva a otra condición.

Como entorno para el desarrollo de la práctica podemos utilizar la pista mOway empleada en la práctica II. Para desarrollar un programa que siga la línea, la es-trategia que debemos adoptar es la de intentar que el robot vaya avanzando sobre el contraste entre la zona blanca y negra. De esta manera uno de los sensores de línea estará sobre la zona blanca y el otro sobre la línea negra. En este caso in-tentaremos que el sensor izquierdo de mOway se sitúe sobre la zona blanca y el sensor derecho sobre la zona negra.

Según el valor de los sensores de línea tenemos cuatro estados diferentes y se-gún el estado, el robot deberá realizar una acción diferente:

Sensor izquierdo Sensor derecho Acción

Blanco NegroContinuar recto. Nos encontramos en la posi-

ción correcta

Blanco BlancoGiro a la derecha. Nos hemos desviado hacia

la izquierda

Negro Negro Giro a la izquierda. Estamos dentro de la línea

Negro BlancoGiro a la izquierda. Estamos en el otro extremo

de la línea

37Manual para el profesor

Una vez analizados los cuatro estados comenzamos con la creación del diagrama. El primer bloque será un módulo de pausa de 2 segundos. En segundo lugar co-locaremos las cuatro condiciones explicadas en la tabla anterior. En las imágenes siguientes se muestra dichas condiciones.

38Manual para el profesor

Una vez situadas las condiciones, introduciremos las acciones asociadas a cada una de ellas. En el primer caso y según la tabla superior, la acción a realizar será un movimiento de avance recto. En la segunda condición (blanco, blanco) realiza-remos un giro a la derecha. En las condiciones restantes realizaremos un giro a la izquierda. En las imágenes se muestra la configuración de los módulos.

39Manual para el profesor

40Manual para el profesor

Es importante resaltar que en este programa todas las rotaciones se realizan so-bre la rueda y no sobre el centro. Rotar sobre el centro equivale a avanzar con un motor y retroceder con el otro. Si utilizásemos esta rotación, el robot no avanzaría a lo largo de la línea, se quedaría en el mismo sitio.

Ya sólo nos queda unir con flechas los diferentes módulos y condiciones. El cami-no verdadero de las condiciones se unirá al módulo de movimiento asociado a cada una de ellas. El camino de salida de los módulos volverá al principio del bucle. Esto se puede hacer uniendo cada módulo de movimiento con el primer módulo con-dicional. Sin embargo el camino falso se unirá a la siguiente condición. La última condición tendrá un camino de vuelta hasta la primera condición.

41Manual para el profesor

A partir del proyecto se pueden realizar mejoras en el programa para profundizar en la programación del robot:

• Práctica 4.4.1. Cambiar la velocidad de los movimientos.

• Práctica 4.4.2. Modificar los movimientos según el recorrido. Ejemplo: movi-mientos más suaves (uso del módulo curva) si la pista no tiene giros muy pronun-ciados.

• Práctica 4.4.3. Encender los LEDs cuando el robot detecte un determinado valor en los sensores.

42Manual para el profesor

Qué hemos aprendido

Qué son las condiciones anidadas.

Cómo seguir una línea negra gracias a los dos sensores de línea de mOway.

Nuevos retos

• Cambia la velocidad de los movimientos para conseguir un seguidor de línea más rápido.

• Cambia el modo de rotación al centro del robot y comprueba lo que ocurre. ¿Mejora o empeora el funcionamiento?

Comprueba lo que sabes

1. ¿Con qué modo de rotación el robot es capaz de avanzar mientras gira?

a) Rotación sobre una rueda

b) Rotación sobre el centro

2. ¿El seguidor de línea funcionaría usando solo un sensor de línea?

43Manual para el profesor

4.5 Práctica V. VariablesVamos a comenzar ahora a trabajar con variables. Una variable es un dato del

programa que puede cambiar de valor a lo largo de la ejecución. Estas variables se podrán crear desde la Barra de Herramientas.

A continuación se debe declarar un nombre y un valor inicial para esta variable.

Además, algunos módulos permiten crear una variable directamente desde el módulo. Esta opción se utilizará en este ejercicio.

Una variable puede ser utilizada para almacenar el valor de un sensor. Por ejem-plo podemos almacenar el valor del sensor de luz y temperatura. También podemos emplear los sensores de línea o de obstáculos, que antes hemos utilizado en modo digital, como sensores analógicos. En el caso de los sensores de obstáculos pode-mos medir la distancia a la que tenemos el objeto y de esta manera comprobar si nos acercamos o nos alejamos de los objetos.

Las variables también pueden ser utilizadas como parámetros de los módulos de movimiento. Podemos configurar la velocidad de un movimiento con el valor de una variable.

Combinando el almacenamiento del valor de un sensor junto con el uso de una va-riable como parámetro de un módulo, podemos programar aplicaciones como un robot que avance más rápido o lento en función de la luz ambiente. Por ejemplo, cuando el robot entra en un túnel con menos luz reduce su velocidad para prevenir accidentes.

44Manual para el profesor

El programa se inicia asignando el valor del sensor de luz a una variable. De este modo utilizamos el módulo “Datos → Asignar variable → Luminosidad” y seleccio-namos la opción “Crear Variable”.

Llamamos a la variable “LightValue”, que almacenará el valor del sensor de luz.

A continuación, asignamos este valor de la variable a la velocidad del robot. Esto se logra mediante la asignación de la variable “LightValue” al campo “velocidad de las ruedas” del módulo de movimiento recto.

45Manual para el profesor

Tenemos que revisar continuamente el valor del sensor de luz con el fin de cam-biar la velocidad de mOway cada vez que la luminosidad de la habitación varía. Por este motivo, el programa se ejecuta en un bucle.

• Práctica 4.5.1. Encender el LED frontal cuando el valor del sensor de luz es menor que un cierto valor, utilizando el módulo “Acciones de mOway → Luces”.

46Manual para el profesor

Qué hemos aprendido

Qué es una variable y para qué puede ser útil.

Cómo asignar el valor de un sensor a una variable.

Cómo usar una variable para modificar la velocidad del movimiento.

Nuevos retos

• Enciende el LED frontal del robot cuando haya oscuridad.

Comprueba lo que sabes

1. Si el programa no fuese un bucle, es decir, si acabase en un bloque “Fin”, ¿el valor del sensor cambiaría?

2. ¿Por qué es necesario el uso de una variable en este programa?

a) Para detectar el nivel de luminosidad y avanzar si está oscuro

b) Para poder variar la velocidad de avance dependiendo del nivel de lumi-nosidad.

47Manual para el profesor

4.6 Práctica VI. Acelerómetros. Aparcando “al toque”

En la práctica siguiente emplearemos el acelerómetro integrado en el robot mOway. El MMA7455L de Freescale es un acelerómetro de tres ejes con comuni-cación I2C/SPI con un rango de detección de aceleraciones de 2g a 8g (g = acele-ración de la gravedad 9,8 m/s2).

El principio de operación de los acelerómetros e inclinómetros de tecnología MEMS está basado en el traspaso térmico por convección natural. Estos dispositivos mi-den cambios internos de la transferencia de calor causada por la aceleración, ofre-ciendo ventajas significativas sobre el empleo de una estructura tradicional sólida basada en elementos mecánicos.

Midiendo aceleraciones podemos medir la acción de la gravedad para saber si el robot está inclinado o si está sobre un suelo llano. También podemos medir variaciones bruscas de velocidad, como las provocadas por un choque o un golpe externo.

En la imagen se muestra los diferentes ejes en los que podemos medir acelera-ciones y su signo. El acelerómetro nos devuelve una señal analógica en cada eje. Una aceleración de valor 0 se corresponde con una valor de 127 en la variable de MowayWorld. Valores por debajo de 127 corresponderán a aceleraciones negativas y superiores a 127 corresponderán a aceleraciones positivas.

48Manual para el profesor

En esta práctica vamos a utilizar el acelerómetro para detectar aceleraciones en el eje y, para detectar un choque en la parte de atrás del robot cuando retrocede. Mientras el robot se mueve a velocidad constante la aceleración del robot será aproximadamente cero. En el momento en el que el robot se choque experimenta-rá una aceleración en el eje y.

Esta aceleración es positiva debido a que la velocidad varía de un valor negativo (marcha atrás) a un valor positivo (cero). Por tanto, la variación de velocidad (ace-leración) es positiva.

Diseñaremos un programa que emplea los sensores de obstáculos delanteros para retroceder cuando encontramos un obstáculo frontal y el acelerómetro para detectar choques en la parte trasera.

Para guardar el valor del acelerómetro es necesario crear una variable. En este caso, dicha variable se crea desde la barra de tareas, aunque también es posible crearla en el propio módulo de lectura del sensor.

El nombre de la variable es “AcelY”.

49Manual para el profesor

El programa comienza con el robot avanzando en línea recta. Si los sensores de obstáculo detectan un obstáculo, el sentido del movimiento cambia, por lo que mOway retrocede. A continuación se muestra esta parte del programa.

50Manual para el profesor

Una vez que cambiamos de dirección introducimos una pausa de 200 ms para que las variaciones de velocidad asociadas al cambio de dirección no se confundan con el choque del robot.

51Manual para el profesor

Para la detección del choque hemos seleccionado un valor de 150, lo que equivale a +23 en el la aceleración del eje y. Este valor dependerá del robot y de los obstá-culos elegidos y deberá ser ajustada.

Este programa hará que el robot alterne avances y retrocesos de manera secuen-cial.

52Manual para el profesor

Para conseguir más flexibilidad a la hora de programar, es útil crear una variable para facilitar el ajuste del valor de aceleración. Para ello se emplea el módulo “Da-tos → Asignar Variable → Valor”, en el cual se crea la variable “AcelConst” de valor 150.

El valor del acelerómetro se comparará con la nueva variable creada. Si el valor tiene que ser ajustado, se puede hacer en el primer módulo (Asignar Variable).

• Práctica 4.6.1. Modificar el programa para utilizar el acelerómetro también en los obstáculos delanteros.

53Manual para el profesor

Qué hemos aprendido

Qué es un acelerómetro.

Cómo detectar si el robot se ha chocado.

Nuevos retos

• Modifica el programa para usar el acelerómetro también para choques fronta-les, en vez de usar los sensores de obstáculos.

Comprueba lo que sabes

1. ¿Qué valor del acelerómetro corresponde con una aceleración nula (0g)?

a) 0

b) 127

c) 150

2. ¿Es necesaria la pausa de 200ms?

a) Sí, para evitar que la aceleración causada por el cambio de dirección sea detectada por el acelerómetro

b) No es necesaria, el programa funcionaría igual

3. Para detectar el choque, ¿sería conveniente usar el bloque “Golpe”?

a) Sí, porque detectaría el golpe al chocarse

b) No, porque este bloque detecta choques en cualquiera de los ejes, y en este caso sólo nos interesa el eje “y”

54Manual para el profesor

4.7 Práctica VII. La Copia

En esta práctica se va a introducir el uso del Módulo de Radiofrecuencia mOway. Este módulo permite al robot mOway comunicarse con otros robots y con el PC.

Como punto de partida utilizaremos el programa de la práctica II: El encierro. El propósito de la práctica es utilizar dos mOways de manera que uno se quede ence-rrado en un recinto y el otro repita los movimientos que realiza el primer mOway.

El robot mOway 1 se situará dentro de una superficie blanca delimitada por una línea negra y el segundo robot se situará al lado del primer robot fuera del recinto, como se muestra en la imagen adjunta.

El robot mOway avanzará en línea recta hasta encontrar una línea negra. En ese caso avisará por radiofrecuencia al otro mOway de que ha encontrado una línea y rotará 126 grados. Una vez termine el movimiento continuará recto. El segundo robot lo que hará es avanzar recto hasta que reciba la orden de girar por radiofre-cuencia. En ese caso rotará 126 grados y continuará avanzando recto.

Para el desarrollo de prácticas con radiofrecuencia es necesario utilizar el módulo de expansión de RF. Este módulo se conecta en la parte superior de los dos robots mOway que utilizaremos en la práctica, como se aprecia en la imagen adjunta.

Trabajar con los módulos de RF es muy sencillo para el alumno ya que sólo hay que introducir al-gunos conceptos como el canal y la dirección. El canal dentro de la comunicación RF es similar al concepto de una emisora de radio. Si se desea es-cuchar una emisora es necesario sintonizar su fre-cuencia. Por lo tanto si queremos que dos robots hablen entre sí deben estar en el mismo canal, deben “sintonizar la misma frecuencia”.

55Manual para el profesor

El concepto de dirección se asemeja al de los números de teléfono. Cuando que-remos hablar con una persona marcamos su número de teléfono. De la misma manera si un robot mOway desea enviar información a otro, deberá “marcar su número de teléfono”, es decir, su dirección.

Comencemos entonces con la programación del primer robot. Este robot tendrá el mismo comportamiento que el robot de la práctica II con la introducción de la comunicación por RF.

En primer lugar es necesario añadir el módulo de “Expansión → Comunicaciones → Comenzar”. En este módulo debemos seleccionar el canal y la dirección.

Recordamos que para que dos robots se comuniquen deben estar en el mismo ca-nal y tener una dirección cada uno. Si en un aula se trabaja con diferentes grupos sería conveniente asignar diferentes canales a cada uno de los grupos para evitar interferencias. En este caso seleccionaremos el canal “0” y la dirección “1” para el robot mOway encerrado.

Una vez configurado el módulo de radiofrecuencia introduciremos el bucle de la práctica II: el robot avanza recto y si observa en sus sensores la línea negra, pasa a la siguiente instrucción.

56Manual para el profesor

En este caso añadiremos una condición de “Expansión → Comunicaciones → En-viar”. Esta acción del robot es la que se emplea para enviar información de un robot a otro. Se trata de una condición, ya que el envío de datos se puede realizar o no, esto es, la información que enviamos al destino puede ser o no ser recibida por el destinatario. Por lo tanto, si no es recibida (camino falso) reintentamos la transmi-sión y si por el contrario la información se recibe (camino verdadero), realizamos la rotación de 126 grados y continuamos nuestro camino.

En la condición se configura la dirección de destino con un “2”, que será la di-rección del segundo robot. El dato a enviar será un “8”, que es el dato que hemos definido para realizar el giro. En el segundo robot analizaremos los datos recibidos y si recibimos un “8” realizaremos la rotación.

57Manual para el profesor

Una vez finalizado el programa del primer robot, lo guardamos y lo descargamos en uno de los robots.

La programación del segundo robot tendrá una estructura similar. En este caso el robot avanzará recto siempre que no se reciba un dato “8” por radiofrecuencia. Si se recibe, entonces el robot realiza un giro de 126 grados.

En un primer paso configuramos el segundo robot en el canal “0” y con la direc-ción “2”.

El siguiente paso será colocar la condición de “Recibir RF”. Esta acción, de forma análoga a la de “Transmitir RF”, es una condición cuyo resultado es falso si no se ha recibido ningún dato y verdadero si se ha recibido información. El módulo se encuentra en “Expansión → Comunicaciones → Recibir”.

58Manual para el profesor

La información recibida se debe almacenar de alguna forma. Para almacenar esa información se utiliza el concepto de “variable”. Crearemos dos variables “origin” y “datarf”. Dichas variables pueden ser creadas bien desde la barra de herramientas, o bien desde el propio módulo, como se muestra a continuación.

59Manual para el profesor

60Manual para el profesor

El módulo “Recepción RF” queda configurada como en la imagen inferior, para que la dirección del emisor de la información se guarde en la variable “origin” y el primero de los datos recibidos se almacene en la variable “datarf”.

El dato enviado por el primer robot era un “8”, por lo tanto, comprobaremos que el dato recibido en el segundo robot es un “8”. Para ello, utilizaremos la condición “Datos → Comparar → Variable”. Para ello seleccionamos la variable “datarf”, la condición “==” y un valor constante “8”.

Si la condición se cumple (datarf = 08) entonces realizaremos una rotación de 126 grados. Sin embargo, si es falsa volveremos al principio de bucle.

61Manual para el profesor

Por otro lado, en la condición de “Recepción RF”, si no hemos recibido ninguna información entonces continuamos avanzando recto.

Una vez terminado el segundo programa, lo guardamos y lo descargamos en el robot. Ahora estamos listos para encender los robots, el robot 1 dentro del recinto y el robot 2 fuera. En esta práctica hemos trabajado con los sensores de línea y hemos introducido el módulo de radiofrecuencia así como el uso de variables.

A partir del proyecto se pueden realizar mejoras en el programa para profundizar en la programación del robot:

• Práctica 4.7.1. Encender los LEDs mientras el robot está realizando un giro.

• Práctica 4.7.2. Modificar el programa para que utilice los sensores de obstá-culos en vez de los de línea.

• Práctica 4.7.3. Añadir un nuevo “seguidor”. Hacer que dos robots copien el movimiento del primer mOway.

62Manual para el profesor

Qué hemos aprendido

Cómo funciona la comunicación por radiofrecuencia.

Qué es el canal y la dirección.

Cómo comunicar dos robots mOway por radiofrecuencia.

Nuevos retos

• Encender los LEDs mientras el robot está realizando un giro.

• Modificar el programa para que utilice los sensores de obstáculos en vez de los de línea.

• Añadir un nuevo “seguidor”. Hacer que dos robots copien el movimiento del primer mOway.

Comprueba lo que sabes

1. ¿Cómo hay que configurar los robots para comunicarse por RF?

a) Ambos con la misma dirección y cada uno con su propio canal

b) Ambos con el mismo canal y cada uno con su propia dirección

c) Cada uno con su propia dirección y su propio canal

2. ¿Es necesario enviar el dato “8” en cualquier programa para realizar un giro?

a) Sí

b) No. Se puede definir cualquier dato para realizar cualquier acción, siempre y cuando ambos robots lo incluyan en su programa

63Manual para el profesor

4.8 Práctica VIII. AltavozEn esta práctica se empleará el altavoz interno de mOway para advertir de la

distancia a un obstáculo. El altavoz permite reproducir sonidos desde 250Hz hasta 5’6KHz. En este ejercicio, cuanto más cerca se encuentre el robot del obstáculo, mayor será la frecuencia del sonido emitido por el altavoz.

Empezamos comparando el sensor de obstáculos central derecho con un valor constante de 80.

Si el valor del sensor es mayor que 80, significa que el obstáculo está muy cerca y por tanto, la frecuencia del sonido emitido será alta (por ejemplo, 2190Hz). El módulo para activar el altavoz se encuentra en “Acciones de mOway → Sonido → Activar”.

Si el obstáculo está algo más alejado que en el caso anterior (es decir, si el valor del sensor es menor de 80 y mayor que 60), la frecuencia del sonido será más baja (por ejemplo, 1220Hz).

64Manual para el profesor

El resto de valores se explican a conti-nuación. Si el valor del sensor es menor que 60 y mayor que 40, la frecuencia del sonido será 732Hz. Si el valor del sensor es menor que 40 y mayor que 20, la fre-cuencia del sonido será 488Hz.

En caso de que el obstáculo esté muy lejos del robot, el altavoz deja de emitir el sonido. Esto se consigue gracias al módu-lo “Acciones de mOway → Sonido → De-tener”.

Para completar el bucle del programa, las flechas que salen desde los módulos “Altavoz” son conectadas al primer bloque condicional.

65Manual para el profesor

El diagrama completo es el siguiente.

• Práctica 4.8.1. Añadir más resolución y frecuencias al sensor de obstáculos. Por ejemplo, comprobar el valor del sensor en intervalos de 10.

66Manual para el profesor

Qué hemos aprendido

A detectar la distancia medida por los sensores de obstáculos.

A emitir sonidos con el altavoz interno de mOway.

Nuevos retos

• Añadir más resolución y frecuencias al sensor de obstáculos. Por ejemplo, com-probar el valor del sensor en intervalos de 10.

Comprueba lo que sabes

1. ¿Cuál es la unidad de medida de la frecuencia?

a) Hercios (HZ)

b) Decibelios (dB)

2. Un sonido es agudo si su frecuencia es:

a) Alta (muchos hercios)

b) Baja (pocos hercios)

3. ¿Qué se consigue exactamente con el bloque “Comparar Obstáculo”?

a) Detectar si hay un obstáculo o no

b) Obtener la distancia a la que se encuentra un obstáculo

c) Comparar el valor de uno de los sensores de obstáculos con otro valor

4. ¿Qué comparación es la correcta si queremos que la salida del boque “Compa-rar Obstáculo” sea verdadera cuando el valor del sensor sea igual a 20?

a) sensor == 20

b) sensor <> 20

67Manual para el profesor

4.9 Práctica IX. Defensor / LuchadorEn esta práctica se combinará el ejercicio de “El Encierro” de la Práctica II con el

uso de los sensores de obstáculos de mOway. Para realizar este ejercicio se em-pleará la Pista mOway para prácticas. El robot permanecerá encerrado en el inte-rior del círculo negro mientras expulsa los objetos colocados en su interior.

La primera parte del programa consiste en mantener el robot dentro del círculo. La lógica es similar a la de la práctica del “Encierro”. Se comprueba si los sensores de línea detectan la línea negra del círculo. Si es así (condición verdadera), mOway realiza un giro de 144 grados para no salirse del círculo. Por el contrario, si no se detecta el círculo (condición falsa), el robot continúa avanzando recto.

La segunda parte del programa se encarga de la detección de obstáculos y de expulsarlos fuera del círculo. A continuación se explica su funcionamiento.

• El primer módulo condicional comprueba si alguno de los sensores de obstáculo centrales (derecho o izquierdo) ha detectado un objeto. Si es así, el LED frontal parpadea y el programa vuelve al principio. Por tanto, si el robot no ha llegado al círculo negro, avanzará recto y empujará el objeto fuera del círculo. En este módulo condicional se selecciona la opción OR.

68Manual para el profesor

• El segundo módulo condicional comprueba si el sensor de obstáculos izquierdo detecta un objeto. Si es así, mOway gira 10 grados a la izquierda para enfrentarse con el obstáculo.

69Manual para el profesor

• El tercer módulo condicional comprueba si el sensor de obstáculos derecho detecta un objeto. Si es así, mOway gira 10 grados a la derecha para enfrentarse con el obstáculo.

70Manual para el profesor

El diagrama completo es el siguiente.

• Práctica 4.9.1. Si se graba este programa en 2 mOways, lucharán dentro del círculo negro. El robot que empuje a su oponente fuera del círculo, gana la pelea.

71Manual para el profesor

Qué hemos aprendido

Combinar los bloques de Línea y Obstáculos para hacer prácticas más completas.

Usar los 4 sensores de obstáculos de mOway para encontrar objetos.

Nuevos retos

• Si se graba este programa en 2 mOways, lucharán dentro del círculo negro. El robot que empuje a su oponente fuera del círculo, gana la pelea.

Comprueba lo que sabes

1. ¿Qué haría el robot si la detección de línea ne-gra se hiciera de la siguiente forma?

a) Giraría pero no avanzaría.

b) Avanzaría pero no giraría.

c) El funcionamiento es el mismo.

72Manual para el profesor

4.10 Práctica X. LaberintoEn esta práctica, el robot mOway tiene que salir de un laberinto. Este laberinto

consiste en pasillos rectos y giros de 90 grados, formados por “paredes”. Puede es-tar construido por cartones o cajas. En la imagen siguiente se muestra un ejemplo de laberinto.

El robot avanzará siguiendo las paredes del laberinto, usando los sensores de obstáculos laterales para comprobar la distancia a las mismas. Si mOway está muy cerca de una pared corregirá su trayectoria para evitar chocarse contra ella.

Cuando mOway detecta que hay una pared en frente, el robot primero gira 90 grados a la izquierda. Una vez que ha girado, si no se detecta otra pared en frente, el robot continúa avanzando.

73Manual para el profesor

Sin embargo, si detecta una pared en frente, significa que no es el camino correc-to, por lo que da media vuelta (gira 180 grados) y continúa avanzando.

El programa comienza con el módulo “Acciones de mOway → Movimiento→ Recta”.

Después se comprueba los sensores de obstáculos laterales para seguir a lo largo de las paredes del laberinto. Si el sensor izquierdo se activa, el robot está muy cerca de la pared izquierda y tiene que girar a la derecha para evitar chocarse. Si el sen-sor izquierdo no está activo, se comprueba el sensor derecho. Si éste esta activo, el robot gira a la izquierda.

Ambas rotaciones tienen activada la opción de ejecutarse continuamente.

74Manual para el profesor

Una vez que la detección de las paredes se ha realizado, mOway comprueba si hay una pared en frente por medio de los sensores de obstáculo centrales. Si cualquiera de ellos (opción OR activada) detecta una pared, el robot gira a la izquierda 90 gra-dos. Entonces, si no detecta otra pared significa que el camino está libre y mOway avanza. Para ello, el programa vuelve al inicio.

En cambio, si una vez realizado el giro a la izquierda se detecta una pared con los sensores frontales, significa que el camino está cortado y que tiene que dar media vuelta. En este caso, se realiza un giro a la derecha de 180 grados.

75Manual para el profesor

Una vez que mOway ha encontrado el camino correcto, el robot continúa avanzan-do. El programa vuelve al principio.

76Manual para el profesor

Qué hemos aprendido

Un algoritmo para resolver laberintos.

Nuevos retos

• Realizar un algoritmo diferente para resolver el laberinto. Por ejemplo, usar uno de los sensores laterales para seguir una pared.

Comprueba lo que sabes

1. ¿Se podría usar este algoritmo si el laberinto estuviese dibujado con líneas ne-gras en vez de ser paredes?

77Manual para el profesor

4.11 Práctica XI. Estación de datos remotaEn esta práctica vamos a emplear el

módulo RFUSB para la comunicación de un robot mOway con el PC em-pleando MowayWorld.

El programa consiste en enviar un comando desde el PC al mOway y cuando es recibido, el robot envía el valor del sensor de luz al PC. Este va-lor se muestra en la ventana de Comunicaciones de MowayWorld.

En la práctica VII (La copia) se empleó el módulo RF y se describió los conceptos de “canal” y “dirección”. En el caso del PC, el módulo RFUSB funciona igual que si fuera un robot mOway. Es un nodo más de la red, al cual hay que asignar una dirección y el canal en el que va a funcionar. El envío y recepción de los datos se realiza por medio de la ventana de Comunicaciones, la cual se muestra pulsando en botón indicado a continuación.

El robot esperará a recibir un mensaje de RF desde el ordenador. Si este mensaje contiene el comando elegido para pedir el valor del sensor de luz, el robot mOway enviará dicho valor.

El programa comienza configurando el módulo RF de mOway con la dirección “1” y el canal “0”.

78Manual para el profesor

Después se configura el módulo de recepción “Expansión → Comunicaciones → Recibir” para guardar el comando recibido desde el ordenador en una variable, llamada “Command”.

79Manual para el profesor

El programa espera en un bucle a recibir el mensaje RF desde el ordenador. Una vez que es recibido, la condición es verdadera y entonces el dato recibido es com-parado con el comando esperado. En este caso, se ha elegido un valor de 10 para el comando de lectura de sensor de luz.

Si el comando no es el esperado, el programa vuelve para recibir el siguiente mensaje RF. Sin embargo, si el comando es 10, el robot lee el sensor de luz. Esto se realiza por medio del módulo “Datos → Asignar Variable → Luminosidad”.

Para guardar el valor del sensor, se crea la variable “LightVal”.

Una vez que se ha guardado el valor del sensor de luz en la variable “LightVal”, este valor se envía al PC por medio del módulo “Expansión → Comunicación → En-viar”. El mensaje RF es enviado a la dirección del ordenador, en este caso “2”. Por tanto, al campo de “Dirección del receptor” se asigna un valor de “2”. El valor del sensor se asigna al campo “Dato 0” de los datos enviados.

80Manual para el profesor

Si el mensaje RF es enviado correctamente al PC, el programa vuelve a esperar el siguiente mensaje. Si no es así, el sensor es leído de nuevo y el robot intenta enviar el nuevo valor.

Una vez que el programa está terminado, se graba el robot y se conecta el RFUSB a uno de los puertos del ordenador. En la ventana de comunicaciones se configura el PC con la dirección “2” y el canal “0”, y se pulsa el botón Iniciar. La dirección del robot es “1”, a la cual el PC enviará los mensajes RF. Por tanto, la “Dirección del receptor” debe ser “1”.

81Manual para el profesor

Una vez que la configuración RF del ordenador ha sido realizada, se puede enviar el comando de lectura del sensor de luz al robot. El valor de este comando es 10 y es asignado al dato 0 de los datos a enviar desde el PC, como se muestra en la imagen siguiente.

Cuando se pulsa el botón enviar, el mOway recibe el comando y entones envía la lectura del sensor al ordenador. Este valor se escribe en el último dato (Dato 0) de los datos recibidos por el PC, el cual también recibe la dirección del mOway (en este caso es 1). En este ejemplo el valor del sensor de luz es del 18%.

Este proyecto puede ser modificado para adquirir más conocimientos sobre la programación de mOway:

• Práctica 4.11.1. Encender los LEDs del robot cuando se recibe un mensaje RF y apagarlos cuando el robot envíe los datos.

• Práctica 4.11.2. Añadir nuevos comandos para leer otros sensores. Por ejem-plo, 11 para los sensores de línea, 12 para los sensores de obstáculos, etc.

• Práctica 4.11.3. Añadir comandos para mover el robot. Por ejemplo, 20 para avanzar, 21 para retroceder, 22 para parar, etc.

82Manual para el profesor

Qué hemos aprendido

Cómo enviar mensajes desde el robot al ordenador.

Cómo ver los mensajes RF en MowayWorld.

Nuevos retos

• Encender los LEDs del robot cuando se recibe un mensaje RF y apagarlos cuan-do el robot envíe los datos.

• Añadir nuevos comandos para leer otros sensores. Por ejemplo, 11 para los sensores de línea, 12 para los sensores de obstáculos, etc. • Añadir comandos para mover el robot. Por ejemplo, 20 para avanzar, 21 para retroceder, 22 para parar, etc.

Comprueba lo que sabes

1. ¿Cuántos datos se pueden enviar por RF?

2. ¿La configuración del módulo RF es diferente para enviar mensajes bien a un robot o bien a un ordenador?

a) Sí

b) No