0% encontró este documento útil (0 votos)
95 vistas82 páginas

131700unidad Didactica de Robotica Educativa LabsLand

Este documento presenta una unidad didáctica sobre iniciación a la programación y la robótica mediante el uso del laboratorio remoto LabsLand. La unidad contiene 13 actividades diseñadas para enseñar conceptos básicos de programación y robótica de manera progresiva, culminando con dos proyectos para controlar un robot siguiendo una línea y haciéndolo salir de un laberinto.

Cargado por

Camilo Pineda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
95 vistas82 páginas

131700unidad Didactica de Robotica Educativa LabsLand

Este documento presenta una unidad didáctica sobre iniciación a la programación y la robótica mediante el uso del laboratorio remoto LabsLand. La unidad contiene 13 actividades diseñadas para enseñar conceptos básicos de programación y robótica de manera progresiva, culminando con dos proyectos para controlar un robot siguiendo una línea y haciéndolo salir de un laberinto.

Cargado por

Camilo Pineda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 82

Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -

Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Unidad didáctica
INICIACIÓN A LA PROGRAMACIÓN Y LA ROBÓTICA MEDIANTE EL LABORATORIO
REMOTO LABSLAND

Rev: 1.0 (Octubre/2016)

Autor: LabsLand Experimentia S.L. ([email protected])

-1-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Índice de contenidos

1. Título de la unidad didáctica 4

2. Fundamentación y justificación 4

3. Marco legislativo 5

4. Intenciones educativas 5

4.1 Objetivos 5

4.2 Contenidos 6

4.2 Competencias 6

5. Temporalización 7

6. Metodología 8

6.1 Fundamentos metodológicos 8

6.2 Principios metodológicos 8

6.3 Estrategias organizativas del alumnado 9

6.4 Equipamiento y recursos 10

6.5 Organización del tiempo 10

6.6 Organización del espacio 11

6.7 Transversalidad 11

7. Actividades 12

7.1 Introducción a la robótica básica: actuadores y sensores 12

7.2 Accediendo al Laboratorio Remoto 16

7.3 Conociendo la interfaz del Laboratorio Remoto 16

-2-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

7.4 ¿Qué es un algoritmo? 16

7.5 Nuestro primer programa en el Laboratorio remoto: moviendo el robot 19

7.6 Programando los LEDs 28

7.7 Bucles 34

7.8 Sensores de infrarrojos 42

7.9 Condiciones 48

7.10 Variables 54

7.11 Funciones 59

7.12 Seguir la línea 64

7.13 Salir del laberinto 71

8. Evaluación 75

8.1 Criterios de evaluación 75

8.2 Procedimientos e Instrumentos de Evaluación 77

9. Conclusión 79

10. Bibliografía y webgrafía 80

-3-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

1. Título de la unidad didáctica

“Iniciación a la programación y la robótica mediante el Laboratorio Remoto LabsLand”.

2. Fundamentación y justificación

El aprendizaje de la programación es prioritariamente práctico y se obtiene mediante el ejercicio. A


través del esfuerzo requerido para discernir la forma más adecuada para resolver cada problema,
se adquiere la habilidad para utilizar eficientemente los distintos elementos de código disponibles.
Es por ello que no se puede plantear este tipo de estudio de forma puramente teórica, sino que es
necesario proponer un objetivo claro hacia el que los alumnos puedan orientar su labor.

Esta Unidad Didáctica está dirigida al alumnado de las etapas de Educación Secundaria Obligatoria
(ESO) y Bachillerato, aunque podría ser susceptible de uso en otros cursos escolares teniendo en
cuenta la novedad de sus aprendizajes. Entre las asignaturas que más se relacionan con los
contenidos destacan Ciencia, Tecnología, Ingeniería y Matemáticas – disciplinas académicas
conocidas con el acrónimo CTIM o STEM en lengua anglosajona. A su vez, también tienen cabida el
resto de las asignaturas, como son la enseñanza de lenguas extranjeras, lengua castellana, educación
artística, por su gran componente transversal.

En esta Unidad se plantea fijar como objetivo principal el conocimiento de la robótica básica,
desarrollando actividades de control de robots que utilicen de forma acumulativa las distintas
herramientas que proporcionan los lenguajes de programación. La organización de las actividades
se basa en esta progresión.

Una vez impartidos unos fundamentos básicos de robótica y algoritmia, se familiariza al alumnado
con la interfaz de programación online usada para los experimentos prácticos y se proponen algunas
formas de interacción simple con los sistemas actuadores de los dispositivos disponibles. A
continuación, se explican los bucles de control, de forma que se pueda utilizar adecuadamente los
sistemas sensoriales, seguidos de las condiciones, variables y funciones, requeridas para producir
programas complejos de control.

La unidad termina con dos proyectos de programación de robots, para afianzar los conocimientos y
poner a prueba las habilidades adquiridas por los alumnos: en primera instancia se genera el sistema
de control de un robot que sigue un recorrido simple y, aumentando la complejidad del código
correspondiente, se permite encontrar la salida de un laberinto. Al finalizar este trabajo, se habrá
logrado que los alumnos no sólo hayan adquirido nociones de programación básica, sino que
además hayan podido observar su utilidad en un entorno práctico.

-4-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

3. Marco legislativo

Actualmente en España conviven dos ordenaciones de enseñanza en la etapa de Educación


Secundaria Obligatoria, que se distribuyen del siguiente modo:

● En Educación Secundaria Obligatoria:


o Los 1º y 3º cursos de Educación Secundaria Obligatoria en España obedecerán a la
Ley Orgánica 8/2013 de 9 de diciembre para la Mejora de la Calidad Educativa
(LOMCE)
o Los 2º y 4º cursos de Educación Secundaria Obligatoria en España obedecerán a la
Ley Orgánica 2/2006 de 3 de mayo de Educación (LOE)
● El Bachillerato:
o El 1º curso de Bachillerato en España obedecerá a la Ley Orgánica 8/2013 de 9 de
diciembre para la Mejora de la Calidad Educativa (LOMCE)
o El 2º curso de Bachillerato en España obedecerá a la Ley Orgánica 2/2006 de 3 de
mayo de Educación (LOE)
● Educación Secundaria Obligatoria y Bachillerato:
o Real Decreto 1105/2014 de 26 de diciembre, por el que se establece el currículo básico
de la Educación Obligatoria y del Bachillerato (BOE n.º 3, de 3 de enero de 2015)
o Orden ECD/1361/2015 de 3 de julio, por la que se establece el currículo de Educación
Secundaria Obligatoria y Bachillerato para el ámbito de gestión del Ministerio de
Educación, Cultura y Deporte y se regula su implantación, así como la evaluación
continua y determinados aspectos organizativos de las etapas

Es importante considerar que Cada Comunidad Autónoma deberá atender a la legislación vigente
en materia educativa que le corresponda para llevar a cabo su propia programación didáctica y
adaptarla de forma efectiva y eficiente.

4. Intenciones educativas

4.1 Objetivos

Esta Unidad Didáctica contribuirá a alcanzar el siguiente objetivo general:

-5-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

– Desarrollar en los y las estudiantes capacidades cognitivas de análisis crítico y habilidades de


ingeniería mediante la enseñanza de conocimientos de programación y el ensamblaje de robots a través
de un lenguaje de programación por bloques.

En cada una de las actividades que conforman esta unidad didáctica se detallarán los objetivos
específicos a los que cada una contribuye, con el propósito de lograr la adquisición del objetivo
general.

4.2 Contenidos

Los contenidos que se trabajarán en esta Unidad Didáctica son:

1. Conocimiento de un robot y fundamentos básicos de la robótica


2. Interfaz del laboratorio remoto
3. Algoritmos y diagramas de flujo
4. Nuestro primer programa en el Laboratorio remoto: moviendo el robot
5. Unidad LED
6. Bucles
7. Sensores de infrarrojo
8. Condiciones
9. Variables
10. Funciones
11. Robot sigue-línea
12. Laberintos en robótica

En cada actividad se especifican los contenidos específicos correspondientes.

4.2 Competencias

Atendiendo a la Ley Orgánica 2/2006, de 3 de mayo, de Educación (LOE) esta Unidad Didáctica
contribuirá, por orden de prioridad, a la consecución de las siguientes competencias:

● Competencia en tratamiento de la información y competencia digital


● Competencia para aprender a aprender
● Competencia en autonomía e iniciativa personal
● Competencia matemática
● Competencia en el conocimiento y la interacción con el mundo físico
● Competencia en comunicación lingüística
● Competencia social y ciudadana

-6-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

● Competencia cultural y artística

Atendiendo a la Ley Orgánica 8/2013, de 9 de diciembre, de Educación (LOMCE) esta Unidad Didáctica
contribuirá, por orden de prioridad, al logro de las siguientes competencias básicas:

● Competencia digital
● Aprender a aprender
● Sentido de la iniciativa y espíritu emprendedor
● Competencia matemática y competencias básicas en ciencia y tecnología
● Comunicación lingüística
● Competencias sociales y cívicas
● Conciencia y expresiones culturales

5. Temporalización

La presente Unidad Didáctica, como se ha mencionado con anterioridad, se trabajará principalmente


en las asignaturas de Ciencia, Tecnología, Ingeniería y Matemáticas (CTIM), siendo posible su uso
también en cualquier otra.

Se organizará en 12 actividades teórico-prácticas y se estima que su duración total sea de


aproximadamente 24 horas. Puesto que se prevé impartir la asignatura de informática durante 3
horas a la semana, el contenido propuesto se extendería a 8 semanas de clase.

Semanas 1 y 2 Introducción a la robótica y algoritmia básica Temas 1 a 4

Semanas 3 y 4 Bucles de control y sistemas de sensado Temas 5 a 7

Semanas 5 y 6 Sentencias condicionales, variables y funciones Temas 8 a 10

Semana 7 Programación de un robot sigue-líneas Tema 11

Semana 8 Resolución de laberintos mediante robótica Tema 12

El reparto de actividades se ha realizado de esta manera debido a que los conceptos se asimilan
mejor cuando se imparten en ese orden. Se pretende partir de los métodos más generales y sencillos
para finalmente llegar al objetivo final que es la programación de un robot que es capaz de salir de
un laberinto.

6. Metodología

-7-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

6.1 Fundamentos metodológicos

El planteamiento metodológico que se llevará a cabo en esta Unidad Didáctica buscará la integración
de contenidos científicos, tecnológicos y organizativos, la capacidad de autoaprendizaje y la
capacidad para trabajar en equipo. Para alcanzar los objetivos educativos propuestos en el módulo,
la metodología que se plantea perseguirá, principalmente, fomentar la motivación y despertar el
interés de los alumnos y alumnas hacia los contenidos correspondientes y citados con anterioridad.

6.2 Principios metodológicos

La existencia de unos principios metodológicos y unas estrategias se justifica porque debemos partir
de una forma de proceder didáctica, que facilite de manera activa, significativa, globalizadora,
constructiva y socializadora; la funcionalidad del proceso de enseñanza aprendizaje, bajo un clima
de afecto y confianza, y conforme a un entorno creativo, en el que se favorezca la igualdad de
oportunidades entre el alumnado.

Algunos de estos principios metodológicos son:

● Favorecer un aprendizaje significativo y progresivo, partiendo de lo que se domina hasta


alcanzar las competencias requeridas

● Potenciar un aprendizaje variado mediante la utilización de diferentes técnicas tecnológicas


y la variación de actividades prácticas

