Está en la página 1de 97

Coordinación general y desarrollo pedagógico: Mónica Paves.

Coordinación editorial: Ignacio Travella.


Desarrollo de unidades: Carlos J. Cánaves y Equipo pedagógico de Robotgroup Argentina. Valeria
Larrart, Lucía Bertola y Ornella Chimenti.
Producción editorial: Ricardo Cravero.
Diseño editorial: María Gisel Bertollo, Pablo Lonegro e Ignacio Costantini.
Imágenes: Banco de imágenes de Robotgroup, www.thinkstock.com

Paves, Mónica
TecnoBOT 7 : robótica para la acción . ­2a ed. ­Rosario : Ediciones Logos Ar, 2016.

96 p. : il. ; 28x21 cm.

ISBN 978-987-732-019-0

1. Robótica. 2. Enseñanza Secundaria. 3. Manual. I. Título


CDD 372.358

ISBN 978-987-732-019-0
Hecho el depósito que indica la Ley 11.723
Impreso en Argentina
Printed in Argentina

DERECHOS RESERVADOS © 2016 por Tecnobot.

Esta es una obra protegida por las leyes internacionales de derecho de autor. Prohibida la reproducción total
o parcial de esta obra y/o los recursos que la acompañan, por cualquier medio, sin autorización escrita de
RobotGroup Argentina y Ediciones Logos SA.

Los contenidos didácticos y los diseños de armados son propiedad de RobotGroup Argentina.
El logotipo de Tecnobot, el diseño editorial, la diagramación y los contenidos gráficos son propiedad de
Ediciones Logos SA.

Las citas e imágenes incluidas en esta obra se utilizan únicamente con fines didácticos y para la crítica e investigación
científica o artística, por lo que RobotGroup Argentina y Ediciones Logos SA no asumen ninguna responsabilidad
por el uso que se dé a esta información, ni infringen derecho de marca alguno.

Tecnobot © es una marca registrada por Ediciones Logos SA y Mónica J. Paves Palacios. Las mascotas Duino y
Libélula son propiedad de Robotgroup Argentina. Otros productos, nombres de firmas o empresas son marcas
registradas de sus respectivos propietarios. Cualquier omisión es no intencional.

www.edicioneslogos.com
PRESENTACIÓN

PROYECTO INTEGRAL Y TRANSVERSAL


Tecnobot es un proyecto que integra y atraviesa el espacio curricular. En el mundo real, los dispo-
sitivos tecnológicos participan cada vez más de nuestras actividades cotidianas. Con Tecnobot suce-
derá lo mismo en el aula.
Las capacitaciones, los recursos on line, las guías de armado, el software elegido, las piezas de la
caja tecnológica y esta obra escrita son una herramienta que apuntan a este escenario.
El objetivo es que el acercamiento a la robótica no se dé por la robótica en sí misma, sino como un
recurso al servicio de las ciencias, los medios de producción, los servicios, entre otros.

ROBÓTICA EN EL AULA
La complejidad en el uso de los materiales del kit aumenta en cada grado. En los primeros años,
las actividades no exigen madurez en la motricidad fina; emplean componentes pre armados y
aprenden las nociones básicas de motorización y programación. Progresivamente, los estudiantes
comienzan a utilizar herramientas de mayor precisión para realizar operaciones más complejas:
incorporan distintas clases de sensores y exploran nuevos códigos de programación.
Por último, los cursos más avanzados trabajan con un software de reconocimiento internacional,
que permite la adquisición de datos para ser graficados en tiempo real. Se suman nuevos sensores
y un control remoto. Las guías teóricas ayudan a profundizar en conceptos que abordan distintas
disciplinas como la física, la robótica y las ciencias de la computación.

¿POR QUÉ IMPLEMENTAR ROBÓTICA EDUCATIVA?


La propuesta está inspirada en el construccionismo y basada en cuatro pilares:
1 Un enfoque constructivista de la educación. Implica la creación de un ambiente donde los es-
tudiantes aprendan participando –en forma activa y lúdica– del desarrollo de proyectos signi-
ficativos.
2 La necesidad de usar material concreto que apoye el desarrollo de formas tangibles de pensa-
miento sobre fenómenos de carácter abstracto.
3 El desafío de nuevas formas de pensar, de usar los conocimientos y de relacionarlos desde dife-
rentes dominios.

4 La posibilidad de la auto reflexión. Las mejores experiencias de aprendizaje surgen cuando el


estudiante explora su propio proceso de pensamiento y su relación emocional e intelectual con
sus conocimientos.
ORGANIZACIÓN DE LA ACTIVIDAD EN EL AULA
El libro contiene seis desafíos que llevan el nombre de “miniproyectos”. El docente será quien mo-
dere cuáles de las siguientes etapas serán trabajadas en cada clase:

1 Disparador de la clase y análisis de la situación: introduce una situación problemática a través de


una noticia ficticia. Los alumnos extraerán los datos de la noticia que consideren importantes para
resolver el desafío planteado. Tomarán nota de las dimensiones y las particularidades del escenario,
el diseño del robot, los accesorios necesarios, entre otros elementos clave de la situación.
2 Preparación del escenario: propone dibujar un esquema de la situación que ayude a entenderla
y resolverla. Sugiere materiales para trabajar en clase.
3 Análisis previo al código: presenta una tabla de verdad a partir de la cual los alumnos deberán
completar un diagrama de flujo. Este ejercicio preliminar a la programación los ayudará a anali-
zar el comportamiento que el robot deberá desarrollar en el contexto planteado.
4 Construcción y programación: ejercita las habilidades para armar y programar de la forma más
eficaz y eficiente. Los alumnos tomarán el tiempo que necesita el robot para resolver el desafío.
5 Informe: ofrece un listado de preguntas para evaluar el resultado del desafío y extraer conclusio-
nes de la experiencia grupal.

HACIA UN VERDADERO TRABAJO EN EQUIPO


El proyecto contempla dividir la clase en grupos de tres alumnos. Cada uno de los miembros del
equipo tendrá un rol:

1 Constructor (C): es el responsable de recrear la escena de la noticia. Solicita colaboración a sus


compañeros para diseñar el esquema de la situación.
2 Responsable de Materiales (RM): consigue los materiales necesarios, colabora en la recreación de
la escena y en el análisis previo al código.
3 Responsable de Grupo (RG): es el representante del equipo ante el docente y el encargado de
programar. Además, es quien coordina el trabajo grupal y la confección del informe final.

* En el caso de que el equipo esté conformado sólo por dos alumnos, el constructor también será el
responsable de los materiales y contará con la ayuda del responsable de grupo. Cada alumno cumplirá
un rol distinto en cada actividad.
CONOCE TU LIBRO

En cada uno de los 6 miniproyectos:


PRIMERA PÁGINA

Ícono de Número de
la etapa miniproyecto
Cada fase del El libro plantea
miniproyecto seis desafíos
tiene su símbolo

Noticia
SEGUNDA PÁGINA
Situación
problemática y
Análisis de presentación del
desafío
la situación

Extracción de los datos


clave de la noticia

Preguntas

Consideraciones sobre
el escenario, el robot y
cuestiones generales
TERCERA PÁGINA

Preparación
del escenario

Esquema de
la situación

Materiales
Notas sugeridos
Espacio para Escala Lista de
redactar datos elementos
Proporción en
clave necesarios
que se desarrolla
el esquema

Recuerda
Notificaciones y
advertencias
CUARTA PÁGINA

Análisis previo
al código

Introducción a la
programación

Tabla
de verdad
Muestra el valor
de verdad de
una proposición
compuesta, para QUINTA PÁGINA
cada combinación de
verdad que se pueda
asignar

Glosario
Diagrama
Explicación de de flujo
nuevos conceptos
Representación
gráfica del
algoritmo

SEXTA PÁGINA
Construcción y
programación

Especificaciones

Informe
Lista de control:
presenta una
enumeración de
características,
habilidades, rasgos,
conductas, atributos
o secuencia de
acciones cuya
presencia o ausencia
se desea constatar.
ÍNDICE

MINIPROYECTO 1
13
Robot limpiador de desechos marítimos

MINIPROYECTO 2
19
Robot carguero de cajas

MINIPROYECTO 3
25
Robot rescatista

MINIPROYECTO 4
31
Barco guiado con sensor de luz
MINIPROYECTO 5
37
Automóvil sin conductor

MINIPROYECTO 6
43
Robot jugador de bowling

GUÍAS TEÓRICAS
49

Introducción a sensores.........................................................51
Sensor infrarrojo..................................................................54
Sensor de luz...........................................................................58
Control remoto..................................................................... 64
Sensor de ultrasonido........................................................ 66
Introducción a duinopack.................................................... 69
Diagramas de flujo................................................................... 91

WEB
Introducción a la Programación de motores
Introducción a la Cinemática
ROBOT N6: CARACTERÍSTICAS

Les presentamos el ROBOT N6

Equipado con 4 sensores


Diseño reconfigurable
Un sensor ultrasónico frontal que mide distancias y expandible
Un sensor IR de 38KHz que permite controlar al robot a
distancia con un control remoto RC5, similar al que usan Por su capacidad de reconfigu-
los televisores (viene incluido en el kit) ración, el N6 permite experi-
Dos sensores IR CNY70 (infrarrojos) que permiten detec- mentar nuevos movimientos
tar colores, seguir una línea o programar una alarma cuando se le agregan sensores
y cuando se escriben programas
cada vez más complejos.

Software de
programación
Autonomía
Puede ser programado
con software icónico El N6 posee en su placa
(Minibloq, por ejem- controladora un elevador
plo) o con lenguajes de de tensión que permite
programación más du- trabajar sólo con tres pi-
ros como C++, muy uti- las recargables con una
lizado en electrónica. autonomía de una hora y
media en forma continua.

Piezas fundamentales
Placa controladora: Matbot
Alimentación: 3 pilas AA recargables
Motores: 2 de 12 V cada uno

Además incluye

1 Chasis completo N6
2 Motorreductores planetarios 200 RPM
1 Portapilas AA de tres elementos
1 Cable USB
1 Set de herramientas: llave allen, destornillador y llave de tuercas
Todos los cables de conexión necesarios para conectar los sensores y los motores.
10
Miniproyectos
NOTICIA 1
Un estudiante de 19 años inventa un sistema para
eliminar los desechos plásticos de los océanos
El joven quiere enfrentar, con barreras flotantes, el alarmante desafío que hoy constituyen las
“islas de basura” del océano Pacífico, un problema que crece a pasos agigantados.

L os desechos de plástico están