● Ordenar las actividades didácticas de forma progresiva, de manera que los alumnos y las
alumnas tengan una guía sistemática y coherente que favorezca la consecución de los
aprendizajes

● Fomentar el trabajo cooperativo y colaborativo, cuando se pueda, para que el alumnado se


familiarice con las tareas compartidas, la dedicación de un tiempo, unos espacios y con unos
procedimientos para llegar a acuerdos en la programación y elaboración de proyectos

● Motivar la actividad, la investigación y la experimentación en el alumnado de modo que


pueda ir construyendo sus propios esquemas de conocimiento activamente a partir de lo que
ya conoce y lo que se le ofrece, dejando a un lado la mera contemplación ofreciéndoles
estrategias que les ayuden a ser creativos/as, potencien su imaginación y la capacidad de
observación

-8-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

● Es importante evaluar continua, global e individualmente el proceso de enseñanza-


aprendizaje y facilitar la participación de los alumnos y alumnas en el proceso de evaluación
de todas las actividades realizadas

Se recomienda al profesorado actuar como guía del proceso de aprendizaje, facilitando los recursos
necesarios a la vez que asesora y orienta la adquisición de conocimientos, habilidades, destrezas y
actitudes relacionadas con la programación y el ensamblaje de robots.

6.3 Estrategias organizativas del alumnado

Se recomienda organizar el aula de manera flexible para propiciar actividades de enseñanza-


aprendizaje y evaluación autónomas, así como compartidas con el grupo-clase. Para ello se
utilizarán agrupamientos de diversos tipos, teniendo en cuenta el número de personas que
cohabitan en el espacio:

● Gran grupo

Podría ser interesante este modelo organizativo porque permite que todo el alumnado coopere para
realizar producciones que necesiten de implicación conjunta. A su vez, al presentar los proyectos de
robótica todos y todas podrían sugerir propuestas de mejora contribuyendo a la generación de
feedback satisfactorio.

● Pequeño grupo

Se podrían formar grupos de 3 y/o 4 personas para desarrollar actividades colectivas fomentando el
trabajo cooperativo y colaborativo. De este modo, surgirían mayor cantidad de opiniones e ideas a la
hora de realizar los diversos proyectos utilizando la técnica del Brainstorming o lluvia de ideas.

● Individuales

Este tipo de actividades se podrían realizar para una mayor introspección del alumnado. Además,
en los casos en los que no sea posible acceder al laboratorio remoto de forma conjunta, se recurrirá
a este estilo de agrupamiento.

6.4 Equipamiento y recursos

Con el propósito de enriquecer e incentivar el desarrollo de las actividades, en esta Unidad Didáctica
nos serviremos de los siguientes recursos:

● Recursos humanos

-9-
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

○ Docente

○ Alumnado y sus familias

● Recursos técnicos y materiales

○ Material fungible (papel, lápiz, etc.)

○ Ordenadores con conexión a Internet

○ Cuenta LabsLand

● Recursos del entorno

○ Centro educativo y aula ordinaria. También espacios personales como la vivienda


familiar que disponga de conexión a Internet

6.5 Organización del tiempo

Atendiendo a la dificultad de cada una de las actividades y al tiempo estimado para la realización
de cada una de ellas, la organización temporal propuesta es la siguiente:

Actividad Teoría Ejercicios

1 40 min 1 hora y 20 min

2 50 min 1 hora y 10 min

3 50 min 1 hora y 10 min

4 1 hora 1 hora

5 25 min 35 min

6 1 hora 1 hora

7 30 min 45 min

8 1 hora 1 hora

9 30 min 1 hora

10 1 hora y 10 min 1 hora y 20 min

- 10 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

11 1 hora y 20 min 1 hora y 20 min

12 1 hora y 30 min 1 hora

6.6 Organización del espacio

La organización espacial va a influir decisivamente en la forma de realizar las actividades. En un


aula, debe ser flexible y conforme a las necesidades que vayan surgiendo.

Los únicos espacios de trabajo requeridos para las actividades propuestas en esta Unidad Didáctica,
dentro del centro educativo, serán:

– Espacio Ordinario: El aula de clase, para los ejercicios teóricos y manuales

– Espacio Específico: El aula de informática, desde el que los alumnos puedan conectarse al
laboratorio remoto online de LabsLand

6.7 Transversalidad

Uno de los principios y fines de la educación según la Ley 2/2006, de 3 de mayo, de Educación (LOE)
y la Ley Orgánica 8/2013, de 9 de diciembre, para la mejora de la calidad educativa (LOMCE) que
se citan con anterioridad, es la educación en valores como la libertad personal, la responsabilidad,
la ciudadanía democrática, solidaridad, tolerancia, justicia, esfuerzo, cooperación, colaboración, etc.
Los temas transversales contribuyen de manera especial a la educación de valores morales y
cívicos, entendida ésta como una educación al servicio de la formación de personas capaces
de construir racional y autónomamente su propio sistema de valores y, a partir de ellos, capaces
también de enjuiciar críticamente la realidad que les ha tocado vivir, e intervenir para conseguir
su transformación y mejora (Temas transversales y desarrollo curricular, MEC, 1.993).

Los temas transversales que se trabajarán en esta Unidad Didáctica, a parte de los ya citados, son
educación para el consumidor y usuario, educación para la convivencia y paz, educación para los
derechos humanos, educación para la salud, educación ambiental y educación para la igualdad de
trato entre los sexos. Esto es así porque no se trata únicamente de que el alumnado aprenda a
programar, sino también de que adquiera valores para trabajar en equipo, lograr respetar a sus
iguales, crear proyectos que contribuyan a una mejora social y desarrollar sus habilidades creativas,
de forma que se aprovechen todos los contenidos para la creación de seres independientes y
autónomos en su proceso de aprendizaje.

- 11 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Sería interesante proponer al alumnado temáticas transversales, de forma que contextualice los
distintos proyectos relacionados con la robótica. De este modo, el alumnado se podría sentir más
motivado sabiendo que su producto podrá tener una utilidad y repercusión social.

7. Actividades

Las pautas específicas para organizar la distribución de las actividades se harán tomando como base
la secuencia de actividades de Merrill (activación, demostración, aplicación e integración) pero,
principalmente, atendiendo a las diferentes etapas del proceso de aprendizaje.

Cada una de las actividades se distribuye en actividades iniciales, donde se realizarán actividades
introductorias, de orientación y motivación, de detección y evaluación de conocimientos e ideas
previas con la finalidad de intentar modificar estereotipos y lograr un aprendizaje significativo.
También, en actividades de profundización, donde se expondrán los contenidos que se tratarán en cada
momento, empleando los medios disponibles y aplicando una metodología activa además de
proponer actividades individuales y/o grupales, orientadas a afianzar lo explicado. Por último, se
plasman actividades de consolidación, que tendrán que ver con actividades de investigación, diseño y
ejecución de proyectos.

7.1 Introducción a la robótica básica: actuadores y sensores

Objetivos específicos:

● Conocer los componentes internos del Robot y su correspondiente uso.


● Conocer las diferencias entre los dos tipos principales de Robots.

Contenidos específicos:

● Definición de Robot
● Origen del término Robot
● Sistemas que componen un Robot (control, sensorial, actuación)
● Tipos principales del Robot (manipulativos, móviles)

Definición de Robot

Se conoce como "robot" a toda máquina programable capaz de realizar una o más actividades de
forma autónoma. Debe tener la capacidad de recoger información e interactuar hasta cierto punto
con su entorno, para modificar su conducta y así tomar decisiones sobre las funciones a realizar.

- 12 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

La palabra "robot" proviene del checo "robota", que significa "trabajo duro o forzado". Fue creada
por el escritor Karel Čapek en su obra de teatro "Robots Universales Rossum" (1920), aunque su uso
se extendió gracias a las obras de ciencia ficción del escritor estadounidense Isaac Asimov.

Sistemas principales del Robot

Todo robot consta de tres sistemas principales:

- El sistema de control, generalmente en forma de ordenador auxiliar, que le permite


interpretar los datos percibidos y tomar las acciones pertinentes en función de los mismos,

- El sistema sensorial, que engloba todos aquellos dispositivos anexos que le permitan recabar
información acerca de su entorno y su propio estado,

- El sistema de actuación, al que pertenecen todos aquellos elementos físicos del robot que le
permiten realizar acciones sobre su entorno o sobre sí mismo.

Por simplicidad, la estructura general y el comportamiento de un robot pueden compararse con los
de un ser humano. Así, el sistema de control de una persona correspondería a su cerebro, que
procesaría la información del sistema sensorial (los sentidos, receptores de dolor, niveles
hormonales, etc.) y controlaría la actividad del sistema actuador (movimiento de las articulaciones
y todas las funciones naturales de los órganos del cuerpo). En temas posteriores se observará que
los métodos de recogida de información y toma de decisiones de los robots son igualmente similares
a los de un ser humano.

Tipos principales de Robot

Existen dos tipos principales de robots:

- Los robots manipuladores se encuentran normalmente anclados a una superficie, pero están
formados por una cadena de articulaciones que les permite alcanzar y realizar acciones en puntos
concretos de sus proximidades. Estos son los robots que suelen encontrarse en las cadenas de
montaje de las fábricas. El elemento final de un robot manipulador, conocido como "efector final",

- 13 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

es con frecuencia intercambiable para poder realizar distintas acciones, tales como recoger objetos,
pintar o soldar.

- Los robots móviles no disponen de efectores finales, pero tienen la capacidad de desplazarse
por su entorno, generalmente mediante ruedas. Normalmente necesitan un sistema sensorial más
preciso y exhaustivo que los manipuladores, ya que su área de trabajo puede resultar menos
predecible que la correspondiente a una cadena de montaje.

Por supuesto, ambos tipos de robots podrían combinarse entre sí para producir una máquina más
compleja, pero desde el punto de vista de la programación, cada parte sería independiente.

Robot manipulador Robot móvil

PROPUESTA DE EJERCICIOS

Motivación: Se propone a los alumnos pensar en robots ficticios que hayan visto en el cine y la
televisión y analicen qué partes de ellos corresponderían a la robótica de manipulación y qué
partes a la robótica móvil, teniendo en cuenta que algunas partes podrían formar parte de ambas
modalidades o de ninguna de ellas.

Agrupamiento: Toda la clase

Recursos: No se requieren

Espacio: Aula de clase

Tiempo: 20 minutos

- 14 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Solución: Por lo general, toda parte de un robot que tenga articulaciones y pueda desempeñar una
actividad concreta, aunque esta sea tan simple como la de una cámara de orientación variable, son
manipuladores, mientras que todo elemento que permita al robot cambiar su posición en el espacio
pertenece a la robótica móvil. Las piernas de los robots humanoides serían un ejemplo de ambas
modalidades, ya que tienen articulaciones que hay que programar pero producen un
desplazamiento.

Desarrollo: Se propone entonces a los alumnos usar la imaginación para diseñar sus propios
robots, combinando elementos de manipulación y móviles.

Agrupamiento: Individual

Recursos: Papel y lápiz

Espacio: Aula de clase

Tiempo: 30 minutos

Solución: Puesto que los alumnos probablemente se basarán sobre todo en elementos de ficción, no
se espera que el resultado sea realista, sólo que comprendan la diferencia entre la robótica de
manipulación y la móvil. De nuevo, es posible que incluyan partes que no correspondan a ninguna
de las dos, pero esto es admisible siempre que sepan darse cuenta de ello o argumentar
razonadamente si no están de acuerdo.

Consolidación: En grupos reducidos, los alumnos pondrán en común sus diseños y discutirán las
características de cada uno, proponiendo entre todos mejoras y combinándolos en un único
diseño, que al terminar mostrarán al resto de la clase.

Agrupamiento: Grupos reducidos (3 a 6 alumnos)

Recursos: Papel y lápiz

Espacio: Aula de clase

Tiempo: 30 minutos

Solución: Los criterios de clasificación de elementos antes descritos se mantienen. El profesor


deberá comprobar que los alumnos son capaces de identificar correctamente cada parte de sus
diseños.

- 15 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

7.2 Accediendo al Laboratorio Remoto

Un laboratorio remoto de robótica es una plataforma que, mediante Internet, permite comprobar el
funcionamiento de los programas realizados sobre un robot real. A este entorno se accede de
diferentes maneras.

Como profesor, tendrás la opción de acceder al laboratorio desde el espacio LabsLand de tu


institución, pudiendo agrupar diferentes laboratorios según el grupo de alumnos. Además, tendrás
que facilitarles a los alumnos un link o la forma para acceder al laboratorio. Dependiendo de lo que
hayas elegido en la configuración del espacio LabsLand de tu institución, podrán acceder ya sea
directamente a través de un LMS, o mediante un link.

Como estudiante, necesitarás que tu profesor te especifique el link o la forma para acceder al
laboratorio.

Si no sabes cómo acceder al laboratorio remoto:

● Si es estudiante, contacta por favor con tu profesor.


● Si eres profesor, no dudes en ponerte en contacto con nosotros escribiéndonos a esta
dirección de correo: [email protected].

7.3 Conociendo la interfaz del Laboratorio Remoto

Objetivos específicos:
● Conocer el interfaz del laboratorio remoto para acceder a sus diferentes secciones
Contenidos específicos:
● Definición de sitio web, mapa del sitio web.

Una vez hayas accedido al laboratorio, te encontrarás con la siguiente interfaz:

- 16 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Cuando creas que el programa es correcto, clica en el botón “Verificar” y se habilitará el botón
“Enviar al robot”. Cuando envíes el programa al robot, tendrás la opción de elegir diferentes
circuitos.

El primer circuito se enviará el programa a cualquier robot, los otros dos, son específicos.

Después de elegir el tipo de circuito, visualizarás el robot. Para que el robot ejecute la lógica del
programa, tendrás que clicar en el botón “Programar en Arduino”.

- 17 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

En este punto, podrás interactuar con el robot y el programa que has creado. Para que el programa
se ejecute correctamente, antes de ejecutar el programa, es recomendable mover el robot al centro
del circuito con las flechas que se aprecian en la imagen.

Para volver al código visual y repetir indefinidamente el proceso, hay que darle al botón “Salir
ahora”.

7.4 ¿Qué es un algoritmo?

Objetivos específicos:
● Desarrollar habilidades para la creación de diagramas de flujo
● Organizar actividades siguiendo el patrón de un algoritmo
Contenidos específicos:
● Definición de algoritmo
● Diagramas de flujo

Definición de Algoritmo y Diagramas de Flujo

Se conoce como "algoritmo" a un conjunto de instrucciones concretas que, ejecutadas en orden,


permiten la realización de una tarea. Una receta de cocina o las instrucciones de montaje de un
mueble son ejemplos cotidianos de algoritmos.

- 18 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Aunque los algoritmos deben codificarse en algún lenguaje de programación para que pueda un
ordenador pueda ejecutarlos, existen formas alternativas de representarlos para facilitar su
comprensión por parte de las personas. Los diagramas de flujo sirven para tal fin y los elementos
más importantes que los componen son los siguientes:

● El inicio y el final de un algoritmo se representan mediante cápsulas,

● Las acciones individuales, tales como cálculos y tomas de decisiones,


mediante rectángulos,

● Los datos de entrada y de salida a usar por las acciones, mediante


romboides,

● Los puntos en los que la ejecución puede tomar distintos caminos en


función de cierta condición, mediante rombos,

● Los elementos se conectan entre sí en orden mediante flechas.

A la hora de escribir un programa en un ordenador, es muy recomendable crear primero un guión


o diagrama de flujo que permita recordar qué acciones hay que implementar y en qué orden se
ejecutan.

Por ejemplo, supongamos que disponemos de las piezas necesarias para construir una silla o
taburete. Las instrucciones de montaje, junto a un posible código de programa y su correspondiente
diagrama de flujo, serían las siguientes:

1. Tómese el asiento del montar una silla:


dar la vuelta (asiento)
revés
para (cada pata de la silla):
2. Fíjese cada una de las fijar (pata, asiento)
patas al asiento dar la vuelta (asiento)
si (la silla tiene respaldo):
3. Dése la vuelta a la
fijar (respaldo, asiento)
estructura
4. Si la silla tiene respaldo,
fíjese al asiento

- 19 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

PROPUESTA DE EJERCICIOS

Motivación: Se propone a los alumnos escoger una actividad que realicen de forma cotidiana y
describirla en forma de diagrama de flujo.

Agrupamiento: Individual

Recursos: Papel y lápiz

Espacio: Aula de clase

Tiempo: 20 minutos

Solución: Ha de tenerse en cuenta que cada alumno puede desempeñar la misma tarea siguiendo
diferentes pasos. Se ha de evaluar que se usen correctamente las distintas formas de los diagramas
de flujo (entrada y salida, acciones, datos y decisiones).

Desarrollo: Para contrastar los diferentes algoritmos que pueden describir una misma tarea, cada
alumno dirá en clase cuál ha escogido para el ejercicio anterior y se compararán aquellas que sean
similares.

Agrupamiento: Toda la clase

Recursos: No se requieren

Espacio: Aula de clase

Tiempo: 20 minutos

Solución: El profesor debe permitir que los alumnos debatan acerca de la eficiencia de sus
algoritmos, asegurándose de que comprendan las restricciones temporales impuestas por los
mismos. Como norma, el orden propuesto para las acciones en un algoritmo tiene que respetarse.

- 20 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Consolidación: El profesor propondrá una tarea compleja que los alumnos deberán describir en
forma de algoritmo. Algunos ejemplos de ello podrían ser “ir a la Luna”, “llegar a presidente” o
“construir un robot”. La tarea no tiene por qué ser realista ni factible, puede permitirse que los
alumnos usen su imaginación y la fantasía.

Agrupamiento: Grupos reducidos (3 a 6 alumnos)

Recursos: Papel y lápiz

Espacio: Aula de clase

Tiempo: 30 minutos

Solución: De nuevo, el profesor sólo debe comprobar que los elementos de los diagramas de flujo
se utilicen correctamente y que la secuencialidad de las acciones se respete.

7.5 Nuestro primer programa en el Laboratorio remoto: moviendo el robot

Objetivos específicos:
● Identificar cómo se relaciona el movimiento de las ruedas del robot con el
movimiento del robot completo
● Aprender a programar el movimiento del Robot
Contenidos específicos:
● Definición de motor de corriente continua
● Programación del movimiento de un Robot

Definición de motor de corriente continua

Un motor de corriente continua (conocido también como motor CC


o DC) es un componente que convierte la energía eléctrica en energía
mecánica, provocando un movimiento de rotación continua en su eje.

Este tipo de motores son muy utilizados en un amplio rango de


electrodomésticos y aparatos además de en robótica. En nuestro caso
utilizaremos este tipo de motores para dotar de movimiento el Robot
disponible en Zumoline.

- 21 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Programando el movimiento del robot

Una característica básica de nuestro robot es su capacidad de moverse. Imaginemos que queremos
programar nuestro robot para que sea capaz de realizar cinco tipos de movimientos: avanzar,
retroceder, girar hacia la derecha, girar hacia la izquierda y girar sobre sí mismo. Debemos tener
en cuenta que estos movimientos deben darse utilizando únicamente dos motores y por lo tanto dos
ruedas. La configuración de velocidad para cada rueda en función del movimiento que queremos
realizar la podemos ver en la siguiente imagen:

Avanzar Girar Rotar

Como vemos, los distintos movimientos que queremos generar dependen principalmente de la
diferencia de velocidad entre las dos ruedas. En el caso de que queramos que el robot se mueva
hacia la izquierda, tendríamos que dar una velocidad baja a la rueda izquierda y una velocidad alta
a la rueda derecha. Si quisiéramos que el robot avanzara o retrocediera, lo que tendríamos que hacer
es dar la misma velocidad a cada rueda. En la programación del robot, para la asignación de
distintas velocidades introduciremos valores entre 0 y 255; con ello conseguiremos generar las
distintas velocidades de rotación. En la siguiente imagen veremos dos ejemplos de programación,
una para el caso de avanzar y otra para la rotación hacia la izquierda:

- 22 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Vemos que en primer lugar avanzamos durante 2 segundos, para luego realizar un giro durante
otros dos segundos y vuelta al principio.

Vamos a ver ahora cómo construir este programa en el Laboratorio remoto. Lo primero es entrar en
la sección de “Ardublocks” y seleccionar la familia de bloques “Funciones”.

Ahora seleccionamos el primer bloque “Arduino configuración - Arduino bucle infinito” y lo


arrastramos hasta la zona del programa en la parte central del entorno. Este bloque hará que los
bloques que coloquemos dentro de él se ejecuten continuamente. A continuación, seleccionamos la
familia de bloques “Motores” para incluir los bloques relacionados con el movimiento de los
motores de la misma forma.

- 23 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Ahora vamos a añadir la velocidad de giro de los motores. Para ello, seleccionamos la familia de
bloques “Matemáticas” y arrastramos el primer tipo de bloques “Un número” a los huecos libres en
los bloques correspondientes al movimiento de los motores.

Un truco: cuando necesites el mismo tipo de bloque en diferentes lugares, puedes usar Ctrl+C y
Ctrl+V para copiar y pegar el mismo bloque y usarlo en otro lugar, con lo que ahorrarás el tiempo
de seleccionarlos de uno en uno.

De momento, este programa actuaría sobre los motores del robot pero no hemos definido cuánto
tiempo se tienen que mover los motores para que el robot haga lo que nosotros queremos. Para ello,
vamos a incluir bloques que controlen el tiempo a través de distintos retardos. Abrimos la familia

- 24 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

de bloques “Tiempo” e insertamos bloques de tipo “Esperar - milisegundos” entre el movimiento


hacia adelante del robot (es decir después del segundo bloque de movimiento) y después del giro
(después del tercer bloque de movimiento). Nuestro programa quedaría así:

Una vez que hemos construido nuestro programa tenemos que ejecutarlo en el robot para ver si
funciona como nosotros queremos. Al entrar en la sección “Zumoline” del laboratorio remoto
seleccionamos el programa que aparece en la sección “Tus programas” y lo cargamos en el robot
con el botón ”Programar”. Podemos ver en la parte central entorno como nuestro robot se mueve
siguiendo las órdenes que hemos programado. Este sencillo programa no nos permite controlar el
robot interactivamente, y lo más probable es que se acabe chocando con alguno de los límites del
entorno de operaciones del robot.

Para tener un mayor control sobre los movimientos del robot, el Laboratorio remoto incluye una
serie de botones programables con lo que podemos controlar el robot de forma interactiva. Vamos
a asignar a cada botón un movimiento del robot.

De vuelta a la sección “Ardublocks” vamos a construir un programa para que cuando pulsemos el
botón A, el robot avance, cuando se pulse el botón “B” el robot retroceda y que cuando se pulse el
botón “C” el robot gire.