contaminando los mares y seguirán
allí durante siglos si no hacemos algo.
Joel Vlaar, un joven holandés, ha
combinado ecologismo, creatividad
y tecnología para crear la fundación
“SeaClean-Up”, un concepto que
hace frente a este problema de una
manera efectiva: pretende limpiar las
enormes islas de desechos plásticos
de los mares y eliminar así cerca de
7 millones de toneladas de residuos
plásticos de los océanos del mundo.
La idea está centrada en un sis- PLATAFORMAS SEACLEAN. Ayudan a concentrar el plástico.
tema de barreras flotantes (en lugar
de redes) que abarquen áreas muy
grandes de agua y un robot equipado con “palas” que la cantidad de partículas de plástico en los parches de
empujen los residuos plásticos y los concentre dentro basura del océano. Su trabajo final ganó varios premios,
del sector conformado por las barreras. como el de Mejor Diseño Técnico 2016 en la Universi-
Las “palas” del robot obligarían al plástico a ir en dad Tecnológica de Delft. Luego, creó “SeaClean-Up”,
la dirección de las plataformas que delimitan el área a una fundación sin fines de lucro que se encarga de la
limpiar, cada una con una superficie de 1 m2. Allí se elaboración de sus tecnologías propuestas.
separarían los desechos del plancton para ser posterior- Las botellas de plástico, también conocidas como
mente filtrados y almacenados para su reciclaje y venta, PET (polietilentereftalato) pierden tonicidad y se frag-
de tal manera que el proceso sea un sistema rentable mentan al aire libre. Enterradas son casi eternas, pues
económicamente. los microorganismos no tienen forma de atacarlas, por
Según afirma el joven, su solución podría ahorrar lo que pueden perdurar entre 100 y 1000 años en el
la vida a cientos de miles de animales acuáticos que ambiente. Las bolsas de plástico pueden transformarse
mueren cada año por los plásticos y, además, reducir más rápido que una botella, pues están hechas de po-
los contaminantes que afectan en la cadena alimenta- lietileno de baja densidad. La naturaleza suele entablar
ria.También podría ahorrar millones de euros, tanto en una “batalla” dura contra estos elementos que perduran
los costos de limpieza como en el turismo perdido y los hasta 150 años.
daños a las embarcaciones marinas. Gracias a “SeaClean-Up”, hay nuevas esperanzas
Este estudiante de primer año de Ingeniería Na- para poner fin a esta amenaza que azota a los océanos
val se pasó un verano entero analizando el tamaño y de todo el mundo. 13
1 ANÁLISIS DE SITUACIÓN
A partir de la lectura del artículo anterior, extraigan los datos que consideren importantes para re-
plicar el prototipo ideado por Joel Vlaar: un robot capaz de retirar residuos plásticos de los mares.

Consideraciones a tener en cuenta:

1 ESCENARIO:
¿Qué dimensiones tendrá la figura geométrica que lo conforma?
¿De qué color estará demarcado el borde?
GLOSARIO
2 ELEMENTOS DENTRO DEL ÁREA: 1 Si nuestro robot sólo
¿Cuál es el máximo de botellas que colocarán para que el robot
observara el mundo sin
pueda desplazarse correctamente? actuar en él, sería un
robot limitado. Es fun-
3 DISEÑO DEL ROBOT: damental que modifi-
¿Qué sensor o sensores deberá utilizar el robot para no abandonar que su estado y el del
el área delimitada por una línea negra? ambiente según la in-
formación que obtiene
¿Qué actuadores1 intervendrán en el desarrollo de la actividad?
en el proceso. Con este
¿Qué medidas tendrán las “palas” del robot? fin, disponemos de mo-
¿Cómo serán anexadas para que se mantengan firmes? tores, lámparas, buzzers,
¿Qué amplitud deberá tener el ángulo que forman entre sí? etc. Al conjunto de estos
dispositivos se los deno-
4 mina actuadores.
GENERALES:
¿Qué otras ideas deben tener en cuenta?

NOTAS

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

14
PREPARANDO EL ESCENARIO 1
Realicen un esquema de la situación que ayude a entenderla y resolverla:
MATERIALES
Escenario donde se desempeñará el robot. SUGERIDOS:
“Palas” de empuje del robot. Botellas de plástico pequeñas
Cinta aisladora negra
Cinta adhesiva
ESCALA Cartón rígido

RECUERDA
En cada miniproyecto, deberán realizar dibujos que ayuden a pensar la situación.
Por ejemplo, la forma y el tamaño del robot, el camino a recorrer, formas y
tamaños de los residuos, materiales a utilizar, etc.
15
1 ANÁLISIS PREVIO AL CÓDIGO

Analicen cómo será el comportamiento de los sensores durante el desafío y observen la siguiente
tabla de verdad, teniendo en cuenta qué valor detecta cada uno.

S0 (Izquierda) S1 (Derecha) Acción

Blanco Blanco Avanza en línea recta

Cambia la dirección para evitar el negro.


Blanco Negro
Y avanza en línea recta.

Cambia la dirección para evitar el negro.


Negro Blanco
Y avanza en línea recta.

Cambia la dirección para evitar el negro.


Negro Negro
Y avanza en línea recta.

A partir de la tabla anterior, observen el siguiente diagrama de flujo que los ayudará a analizar el
comportamiento que deberá desarrollar el robot en el espacio en que se desenvolverá.

16
CONSTRUCCIÓN Y PROGRAMACIÓN
Construyan el escenario que diagramaron y las adaptaciones del robot.
Distribuyan las botellas dentro del área.
Programen el vehículo para que pueda arrastrar la “basura” encerrada dentro del área hasta
depositarla fuera de ella. Tengan en cuenta que el robot no debe salir del límite.
Tomen el tiempo que tarda el robot en realizar el trabajo. 17
1 INFORME

Completen el siguiente informe y especifiquen qué partes del desafío se cumplieron (o no) y por qué:

MOVIMIENTO SÍ NO ¿POR QUÉ?

¿Respetó el robot el límite del área


marcada?

¿Recolectó las botellas eficientemente?

DISEÑO SÍ NO ¿POR QUÉ?

¿Se mantuvo el accesorio anexado


firme en su lugar?

¿Entorpeció el movimiento del robot?


¿Cómo lo resolvieron?

OPTIMIZACIÓN OBSERVACIONES

¿Cuánto tiempo tardó en realizar la


limpieza de la zona?

¿Cómo se podría optimizar el tiempo?

¿Qué materiales utilizaron para la


construcción?

¿Qué mejoras agregarían al diseño


para que sea más efectivo?

¿Qué otros usos se le puede dar a un


prototipo como este?

18
NOTICIA 2
Cada cosa en su lugar en modo automático
Una empresa distribuidora de alimentos ha incorporado un robot, llamado Tynibot,
para organizar la mercadería dentro de su depósito.

UN MUNDO. La planta de almacenamiento Tvarka apuesta a la incorporación de robots.

L a firma Tvarka ha invertido en la adquisición inicia su marcha en el que la línea no es visible (por el
de un robot para la organización eficiente de su desgaste propio del paso del tiempo). Al final de todo
planta de almacenamiento. El dispositivo incluye un el trayecto se encuentra una marca de color rojo que
contenedor para trasladar los productos de un lugar a indica el fin del camino.
otro. El desafío de esta firma innovadora es optimizar La carga que transportará son cajas con un formato
el costo y el tiempo de organización para lograr mejores de prisma rectangular cuyas medidas máximas son:
resultados. volumen de 250 cm3 y base cuadrada de 25 cm2. El
Un ingeniero contratado por la empresa será el vehículo debe transportar un mínimo de 8 cajas en
encargado de diseñar todo lo necesario para que el cada viaje.
robot cumpla con su función. Primero, deberá hacer Se considerará la tarea cumplida cuando la carga lle-
un modelo a escala que no supere los 40 cm de largo, gue al final del recorrido.
considerando vehículo y contenedor. Esto es para A modo de seguridad, el vehículo deberá avisar con
asegurarse de que todo funcione, ya que el lugar donde un sonido:
debe desempeñar su tarea presenta algunos desafíos.
La escala del escenario será de 1 m en 20 cm. En el Cuando haya comenzado su movimiento
depósito, el robot deberá seguir una línea negra recta de Cada vez que cruce el desgaste de la línea
2,5 cm de ancho y 1 m de largo. Además, hay un sec- Cuando llegue a destino
tor de 5 cm ubicado a 75 cm del lugar donde el robot 19
2 ANÁLISIS DE SITUACIÓN
Extraigan los datos que consideren importantes para llevar a cabo el trabajo del ingeniero
contratado por la firma Tvarka.

Consideraciones a tener en cuenta:

1 ESCENARIO:
¿Qué dimensiones tendrá? Tengan en cuenta las medidas del robot para responder.
¿Cómo sortearán los obstáculos del recorrido?

2 DISEÑO DEL ROBOT:


¿Qué sensor o sensores serán necesarios?
¿Cómo resolverán el transporte mínimo de cajas?

3 ELEMENTOS DENTRO DEL CONTENEDOR:


¿Qué elementos se utilizarán para simular la carga?
¿Qué tamaño tendrá cada uno? Tengan en cuenta las medidas del contenedor para responder.

4 CONTENEDOR:
¿Qué medidas tendrá? Tengan en cuenta las medidas del robot para responder.
Para sostener adecuadamente los elementos a transportar, ¿qué forma tendrá?
¿Cuál será la forma de unión entre el contenedor y el robot?

5 GENERALES:
¿Qué otras ideas deben tener en cuenta?

NOTAS

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

20
PREPARANDO EL ESCENARIO 2
Realicen un esquema de la situación que ayude a entenderla y resolverla:
MATERIALES
Escenario donde se desempeñará el robot. SUGERIDOS:
Forma y medida del contenedor. Cinta aisladora negra
Organización de las cajas a transportar dentro del contenedor. Cinta aisladora roja

ESCALA

RECUERDA
En cada miniproyecto, deberán realizar dibujos que ayuden a pensar la situación.
Por ejemplo, la forma y el tamaño del robot, el camino a recorrer, formas y
tamaños de las cajas transportadas, materiales a utilizar, etc.
21
2 ANÁLISIS PREVIO AL CÓDIGO

Analicen cómo será el comportamiento de los sensores durante el desafío y completen la siguiente
tabla de verdad, teniendo en cuenta qué valor detecta cada uno.

Si es “Negro” se indica con valor “1”; si no, con valor “0”

S0 (Izquierda) S1 (Derecha) Acción

1 1 Avanza (se encuentra en el camino)

1 0 Gira a la izquierda

0 1
..................................................................

0 0
Emite un sonido y .................................................

GLOSARIO

Diferencia entre eficaz y eficiente:

Algo es EFICAZ cuando puede lograr el propósito para lo que


fue diseñado.

Algo es EFICIENTE cuando puede lograr un objetivo de la


mejor manera posible.

Estas definiciones nos llevan a una idea más: la economía de


recursos.

La ECONOMÍA DE RECURSOS es la capacidad de pensar o


diseñar algo con la menor cantidad de partes posible o en
menos tiempo o que pueda reutilizarse cuando ya no sirva.

A partir de la tabla anterior, observen el siguiente diagrama de flujo que los ayudará a analizar el
comportamiento que deberá desarrollar el robot en el espacio en que se desenvolverá.

22
CONSTRUCCIÓN Y PROGRAMACIÓN
Antes de iniciar el trabajo, lean los aspectos a evaluar para completar el informe que
figura en la página siguiente.
Construyan físicamente lo esquematizado en las páginas anteriores.
Programen el transporte para que realice su tarea de la forma más eficaz y eficiente.
Tomen el tiempo que tarda el robot en realizar el recorrido. 23
2 INFORME
Completen el siguiente informe y especifiquen qué partes del desafío se cumplieron (o no) y por qué:

MOVIMIENTO SÍ NO ¿POR QUÉ?


¿Siguió el robot la línea negra?

¿Sorteó los obstáculos (blancos de la línea)?

¿Se detuvo en la parada correspondiente,


luego de haberla superado por completo?

El accesorio de carga, ¿entorpeció el


movimiento del robot?
Si la respuesta es sí, ¿cómo lo resolvieron?