Para ello, después de incluir un bloque de bucle infinito como en el ejemplo anterior, abriremos la
familia de bloques “Lógica” y añadiremos un bloque “si - hacer”, como vemos en la siguiente
imagen:

- 25 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Los bloques “si - hacer” ejecutan el bloque que conectemos en la parte “hacer” siempre que se
cumpla la condición expresada en el bloque que conectemos en la parte “si”. En nuestro ejemplo
queremos que cuando se pulsa un botón, el robot se mueva. Vamos a incluir el bloque que informa
de que un botón ha sido pulsado. Para ello, abrimos la familia de bloques “Botones” y arrastramos
a nuestro programa el bloque “Botón - como”. Este bloque nos permite asignar un nombre a los tres
botones disponibles en el interfaz del Laboratorio remoto. Asignamos los tres botones como vemos
en la siguiente imagen:

Ahora que hemos definido los nombres de los botones, podemos seleccionar el botón
correspondiente dentro del bloque “está pulsado”. Este bloque nos informa si un determinado botón
está pulsado y lo vamos a usar para conectarlo en el bloque condicional que hemos añadido
previamente como se ve en la siguiente imagen.

- 26 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

También hemos añadido los bloques que actúan sobre los motores como en el ejemplo anterior. En
este caso, como es el botón “adelante” la velocidad de los dos motores es la misma para que el robot
se mueva adelante. Se ha incluido también un bloque de espera para que los motores se muevan
durante ese tiempo, y un bloque “Cambiar velocidad de los motores” para mantener los motores
parados siempre que no se pulse un botón.

Ahora vamos a incluir los bloques correspondientes a los otros botones para que el robot gire o vaya
hacia atrás, como puede verse en la siguiente imagen:

- 27 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Igual que en el ejemplo anterior, vamos a la sección del Laboratorio remoto “Zumoline” y
programamos nuestro robot con el nuevo ejemplo. En este caso podremos controlar el movimiento
del robot de forma interactiva y remota usando los botones A (adelante), B (atrás) y C (girar). Este
programa es muy útil para usarlo en combinación con programas más complejos que requieran que
el robot comience en una posición inicial concreta. De esta forma podemos colocar manualmente
nuestro robot donde queramos.

Nota: en estos ejemplos hemos visto bloques condicionales, bucles, etc. De momento no es necesario
conocer cómo funcionan esos bloques en profundidad sino familiarizarse con el proceso de
construcción y ejecución de los programas en el Laboratorio remoto. En las siguientes actividades
se explicará en mayor profundidad cada familia de bloques.

PROPUESTA DE EJERCICIOS

Motivación: Escribir un programa en Blockly que permita al robot girar sobre sí mismo.

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

- 28 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 10 minutos

Solución: Basta fijar las velocidades de las ruedas al mismo valor, pero con distinto signo.

Desarrollo: Escribir un programa en Blockly que permita al robot realizar un recorrido compuesto
de todos los tipos de movimiento explicados.

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Se dejará libertad a cada alumno para crear la trayectoria que prefiera. Pueden utilizarse
todas las sentencias de programación de motores explicadas, pero siempre debe existir una
sentencia de espera después de cada modificación de las velocidades.

Consolidación: Escribir un programa en Blockly que permita al robot realizar un recorrido


concreto, dado por el profesor, que debe combinar trayectos rectos, curvas y giros puntuales. Un
ejemplo de este podría ser el siguiente, donde los giros se muestran en rojo:

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: Ordenador con conexión a internet, pizarra

- 29 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: Se premiará que el recorrido seguido por el robot se asemeje lo más posible al planteado,
pero dando libertad a los alumnos para desarrollar su creatividad, aportando quizá elementos
nuevos al movimiento del robot, siempre que sepan explicar cómo los han programado.

7.6 Programando los LEDs

Objetivos específicos:

● Conocer las características de los diodos LED


● Aprender a programar con diodos LED usando el lenguaje de programación
visual Blocky

Contenidos específicos:

● Definición de diodo LED


● Funcionamiento de un diodo LED

- 30 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Definición de diodo LED

Un diodo es un componente que sólo deja pasar la corriente en un sentido y la


bloquea en el otro. En el caso de los diodos LED (light-emitting diode), cuando
conducen corriente emiten luz. Esta clase de componentes son muy económicos
además de ser muy eficientes, ya que consumen muy poca potencia, y son muy
utilizados en una amplia variedad de dispositivos de nuestra vida cotidiana. Allá
donde haya luz, probablemente se esté usando un LED.

Encendiendo y apagando un LED

Como ya hemos comentado, el LED es un componente que emite luz, por lo tanto a la hora de
programar debemos tratarlo como un actuador. Como actuador, un diodo LED únicamente posee
dos estados, encendido (HIGH) o apagado (LOW) como cualquier actuador digital (es decir, uno o
cero).

Una vez sabemos la naturaleza de este tipo de componentes podemos pasar a programar el
encendido y apagado de uno de los LEDs del robot. Podemos ver un ejemplo en la siguiente imagen
donde encendemos uno de los LEDs integrados:

Por otro lado en la siguiente imagen vemos cómo apagar el LED:

De esta forma podemos encender y apagar los LEDs integrados en el montaje del robot. Podemos
encontrar este bloque en el menú “Leds”, como se ve en la siguiente imagen:

- 31 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Haciendo parpadear un LED

Para conseguir que un LED parpadee, lo primero que debemos hacer es encender el LED, como la
placa controladora del robot actúa muy rápido si programamos que apague el LED tras darle la
orden de encendido pasará de una orden a otra demasiado rápido y parecerá que el LED siempre
se mantiene encendido. Para evitar este efecto hay que esperar un tiempo mediante el bloque
Esperar. Este bloque hace esperar al programa el número de milisegundos que introducimos en su
interior; como queremos que el LED parpadee cada segundo, hemos puesto 1000 milisegundos
dentro del bloque. Tras esta espera podemos apagar el LED y, como el programa se ejecuta de forma
cíclica, debemos esperar otro segundo antes de volver al principio. En la siguiente imagen podemos
ver un ejemplo sobre la programación:

- 32 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

El bloque “Esperar” se encuentra en la sección “Tiempo”, como se puede ver en la siguiente captura:

Una vez hayamos construido nuestro programa, tendremos que ejecutarlo en el robot para ver si
funciona como nosotros queremos. Al entrar en la sección “Zumoline” del laboratorio remoto,
seleccionamos el programa que aparece en la sección “Tus programas” y lo cargamos en el robot
con el botón ”Programar”. Podemos ver en la parte inferior del entorno como el LED parpadea a la
velocidad que hemos establecido en nuestro código.

PROPUESTA DE EJERCICIOS

Motivación: Escribir un programa en Blockly que permita que dos LEDs parpadeen de forma
simultánea. El profesor guiará a los alumnos para permitirles llegar a la solución correcta.

Agrupamiento: Toda la clase

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 10 minutos

Solución: Puesto que los LEDs deben encenderse y apagarse al mismo tiempo, la solución es
sencilla:

- 33 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Desarrollo: Escribir un programa en Blockly que permita que dos LEDs parpadeen de forma
alterna.

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 5 minutos

Solución: De nuevo, como los LEDs cambian a la vez, la solución es muy simple:

Consolidación: Escribir un programa en Blockly que permita que dos LEDs parpadeen a distintos
ritmos. Se propondrá a los alumnos que comiencen haciendo que uno de los LEDs parpadee el
doble de rápido que el otro, pero se permitirán otras combinaciones.

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

- 34 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Como los LEDs ya no están sincronizados, los tiempos de espera y las acciones pueden
ser aleatorias, pero se debe respetar las siguientes restricciones

● Uno de los LEDs debe recibir más comandos que el otro.

● Entre cada dos acciones asociadas a un mismo LED debe existir al menos un tiempo de
espera (pero estos tiempos no tienen por qué ser todos iguales)

● Las acciones de cada LED deben alternarse (apagar, encender, apagar, encender…)

● La primera y la última acción de cada LED deben ser opuestas (si se empieza encendiendo,
se debe acabar apagando y viceversa)

Un ejemplo válido podría ser:

- 35 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

7.7 Bucles

Objetivos específicos:

● Comprender el concepto de bucle de control


● Comprender la estructura del bucle de control (while/for)
● Detectar las condiciones más favorables para el uso de un bucle while o un bucle
for

Contenidos específicos:

● Definición de bucle de control


● Bucle while
● Bucle for
● Romper o continuar el bucle

Definición de bucle de control

Se denomina bucle de control a un segmento de programa cuya ejecución se repite de acuerdo a ciertas
condiciones. Cada repetición de un bloque de código se llama iteración. Existen varios tipos de bucle
de control, según las necesidades del código: el bucle while y el bucle for. Ambos pueden
encontrarse en el laboratorio remoto en el panel de “Bucles”.

El bucle while (mientras)

- 36 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

El bucle while repite un bloque de código mientras que se cumpla una condición dada. Cuando esta
deja de ser cierta, el bucle termina y el programa continúa por donde iba. Volviendo al ejemplo del
tema 3 del montaje de una silla:

El programa comenzará por mirar si existen patas sin colocar. Como aún no se habrá colocado
ninguna, se entra en el bloque de código “fijar una pata al asiento” y, una vez ejecutado, se volverá
a evaluar la condición. Esto se repetirá hasta que la condición deje de ser cierta, cuando no queden
patas sueltas. Por ejemplo, para tres patas:

mientras (queden patas sueltas):

fijar una pata al asiento

1. Comienzo
2. ¿Quedan patas sueltas? Sí, 3 → Fijar una pata al asiento
3. ¿Quedan patas sueltas? Sí, 2 → Fijar una pata al asiento
4. ¿Quedan patas sueltas? Sí, 1 → Fijar una pata al asiento
5. ¿Quedan patas sueltas? No → Fin

Algunos lenguajes de programación permiten usar una variante del bucle while conocida como do-
while (hacer-mientras). La única diferencia entre while y do-while es que en la primera opción
siempre se comprobará la condición del bucle antes de comenzar, mientras que en la segunda
siempre se realiza al menos una iteración antes de realizar la comprobación.

Esta diferencia puede parecer trivial, pero en ocasiones puede simplificar el trabajo del
programador. Por ejemplo, durante el montaje de la silla sabemos que empezamos sin ninguna pata
fija al asiento, así que al principio no haría falta hacer la comprobación:

- 37 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

hacer:

fijar una pata al asiento

mientras (queden patas sueltas):

1. Comienzo

2. Fijar una pata al asiento

3. ¿Quedan patas sueltas? Sí, 2 → Fijar una pata al asiento

4. ¿Quedan patas sueltas? Sí, 1 → Fijar una pata al asiento

5. ¿Quedan patas sueltas? No → Fin

El bucle for (desde/hasta)

El bucle for repite un bloque de código para un número específico de iteraciones. Cuando se han
realizado todas las repeticiones, el bucle termina y el programa continúa por donde iba. Si se conoce
el número exacto de veces que se desea repetir un bloque, es mejor usar el bucle for que el bucle
while, ya que su ejecución es más sencilla para el ordenador.

Normalmente, un bucle for necesita una variable contador que permita al programa conocer en qué
iteración se encuentra. Esto se logra con un bloque “contar”.

- 38 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