OPTIMIZACIÓN SÍ NO OBSERVACIONES
¿Llegó la carga completa a destino?

¿Se mantuvo en orden?

¿Podrían cargar 12 cajas en lugar de 8?

¿Sería igual trasladar un contenedor


de latas, de agua o de automóviles?

¿Cuánto tiempo tardó en realizar el


recorrido completo?

¿De qué forma podrían disminuir el


tiempo de recorrido?

¿Qué características deberían variar


en el accesorio de carga según el tipo
de elemento a transportar?

Enumeren los materiales utilizados:

CANTIDAD NOMBRE DESCRIPCIÓN

24
NOTICIA 3
Un robot al rescate del minero José Murundiaga
Una solución distinta para las emergencias en una de las actividades más riesgosas del mundo.

TÚNELES MINEROS. Lugares de trabajo donde el riesgo siempre está presente.

E l robot Rescue-ME es una creación del Grupo de alto está liberado para el ingreso.
de Rescatistas de Mineros de la ONU. Permite reali- Se estima, según los relatos de los compañeros que
zar importantes rescates, y así disminuye enormemente lograron sobrevivir al derrumbe, que el minero Murun-
los riesgos de esta tarea imprescindible, pero peligrosa. diaga viste la ropa de trabajo habitual de color naranja y
Se comprobará su eficacia en las operaciones de resca- que se encuentra después de la primera curva del túnel
te que se realizarán para salvar al minero chileno José al costado del camino.
Murundiaga. A fin de salvaguardar la seguridad de los rescatistas,
Los primeros momentos después de un accidente se enviará al robot Rescue-ME para detectar el lugar
son cruciales: personal de emergencias y primeros au- exacto en el que se encuentra José Murundiaga. El ro-
xilios trabajan a contrarreloj para evaluar la situación y bot recorrerá 1500 m hasta doblar en la primera curva
rescatar al minero que se encuentra atrapado en su zona donde se encontraría el minero. Al no poseer informa-
de trabajo desde hace ya varios días. ción sobre el actual estado del suelo, la única referencia
Las tareas de rescate de una mina son las más com- que puede utilizar el robot para definir su trayectoria
plicadas que debe desarrollar el personal de emergen- son las líneas de seguridad plateadas que delimitan el
cia, debido a la posible presencia de gases, combusti- camino por donde transitan los mineros.
bles, túneles inundados, muros y techos inestables y Cuando Rescue-ME encuentre al minero deberá
pedregosos. A esto se suma, además, la escasa luz del emitir una alarma para que el personal de emergencia
lugar. En este caso, la complicación radica en que la comience a actuar. De esta forma, el equipo de rescate
entrada a la mina está bloqueada por el derrumbe y podrá realizar las operaciones de salvamento de manera
sólo un pequeño espacio de 30 cm de ancho y 50 cm exitosa y con escaso riesgo. 25
3 ANÁLISIS DE SITUACIÓN

Extraigan los datos que consideren importantes para recrear el rescate del minero José Murundiaga.

Consideraciones a tener en cuenta:

1 ESCENARIO:
¿Cómo representarán las paredes de la cueva?
¿Qué dimensiones tendrá?
¿Qué limitará el camino dentro de la cueva?

2 DISEÑO DEL ROBOT:


¿Qué sensor o sensores serán necesarios?
¿Dónde será conveniente ubicarlos?

3 MINERO SOBREVIVIENTE:
¿Cómo lo representarán?
¿Qué medidas tendrá? Tengan en cuenta las características del robot para responder.

4 GENERALES:
¿Qué otras ideas deben tener en cuenta?

NOTAS

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

26
PREPARANDO EL ESCENARIO 3
Realicen un esquema de la situación que ayude a entenderla y resolverla:
MATERIALES
SUGERIDOS:
Escenario donde se desempeñará el robot.
Papel negro para representar el piso de la cueva
Cinta plateada para delimitar los bordes del camino
Papel color naranja para representar al minero atrapado
ESCALA Cartón para representar la mina

RECUERDA
En cada miniproyecto, deberán realizar dibujos que ayuden a pensar la situación.
Por ejemplo, la forma y el tamaño del robot, el camino a recorrer, forma y tamaño
del minero sobreviviente, materiales a utilizar, etc.
27
3 ANÁLISIS PREVIO AL CÓDIGO

Analicen cómo será el comportamiento de los sensores durante el desafío y completen la siguiente
tabla de verdad, teniendo en cuenta qué valor detecta cada uno.

S0 (Izquierda) S1 (Derecha) Acción

Negro Negro Avanza

Negro Plateado
..................................................................

Plateado Negro
..................................................................

X Naranja
..................................................................

Naranja X
..................................................................

RECUERDA
El símbolo X, en la tabla de verdad, indica
que el sensor no actúa.

A partir de la tabla anterior, completen el siguiente diagrama de flujo que los ayudará a analizar el
comportamiento que deberá desarrollar el robot en el espacio en que se desenvolverá.

28
CONSTRUCCIÓN Y PROGRAMACIÓN
Antes de iniciar el trabajo, lean los aspectos a evaluar para completar el informe que
figura en la página siguiente.
Construyan físicamente lo esquematizado en las páginas anteriores.
Programen el robot para que realice su tarea de la forma más eficaz y eficiente.
Tomen el tiempo que tarda el robot en realizar el recorrido. 29
3 INFORME

Completen el siguiente informe y especifiquen qué partes del desafío se cumplieron (o no) y por qué:

MOVIMIENTO SÍ NO ¿POR QUÉ?


¿Se movió el robot dentro de la línea
negra?

¿Se detuvo al encontrar el color


naranja (minero)?

OPTIMIZACIÓN SÍ NO OBSERVACIONES

¿Podrían haber usado un solo sensor?


¿Cuál es la ventaja y desventaja?

¿De qué forma podrían disminuir el


tiempo de recorrido?

¿Cuánto tiempo tardó en realizar el


recorrido completo?

¿Cuál fue el obstáculo más importante


en la programación que encontraron?
¿Cómo lo solucionaron?

¿Cuál fue el obstáculo más importante


en el movimiento que encontraron?
¿Cómo lo solucionaron?

Enumeren los materiales utilizados:

CANTIDAD NOMBRE DESCRIPCIÓN

30
NOTICIA 4
Barco a la deriva salvado por sensores de luz
En una situación de emergencia, el barco Compass logró encontrar su rumbo gracias a
la tecnología de sensores.

SENSORES DE LUZ. Una tecnología que salió al rescate cuando el sistema de navegación falló.

L os habitantes de Seattle se han sorprendido con detectar la luz del faro de la costa y guiar el barco a
la asombrosa noticia del barco que pudo llegar a la ori- tierra firme.
lla sin el sistema electrónico de navegación activado, La tripulación puso sus conocimientos en marcha
sorteando un sector de acantilados. y guió la embarcación en dirección a donde suponían
El barco Compass, que pertenece a la marina de los que estaba la costa, para que el sensor detectara la luz
Estados Unidos, salió el día lunes a realizar su recorrido del faro. Esta trayectoria no se pudo realizar en línea
habitual por la costa oeste del país. Su regreso estaba recta debido a las fallas que sufría Compass. El barco
estipulado para la madrugada siguiente, pero la vuelta navegó en zigzag hasta que el sensor detectó la luz de
a casa no fue fácil. la orilla.
Esta unidad se encuentra equipada con un sistema Este es otro claro ejemplo de que la tecnología ya
de navegación de última generación que le permite na- es parte de nuestras vidas y, tanto es así, que también
vegar por mares y océanos sin perder su orientación. las salva.
Sin embargo, en aquella madrugada, dicho sistema su-
RECUERDA:
frió una falla que dejó a Compass y a toda su tripula-
ción a la deriva. El CNY70 es un sensor de infrarrojos de
La embarcación posee un sistema de navegación corto alcance basado en un emisor de luz
y un receptor, ambos apuntando en la
de emergencia del cual sólo quedaron funcionando los misma dirección, y cuyo funcionamiento
sensores que detectan luminosidad. se basa en la capacidad de reflexión del
Con el sensor ubicado en la proa pudo sortear los objeto y en la detección del rayo reflecta-
acantilados y con el sensor ubicado en su mástil pudo do por el receptor. 31
4 ANÁLISIS DE SITUACIÓN

Extraigan los datos que consideren importantes para lograr que el barco Compass llegue a orilla.

Consideraciones a tener en cuenta:

1 ESCENARIO:
¿Cómo representarán el faro?
¿Cómo se logrará la oscuridad?
¿Cómo representarán las piedras?

2 DISEÑO DEL ROBOT:


¿Qué sensor o sensores serán necesarios?
¿Dónde se colocarán?

3 GENERALES:
¿Qué otras ideas deben tener en cuenta?

NOTAS

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................
32
PREPARANDO EL ESCENARIO 4
Realicen un esquema de la situación que ayude a entenderla y resolverla:
MATERIALES
Escenario donde se desempeñará el robot. SUGERIDOS:
Recorrido del robot. Tubo de cartón
Ubicación de todos los elementos que se dispondrán dentro Linterna
del escenario. Cartón
Varilla para sostener el sensor
ESCALA

RECUERDA
En cada miniproyecto, deberán realizar dibujos que ayuden a pensar la situación.
Por ejemplo, la forma y el tamaño del robot, el camino a recorrer, materiales a
utilizar, etc.
33
4 ANÁLISIS PREVIO AL CÓDIGO

Analicen cómo será el comportamiento de los sensores durante el desafío y observen la siguiente
tabla de verdad, teniendo en cuenta qué valor detecta cada uno.

Si es “luz” se indica con valor “1”; si no, con valor “0”

S0 (IR) S1 (IR) Acción

1 O Avanza hacia el faro

0 1 No avanza hacia el faro

1 1 Rodea la roca y sigue avanzando

0 0 Movimiento zigzagueante

A partir de la tabla anterior, completen el siguiente diagrama de flujo que los ayudará a analizar
el comportamiento que deberá desarrollar el robot en el espacio en que se desenvolverá.

34
CONSTRUCCIÓN Y PROGRAMACIÓN
Antes de iniciar el trabajo, lean los aspectos a evaluar para completar el informe que
figura en la página siguiente.
Construyan físicamente lo esquematizado en las páginas anteriores.
Programen el robot para que realice su tarea de la forma más eficaz y eficiente.
Tomen el tiempo que tarda el robot en realizar el recorrido. 35
4 INFORME

Completen el siguiente informe y especifiquen qué partes del desafío se cumplieron (o no) y por qué:

MOVIMIENTO SÍ NO ¿POR QUÉ?

¿Siguió el barco la luz?

¿Logró sortear el obstáculo?

¿De qué forma el robot podría


esquivar más rápidamente los
obstáculos?

¿Qué modificarían a la programación


o al robot para que el movimiento al
faro sea más veloz?

OPTIMIZACIÓN OBSERVACIONES

¿Cuánto tiempo tardó en realizar el


recorrido completo?

¿De qué forma podrían disminuir el


tiempo de recorrido?

¿Qué sensores le agregarían para


resolver el problema en forma más
eficaz?

Enumeren los materiales utilizados:

CANTIDAD NOMBRE DESCRIPCIÓN

36
NOTICIA 5
Los automóviles se emancipan en Las Vegas
Los automóviles autónomos están más cerca que nunca: a partir de la identificación del
entorno que les ofrecen los sensores, parece que la mejor manera de llegar de un lugar a otro
en cuatro ruedas podría ser en vehículos cuyos dueños sean ellos mismos.

SIN CONDUCTORES. Muchas son las firmas que apuestan a este nuevo enfoque automotriz.

U na importante firma automotriz lleva a la prác- derecha por una línea blanca, que le indicará la banqui-
tica su programa de conducción autónoma con motivo na. Ambas líneas se destacan sobre la superficie negra
de la Feria Internacional de Electrónica de Consumo de la ruta.
(ICES, por sus siglas en inglés: International Consu- En el primer paso experimental, diseñaron una pista
mer Electronics Show) que se está celebrando en la ciu- para que el robot realice sus primeros movimientos. El
dad de Las Vegas. Para la ocasión, no ha dudado en salir autómata inicia su recorrido desde una línea de inicio,
a la calle para mostrar al público cómo es posible que corre por un carril y nunca se sale de este, ya que está
un vehículo sea capaz de recorrer un camino en forma delimitado por las líneas mencionadas anteriormente.
autónoma y detenerse en el lugar donde lo espera el En el recorrido realiza dos curvas a la derecha y dos a
conductor. la izquierda. Finaliza en la misma línea de partida, de
En la feria, el vehículo “identificará las condicio- color azul.
nes de su entorno, y así tomará decisiones”, aseguró la Es sorprendente cómo el automóvil puede trasla-
vocera de la firma. El vehículo está programado para darse guiado únicamente por sensores.
viajar por una ruta con las siguientes especificaciones: Este prototipo será, sin dudas, la atracción principal
estará delimitada a su izquierda por una línea amarilla de la Feria ICES de Las Vegas.
37
que le indicará el límite de su carril, y delimitada a la
5 ANÁLISIS DE SITUACIÓN
Extraigan los datos que consideren importantes para hacer que un automóvil se desplace de
manera automática.

Consideraciones a tener en cuenta:

1 ESCENARIO:
¿Qué dimensiones tendrá? Tengan en cuenta las medidas del robot para responder.
¿Qué forma tendrá la pista? ¿Cuántas curvas a izquierda y derecha tendrá?
¿Cuál será el ancho del carril?

2 ROBOT:
¿Qué sensor o sensores serán necesarios?
¿Cómo identificarán, a través de la programación, los giros a la derecha y a la izquierda?
¿Cuál es la velocidad más recomendable?

3 GENERALES:
¿Qué otras ideas deben tener en cuenta?

NOTAS

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................
38
PREPARANDO EL ESCENARIO 5
Realicen un esquema de la situación que ayude a entenderla y resolverla:
MATERIALES
SUGERIDOS:
Forma y medida de la pista.
Cinta aisladora negra
Cinta aisladora amarilla
Cinta aisladora blanca
ESCALA Cinta aisladora azul

RECUERDA
En cada miniproyecto, deberán realizar dibujos que ayuden a pensar la situación.
Por ejemplo, la forma y el tamaño del robot, el camino a recorrer, materiales a
utilizar, etc.
39
5 ANÁLISIS PREVIO AL CÓDIGO

Analicen cómo será el comportamiento de los sensores durante el desafío y completen la siguiente
tabla de verdad, teniendo en cuenta qué valor detecta cada uno.

S0 (Izquierda) S1 (Derecha) Acción

Negro Negro
..................................................................

Amarillo Negro Gira a la derecha

Negro Blanco
..................................................................

Azul Azul
Espera ........... segundos y se ........................

RECUERDA
Las líneas centrales pueden ser de tres tipos:

Línea punteada
Los conductores de ambos carriles pueden rebasar a otro vehículo.

Linea continua y punteada


Los conductores que tienen de su lado la línea continua, no podrán
rebasar, mientras que los que están en el carril de la línea puntea-
da podrán rebasar o cruzarla.

Línea doble continua


Los conductores de ambos carriles no pueden rebasar vehículos o
cruzarla.

A partir de la tabla anterior, completen el siguiente diagrama de flujo que los ayudará a analizar el
comportamiento que deberá desarrollar el robot en el espacio en que se desenvolverá.

40
CONSTRUCCIÓN Y PROGRAMACIÓN
Antes de iniciar el trabajo, lean los aspectos a evaluar para completar el informe que figura en
la página siguiente.
Construyan físicamente lo esquematizado en las páginas anteriores.
Programen el vehículo para que realice su tarea de la forma más eficaz y eficiente.
Tomen el tiempo que tarda el robot en realizar el recorrido.
41
5 INFORME

Completen el siguiente informe y especifiquen qué partes del desafío se cumplieron (o no) y por qué:

MOVIMIENTO Y OPTIMIZACIÓN SÍ NO OBSERVACIONES

¿Siguió el robot su carril?

¿Podrían haber utilizado un solo sensor?


¿Cuál sería la ventaja y la desventaja?

Si el vehículo tuviera menos peso,


¿aumentaría la velocidad?

¿Cuál fue la velocidad máxima promedio


alcanzada?

Si pudieron mejorar la velocidad, ¿cómo


lo hicieron?

¿Cuál es el problema de tomar a mucha


velocidad la curva?

¿De qué forma podrían disminuir el


tiempo de recorrido?

¿Cuál fue el obstáculo más importante


en la programación que encontraron?
¿Cómo lo solucionaron?

¿Cuál fue el obstáculo más importante


en el movimiento que encontraron?
¿Cómo lo solucionaron?

Enumeren los materiales utilizados:

CANTIDAD NOMBRE DESCRIPCIÓN

42
NOTICIA 6
SCRATCHER, un robot que juega a los bolos
El mundo del bowling tiene una nueva superestrella que ya ha demostrado sobresalientes
cualidades de precisión y velocidad.

EN ACCIÓN. Este brazo robótico puede imitar cualquier estilo de juego a la perfección.

E l robot SCRATCHER es en rigor un solo brazo se encuentran 10 bolos que deben ser derribados. Los
que juega al bowling, usado por el Congreso Interna- robots–jugadores tienen dos tiros cada uno por ronda,
cional de Bowling (CIB) para probar distintos equipa- y la totalidad de la partida consta de 5 rondas.
mientos. Deben esperan su turno detrás de una línea de par-
Gracias a su tecnología, los datos recogidos se usan tida y sortear algunos obstáculos antes de demostrar su
para establecer reglas y también para diseñar equipa- destreza en el juego. El ganador será aquel que logre
mientos como son carriles, bolas e incluso los bolos. sumar mayor puntaje.
Recientemente, SCRATCHER debutó ante el pú- Para el CIB, lograr una mejor calidad en sus pro-
blico en Texas y parece tener muy buena puntería. Se ductos es importante para favorecer las condiciones de
enfrentó a la superestrella Chris Barnes y estuvo a pun- este deporte en todo el mundo. Una máquina automa-
to de vencerlo, pero el neoyorquino se quedó con el tizada es, sin dudas, de gran ayuda.
triunfo.
El CIB está actualmente trabajando en la creación PUNTAJE:
de un nuevo robot que sea manejado a control remoto.
La finalidad esta vez es proponer un nuevo juego, simi- Cada bolo derribado: 1 punto.
lar al bowling, pero con una modificación tecnológica: Strike (todos los bolos derribados): 20
puntos. Permite continuar con los tiros
la bola debe ser empujada por una rampa (50 cm de que le correspondan en la ronda.
ancho y 100 cm de largo) cuesta abajo (con una incli- Infracción al límite de tiro: -5 puntos y
nación de 45º con respecto al piso). Al final de la rampa pérdida del tiro.
43
6 ANÁLISIS DE SITUACIÓN
Extraigan los datos que consideren importantes para recrear el nuevo juego parecido al bowling.

Consideraciones a tener en cuenta:

1 ESCENARIO:
¿Cómo se le dará altura a la zona destinada para el RECUERDA
lanzamiento?
Para tener en cuenta a la hora de
¿Cómo realizarán la estructura que sostenga la rampa construir la estructura que sosten-
a la inclinación indicada? ga la rampa:
¿Cuál será el punto exacto de límite de tiro? El triángulo es el único polígono
¿Cuánta carrera podrá tomar el robot? que no se deforma cuando actúa
Para comprobar si el juego es atractivo, ¿será necesario sobre él una fuerza.
diseñar límites para la rampa, de manera que la pelota
no caiga fuera de ella? ¿O será mejor no hacerlo?
¿Dónde se colocará el encargado de ordenar los bolos
luego de cada tiro, de manera de no entorpecer el
juego?
Por ello es recomendable utilizar
2 DISEÑO DEL ROBOT: triángulos en el armado del con-
¿Qué sensor o sensores serán necesarios? tenedor, de manera que frente al
¿Será necesario anexarle algún material en el frente movimiento del robot y al peso de
del robot para que pueda empujar la bola? los elementos transportados no
sufra ningún deterioro su forma.
3 GENERALES:
¿Qué otras ideas deben tener en cuenta?

NOTAS

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

.........................................................................................................................................................

44
PREPARANDO EL ESCENARIO 6
Realicen un esquema de la situación que ayude a entenderla y resolverla:
MATERIALES
SUGERIDOS:
Escenario donde se desempeñará el robot (desde
el lugar de lanzamiento, considerando la rampa Una pelota de tenis o similar
Cinta aisladora negra para delimitar lugar de
y el lugar en el que se dispondrán los bolos).
lanzamiento
Forma y medida de la rampa. Cartón rígido para la rampa
Disposición de los bolos. Palitos de helado (para una estructura rígida)
Botellas plásticas para representar los bolos
ESCALA

RECUERDA
En cada miniproyecto, deberán realizar dibujos que ayuden a pensar la situación.
Por ejemplo, la forma y el tamaño del robot–jugador y de la rampa, el camino a
recorrer, materiales a utilizar, etc.
45
6 ANÁLISIS PREVIO AL CÓDIGO

Analicen cómo será el comportamiento de los sensores durante el desafío y completen la siguiente
tabla de verdad, teniendo en cuenta qué valor detecta cada uno.
En esta actividad se utilizará el control remoto.

S0 (control remoto) Acción

Detecta “2”
..........................................................................................

Detecta “5” Se detiene

Detecta “8”
..........................................................................................

Detecta “4”
..........................................................................................

Detecta “6” Gira a la derecha

RECUERDA
Para que el giro del robot no sea demasiado
brusco, procuren hacer los giros de a tramos
pequeños (pasos).

A partir de la tabla anterior, completen el siguiente diagrama de flujo que los ayudará a analizar el
comportamiento que deberá desarrollar el robot en el espacio en que se desenvolverá.

46
CONSTRUCCIÓN Y PROGRAMACIÓN
Antes de iniciar el trabajo, lean los aspectos a evaluar para completar el informe que figura en la
página siguiente.
Construyan físicamente lo esquematizado en las páginas anteriores.
Programen el robot jugador de bowling para que realice su tarea de la forma más eficaz y eficiente.
Tomen el tiempo que tarda el robot en realizar el recorrido.
47
6 INFORME

Completen el siguiente informe y especifiquen qué partes del desafío se cumplieron (o no) y por qué:

MOVIMIENTO SÍ NO ¿POR QUÉ?


¿Fue suficiente la distancia de toma
de carrera?

¿Se detuvo el robot antes de pisar la


línea de tiro?

OPTIMIZACIÓN SÍ NO ¿POR QUÉ?

La programación del control remoto,


¿presentó algunas dificultades?
¿cómo las resolvieron?