En este caso, la variable pata comenzaría valiendo 1 e iría aumentando de 1 en 1 hasta llegar a 4
(incluído). Podemos usar el valor del contador de un bucle sacando un “elemento” de la pestaña
“Variables” del laboratorio remoto y asociándolo a la variable correspondiente.

Algunos lenguajes de programación permiten usar una variante del bucle for conocida como
foreach (para cada uno). Mientras que el bucle for va contando números para un rango dado,
foreach extrae elementos de un conjunto de datos y los va devolviendo de uno en uno, hasta
haberlos visitado todos.

Para nuestro ejemplo, suponiendo que tuviéramos un conjunto de datos que contuviese todas las
patas de la silla, foreach nos permitiría tomarlas de una en una en lugar de tener que recorrer dicho
conjunto manualmente. La principal ventaja de este método es que, si no conocemos el número de
elementos en nuestro conjunto de datos, podríamos recorrerlo dejando que el programa se ocupase
de averiguarlo por nosotros.

Digamos que llamamos “A”, “B” y “C” a las tres patas de un taburete, que tenemos guardadas en
una caja etiquetada como “patas”. Tendríamos dos formas de acceder a ellas:

● Con un bucle for:

para (N que vaya desde 1 hasta 3):

fijar al asiento la pata número N

- 39 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

1. Comienzo

2. N = 1

3. ¿N ≤ 3? Sí, 1 ≤ 3 → Fijar la pata número N al asiento. Como N = 1, será la pata A

4. N = 2

5. ¿N ≤ 3? Sí, 2 ≤ 3 → Fijar la pata número N al asiento. Como N = 2, será la pata B

6. N = 3

7. ¿N ≤ 3? Sí, 3 ≤ 3 → Fijar la pata número N al asiento. Como N = 3, será la pata C

8. N = 4

9. ¿N ≤ 3? No, 4 > 3 → Fin

● Con un bucle foreach:

para cada (elemento P dentro del conjunto “patas”):

fijar P al asiento

1. Comienzo

2. P es la pata A

3. Fijar la pata P al asiento

- 40 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

4. ¿Quedan patas sin poner? Sí, la B y la C → P es la pata B

5. Fijar la pata P al asiento

6. ¿Quedan patas sin poner? Sí, la C → P es la pata C

7. Fijar la pata P al asiento

8. ¿Quedan patas sin poner? No, ya están todas → Fin

Es importante recordar que nada impide anidar un bucle de control dentro de otro. Por ejemplo, si
quisiéramos revisar que una baraja de cartas francesa estuviera completa buscando sus cartas una a
una, podríamos hacer:

para cada palo (♥, ♠, ♦ y ♣):

para cada carta (A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q y K):

buscar la carta del palo

Romper o continuar el bucle

Es posible salir de un bucle si a medio camino decidimos que no queremos esperar hasta el final.
Esto se logra con una sentencia break (romper), que simplemente envía la ejecución a la siguiente
línea justo después del bucle. Si no hay ninguna, el programa termina.

También es posible decidir durante una iteración que preferimos no terminarla y pasar a la
siguiente. Esto se logra con una sentencia continue (continuar con la siguiente iteración).

PROPUESTA DE EJERCICIOS

Motivación: ¿Cómo sería el programa que hiciese avanzar al robot hasta que si sensor central
detectase una línea negra? ¿Sería mejor usar un bucle while o un bucle for?

- 41 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 10 minutos

Solución: En este caso es mejor utilizar un bucle while porque no existe un número conocido de
elementos a recorrer. La velocidad inicial y el umbral de detección se pueden ajustar según
prefiera el alumno.

Desarrollo: ¿Cómo sería el programa hiciese acelerar progresivamente al robot en línea recta,
hasta que cada motor llegase a 50, y entonces se detuviese? ¿Sería mejor usar un bucle while o
un bucle for?

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

- 42 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Solución: En este caso es mejor utilizar un bucle for porque sí se sabe de antemano qué elementos
hay que utilizar: serán todos los números naturales de 0 a 50. Es posible, si los alumnos lo desean,
fijar un valor de aceleración distinto a 1.

Hay que recordar que el contador del bucle se crea automáticamente como una variable, así que
para utilizar su valor deberemos irlo a buscar a dicha pestaña en el laboratorio remoto.

Consolidación: Queremos que el robot gire en el sentido de las agujas del reloj y frene su rotación
gradualmente hasta detenerse, para entonces comenzar a acelerar girando sobre sí mismo en
sentido opuesto. Si queremos utilizar un único bucle para todo el proceso, ¿cómo debería
programarse?

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: Basta utilizar un bucle for que vaya de un valor de velocidad negativo a uno positivo (o
viceversa) y lo aplique con distinto signo en ambos motores. De esta forma se obtiene una
transición suave de un sentido de rotación a su contrario.

- 43 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

7.8 Sensores de infrarrojos

Objetivos específicos:

● Comprender el funcionamiento de un sensor de infrarrojos


● Aprender a programar un sensor infrarrojo
Contenidos específicos:

● Definición y usos de los sensores de infrarrojos


● Programación de los sensores de infrarrojos
● Programación de un sensor de proximidad usando un sensor de infrarrojos

Definición de sensor de infrarrojos

Un sensor de infrarrojos, también denominado sensor IR, es un


dispositivo electrónico que detecta la luz reflejada y, por tanto, es
capaz de diferenciar entre blanco y negro o claro y oscuro. Los
sensores IR están presentes en objetos cotidianos como hornos
microondas, puertas automáticas, alarmas antirrobo y farolas (se
encienden por la noche y se apagan durante el día).

Se trata de un componente digital, es decir, que únicamente devuelve dos valores: cero y uno.
Cuando detecta negro devuelve el valor cero (el negro absorbe la luz, por tanto la luz reflejada, que
es lo que mide el sensor, es cero) y cuando detecta blanco el valor es uno.

- 44 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Por otra parte, también existen otro tipo de sensores de infrarrojos que son capaces de devolver la
distancia a la que se encuentran de un determinado objeto; estos sensores se conocen como sensores
IR analógicos. El robot disponible en Zumoline tiene instalados sensores IR analógicos.

Programación del sensor

Para ver las medidas tomadas por este sensor podemos usar distintos dispositivos, aunque para este
ejemplo usaremos el puerto serie disponible en el Zumoline. El puerto serie no es más que una
herramienta que nos ayuda a tener información por pantalla de lo que ocurre en nuestro robot. En
la siguiente imagen podemos ver dónde se localiza el monitor serial en el entorno Zumoline (parte
inferior derecha del entorno).

La configuración del sensor hará que devuelva la distancia que este ha recogido. La programación
del sensor sería la siguiente:

- 45 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Este bloque de programación nos devuelve la información referente al sensor de proximidad


izquierdo, que detecta aquellos objetos colocados a su izquierda. En el monitor serial veremos una
serie de números que nos indican la distancia a la que se encuentra el objeto que detectamos. Si
quisiéramos cambiar el sensor que realiza la medida, únicamente tendríamos que modificar el
bloque que sigue a “Leer sensores de proximidad”, añadiendo el sensor del que queramos conocer las
lecturas. La instrucción “Leer sensores de proximidad” nos devuelve la información referente a todos
los sensores de proximidad implementados en el robot; cuando usamos dicha instrucción, tratamos
de leer todos los sensores al mismo tiempo.

Programación del sensor de proximidad

Una vez sabemos cómo funciona, podemos pasar a montar un sensor de proximidad como el que
usan los coches para ayudarnos a aparcar mientras damos marcha atrás. Para este montaje, además
de nuestro sensor y una placa Arduino, necesitaremos utilizar el LED incorporado en Zumoline.
Haremos un pequeño programa que, cuando la distancia sea menor de 50 cm, haga parpadear el
LED a modo de señal. La frecuencia de la misma irá aumentando a medida que el objeto se aproxima
al sensor. De esta manera, podremos simular un sensor de aparcamiento para nuestro robot. La
programación para el sensor de proximidad es la siguiente:

Para que este ejercicio funcione de forma correcta, hay que combinarlo con el movimiento del robot.
De otro modo, el valor mostrado por el sensor siempre es el mismo, debido a que el robot no está en
movimiento.

- 46 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

PROPUESTA DE EJERCICIOS

Motivación: Escribir un programa en Blockly que permita que un LED parpadee cuando
detectamos un objeto cerca por medio del sensor de infrarrojos. El LED debe parpadear cada vez
más rápido en función de la cercanía del objeto y, si el objeto está lo suficientemente lejos, el LED
debe mantenerse encendido.

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 15 minutos

Solución: La solución a este problema es muy parecida a la implementación del ejemplo del LED
inicial. Al igual que para aquel caso, para que este ejemplo sea mucho más visual hay que añadir
algo de movimiento al robot, para así ver cómo evolucionan las medidas. Aunque no se incorpore
el movimiento del robot, lo que interesa en este caso es comprender cómo funciona el sensor de
infrarrojos y no las medidas que pueda devolver, de modo que una solución válida para este
problema es la siguiente:

- 47 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Desarrollo: Escribir un programa en Blockly que permita enviar por comunicación serial la
distancia que miden cada uno de los sensores del robot.

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 15 minutos

Solución: La solución para este problema es la siguiente:

- 48 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Consolidación: Escribir un programa en Blockly que permita mover el robot en la dirección


contraria cuando detecta un objeto. Para no complicar demasiado el código, se da por válido que
el robot esquive un objeto que se encuentra frente a alguno de los sensores y, por lo tanto, no es
necesario considerar todos los casos. En el caso de no detectar un objeto, el robot debe moverse en
línea recta.

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 15 minutos

Solución: La solución para esquivar los obstáculos que se encuentran en la derecha es girar hacia
la izquierda, así que el código es el siguiente:

7.9 Condiciones

Objetivos específicos:

● Comprender en qué situaciones es necesaria la utilización de una sentencia


condicional

- 49 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

● Organizar, de forma lógica, una sentencia condicional compleja

Contenidos específicos:

● Definición de sentencia condicional


● Elementos que conforman una sentencia condicional
● Bloques de selección

Definición de sentencia condicional

Se denomina sentencia condicional a aquella que determina si se cumple una determinada condición
y toma la decisión de ejecutar o no un determinado bloque de código.

Elementos de una sentencia condicional

El elemento principal de un bloque condicional es la sentencia if (si), que engloba a aquellas líneas
del programa que deban ejecutarse en función de su condición. Por ejemplo, supongamos que
quisiéramos decidir algo lanzando una moneda: si sale "cara", lo hacemos; si sale "cruz", no.
Recordemos que los bloques condicionales se encuentran en la pestaña “Lógica” del laboratorio
remoto.

Se podría decidir tomar una acción alternativa en el caso de que la condición inicial no se cumpliese.
Esto se consigue mediante la sentencia else (si no), que siempre debe ir asociada a una sentencia if:
if puede aparecer sin else, pero else no puede aparecer sin if.

Se pueden tomar decisiones más complejas anidando sentencias condicionales. Por ejemplo,
supongamos que tenemos tres acciones a realizar, A, B y C, y queremos decidir cuál llevar a cabo
lanzando un dado. Si el resultado es 1 ó 2, realizamos la acción A; si es 3 ó 4, la acción B; y en el resto
de casos (5 ó 6), la acción C.

- 50 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

De forma intuitiva esto podría codificarse incluyendo un bloque if/else dentro de otro, pero la
mayoría de lenguajes de programación permiten simplificar esta organización mediante la sentencia
else if (si no, si), que funciona de la siguiente manera:

equivale a:

Siempre pueden añadirse tantos else if como se desee. Algunos lenguajes de programación
permiten resumir un poco más este código mediante los bloques switch (selección), que permiten
comparar un valor dado con varias posibilidades de forma secuencial. Su funcionamiento habitual
es el siguiente:

- 51 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

selección (dado) {

caso 1:

caso 2:
si (dado = 1) ó (dado = 2):
hacer A
hacer A
salir
si no, si (dado = 3) ó (dado = 4):
equivale a: caso 3:
hacer B
caso 4:
si no:
hacer B
hacer C
salir

resto:

hacer C

Cuando en un bloque de selección se encuentra el caso deseado (case en C++), se comienza a ejecutar
código, entrando incluso en el correspondiente a otros casos, hasta encontrar la orden de salida
(break en C++). Esto permite asociar una misma acción a varios casos. Opcionalmente se puede
indicar qué hacer si no se satisface ninguno de los casos, mediante la etiqueta “resto” (default en
C++); esta etiqueta siempre debe ir al final del bloque de selección, así que su bloque de código no
necesita terminar en una orden de salida.

Por ejemplo, supongamos que “dado” vale 3. En el segmento de código propuesto, la ejecución
descartaría los casos 1 y 2, pero aceptaría el 3. El caso 3 no tiene código asociado, pero se continuaría
ejecutando dentro del caso 4 y se haría “B”. Sólo cuando se encuentra la orden de salida a
continuación, el bloque de selección termina y se continúa con la ejecución normal del programa.

Bloque de selección

Existe un operando que permite escoger rápidamente entre dos valores sin necesidad de recurrir a
un bloque if. En C++, la línea “condición ? a : b” devolverá a si la condición es cierta y b si no lo es.
En el laboratorio remoto, esto se consigue con el bloque “prueba”:

- 52 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

El bloque anterior es equivalente a:

PROPUESTA DE EJERCICIOS

Motivación: Se propone a los alumnos recordar decisiones complejas que hayan debido tomar
recientemente y, entre todos, escribirlas en forma de programa mediante bloques condicionales.

Agrupamiento: Toda la clase

Recursos: Pizarra

Espacio: Aula de clase

Tiempo: 20 minutos

Solución: La estructura de los bloques condicionales es sencilla, basta evaluar cada posible
condición de una en una o por grupos. Por ejemplo, digamos que, si hace frío en la calle,
deberemos coger una chaqueta y fijarnos si llueve o no para coger un paraguas, mientras que en
caso contrario, si hace mucho sol, deberemos coger una gorra. El código correspondiente sería:

si (hace frío en la calle):

cojo una chaqueta

si (llueve):

cojo un paraguas

si no, si (hace mucho sol):

- 53 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

cojo una gorra

Desarrollo: Los bloques condicionales se pueden combinar con los bucles. Queremos que nuestro
robot acelere progresivamente hasta 50, pero que si detecta una línea negra ante él rompa el bucle
y se detenga. ¿Cómo debería ser su programa?

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Ambos casos se vieron en la actividad 7.6, pero una debía manejarse mediante un bucle
for y la otra mediante un bucle while. De momento los alumnos no pueden combinar ambas
opciones porque sería necesario usar variables, que se verán en la actividad 7.9. Sin embargo,
usando el bucle for como base para la aceleración, se puede utilizar el bloque “romper el bucle”
para salir de él al detectar la línea.

Consolidación: Queremos que nuestro robot realice ciertas acciones según los valores que le
proporcione un bucle for que va desde 1 hasta 10:

● Si el número es par, se encenderá un LED. Si es impar, se apagará. Se debe utilizar un


bloque “prueba” para esta acción.

- 54 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

● Si el número es divisible entre 3, el robot avanzará durante un segundo.

● De otro modo, si el resto de dividir el número entre 5 es menor que 2, el robot se detendrá
durante un segundo.

● En cualquier otro caso, el robot rotará sobre sí mismo durante un segundo.

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Siguiendo la descripción del problema, el programa sería el siguiente:

- 55 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

7.10 Variables

Objetivos específicos:

● Comprender que es una variable a nivel de programación


● Aprender a usar y programar variables

Contenidos específicos:

● Definición de variable a nivel de programación


● Ámbito de una variable a nivel de programación

Definición de variable en programación

Llamamos variable a un fragmento de memoria que un programa reserva para guardar un dato. A
efectos prácticos, una variable es un contenedor en el que se guarda un valor, para poderlo usar más
adelante. En temas anteriores hemos visto usar datos varias veces, como por ejemplo los contadores
de los bucles. De forma interna, un programa necesita crear una variable siempre que haya un
elemento que pueda cambiar de valor.

El momento en que se crea una variable en un programa se llama declaración. En la mayoría de


lenguajes de programación, el tipo de dato que contiene una variable debe decidirse desde su
declaración, para poder reservar la cantidad adecuada de espacio en memoria. Por ejemplo, una
variable que sólo deba contener una letra necesitará menos espacio que una que almacene una
palabra completa. Una vez se decide el tipo de una variable, ya no se puede cambiar. Normalmente,
los lenguajes de programación permiten dar un valor inicial a una variable en el momento de
declararla.

Recordemos que, en el laboratorio remoto, podemos crear y acceder a nuestras variables dentro de
la pestaña “Variables”. Haciendo click en el nombre de una variable (por defecto, “elemento”)
podemos cambiar su nombre o crear una nueva. En el menú desplegable aparecerán todas las
variables que se hayan creado hasta el momento.

- 56 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Ámbito de una variable a nivel de programación

Se llama ámbito de una variable al trozo de programa en la que esta puede usarse. El ámbito de una
variable siempre comienza con su declaración, pero si esta ocurre en un bloque de código
delimitado, como por ejemplo dentro de un bucle o una sentencia condicional, la variable dejará de
existir cuando la ejecución salga de su bloque.

Una variable que se declara dentro de un bloque limitado de código se llama variable local, mientras
que una variable que se crea al comienzo del programa y puede verse durante toda la ejecución se
llama variable global.

A = 1 ……………………………… declaración de la variable global A

para (i desde 1 hasta 4): ….. declaración de la v. local i que se usa como contador

B = A x i …………....… declaración de la variable local B

A = A + B …………....… se cambia el valor de A

mostrar A ………………………… se muestra el valor de A

mostrar i ………………………… error - la variable i no existe fuera del bucle

mostrar B ………………………… error - la variable B no existe fuera del bucle

Para la mayoría de operaciones y programas complicados necesitaremos variables que almacenen


los valores intermedios de los cálculos. Por ejemplo, para calcular la suma de todos los números del
1 al 10 mediante un bucle, necesitaremos ir almacenando los cálculos intermedios:

suma = 0

para (n desde 1 hasta 10):

suma = suma + n

- 57 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

PROPUESTA DE EJERCICIOS

Motivación: Queremos calcular los 10 primeros elementos de la secuencia de Fibonacci, en la que


cada elemento es la suma de los dos anteriores. Los dos primeros los conocemos, son 1 y 1, pero
necesitaremos un bucle para calcular los siguientes. ¿Cómo se programaría y cuántas variables
serían necesarias?

Agrupamiento: Toda la clase

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Necesitaremos al menos tres variables para poder calcular la secuencia.

● Dos variables, a y b, para almacenar los valores de cada paso


● Una variable auxiliar para calcular el siguiente valor sin perder los anteriores

Al final de cada iteración del bucle, la variable b contendrá el siguiente valor de la secuencia,
mientras que a recordará el valor anterior de b.

Desarrollo: Una operación que suele necesitarse en programación pero muy pocos lenguajes
incluyen es la de intercambio de valores. Si tuviéramos dos variables, A y B, y quisiéramos
intercambiar sus valores, necesitaríamos una variable auxiliar C. ¿Cómo debería realizarse esta
operación?

Agrupamiento: Individual

- 58 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: La variable C toma el valor de A y lo almacena. Así, B puede escribir su valor en A y


después recuperar el valor anterior de A desde C. El proceso también puede hacerse en sentido
opuesto: C copia a B, A escribe en B y A copia a C.

o bien

Consolidación: Queremos que, cuando presionemos uno de los botones, nuestro robot comience
a avanzar y continúe moviéndose incluso si hemos soltado el botón. Cuando lo pulsemos de
nuevo, deberá detenerse hasta que lo volvamos a pulsar. ¿Cómo podemos programar esto?

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Necesitaremos crear una variable que recuerde si el botón ha sido pulsado o no, para
saber si se debe avanzar. Ante todo, necesitaremos crear esta variable y darle un valor inicial. ¡Pero
no debe ir dentro del bucle principal! Si la pusiéramos ahí, su valor se reiniciaría en cada paso y el
robot nunca podría moverse. Esta vez tendremos que ponerla en el bloque “Arduino
configuración” para asegurarnos de que sólo se le dé el valor inicial una vez.

- 59 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Cada vez que se pulse el botón, esta variable cambiará de valor para informar al programa de qué
debe hacer. Aunque podríamos manejar estos valores como quisiéramos, como sólo existen dos
opciones (avanzar o no avanzar), lo más eficiente es crear una variable de tipo booleano, es decir,
que sólo pueda ser verdadera o falsa. Invertir el valor de una variable de este tipo es muy sencillo:
basta decirle que su valor es el contrario al que tuviera antes, usando el bloque de lógica “no”.

7.11 Funciones

Objetivos específicos:

● Comprender qué es y para qué sirve una función


● Aprender a programar y utilizar funciones
● Identificar en qué situaciones es necesario utilizar funciones y funciones con

- 60 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

retorno

Contenidos específicos:

● Definición de función
● Llamadas a funciones
● Funciones con retorno

Definición de función

Una función es un conjunto de sentencias que realizan una o varias tareas y que está pensado para
ser reutilizado a lo largo de un programa. Cuando una función termina puede devolver un valor
(funciones con retorno) o no devolver nada (funciones sin retorno).

Haciendo bailar a nuestro robot.

Imaginemos que queremos que nuestro robot haga un baile que consista en una secuencia de giros.
Supongamos también que queremos que nuestro robot haga este baile en diferentes partes de
nuestro programa. Con lo que hemos visto hasta ahora, tendríamos que repetir el código del baile
en las partes que quisiéramos usarlo. Esto hace que nuestro programa crezca en tamaño y se haga
complicado mantenerlo, ya que cuando queramos modificar el baile tendremos que cambiar el
código en diferentes partes del programa. ¿No sería más fácil usar siempre los mismos bloques?

Definiendo la función

Para crear la función hay que usar un


bloque “para” de la sección de funciones
y rellenar con bloques el cuerpo de la
función.

La función que hemos definido hace girar


al robot en un sentido durante dos
segundos, luego en sentido contrario
también durante dos segundos y luego
para los motores.

Llamando a la función

- 61 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Los bloques de una función no se ejecutan a no ser que llames a la función. En las partes de nuestro
programa en las que queramos hacer bailar a nuestro robot, llamaremos a la función. Para ello hay
que usar el bloque con el nombre de la función que hemos creado previamente.

En esta sección del programa encendemos un LED y llamamos a nuestra función “bailar” si el botón
A está pulsado y apagamos el LED y hacemos bailar a nuestro robot si el botón A no está pulsado.
Como vemos, al usar funciones no hemos tenido que repetir el código que hace bailar al robot dos
veces.

Las funciones con retorno

Las funciones con retorno son iguales que las funciones normales, pero cuando terminan de
ejecutarse devuelven un valor. A veces, cuando llamamos a una función no estamos sólo interesados
en que se realicen una serie de tareas, sino en obtener el valor resultado de una serie de operaciones.
Es en estos casos en los que son útiles las funciones con retorno.

Supongamos, por ejemplo, que queremos calcular el módulo de un vector. El módulo es la distancia
del segmento orientado que define al vector. Si tenemos las componentes x e y del vector, su módulo
es √𝑥 2 + 𝑦 2 . Vamos a definir una función que calcule el módulo de un vector asumiendo que
hemos definidos dos variables globales x e y.

- 62 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

PROPUESTA DE EJERCICIOS

Motivación: ¿Cómo se podría calcular f(g(5)) si f(x) = x2 + 1 y g(z) = z + 2?

Agrupamiento: Toda la clase

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Necesitaremos dos funciones, una para f y otra para g, y deberemos cambiar el valor de
las variables globales x y z con cuidado para que cada función pueda acceder al valor correcto. Se
debe tener cuidado con la prioridad de los operadores.

- 63 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Desarrollo: ¿Cómo se programaría la función f(x) = g(h(2x)) + h(x+1), donde g(a) = 1/(1+a) y h(b) =
b2 + b?

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: La solución sería la siguiente:

- 64 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Consolidación: ¿Cómo se escribiría una función de x que calcule la suma de todos los números
impares desde 1 hasta x, si x es impar, y de todos los números pares desde 2 hasta x, si x es par?
Habrá que combinar funciones, variables, condiciones y bucles.

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: Una posible solución es la siguiente:

- 65 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

7.12 Seguir la línea

Objetivos específicos:

● Comprender el funcionamiento de un robot sigue-líneas

● Conocer los distintos estados internos de un robot sigue-líneas

● Aprender a programar un robot sigue-líneas

Contenidos específicos:

● Definición de robot sigue-líneas

● Estados de un robot sigue-líneas

● Programación de un robot sigue-líneas

- 66 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Definición de robot sigue-líneas

Un robot sigue-líneas utiliza los sensores de infrarrojos para detectar si el suelo es blanco o negro;
de esta forma puede saber si está encima de una línea o no. El robot que se propone en esta actividad
utiliza dos sensores de infrarrojos para saber no sólo si está encima de una línea, sino también para
saber en qué dirección debemos corregir el movimiento del robot si éste va a abandonar la línea.

Estados de un robot sigue-líneas

A continuación, se explican los posibles estados en los que puede estar nuestro robot en función de
las lecturas de los sensores.

Sensores Motores
Acción deseada
izquierdo derecho izquierdo derecho

blanco blanco detenerse parado parado

blanco negro girar a la derecha avanzar parado

negro blanco girar a la izquierda parado avanzar

negro negro avanzar avanzar avanzar

Programación del robot en Blocky

Para saber si el robot está encima de una línea negra, debemos leer el estado de los dos sensores de
infrarrojos. Utilizaremos los bloques “leer sensores de línea” seguido de “Lectura en sensor situado
en...” para obtener las lecturas de los distintos sensores de infrarrojos. Los sensores de infrarrojos
dan un valor comprendido entre 2000 (negro) y 0 (blanco).

Para actuar sobre los motores usaremos unos bloques preparados para ello. Estos son los bloques
“Establecer velocidad del motor” o “Cambiar velocidad de los motores”. En la siguiente imagen
podemos ver un ejemplo con esos bloques.

- 67 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Ahora tenemos que programar el movimiento del robot para que haga su función, que es seguir una
línea negra sobre un fondo blanco. Pensemos un poco en ello…

Primer estado: los dos sensores ven negro

Cuando los dos sensores ven negro… ¿qué


significa? ¡Pues que el robot está en la línea, claro!
¿Qué deberíamos hacer en este caso? ¡Pues
avanzar! Para avanzar tenemos que hacer girar los
dos servos en el sentido de avance del robot.

Segundo estado: los dos sensores ven blanco

- 68 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Cuando los dos sensores ven blanco significa que el


robot se ha salido de la línea y lo mejor es pararnos.
Por ello en este estado los dos motores se detienen.

Tercer estado: el sensor derecho ve negro y el izquierdo ve blanco

En este caso el robot está perdiendo la orientación


de la línea y la está abandonando por la izquierda,
es decir, que tenemos que hacer girar al robot a la
derecha ¿no? Piensa en ello, un robot de dos ruedas
puede girar a la derecha si hace girar su rueda
izquierda mientras mantiene parada su rueda
derecha. Pues ya sabemos lo que tenemos que hacer
en estos casos.

Cuarto estado: el sensor izquierdo ve negro y el derecho ve blanco

- 69 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

En este caso, igual que en el anterior, también


tenemos que hacer girar al robot para mantenerlo
en la línea. Sin embargo, ahora la está abandonando
por la derecha, de forma que tenemos que hacer
girar al robot a la izquierda. Para ello, movemos el
motor derecho mientras mantenemos parado el
izquierdo.

De los cuatro estados vistos se pueden extraer cuatro sencillas reglas que relacionan los sensores con
las ruedas y que nos serán muy útiles para hacer nuestro programa en Blockly:

● Cuando el sensor derecho ve negro, se mueve la rueda izquierda.

● Cuando el sensor derecho ve blanco, se para la rueda izquierda.

● Cuando el sensor izquierdo ve negro, se mueve la rueda derecha.

● Cuando el sensor izquierdo ve blanco, se para la rueda derecha.

Definimos la variable “negro” para establecerla como umbral de claridad a partir del cual se
considera que el robot está viendo una línea. Definimos también la variable “vel_giro” para
establecer la velocidad con la que giran los motores.

Traduciendo las reglas anteriores al programa en Blockly, tenemos:

PROPUESTA DE EJERCICIOS

- 70 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Motivación: ¿Se podría programar un robot sigue-líneas con un solo sensor?

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: No se requieren

Espacio: Aula de clase

Tiempo: 10 minutos

Solución: No de forma eficiente. Con un solo sensor, el robot sólo puede detectar si ve una línea o
no, así que sólo podría avanzar hasta la primera curva y se perdería. Sin embargo, con un sensor
que detectase colores podría pintarse una línea que le permitiese saber hacia dónde se está
desviando, de forma que pudiese corregir su trayectoria.

Desarrollo: Copiar el código mostrado a la interfaz gráfica del laboratorio remoto y ejecutarlo. Si
no funciona correctamente, ¿qué debe hacerse?

Agrupamiento: Toda la clase

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: Las variables globales negro y vel_giro controlan el funcionamiento del robot. Cuando
se ejecute por primera vez, habrá que ajustarlas según las características de la máquina: si el

- 71 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

movimiento es inestable, hay que reducir vel_giro y si no se ve correctamente la línea, hay que
modificar negro.

Consolidación: ¿Cómo podemos modificar el código para que el robot intente evitar la línea en
lugar de seguirla?

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: Basta invertir las reglas del programa. Si un sensor ve negro, debe detener la rueda del
lado opuesto para girar en dirección opuesta. Dicho de otro modo, en el código del programa basta
modificar la dirección de la desigualdad: si la lectura de los sensores es menor que negro (es decir,
ve la línea), se realizan las acciones que se habrían llevado a cabo si no se viese la línea:

● Cuando el sensor derecho ve blanco, se mueve la rueda izquierda.


● Cuando el sensor derecho ve negro, se para la rueda izquierda.
● Cuando el sensor izquierdo ve blanco, se mueve la rueda derecha.
● Cuando el sensor izquierdo ve negro, se para la rueda derecha.

7.13 Salir del laberinto

Objetivos específicos:

● Aprender a programar un Robot que consiga salir del laberinto


● Comprender en qué consiste la regla de la mano izquierda
● Comprender la estructura de un Robot para cumplir el propósito de salir del
laberinto

Contenidos específicos:

● Conocimiento del laberinto


● Programación de un Robot que pueda salir del laberinto

- 72 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

● La regla de la mano izquierda

En esta actividad vamos a desarrollar un robot que pueda encontrar la salida de un laberinto. ¿Qué
harías tú si te pierdes en un laberinto?

Conocimiento del laberinto

Una forma sencilla de encontrar la salida es usando la “regla de la mano izquierda” o la “regla de la
mano derecha”. Esta forma de resolver el laberinto consiste en tocar la pared izquierda y, sin
despegar la mano, ir avanzando (también funciona con la pared derecha).

Para realizar esta actividad vamos a usar lo que hemos aprendido en la actividad anterior del sigue-
líneas. Para ello, vamos a pintar un laberinto formado por líneas como el que vemos en la figura.

Nuestro robot tendrá dos sensores de infrarrojos para seguir las líneas del laberinto, igual que en la
actividad anterior. Pero también tendrá tres sensores de infrarrojos más en forma de triángulo para
detectar las intersecciones. En la figura vemos un esquema con la posición de los sensores.

- 73 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

La regla de la mano izquierda se puede traducir en estas sencillas reglas con las que programaremos
nuestro robot:

1. Si el robot puede girar a la izquierda, entonces girará a la izquierda.

2. Si no, si puede seguir recto, entonces seguirá recto.

3. Si no, si puede girar a la derecha, entonces girará a la derecha.

4. Si no puede hacer ninguna de las anteriores, entonces da la vuelta.

En el movimiento normal del robot por el laberinto, se usa el mismo código de la actividad anterior
para seguir las líneas pero, además, a través de los bloques “Leer sensores de línea” y “Lectura del
sensor situado en...” el robot debe consultar constantemente sus sensores para saber si está en una
intersección.

Vamos ahora a definir una serie de funciones que permitirán girar al robot en las intersecciones.
Usaremos los sensores sigue-líneas para girar hasta que el robot se coloque en su nuevo camino,
tanto si gira a la izquierda como si gira a la derecha. En la siguiente imagen se muestra la función
para girar a la derecha. La función para girar a la izquierda sería igual, pero deteniendo el motor
izquierdo y haciendo girar el motor derecho.

- 74 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

La función para girar primero hace avanzar al robot durante un tiempo, para que al girar pueda
encontrar la línea correspondiente a la intersección. Posteriormente, empieza a girar y distingue dos
estados diferentes. Primero, mantiene el giro hasta que los sensores sigue-líneas detecten que han
abandonado la línea. Luego, en el siguiente bucle mantiene el robot girando hasta que alguno de los
sensores sigue-líneas detecta la nueva línea. Una vez detectada la línea, se detiene.

Ahora que hemos definido las funciones para girar, vamos a ver cómo se traducen las reglas
anteriores al código en Blockly.

PROPUESTA DE EJERCICIOS

Motivación: ¿Qué ocurriría si sólo usásemos los sensores “centro-izquierda” y “centro-derecha”?

Agrupamiento: Grupos reducidos (2 a 4 alumnos)

Recursos: No se requieren

Espacio: Aula de clase

Tiempo: 10 minutos

Solución: Estaríamos en el caso del robot sigue-líneas. Este podría avanzar por el laberinto en línea
recta hasta encontrar una esquina o un callejón sin salida, pero no podría girar en las bifurcaciones,
así que sólo podría alcanzar el final de laberintos muy sencillos.

- 75 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Desarrollo: Copiar el código mostrado a la interfaz gráfica del laboratorio remoto y ejecutarlo. Si
no funciona correctamente, ¿qué debe hacerse?

Agrupamiento: Toda la clase

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 30 minutos

Solución: De nuevo, las variables globales negro y vel_avance controlan el funcionamiento del
robot. Cuando se ejecute por primera vez, habrá que ajustarlas según las características de la
máquina: si el movimiento es inestable, hay que reducir vel_avance y si no se ve correctamente la
línea, hay que modificar negro.

Consolidación: ¿Cómo podemos modificar el código para que el robot intente siempre ir en línea
recta y, si debe girar, intente hacerlo primero hacia la derecha?

Agrupamiento: Individual

Recursos: Ordenador con conexión a internet

Espacio: Laboratorio remoto

Tiempo: 20 minutos

Solución: Basta modificar las reglas del programa. Primero se deberá comprobar si el sensor central
ve línea, luego el derecho y luego el izquierdo. Las acciones correspondientes a cada uno se
mantienen:

1. Si el robot puede seguir recto, entonces seguirá recto.


2. Si no, si puede girar a la derecha, entonces girará a la derecha.
3. Si no, si puede girar a la izquierda, entonces girará a la izquierda.
4. Si no puede hacer ninguna de las anteriores, entonces da la vuelta.

- 76 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

8. Evaluación

Para proceder a la evaluación de las distintas actividades que conforman esta Unidad Didáctica se
tendrán en cuenta los siguientes criterios de evaluación:

8.1 Criterios de evaluación

Actividades Criterios de Evaluación

Actividad 1 Conoce los componentes internos del robot y su correspondiente uso


Introducción a la
robótica básica: Conoce las diferencias entre los dos tipos principales de robots
actuadores y sensores

Actividad 2
Conoce y sabe acceder a las diferentes secciones del sitio web del
Conociendo la interfaz
Laboratorio Remoto
del Laboratorio Remoto

Actividad 3 Desarrolla habilidades para la creación de diagramas de flujo

¿Qué es un algoritmo? Organiza actividades siguiendo el patrón de un algoritmo

Actividad 4 Identifica cómo se relaciona el movimiento de las ruedas del robot con
Nuestro primer el movimiento del robot completo
programa en el
Laboratorio remoto: Programa el movimiento del robot
moviendo el robot

Conoce las características de los diodos LED


Actividad 5
Programando los LED Programa con diodos LED usando el lenguaje de programa-ción visual
Blocky

Comprende el concepto de bucle de control

Actividad 6 Comprende la estructura del bucle de control (while/for)


Bucles
Detecta las condiciones más favorables para el uso de un bucle while o
un bucle for

Actividad 7 Comprende el funcionamiento de un sensor de infrarrojos

- 77 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Sensores de infrarrojos Programa un sensor de infrarrojos

Comprende en qué situaciones es necesaria la utilización de una


Actividad 8 sentencia condicional
Condiciones
Organiza, de forma lógica, una sentencia condicional compleja

Actividad 9 Comprende que es una variable a nivel de programación

Variables Programa con variables

Comprende qué es y para qué sirve una función

Actividad 10 Programa y utiliza funciones


Funciones
Identifica en qué situaciones es necesario utilizar funciones y funciones
con retorno

Comprende el funcionamiento de un robot sigue-líneas


Actividad 11
Conocer los distintos estados internos de un robot sigue-líneas
Seguir la línea
Programa un robot sigue-líneas

Logra programar un robot que consiga salir del laberinto

Actividad 12 Comprende en qué consiste la regla de la mano izquierda


Salir del laberinto
Comprende la estructura de un robot para cumplir el propósito de salir
del laberinto

8.2 Procedimientos e Instrumentos de Evaluación

Haciendo referencia a los procedimientos de evaluación, en un aula escolar se recomienda realizar una
evaluación continua y sumativa de todas las actividades y procesos realizados en cada unidad
didáctica, entendiéndose como tal el seguimiento individualizado del alumnado y la valoración de
los logros en su proceso de aprendizaje.

Sería interesante llevar a cabo, de modo continuo y sistemático, una observación directa de las
aportaciones de los alumnos y alumnas realizadas durante las clases, de su participación en la
dinámica del aula y de la constancia en sus tareas. También, analizar las producciones del alumnado,

- 78 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

los intercambios orales con ellos y ellas, participación activa, actitudes e intereses por ampliar
conocimientos; usando las técnicas de autoevaluación, hetero-evaluación y co-evaluación.

Aludiendo a los instrumentos de evaluación, se podrían considerar los siguientes:

● Diario del profesor/a: donde anotará día a día cómo se van desarrollando las actividades,
incidencias, observaciones, etc.

● Hoja de seguimiento del alumnado: aquí quedarán reflejadas las faltas de asistencia,
entrega de trabajos, etc.

● Trabajos individuales y grupales: Hay que tener en cuenta que el trabajo de la informática
tiene un gran componente cooperativo que puede aprovecharse para el desarrollo de la
competencia social y cívica.

En los trabajos en equipo, se tendrá en cuenta el grado de coordinación seguido en el reparto


de tareas, grado de participación, la integración en diferentes grupos, la co-laboración y la
responsabilidad mostrados en el trabajo en equipo y la demostración de actitudes que
favorezcan el trabajo colectivo.

● Rúbricas: Se utilizarán estas guías de puntuación para evaluar el trabajo del alumnado que
describirán las características específicas de un producto, proyecto o tarea en varios niveles
de rendimiento, con el fin de clarificar lo que se espera del aprendizaje de ellos y ellas, de
valorar su ejecución y de facilitar la retroalimentación o feedback, permitiendo a su vez
facilitar la autoevaluación y la co-evaluación.

A continuación, se incluye una rúbrica que podría ayudar a la evaluación del trabajo en equipo realizado
en actividades de programación de un Robot en esta unidad didáctica:

Categoría de 4 3 2 1
Evaluación (Excelente) (Bueno) (Deficiente) (Insuficiente)

Siempre escucha,
Usualmente
comparte y apoya
escucha,
el esfuerzo de sus A veces escucha, Nunca escucha,
comparte y apoya
compañe- ros/as. comparte y apoya comparte y/o apoya el
Trabajo en el esfuerzo de sus
Trata de el esfuerzo de sus esfuerzo de sus
equipo compañeros y
mantener la compañeros y compañeros y
compañeras. No
unión de los compañeras. compañeras
causa problemas
miembros del
en el grupo
grupo

- 79 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Proporciona Por regla general,


siempre ideas proporciona ideas
útiles cuando útiles cuando Algunas veces
Rara vez proporciona
participa en el participa en el proporciona ideas
ideas útiles cuando
equipo y en la equipo y en la útiles cuando
Contribuciones participa en el equipo
discusión en discusión en participa en el
y en la discusión en
clase. Es un líder clase. Es un equipo y en la
clase.
definido que miembro fuerte discusión en clase
contribuye con del grupo que se
mucho esfuerzo esfuerza

Se mantiene
La mayor parte Nunca suele enfocarse
enfocado en el Algunas veces se
del tiempo se al trabajo que se
Atención al trabajo que se enfoca en el
enfoca en el necesita hacer. Deja
trabajo necesita hacer. trabajo que se
trabajo que se que otros y otras
Muy auto- necesita hacer
necesita hacer hagan su trabajo
dirigido

Rara vez critica


Nunca critica
públicamente el Ocasionalmente
públicamente el
proyecto o el critica el trabajo Con frecuencia critica
proyecto o el
trabajo de de otros/as el trabajo de otros/as.
trabajo de
Actitud otros/as. A miembros del Rara vez tiene una
otros/as. Siempre
menudo, tiene grupo. Tiene una actitud positiva hacia
tiene una actitud
una actitud actitud positiva el trabajo
positiva hacia el
positiva hacia el hacia el trabajo
trabajo
trabajo

No sugiere o
refina soluciones, No trata de resolver
pero está problemas o ayudar a
Busca y sugiere Refina soluciones
Resolución de dispuesto/a a sus compañeros y
soluciones a los sugeridas por
problemas tratar soluciones compañeras a
problemas otros/as
propuestas por resolverlos. Deja que
sus hagan su trabajo
compañeros/as

- Trabajos específicos de autoevaluación o trabajos específicos de síntesis, donde se pueda apreciar


por parte del alumno o alumna elementos como qué ha aprendido en el desarrollo de la unidad
didáctica.

- 80 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

9. Conclusión

Con esta Unidad Didáctica se pretende enseñar los fundamentos básicos de la programación a través
de la robótica educativa. Tomándose como base la legislación vigente en materia educativa
española, se han planteado una serie de objetivos y contenidos de aprendizaje, para llegar de forma
coherente hasta los criterios de evaluación siguiendo una metodología y un conjunto de actividades
prácticas y funcionales con el propósito de acercar los contenidos a los alumnos y alumnas a
distintas asignaturas del currículo escolar como pueden ser: Ciencia, Tecnología, Ingeniería y
Matemáticas (CTIM) por tener mayor relación con el temario. También es susceptible su trabajo en
el resto de áreas educativas por su componente transversal, correspondientes a la Educación
Secundaria Obligatoria y Bachillerato.

La programación es, hoy en día, una herramienta multidisciplinar que puede ayudar a los alumnos
en una amplia variedad de situaciones, permitiendo abordar de forma estructurada la resolución de
problemas que no sólo tienen que ver con la Informática, sino con otro tipo de ámbitos. Por su parte,
la robótica es una materia transversal que engloba temas propios de la electrónica, la mecánica o la
informática, entre otros y que puede ser susceptible de ser trabajada en otras áreas educativas donde
reporta beneficios.

10. Bibliografía y webgrafía

Un autor/a:

Antúnez, S. Del proyecto educativo a la programación de aula. Madrid, 2010 Editorial Graó

Craig, J. J. Introduction to robotics: mechanics and control. Upper Saddle River, 2005, Pearson
LIBROS Prentice Hall, Vol. 3, pp. 48-70.

Stroustrup, B. El lenguaje de programación C++, Madrid, 1998, Addison Wesley

Dos o más autores:

Margaret A. E. y Stroustrup, B. The Annotated C++ Reference Manual, 1990, Addison-Wesley

Antonio, C. P. et al. Remote experiments and 3D virtual world in education. Ponta Delgada,
2015, 3rd Experiment Int. Conf., pp. 65-70.

REVISTAS Carro, G. et al. The color of the light: A remote laboratory that uses a smart device that connects
teachers and students. Istanbul, 2014, IEEE Global Engineering Education Conference
(EDUCON), pp. 854-860.

- 81 -
Esta actividad ha sido diseñada para su uso con el laboratorio LabsLand Robot Arduino -
Visual. Puedes encontrar más laboratorios y actividades en: https://labsland.com/es

Islamgozhayev, T. U. et al, IICT-bot: Educational robotic platform using omni-directional


wheels with open source code and architecture, Omsk, 2015, Int. Siberian Conf. Control and
Communications (SIBCON), pp. 1-3.

Merrill, M. D. First principles of instruction. Educational Technology Research and


Development, 2002, Vol. 50 (3), pp. 43–59.

Peng, J., Tan, W. y Liu, G. Virtual Experiment in Distance Education: Based on 3D Virtual
Learning Environment, Wuhan, 2015, Int. Conf. Educational Innovation through Technology
(EITT), pp. 81-84.

Roscoe, J. F., Fearn, S., y Posey, E. Teaching Computational Thinking by Playing Games and
Building Robots, Nottingham, 2014, Int. Conf. Interactive Technologies and Games (iTAG), pp.
9-12.

Cursos de programación en Bitbloq para DIWO, de BQ. Recuperado de


EN LÍNEA
http://diwo.bq.com/course/aprende-robotica-y-programacion-con-bitbloq-2

- 82 -

También podría gustarte