¿Se cometieron muchas infracciones


en la línea de límite de tiro? En caso
de que la respuesta sea sí, ¿cómo las
resolvieron?

¿Caía la bola de la rampa


habitualmente? En caso de que la
respuesta sea sí, ¿cómo lo resolvieron?

La inclinación de la rampa, ¿permitió


derribar los bolos habitualmente?

Enumeren los materiales utilizados:

CANTIDAD NOMBRE DESCRIPCIÓN

48
Guías teóricas
INTRODUCCIÓN A SENSORES
Hasta aquí han aprendido cómo programar todos los movimientos del robot. Pero si el robot
no puede percibir lo que sucede a su alrededor, está “ciego”. Para solucionar este problema
necesita SENSORES.

¿Qué son los SENSORES?


Así como los seres humanos tenemos cinco sentidos, los robots tienen SENSORES
para interactuar con el mundo que los rodea.
Los robots pueden así detectar luminosidad, proximidad, temperatura, gases,
humedad, presión... y muchas cosas más.
Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas,
llamadas variables de instrumentación, y transformarlas en variables eléctricas. Las
variables de instrumentación pueden ser, como mencionamos antes, de luminosidad,
proximidad, temperatura, gases, humedad, presión, etc.

Los sensores cumplen la función de captar la realidad del entorno donde se


encuentra el robot. A partir de los valores que reconoce puede realizar acciones
como, por ejemplo, activar los motores.
Para realizar la programación de sensores es necesario saber qué valores del
ambiente está captando el sensor.
A partir de esa información, el robot puede:
Llegar a lugares donde el hombre no podría llegar por impedimentos físicos
o peligros de vida. Por ejemplo, explorar otros planetas, rescatar víctimas
en escenarios riesgosos, exponerse a condiciones ambientales adversas,
desarmar bombas...
Realizar acciones que requieren de mucha precisión y velocidad. Por ejemplo,
operaciones de riesgo en medicina, ensamble de piezas en industrias...

51
ACTIVIDAD
Siempre que se trabaja con sensores, es necesario saber qué está captando dicho sensor.
Para esto se utiliza el test de sensores.

Test de sensores

1 Seleccionen la acción MIENTRAS (WHILE) .

2 Hagan clic en la flecha roja para desplegar el menú de valores y seleccionen VERDADERO
(TRUE) .

3 Seleccionen la acción TERMINAL . Luego, se deberá indicar cuál sensor es el que testeará de
acuerdo a la entrada que se haya utilizado en nuestro robot. En este caso, como el cable está
conectado a la S0, elegiremos sensor 0.

52
4 Seleccionen la acción TIEMPO . Ingresen el valor 100.

5 Descarguen el programa presionando el botón EJECUTAR desde la barra de herramientas.

6 Una vez descargado el programa, seleccionen la opción TERMINAL de la barra de


herramientas y luego presionen el botón ABRIR. Se podrán ver diferentes números que
corresponden a los valores que capta el sensor.

7 Observen que los valores que recibe el sensor varían del 0 al 100. Para detener el proceso,
presionen CERRAR.

Para ejecutar nuevamente la lectura del sensor,


presionen el botón RESET y luego RUN en la placa controladora. 53
SENSOR INFRARROJO - IR

Programación de sensor infrarrojo (IR)

¿Qué es y cómo funciona?


Un sensor infrarrojo es un dispositivo capaz de “ver” objetos cercanos, es decir,
su función es informar si “ve” o no un objeto a corto alcance.
El sensor infrarrojo mide la radiación electromagnética infrarroja de los cuerpos
en su campo de visión. Vale aclarar que no toda clase de radiación es visible a los
ojos. Podemos ver ondas de luz, por ejemplo, pero no podemos ver rayos gamma,
rayos X, rayos ultravioleta, microondas... ni rayos infrarrojos.
Esta clase de sensor IR (InfraRed Sensor, en inglés) es de proximidad: emite un rayo
infrarrojo que rebota en la superficie del objeto al que está próximo. Este rebote
es tomado por un receptor. La luminosidad captada por el receptor varía según el
color de la superficie, la luminosidad del ambiente y el tipo de superficie (opaca o
brillante).

Sensor IR del kit

Utilizando el TEST DE SENSORES, verifiquen los valores que capta el sensor cuando se lo acerca
a una hoja de papel blanco y a una hoja de papel negro.

Al acercar el sensor a la hoja de color blanco, los valores devueltos se acercan a 100.
Al acercar el sensor a la hoja de color negro, los valores devueltos se acercan a 0.

En esta actividad, el motor mantiene el movimiento hasta que el sensor detecta el color negro,
momento en el que se detiene. El robot deberá tomar una decisión para detenerse cuando
detecta el color negro.

Para esto aprenderemos a utilizar el bloque DECISIÓN (IF) .

Este bloque despliega dos condiciones: Verdadero y Falso .


Coloquen, debajo de cada una de estas, las acciones que desean programar. De esta manera,
si las condiciones son verdaderas, se ejecutarán las acciones debajo de “verdadero”. Si no, se
ejecutarán las acciones debajo de “falso”.
54
1 Seleccionen la acción MIENTRAS (WHILE) .

2 Desplieguen el menú de valores y seleccionen VERDADERO (TRUE) .

3 Seleccionen el bloque DECISIÓN (IF) .

4 Desplieguen el menú de valores y seleccionen MENOR . Aparecerán dos flechas rojas


desplegables.

55
ACTIVIDAD

5 En el primer menú desplegable, seleccionen la ENTRADA DE SENSOR , y allí, el sensor 0.

6 En el segundo menú desplegable, ingresen un VALOR NUMÉRICO . Este deberá ajustarse


de acuerdo al TEST DE SENSORES. En este caso, deberán tener en cuenta el umbral cuando se
coloca al sensor sobre la superficie de color negro. Por ejemplo, el valor 50.

7 Seleccionen luego la acción MOTORES . Agreguen a continuación el valor que debe tomar
el motor al detectar el color negro (0).

56
8 Debajo de la condición FALSO , indiquen al motor que, si NO detecta el color negro,
siga funcionando.

9 Por último, con la acción TIEMPO , agreguen un tiempo de espera de 100 ms (milisegundos)
para darle tiempo a la placa a procesar la información entregada por el sensor.

10 Descarguen el programa presionando el botón EJECUTAR desde la barra de herramientas.

57
SENSOR DE LUZ - LDR

Programación de sensor de luz (LDR)

¿Qué es un sensor de luz o fotosensible?


Es un dispositivo que responde al cambio en la intensidad de la luz.
El sensor de luz más común es el LDR (Light Dependant Resistor, en inglés: Resistor
dependiente de la luz). Un LDR es, básicamente, un resistor que cambia su resistencia
cuando cambia la intensidad de la luz.
Sensor LDR Sensor LDR del kit

En esta actividad, los motores se accionarán cuando sean alumbrados por una linterna.

1 Seleccionen la acción MIENTRAS (WHILE) .

2 Desplieguen el menú de valores y seleccionen VERDADERO (TRUE) .

58
3 Seleccionen la acción MOTORES . Desplieguen el menú de valores y seleccionen
ENTRADA DE SENSOR .

4 De acuerdo a la conexión de los cables para motor y sensor, seleccionen motor 0 y sensor 1.

5 Descarguen el programa presionando el botón EJECUTAR desde la barra de herramientas.

Acerquen la luz de una linterna al sensor.


Así, se activará el motor al recibir mayor luminosidad. 59
ACTIVIDAD

Programación de dos sensores LDR

¿Qué es una tabla de verdad?


Una tabla de verdad es una tabla que muestra el valor de verdad de una
proposición compuesta, para cada combinación de verdad que se pueda asignar.
En nuestro caso, esto permitirá razonar y analizar todas las posibilidades de
acción que debe tomar el robot según qué sensor esté activado: si detecta (o no)
un color, si detecta (o no) un objeto, etc.

Conecten un sensor LDR en S0 y otro en S1. Utilizando estos sensores del robot, estudiaremos
las posibilidades de acción con la Tabla de Verdad 1:

REFERENCIAS
Valor 1 = el sensor es alumbrado por una linterna.
Valor 0 = el sensor no es alumbrado.

TABLA DE VERDAD 1

S0 (Izquierda) S1 (Derecha) Acción

Gira a la derecha
1 0
(M0 avanza; M1 detenido)

Gira a la izquierda
0 1
(M0 detenido; M1 avanza)

Avanza
1 1
(M0 y M1 avanzan)

Detenido
0 0
(M0 y M1 detenidos)

Una vez analizadas las posibilidades, podemos transcribir todo al lenguaje de programación
que utilizamos.

1 Seleccionen la acción MIENTRAS (WHILE) .

60
2 Desplieguen el menú de valores y seleccionen VERDADERO (TRUE) .

3 Seleccionen el bloque DECISIÓN (IF) , que mostrará los menúes desplegables verdadero y
falso.

4 Deben indicar qué valor está captando cada uno de los sensores en conjunto. Para analizar la
primera posibilidad de la tabla de verdad, deben seleccionar en verdadero el operador lógico
AND . Aparecerán dos flechas rojas desplegables:

En el primer menú desplegable, seleccionen el signo MAYOR , que desplegará a su vez


dos valores: en la flecha roja superior, seleccionen el sensor 0 y en la flecha roja inferior, el
umbral (en este caso, 80).

61
ACTIVIDAD
En el segundo menú desplegable, seleccionen el signo MENOR , que desplegará a su vez
dos valores: en la flecha roja superior, seleccionen el sensor 1 y en la flecha roja inferior, el
umbral (en este caso, 80).

5 Según la tabla de verdad, bajo esta condición, la programación debe ser la siguiente:
M0 avanza (50) y M1 detenido (0).

6 Para analizar la segunda posibilidad de la tabla de verdad, deben seleccionar en “falso” el


bloque DECISIÓN .

62
7 Seleccionen en verdadero el operador lógico AND . Aparecerán dos flechas desplegables:

En el primer menú desplegable, seleccionen el signo MENOR , que desplegará a su vez


dos valores: en la flecha roja superior, seleccionen el sensor 0 y en la flecha roja inferior,
el umbral (en este caso, 80).

En el segundo menú desplegable, seleccionen el signo MAYOR , que desplegará a


su vez dos valores: en la flecha roja superior, seleccionen el sensor 1 y en la flecha roja
inferior, el umbral (en este caso, 80).

8 Según la tabla de verdad, bajo esta condición, la programación debe ser la siguiente: M0
detenido (0) y M1 avanza (50).

9 Si NO ocurre ninguna de las posibilidades anteriores, los motores estarán detenidos.

En la programación anterior no se tuvieron en cuenta todas las posibilidades que analizaron en


la tabla de verdad. Agreguen la posibilidad que falta y comprueben su funcionamiento. 63
CONTROL REMOTO

Programación del control remoto (CR)

Desconecten los sensores LDR de la placa del robot y conecten el sensor de control remoto
en S0.

TABLA DE VERDAD 2

Sensor CR Número del CR Acción

S0 2 Avanza

S0 8 Retrocede

S0 4 Gira a la izquierda

S0 6 Gira a la derecha

Para programar la primera línea de la Tabla de verdad 2, se procede de la siguiente forma:

1 Seleccionen la acción MIENTRAS (WHILE) y luego desplieguen el menú de valores para


seleccionar VERDADERO (TRUE) .

2 Seleccionen el bloque DECISIÓN (IF) .

64
3 En verdadero, seleccionen el signo IGUAL . Aparecerán dos flechas desplegables:

En el primer menú desplegable, seleccionen el ícono SENSOR DE CONTROL REMOTO .

En el segundo menú desplegable, seleccionen el VALOR NUMÉRICO que se presionará


del control remoto: en este caso, el 2.

4 Al presionar el número 2 en el control remoto, los motores avanzan.

Completen la programación para las tres líneas de la


Tabla de verdad 2 que faltan y comprueben su funcionamiento. 65
SENSOR DE ULTRASONIDO

Programación de sensor de ultrasonido

¿Qué es y cómo funciona?


El robot, a través del sensor de ultrasonido, detecta objetos y mide a qué distancia
se encuentran.
¿Sabían que algunos animales tienen “sensores de ultrasonido” biológicos?
Los murciélagos, al igual que los delfines, utilizan la ecolocación, un sistema de
percepción que consiste en la emisión de sonidos para producir ecos. Cuando el eco
retorna, los sonidos se transmiten al cerebro a través del sistema nervioso auditivo
y esto los ayuda a orientarse, detectar obstáculos y localizar presas.
De forma similar, los sensores de ultrasonido pueden detectar objetos a distancias
de hasta 8 metros. El sensor emite un sonido y mide el tiempo que la señal tarda
en regresar. Luego recibe el eco producido y lo convierte en señales eléctricas. Estos
sensores trabajan solamente en el aire y pueden detectar objetos con diferentes
formas, colores, superficies y de diferentes materiales.

Para realizar el test del sensor de ultrasonido del robot, conéctenlo al puerto S1 de la placa.

1 Seleccionen la acción MIENTRAS (WHILE) y luego desplieguen el menú de valores para


seleccionar VERDADERO (TRUE) .

2 Seleccionen la acción TERMINAL . Desplieguen el menú de valores y seleccionen el ícono


que permitirá ingresar un VALOR NUMÉRICO AL SENSOR .

66
ACTIVIDAD

3 Seleccionen el ícono SENSOR DE ULTRASONIDO .

4 Debido a que el sensor de ultrasonido está conectado en S1, deben seleccionar D15 en el menú
desplegable.

S0 corresponde al D14
S1 corresponde al D15
S2 corresponde al D16
S3 corresponde al D17
S4 corresponde al D18
S5 corresponde al D19

5 Seleccionen la acción TIEMPO e ingresen un valor de 200.

EJERCITACIÓN
Realicen la programación para que los motores comiencen a funcionar
cuando el sensor de ultrasonido detecte un objeto a menos de 10 cm. 67
GLOSARIO
Los siguientes conceptos son herramientas de uso corriente en programación, que
deberán aprender a utilizar y a escribir en el lenguaje de programación requerido.

1 Estructuras de Control:
a. MIENTRAS CON CONDICIÓN (WHILE): Ciclo que permite realizar una acción
mientras la condición se cumpla.
b. MIENTRAS VERDADERO (WHILE TRUE): Ciclo infinito que ejecuta un proceso
mientras se cumpla una condición verdadera.
c. REPETIR (FOR): Ciclo que repite las acciones dentro de él por un número
determinado de veces.

2 Variable:
Se utiliza para guardar un valor numérico en un espacio de memoria. Se puede decir
que está definida cuando se le asigna un nombre y se establece de qué tipo es: si su
valor representa un número entero o un número decimal, una letra o una palabra. Se
define al inicio del programa.

3 Umbral:
Es el valor que arroja el testeo del sensor, y que se utiliza luego en la programación.

4 Contador:
Un contador es una variable cuyo valor se incrementa o disminuye en una cantidad
constante, cada vez que se produce una determinada acción.

5 Estructuras Condicionales:
Las estructuras condicionales comparan una variable contra otro valor (o valores)
para que, en base al resultado de esta comparación, se siga un curso de acción dentro
del programa. Cabe mencionar que la comparación se puede hacer contra otra
variable o contra una constante, según se necesite.
Existen tres tipos básicos: las simples, las dobles y las múltiples.
a. DECISIÓN (IF): Las estructuras condicionales simples son conocidas como
“Toma de decisión”. Se sigue un curso de acción en el programa si se cumple una
determinada condición.

b. SI-NO (IF/ELSE): Las estructuras condicionales dobles permiten elegir entre


dos opciones o alternativas posibles en función del cumplimiento o no de una
determinada condición.

c. Múltiples: Las estructuras condicionales múltiples son tomas de decisión


68 especializadas que permiten comparar una variable contra distintos posibles
resultados, ejecutando para cada caso una serie de instrucciones específicas.
INTRODUCCIÓN A DUINOPACK
Una emulación a C++
Además de poder ser programadas con Minibloq, las placas MatBot también pueden programarse
con Duinopack, una adaptación del entorno de programación Arduino. Esta adaptación tiene
modificaciones que permiten programar las placas fabricadas por RobotGroup.

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador
y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos
multidisciplinares.

El lenguaje de programación Arduino utiliza una sintaxis similar al lenguaje de programación C++,
muy utilizado en electrónica.

Antes de hablar de C++, es necesario volver a explicar que un lenguaje de programación es una
herramienta que nos permite comunicarnos e instruir a la computadora para que realice una tarea
específica. Cada lenguaje de programación posee una sintaxis y un léxico particular, es decir, una
forma de escribir que depende de la forma en que fue creado y de la forma en que trabaja su
compilador para revisar, acomodar y reservar el mismo programa en memoria.

C++ es un lenguaje de programación creado por Bjarne Stroustrup en los laboratorios de At&T
(American Telephone and Telegraph Corporation) en 1983. Stroustrup tomó como base el lenguaje
de programación más popular en aquella época, el C.

La intención de su creación fue extender al exitoso lenguaje de programación C con mecanismos


que permitieran la manipulación de objetos. Fue todo un éxito:

Trajo consigo nuevas facilidades de programación, como son las llamadas clases y objetos,
principios usados en la programación actual. Para ello el lenguaje C fue rediseñado: se ampliaron
sus posibilidades, pero se mantuvo su mayor cualidad, la de permitir al programador –en todo
momento– tener controlado lo que está haciendo, para así conseguir una mayor rapidez no
disponible en otros lenguajes.

Llevó a C a un nuevo paradigma de clases y objetos basado en una comprensión más humana
y orientado a la construcción de objetos (con características propias sólo de ellos) agrupados
en clases. Es decir, si uno quisiera hacer un programa sobre animales, crearía una clase llamada
“animales”, en la cual cada animal, por ejemplo un pato, sería un objeto. Esto evidencia el 69
intento ser un fiel reflejo de cómo los humanos (en teoría) manejan la realidad.
INTRODUCCIÓN A DUINOPACK
Una vez abierto el entorno de programación Duinopack, verán una pantalla similar a la que se muestra
a continuación. El nombre que aparecerá será uno que indicará la fecha de creación del archivo.

Lo primero que deben hacer en este punto será escribir la declaración de dos funciones necesarias
para poder empezar a escribir un código:

70 Sin estas funciones, el programa NO es reconocido.


Estas dos funciones se llaman setup() y loop(). En el software de programación Minibloq, se
representan en el bloque inicial que se muestra a continuación:

La primera prueba que pueden hacer para asegurarse de que todo está funcionando
correctamente, es compilar este sencillo programa.
Para ello, hagan clic en el botón VERIFICAR que se encuentra arriba de la pantalla, a la
izquierda. Noten que, al posicionarse allí, aparecerá el nombre a la derecha de la pantalla. Lo
mismo sucederá con el resto de los botones.

En caso de que hayan escrito todo correctamente, en la parte inferior de la pantalla


aparecerá un mensaje en color blanco como el que se muestra a continuación:

En caso de cometer un error en las sentencias (por ejemplo, escribir Loop en lugar de loop), en
la parte inferior de la pantalla aparecerá un mensaje en color rojo como el que se muestra a
continuación:

El programa no reconoce la palabra Loop, debido a la mayúscula inicial.

ERRORES COMUNES AL ESCRIBIR UN PROGRAMA:


• Confundir mayúsculas y minúsculas
• Olvidar signos como ; () {} 71
INTRODUCCIÓN A DUINOPACK

¿Qué es COMPILAR?
Un programa escrito en un lenguaje de alto nivel no puede ser ejecutado directamente
por una computadora; debe ser traducido a lenguaje máquina. Las etapas por las que
debe atravesar un programa escrito en un lenguaje de programación, hasta poder ser
ejecutable, son:

1 Programa fuente: Programa escrito en un lenguaje de alto nivel (texto ordinario


que contiene las sentencias del programa en un lenguaje de programación).
Necesita ser traducido a código máquina para poder ser ejecutado.
2 Compilador: Programa encargado de traducir los programas fuente escritos
en un lenguaje de alto nivel a lenguaje máquina, y de comprobar que las
llamadas a las funciones de librería se realizan correctamente.
3 Programa objeto: Es el programa fuente traducido (por el compilador) a
código máquina. Aún no es directamente ejecutable.
4 Programa ejecutable: Traducción completa a código máquina (realizada por
un enlazador) del programa fuente. Ya es directamente ejecutable.

Un enlazador (linker) es un programa encargado de insertar, al programa objeto, el


código máquina de las funciones de las librerías (archivos de biblioteca) usadas en
el programa. Además realiza el proceso de montaje que producirá un programa
ejecutable .exe.
Las librerías son una colección de códigos (funciones) ya programados y traducidos a
código máquina, listos para utilizar en un programa. Las librerías facilitan la labor del
programador.

Programa Fuente
DEPURACIÓN del programa si se producen errores en ejecución

Con
errores

COMPILADOR

Sin errores

Librerías Programa Objeto

ENLAZADOR

Sin errores

Programa Ejecutable
72
ACTIVIDAD

Configuración para que el software reconozca la placa controladora

Conecten la placa del robot a la computadora utilizando un puerto USB.


Enciendan la placa.
Seleccionen la opción Herramientas > Placa > Arduino Nano

Comprueben el funcionamiento de cada uno de los ejercicios que siguen en su robot.

MOTORES

Para iniciar las actividades de motores utilizando Duinopack, conecten el a sus computadoras
con el cable USB. Asegúrense de que la placa esté encendida.

ANTES DE COMENZAR
Cada vez que programen motores, deben incluir las siguientes tres líneas de código,
que permitirán que la placa controladora los reconozca:

Siempre que utilicen motores tendrán que agregar estas tres líneas de código. No deberán ser
modificadas nunca. La primera de ellas simplemente agrega la librería de motores en nuestro
proyecto. La segunda y la tercera le indican a la placa qué pines tendrá que utilizar cuando se
hable de motor 0 y de motor 1.
A continuación aprenderán a programar en un nuevo software de programación: Duinopack.
Para ello, se indicará en una primera columna (izquierda) cómo se escriben las líneas de código
o sentencias de cada acción a programar. Debajo de cada sentencia de Duinopack aparecerá
la explicación correspondiente. Por último, se indicará en una segunda columna (derecha) el 73
equivalente de las sentencias en los bloques de Minibloq, que ya todos conocen.
ACTIVIDAD

Avanzar en línea recta

En esta primera actividad deben hacer que el robot avance por un tiempo determinado
en línea recta y que luego se detenga.

DUINOPACK MINIBLOQ

Estas son las tres líneas de código para programar motores, mencionadas anteriormente.

Esta línea de código es la que se usa para asignar velocidad al motor izquierdo. Por
convención, el motor izquierdo será el Motor 0 y el derecho será el Motor 1. Es importante
notar que en la primera parte de la orden se indica a qué motor se está haciendo referencia,
mientras que en la segunda, se da la orden de asignar el valor entre paréntesis como
velocidad. Las velocidades varían entre -100.00 y 100.00, donde 0 es el valor en el que el
motor está detenido y -100.00 el de la máxima velocidad de reversa.

Esta línea de código hace lo mismo que la anterior pero, en este caso, le asigna velocidad
50 al motor derecho (Motor 1).

Con esta línea de código se ordena al procesador del robot que por 5 segundos no ejecute
nuevas órdenes. Esto es para que el robot pueda avanzar durante ese tiempo, ya que sin
esta línea el procesador ejecutaría rápidamente las órdenes que siguen y no se podrían ver
los resultados. A la función delay se le asigna el valor 5000 como parámetro porque esta
función trabaja en milisegundos.

Por último, con estas dos líneas de código se ordena a los dos motores que se detengan.

74
El paso 5 muestra la función brake, una forma nueva de detener los motores:
el frenado electrónico.
Pero, además, hay otra manera de detenerlos que se corresponde mejor
a los bloques de Minibloq:

Esto quiere decir que se asigna a los motores una velocidad 0. La diferencia con
el frenado electrónico es que en este caso influye la inercia, por lo que se puede
mantener el movimiento.

La programación completa en Duinopack y en Minibloq para que el robot avance en línea recta
es como se indica a continuación:

DUINOPACK MINIBLOQ

75
ACTIVIDAD

Dibujar una circunferencia

En esta actividad el robot debe dibujar una circunferencia. Tal como lo muestra
el esquema que está a continuación, el centro de giro del robot será el punto
central de la circunferencia.

El robot gira sobre un centro de giro externo a él

Radio de giro

Centro de giro

DUINOPACK MINIBLOQ

Estas son las tres líneas de código para programar motores.

Estas son las líneas principales de este programa, ya que, dependiendo de la relación que
se establezca entre las velocidades de los motores, el centro de giro estará más cerca o más
lejos del robot. Para ello, deben elegir la velocidad que tendrá cada motor. En este caso, el
motor 1 debe avanzar más rápido que el motor 0 para que el robot pueda girar en torno a
76 un punto situado a su izquierda.

3
Estas son las líneas principales de este programa, ya que, dependiendo de la relación que
se establezca entre las velocidades de los motores, el centro de giro estará más cerca o más
lejos del robot. Para ello, deben elegir la velocidad que tendrá cada motor. En este caso, el
motor 1 debe avanzar más rápido que el motor 0 para que el robot pueda girar en torno a
un punto situado a su izquierda.

Con esta orden se establece el tiempo que el robot usará para dibujar el círculo. Es
importante aclarar que, si no se escriben las órdenes de frenado que siguen a continuación,
el robot seguirá girando debido a que no recibió nuevas instrucciones. Es probable que el
robot no complete un círculo en el tiempo establecido. En ese caso, habrá que modificar el
tiempo asignado como parámetro a la función delay().

Por último, esta orden frena ambos motores para que el robot se detenga.

La programación completa en Duinopack y en Minibloq para que el robot dibuje una


circunferencia es como se indica a continuación:

DUINOPACK MINIBLOQ

77
ACTIVIDAD

Girar sobre su propio eje

En esta actividad el robot debe girar en el lugar donde está sin desplazarse. Tal como lo
muestra el esquema que está a continuación, se debe programar para que una rueda
avance y la otra retroceda, pero ambas a la misma velocidad.

El robot gira sobre su propio centro

Centro de giro

DUINOPACK MINIBLOQ

Estas son las tres líneas de código para programar motores.

Para que el robot gire sobre su propio eje, deben asignarle la misma velocidad a cada
motor, pero uno tendrá que retroceder y el otro avanzar. Para ello, asignen una velocidad
positiva a un motor y una velocidad negativa al otro.

Gracias a esta línea de código, el procesador del robot esperará 4 segundos antes de
78 ejecutar nuevas órdenes.
3

Gracias a esta línea de código, el procesador del robot esperará 4 segundos antes de
ejecutar nuevas órdenes.

Por último, esta orden frena ambos motores para que el robot se detenga.

La programación completa en Duinopack y en Minibloq para que el robot gire sobre su propio
eje es como se indica a continuación:

DUINOPACK MINIBLOQ

79
ACTIVIDAD

VARIABLES EN PROGRAMACIÓN

¿Qué es una VARIABLE?


En programación, una variable es simplemente un espacio de memoria en el que
se guarda algo. Para acceder a ese “algo”, se procede a través del nombre que se le
asigna a la variable cuando se la declara. Luego, se puede modificar el contenido de
ese espacio de memoria tantas veces como sea necesario.

Variable speed:
Por ejemplo, para que una variable represente la velocidad de los motores, se la
declara de la siguiente manera:

Esta declaración está formada por tres partes:

1 La palabra reservada float indica que lo que se guardará en el espacio de


memoria que se llamará speed será un número real (float viene de punto
flotante, que es como se llama a los números reales en programación
debido a la forma en que trabaja el procesador). Es indispensable que, al
declarar una variable, se indique su tipo. Esto significa que siempre hay
que decir qué tipo de dato se guardará en la memoria. Los tipos de datos
que interesarán por ahora son los siguientes:

Tipo de dato Palabra reservada Ejemplos

Número real float 10.5, -100.00

Número entero int 10, 100, -15

Caracter char a, b, c

Cadena de caracteres string “Hello World”

2 Luego de declarar el tipo de dato que se guardará, se le asigna un nombre.


Este nombre es elegido por el programador y puede ser cualquier palabra
menos las que son reservadas por el sistema. Es recomendable que el
nombre de la variable se relacione con el uso que se le dará; esto ahorrará
mucho trabajo cuando haga falta corregir el código escrito, ya que
resultará más fácil saber lo que esta variable debería hacer. En el ejemplo
aquí utilizado se eligió el nombre speed porque esta variable será usada
para asignar velocidad a los motores del robot.
80
3 Por último, a la variable generada se le asigna un valor inicial que será
guardado en el lugar de la memoria designado para esta variable. En el
ejemplo, el valor de inicio será 100.

Nombre:
Es importante notar que ya no es necesario decir qué tipo de dato guarda la
variable: sólo necesitamos su nombre. Ahora se puede usar esta variable dentro de
una función que necesite números reales, como se muestra a continuación:

Valor de una variable:


También es posible modificar el valor de la variable en función del valor que ya
tiene. Por ejemplo, para que cada cierto tiempo la variable speed aumente en 10,
hay que agregar a la programación un contador:

Al escribir esta línea de código, se asigna a la variable speed el valor que tenía
antes (100) incrementado en 10. Pero para que realmente tenga sentido usar esta
variable, se debe usar otro concepto importante de la programación: la estructura
de control WHILE, que ya han aplicado en Minibloq.

RECUERDA
Las órdenes de un programa son ejecutadas una tras otra por el procesador. Si esta
secuencialidad no se pudiese romper, no se podría programar al robot para que
tome decisiones. Las estructuras de control permiten romper la secuencialidad de un
programa para ejecutar otra parte del código que no tiene por qué ser el que le sigue a
la orden que se está ejecutando.

81
ACTIVIDAD

Girar sobre su eje desacelerando

En esta actividad el robot debe girar sobre su propio eje, pero con una particularidad:
debe comenzar a máxima velocidad (100) y llegar a una velocidad 0. Es decir, el robot debe
desacelerar. Para ello disminuirá su velocidad (-10) cada 1 segundo.

DUINOPACK MINIBLOQ

Estas son las tres líneas de código para programar motores.

Con esta línea de código se genera un espacio en la memoria en el que se guarda un


número real. Al número real almacenado se lo llama speed (velocidad). Inicialmente, este
espacio de memoria tiene el valor 100.

Estructura de control WHILE: mientras la variable speed contenga un valor mayor a 0, se


ejecutará el código encerrado entre llaves. Cuando el valor de dicha variable sea igual o
menor que 0, el código entre llaves no se ejecutará. En dicho caso, el código encerrado entre
llaves será salteado.

Al motor izquierdo se le asigna como potencia el valor almacenado en speed. Si este valor es
igual a 100, el motor avanzará a máxima velocidad. Si el valor es igual a 0, el motor se frenará.

Para que el robot gire sobre su eje, al motor derecho se le asigna la velocidad almacenada
en la variable speed, pero con un signo negativo adelante. Es decir, si la variable speed vale
100, el motor derecho avanzará con velocidad -100.

82 No se ejecutan órdenes nuevas por 1 segundo para que se vean los resultados.

7
6

No se ejecutan órdenes nuevas por 1 segundo para que se vean los resultados.

Con un contador, se le resta 10 al valor almacenado en speed. Así, cada vez que el código
ejecute las órdenes entre llaves, la variable disminuirá un valor de 10. Llegará un momento
en que la variable valdrá 0. Entonces, este código no se ejecutará más debido a que la
condición dentro del WHILE será falsa.

La programación completa en Duinopack y en Minibloq para que el robot gire sobre su propio
eje desacelerando es como se indica a continuación:

DUINOPACK MINIBLOQ

Girar sobre su eje acelerando

Esta actividad es inversa a la anterior. Escriban un código en Duinopack para que el robot
gire sobre su propio eje. Debe comenzar con velocidad 0 y llegar a una velocidad 100. Es decir,
el robot debe acelerar. Para ello, aumentará su velocidad (+10) cada 1 segundo. Utilicen la 83
estructura de control WHILE, la variable speed y un contador como crean conveniente.
ACTIVIDAD

SENSORES

En caso de que quieran escribir los programas con Duinopack, para poder visualizar la información
que la placa MatBot envía a través del serial (puerto de comunicación entre la computadora y el
robot), habrá que abrir el entorno Minibloq y utilizar la opción TERMINAL .
Para ello, se deben seguir los siguientes pasos:

1 Luego de escribir el programa en Duinopack, descárguenlo a la placa MatBot.

2 Con la placa encendida y el cable USB conectado, abran la pantalla de comunicación serial del
programa Minibloq.

3 Presionen el botón Abrir (Open) en la pantalla Terminal.

Comunicaciones

En esta primera actividad de comunicaciones deben lograr que la placa se comunique con
ustedes a través de la computadora. Para esto, tendrán que usar funciones de la librería Serial.
Este nombre hace referencia a cómo los bits viajan a través del cable entre la computadora y la
placa (esto es, “de a uno a la vez” o “uno tras otro”).
La placa envía un pulso eléctrico que puede ser:
84 • de 0 voltios
• de 5 voltios
En el primer caso, la computadora interpretará la ausencia de voltaje como un 0 lógico,
mientras que en el segundo caso lo interpretará como un 1 lógico. Así se puede formar
cualquier secuencia de ceros y unos. Luego, esas secuencias de números binarios se
convertirán en caracteres alfanuméricos que se podrán visualizar en la pantalla, ya que cada
letra del alfabeto está representada por una secuencia de unos y ceros.

DUINOPACK

La primera línea de código de este pequeño programa demorará la comunicación entre la


computadora y la placa. De esta manera asegura que la computadora muestre por pantalla
el mensaje que escribirán a continuación.

Esta línea de código establece la velocidad de la comunicación entre el robot y la


computadora en 115200 baudios*. Cuando se abra la pantalla en la que se muestra el
mensaje que envía la placa, deben configurar la misma velocidad a la derecha, abajo del
cuadro de diálogo, como se ve en la figura que muestra la salida del programa.
*Baudio: unidad de medida en las telecomunicaciones. Mide la velocidad de transmisión de
datos (bits) desde la placa controladora a la computadora. En nuestro caso, la velocidad siempre
será de 115200 baudios.

Esta línea de código es precisamente la que imprime por pantalla el mensaje que desean
mostrar. Es importante notar que el mensaje en cuestión debe estar encerrado entre
comillas y entre paréntesis, ya que este es el parámetro que toma la función println().
Serial.println("Hello World!"); debe ir escrito dentro de la función setup(). Por último, cabe
aclarar que el nombre de la función println() significa “imprimir línea”, ya que ln es una
abreviación de “line” (línea).

Una vez descargado este programa a la placa MatBot, habrá que abrir el Minibloq para ver el
resultado de la comunicación entre el robot y la computadora. La programación completa en
Duinopack y Minibloq para comunicar “Hello world!” es como se indica a continuación:

DUINOPACK MINIBLOQ

85
ACTIVIDAD

Testeo de un sensor IR

En esta actividad deben testear el funcionamiento de un sensor infrarrojo (IR). Para ello, tendrán
que mostrar en la pantalla los valores que este sensor capta en distintas situaciones. A medida
que avancen en las pruebas, completen la siguiente tabla de valores:

SITUACIÓN DEL SENSOR VALOR MEDIO

No hay nada frente al sensor

Hay un objeto a 10 cm de distancia

Hay una hoja color negro cerca del sensor

Hay una hoja color blanco cerca del sensor

De los valores que se muestran por pantalla, los más altos corresponden a situaciones en las que
el sensor detectó algo a corta distancia, mientras que los valores más bajos son los captados
cuando no había nada cerca del sensor.

DUINOPACK

Esta línea de código establece la velocidad de la comunicación entre el robot y la


computadora en 115200 baudios. Cuando se abra la pantalla en la que se muestra el
mensaje que envía la placa, deben configurar la misma velocidad a la derecha abajo del
cuadro de diálogo. Es importante notar que esta orden se escribe dentro de la función
setup() debido a que solamente se configura una vez. Luego se trabajará siempre con la
misma velocidad de comunicación.

Esta línea de código simplemente muestra por pantalla el mensaje “Sensor 1: ”, el cual
ayudará a mostrar por pantalla la información de manera más clara.

Esta es la línea de código más importante del programa. La función Serial.println()


mostrará por pantalla el mensaje que se le pase como parámetro entre los paréntesis.
Entonces, deben pedirle que muestre el valor detectado por el sensor 1. Para ello, usen la
función analogRead(número_sensor), la cual devuelve el valor captado por el sensor
indicado. Los sensores, al igual que los motores, tienen un número que depende del pin al
86 que estén conectados.

4
Esta es la línea de código más importante del programa. La función Serial.println()
mostrará por pantalla el mensaje que se le pase como parámetro entre los paréntesis.
Entonces, deben pedirle que muestre el valor detectado por el sensor 1. Para ello, usen la
función analogRead(número_sensor), la cual devuelve el valor captado por el sensor
indicado. Los sensores, al igual que los motores, tienen un número que depende del pin al
que estén conectados.

Es importante darle un tiempo al procesador entre una ejecución y otra. De lo contrario, es


muy probable que no pueda mostrar por pantalla correctamente los datos necesarios
debido a la velocidad a la que trabaja. Para ello, usando la orden delay(500), el procesador
espera medio segundo (500 milisegundos) antes de volver a ejecutar una orden.

La programación completa en Duinopack para testear un sensor IR es como se indica a continuación:

DUINOPACK

Para hacer esta misma actividad en Minibloq, se procede de la siguiente manera:

Luego, deben utilizar la opción TERMINAL que hará que Minibloq muestre por pantalla los
mensajes enviados desde el robot a la computadora.

Una vez abierta la pantalla del terminal, hagan clic en el botón Abrir para que empiece la 87
comunicación.
ACTIVIDAD

Operadores lógicos

¿Qué son los OPERADORES LÓGICOS?


Muchas veces, en programación, es necesario utilizar la estructura condicional IF con
instrucciones para cuando se cumple una condición, y con otras instrucciones para
cuando no se cumple la condición.

Sin embargo, hay ocasiones en las que es necesario que se cumpla más de una
condición para lograr determinados resultados. Es aquí donde entran en juego los
Operadores Lógicos.

En el siguiente cuadro se muestran aquellos más utilizados a la hora de programar:

Devuelve TRUE cuando la primera y la


segunda condición se cumplen

Devuelve TRUE cuando la primera o la


segunda condición se cumplen

Devuelve TRUE cuando ni la primera


ni la segunda condición se cumplen

Devuelve TRUE cuando no se cumple


alguna de las condiciones

Devuelve TRUE cuando no se cumple


una condición.

Utilizamos operadores lógicos cuando queremos combinar varias condiciones


dentro de una misma estructura de control.

Uno de los más utilizados en robótica educativa es el AND: este operador lógico
sirve cuando queremos que se ejecute un determinado bloque de código sólo si
pasan dos cosas al mismo tiempo.
88
Operadores lógicos en Minibloq

En el entorno Minibloq también disponemos de operadores lógicos. Estos se usan dentro de


estructuras de control, al igual que otros operadores como los matemáticos o los booleanos.
En la imagen que se muestra a continuación, podemos ver la lista de operadores que se
despliega junto a un ciclo como el WHILE. Los operadores lógicos están al final y son not, and,
or y xor.

89
ACTIVIDAD

Programación con dos sensores IR

1 En esta actividad deben programar al robot para que, usando dos sensores IR, pueda seguir una
línea negra pintada sobre un fondo blanco. Utilicen los operadores lógicos.

Completen la siguiente tabla de verdad con las acciones que crean que debe hacer el robot
según el color que detecten los sensores IR (negro o blanco). Recuerden que 1 representa
que el sensor detecta el color negro, y 0 que detecta el blanco.

S0 (Izquierda) S1 (Derecha) Acción

1 0

0 1 Gira a la derecha

1 1

0 0

2 En esta actividad deben completar la programación en Duinopack para que el robot avance
siguiendo una luz. Alguien con una linterna debe marcar el camino que desee, apuntando
con ella a los sensores IR que están montados en la parte frontal del robot. Para realizar esta
actividad monten dos sensores IR en la parte frontal del robot orientados hacia el frente.

90 Realicen esta misma actividad utilizando el entorno Minibloq. Tendrán que usar el operador
lógico AND.
DIAGRAMAS DE FLUJO

Un diagrama de flujo u organigrama es una representación que ilustra la secuencia de


las operaciones que se realizarán para conseguir la solución de un problema. Es también
la representación gráfica de un algoritmo o proceso. Se utilizan mucho en programación.

Si la lámpara no está enchufada,


enchufamos la lámpara.
Si está enchufada, seguimos el
razonamiento de búsqueda.

Si la bombita está quemada,


cambiamos la bombita. Si no
está quemada, concluimos que
la lámpara está rota.

Los diagramas de flujo tienen muchas utilidades, entre las cuales está la
conceptualización de un esquema de decisión. Se dibujan generalmente antes de
comenzar a programar el código frente a la computadora y facilitan la visualización de
la lógica utilizada.

Una vez que se dibuja el diagrama de flujo, se hace mucho más sencillo escribir el
programa en cualquier lenguaje de programación, tanto de alto nivel (Minibloq) como
de bajo nivel (C++ o Arduino).

Es evidente cómo los diagramas de flujo ofrecen una enorme ventaja al momento de
explicar el programa a otros; por lo tanto, es correcto decir que son una necesidad para
la mejor explicación de un programa complejo.
91
DIAGRAMAS DE FLUJO

Reglas para dibujar un diagrama de flujo

Los diagramas de flujo se dibujan, generalmente, usando símbolos estándar.


Se muestran a continuación algunos de ellos:

Símbolo Significado

Inicio y fin del diagrama de flujo.

Introducción de datos de entrada.


Definición de variables.

Parte del proceso. En su interior se expresan


asignaciones de variables, operaciones
aritméticas, etc.

Símbolo utilizado para expresar la dirección


del flujo del diagrama.

Decisiones lógicas. En su interior se almacena una


condición y dependiendo del resultado de su
evaluación, se sigue por un camino
que indica la flecha de dirección (SÍ-NO).

CARACTERÍSTICAS Y VENTAJAS:
Es una representación gráfica de las secuencias de un proceso.
Presenta información clara, ordenada y concisa.
Permite visualizar las frecuencias y relaciones entre las etapas indicadas.
Se pueden detectar problemas, desconexiones, pasos de escaso valor añadido, etc.

REGLAS PARA SU CREACIÓN:


Los diagramas de flujo deben escribirse de arriba hacia abajo y/o de izquierda a derecha.
Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección en
la que fluye la información o el proceso. Se deben utilizar solamente líneas de flujo horizontales
o verticales (nunca diagonales).
Se debe evitar el cruce de líneas.
No deben quedar líneas de flujo sin conectar.
Todo texto escrito dentro de un símbolo debe ser legible y preciso. Hay que evitar el uso de
muchas palabras.
Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
92
Sólo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.
Ejemplos de diagramas de flujo

1 Para encontrar la suma de los primeros 50 números naturales.

N es la variable que utilizamos para los


distintos números naturales.
Suma es la variable que va agregando los
resultados parciales al sumarle N.

Si N es igual a 50, detiene el proceso.


Si N no es igual a 50, aumenta y se agrega
a la variable Suma. Ejemplo: N vale 0

N es igual a su valor más 1.


Ejemplo: N vale 0 + 1, es decir, N vale 1.

Suma es igual a N más la suma


de su valor actual.
Ejemplo: Suma vale 1 (N) más 0 (suma
actual), es decir, Suma vale 1.

2 Para indicar las acciones de un robot: si el sensor detecta el color Negro, entonces avanza
durante 10 segundos. Si no, se detiene durante 1 segundo y luego gira sobre una rueda durante
2 segundos, hasta detenerse.

Si el Sensor0 detecta Negro, a ambos


motores se les asigna una velocidad de 50
durante 10 segundos.

velocidad
velocidad
Debido a que el Sensor0 no detectó
Negro, se les asigna a los dos motores
una velocidad 0 durante 1 segundo.
Luego, al Motor1 se le asigna una
velocidad velocidad de 50 para lograr que, por 2
velocidad segundos, el robot gire sobre una rueda.

velocidad
velocidad velocidad

velocidad
velocidad
velocidad

93
DIAGRAMAS DE FLUJO
3 Para que el robot avance siguiendo una luz.

Si ambos sensores captan valores


velocidad mayores a 60, se asigna a los motores
velocidad una velocidad de 50.

Si un sensor capta un valor menor a 60 y el


velocidad
otro un valor mayor, la velocidad de los
velocidad
motores se asigna de manera proporcional.

Si un sensor capta un valor mayor a 60 y el


velocidad otro un valor menor, la velocidad de los
velocidad motores se asigna de manera proporcional.

velocidad Si ambos sensores captan valores


velocidad menores a 60, ambos motores se detienen.

94

También podría gustarte