programaciÓn y robÓtica - … · se utilizan para realizar tareas que antes se hacían de forma...

35
IES Ángel de Saavedra José Luis Gutiérrez Madrid Página -1- PROGRAMACIÓN Y ROBÓTICA 1. TECNOLOGÍA DE CONTROL. SISTEMAS DE CONTROL EN LAZO ABIERTO Y EN LAZO CERRADO 2. MÁQUINAS, AUTOMATISMOS Y ROBOTS 3. ARQUITECTURA DE UN ROBOT 4. TIPOS DE ROBOTS 5. TIPOS DE ARTICULACIONES Y GRADOS DE LIBERTAD 6. MODELOS DE PLACAS MICROCONTROLADORAS 7. KITS DE ROBÓTICA 8. CONTROL POR ORDENADOR 9. ROBOTS MÓVILES CON RUEDAS: ROTAR, GIRAR Y DOBLAR MANOS A LA OBRA 1. Programando el robot NXT con el software de Lego NXT-G 2. Controlar el robot NXT mediante un teléfono móvil 3. Programando el robot EV3 con el software de Lego 4. Programando Arduino Zum Core con Bitbloq 2 5. Pasando de programación Bitbloq a programación con IDE Arduino (Processing) 6. Programando Printbot Evolution 7. Programando Arduino UNO y Zum Core con Visualino 8. Programando Arduino con Scratch (S4A)

Upload: trinhbao

Post on 20-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -1-

PROGRAMACIÓN Y ROBÓTICA

1. TECNOLOGÍA DE CONTROL. SISTEMAS DE CONTROL EN LAZO

ABIERTO Y EN LAZO CERRADO

2. MÁQUINAS, AUTOMATISMOS Y ROBOTS

3. ARQUITECTURA DE UN ROBOT

4. TIPOS DE ROBOTS

5. TIPOS DE ARTICULACIONES Y GRADOS DE LIBERTAD

6. MODELOS DE PLACAS MICROCONTROLADORAS

7. KITS DE ROBÓTICA

8. CONTROL POR ORDENADOR

9. ROBOTS MÓVILES CON RUEDAS: ROTAR, GIRAR Y DOBLAR

MANOS A LA OBRA

1. Programando el robot NXT con el software de Lego NXT-G

2. Controlar el robot NXT mediante un teléfono móvil

3. Programando el robot EV3 con el software de Lego

4. Programando Arduino Zum Core con Bitbloq 2

5. Pasando de programación Bitbloq a programación con IDE

Arduino (Processing)

6. Programando Printbot Evolution

7. Programando Arduino UNO y Zum Core con Visualino

8. Programando Arduino con Scratch (S4A)

Page 2: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -2-

1. TECNOLOGÍA DE CONTROL. SISTEMAS DE CONTROL EN LAZO ABIERTO Y EN LAZO CERRADO

La tecnología de control, o control automático, se encarga de que las máquinas actúen de forma independiente, es decir sin intervención humana. En lo últimos años, debido al auge de la electrónica y de la informática, se está desarrollando a una gran velocidad.

Gracias al control automático se ha conseguido automatizar la fabricación de la mayoría de los productos que usamos en la actualidad. De esta manera evitamos a las personas tareas repetitivas o peligrosas, obteniendo una producción industrial más económica, pues se necesita menos mano de obra. Esta pérdida de empleo menos cualificado es compensada, en parte, por nuevos empleos de alta cualificación y especialización.

Además, para la fabricación de muchos productos, sobre todo electrónicos, se necesita una precisión milimétrica, micrométrica e incluso nanométrica, lo cual sólo puede hacerse mediante la automatización industrial.

La economía actual de los países desarrollados está basada en la automatización.

Según el modo de tratar la información, podemos distinguir dos tipos de sistemas de control:

1. Sistemas de control en lazo abierto o secuenciales. Su funcionamiento se basa en una ejecución secuencial (paso a paso) de un programa que hace que se ejecuten ciertas acciones en función del tiempo o del estado de la acción anterior. El mecanismo controlador que se encarga de establecer el orden en que se ejecutan las acciones es el secuenciador o temporizador. El funcionamiento de estos sistemas es invariable respecto a los cambios que se producen en el entorno.

Ejemplos de este tipo de sistemas son muchas máquinas programables, como electrodomésticos (lavadora, lavavajillas…), alimentadores de piezas en la industria, semáforos, etc.

2. Sistemas de control en lazo cerrado. Un robot no realiza las funciones de forma mecánica, es decir, una a continuación de otra, sino que permanentemente, toma datos del entorno para detectar las variaciones que se han producido, los introduce en el sistema de control y actúa teniendo en cuenta estas modificaciones, es lo que se conoce como retroalimentación.

Un ejemplo de este tipo de sistemas es un climatizador, en el que programamos una temperatura para una habitación y la ponemos, por ejemplo, a 22 ºC, en verano, el aparato empieza a enfriar de manera que cada poco tiempo toma la temperatura de la habitación, mediante un termostato, y, si está por encima de los 22º que hemos programado, seguirá enfriando; pero en el momento en que baje de los 22 ºC, se parará el compresor.

Otro ejemplo sería el lavadero automático de los coches, que mediante sensores va tomando la posición del vehículo, para ajustar la posición de los rodillos.

Termostato digital de un

climatizador

ACTIVIDAD 1. Indica si los

siguientes dispositivos son

sistemas en lazo abierto o

en lazo cerrado. Razona la

respuesta.

• Tostadora

eléctrica

• Cisterna del váter

Page 3: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -3-

2. MÁQUINAS, AUTOMATISMOS Y ROBOTS.

1. Máquina (mecanismos): Conjunto de elementos móviles, que se combinan unos con otros para transmitir fuerzas desde un punto hasta otro punto, donde queremos aplicarlas. Se utilizan para realizar tareas que antes se hacían de forma manual.

Antiguamente, el ser humano realizaba estas tareas usando su propia fuerza o la de los animales. Después, ideó los mecanismos y máquinas que le permitieron realizar el trabajo con menos esfuerzo

2. Máquina automática (automatismo).

Es aquella capaz de realizar de forma independiente determinadas acciones predeterminadas y repetirlas bajo determinadas condiciones. Estas máquinas repiten las acciones para las que están diseñadas, pero sin la posibilidad de variar su funcionamiento si cambian las condiciones del entorno. Con las máquinas automáticas se aumenta la productividad y realizan las tareas desagradables y peligrosas sin la intervención humana.

Un automatismo es un sistema de control en lazo abierto.

El término griego "automatos" significa que se mueve por el mismo.

3. Robot:

Máquina automática programable que realiza de manera independiente determinadas funciones y es capaz de tomar decisiones y actuar en función de la información recogida del entorno mediante sensores.

Un robot es un sistema de control en lazo cerrado.

La palabra robot proviene del checo "robota". La palabra robota significa literalmente trabajo o labor, referida a "trabajo duro" en checo. Apareció por primera vez en una obra del dramaturgo checo Karel Čapek, que se estrenó en 1921. Sin embargo, la palabra androide deriva de las palabras griegas andros (hombre) y eidos (forma) y hace referencia a un autómata con apariencia humana.

Muchos escritores de ciencia ficción y también directores de cine, han imaginado con sus obras robots futuristas con aspecto humano. Uno de los escritores de ciencia ficción más famosos fue Isaac Asimov, que escribió los tres principios que siempre debe cumplir un robot:

• Un robot no puede actuar contra un ser humano, ni permitir que un ser humano sufra daños.

• Un robot debe obedecer las órdenes dadas por los seres humanos, salvo que estén en conflicto con la primera ley.

• Un robot debe proteger su propia existencia, a no ser que esté en conflicto con las dos primeras leyes.

Mecanismo de transmisión por

cadena

Película de cine "Yo, robot",

del año 2004

Isaac Asimov

Page 4: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -4-

3. ARQUITECTURA DE UN ROBOT

Las partes fundamentales que componen un robot son las siguientes:

1. Elementos mecánicosSon los que configuran la estructura del robot y permiten el movimiento de las diferentes articulaciones y de los actuadores.

2. Sensores

Detectan la información del entorno y la envían al sistema de control. Leen continuamente datos como posición, velocidad, luz, temperatura, sonido, etc.

3. Actuadores

Realizan acciones determinadas por el sistema de control en función de las señales que recibe del entorno mediante los sensores. Los motores eléctricos y los cilindros neumáticos e hidráulicos, son los encargados de mover las partes articuladas del robot. Otros actuadores son relés, válvulas, lámparas, leds, timbres, resistencias, etc.

Motor Cilindro neumático Bombilla Led Timbre

4. Herramientas

Pueden ser pinzas, soldadores, pistolas de pintura, destornilladores, etc, dependiendo de la labor que deba realizar en cada momento. Suelen ir montadas en los extremos de los brazos robóticos.

5. Sistemas de control

Contienen los programas que permiten que el microcontrolador los ejecute, para determinar la operación que realizan los actuadores y herramientas en cada momento.

6. Fuente de energía

Dependiendo de los elementos que forman el robot necesitará energía eléctrica y/o una bomba de agua o aceite y/o un compresor para aire comprimido.

Estableciendo un paralelismo

entre un robot y una persona,

los sensores del robot

corresponderían a los sentidos

de la persona, con los que

percibe el entorno y

dependiendo de estos

estímulos, el cerebro, que

corresponde al

microcontrolador, envía unas

señales a nuestros músculos y

articulaciones, que serían los

actuadores, para mover o

desplazar alguna parte del

cuerpo, es decir, los elementos

mecánicos o estructura.

Para todo esto, necesitamos

una energía que conseguimos

con la alimentación.

Los sensores pueden ser:

Analógicos. Producen una

señal que varía a lo largo del

tiempo, oscilando entre un

rango de valores y pudiendo

tomar cualquier valor dentro

del mismo.

Digitales. Producen señales

que sólo pueden tomar dos

valores de tensión: presencia

de señal (5 V="1" lógico) o

ausencia de señal (0 V="0"

lógico)

Aunque nuestro mundo es

analógico, en la actualidad se

usa enormemente la

información digital, pues es

muy fácil almacenarla y

transmitirla.

Page 5: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -5-

4. TIPOS DE ROBOTS.Atendiendo a su aspecto estructural y a su funcionalidad,

pueden clasificarse de la siguiente manera:

1. Poliarticulados

Son brazos robóticos instalados sobre una base fija, y tienen una herramienta en el

extremo para realizar la operación de montaje, manipulación, fabricación, soldadura,

atornillado, pintado, etc. Se utilizan principalmente para la industria.

2. Androides.

Son robots que intentan reproducir la forma y los movimientos del ser humano. En la

actualidad todavía están poco evolucionados y tiene una limitada utilidad práctica.

3. Zoomórficos.

Imitan la forma y el sistema de locomoción de algunos animales. Se utilizan para

desplazarse por superficies muy accidentadas, como volcanes u otros planetas. Se

pueden clasificar en dos grupos, los que tiene patas y los que no, estos imitan el

movimiento de serpientes o gusanos y pueden acceder a lugares muy estrechos.

4. Móviles.

Están provistos de ruedas u orugas. Tiene una gran capacidad de desplazamiento, por

eso se suelen usar para transporte de materiales o piezas en almacenes e industrias.

También se usan para exploración espacial y submarina. Pueden ser autónomos o

teledirigidos.

5.- Nanorobots.

Son robots de tamaño minúsculo, capaces de hacer operaciones sorprendentes. Algunos

se pueden introducir en el torrente sanguíneo e inyectar cualquier tipo de sustancia o

medicamento en una célula.

5. TIPOS DE ARTICULACIONES Y GRADOS DE LIBERTAD

Una articulación es la unión de dos elementos mecánicos que se mueven entre sí,

utilizando un mismo punto de apoyo.

Existen varios tipos de articulaciones que permiten movimientos de traslación y rotación

de los segmentos del bazo robótico. Al número de movimientos independientes que

puede realizar una misma articulación, lo llamamos grados de libertad. En la ilustración

vemos los tipos de articulaciones más comunes y sus grados de libertad.

robot androide

robot escorpión

robot móvil explorador

Brazo robótico

Brazo robótico

Page 6: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -6-

6. MODELOS DE PLACAS MICROCONTROLADORAS

1. PICOBOARD

La PicoBoard es un dispositivo electrónico que tiene integrados varios sensores como: un

sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra deslizadora y cuatro

puertos que miden la resistencia eléctrica, en esos puertos se conectan las

pinzas caimán que trae incluidas. Puede utilizar las pinzas de caimán para construir todo

tipo de sensores.

La PicoBoard se conecta vía USB a la computadora, hay versiones que es necesario un

cable USB-Serie debido a que la PicoBoard tiene un puerto Serie.

Esta placa es detectada por Scratch, pudiéndose programar en ella todo tipo de

algoritmos.

2. PICAXE

PICAXE es una familia de microcontroladores, con firmware preprogramado que

habilita el arranque de código directamente de un PC, simplificando el desarrollo al

aficionado.

Actualmente hay varias variantes de PICAXE, variando de 8 a 40 pines y

de encapsulados.

Una placa con el microcontrolador PICAXE, muy destacada en enseñanza es la placa

IMAGINA ANDROID.

Se trata de una placa didáctica de control que ha sido desarrollada por el Equipo Robolot.

El componente principal de la placa es el microcontrolador Picaxe-20M2. La placa

tiene una serie de entradas para conectar los sensores y unas salidas donde se

conectan los actuadores.

La alimentación de la placa se puede hacer de dos formas, mediante cable USB, o

mediante una batería de cuatro pilas de 1,5 V. Los dos sistemas pueden estar

conectados simultáneamente.

La programación de la placa se realiza mediante el cable USB.

Se puede programar mediante el software Picaxe o un software llamado Logicator.

Page 7: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -7-

3. ARDUINO

Arduino es una plataforma de hardware libre, basada en una placa con un

microcontrolador y un entorno de desarrollo (IDE), diseñada para facilitar el uso de

la electrónica en proyectos multidisciplinares.

El hardware consiste en una placa con un microcontrolador y puertos de entrada/salida. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación IDE Arduino basado en Processing/Wiring Se programa en el ordenador para que la placa controle los componentes electrónicos.

Arduino puede tomar información del entorno a través de sus entradas analógicas y digitales, puede controlar luces, motores y otros actuadores

Una de las placas Arduino más usadas es ARDUINO UNO.

Para conectar sensores y actuadores, suele ser necesario apoyarnos para conectarlos de una placa de pruebas

"protoboard"

4. ARDUINO BQ ZUM CORE

La placa ZUM de la empresa bq, es una placa de control programable basada en la

tecnología Arduino, por tanto hardware libre. Algunas de sus características más

importantes son:

• Se pueden conectar fácilmente sensores y actuadores llamados "Zum blocks",

pues dispone de 20 sets de conexión de tres pines. Estos bloques vienen ya

preparados para conectarlos directamente a la placa microcontroladora sin

necesidad de realizar conexiones intermedias de los sensores en una placa

protoboard.

• Tiene un led integrado conectado al pin 13.

• Se pueden conectar otros dispositivos que no sean Zum, gracias a los pines hembras (negros) que se encuentran

junto a los sets.

• Para comunicarse con dispositivos móviles utiliza la tecnología bluetooth integrada.

• Se programa conectándola al ordenador mediante cable USB.

• Dispone de un interruptor para desconectar los periféricos, mientras la estamos programando.

Para programar Arduino se pueden

usar muchos lenguajes de

programación. Los más conocidos son:

1) IDE Arduino, basada en Processing

(C/C++)

2) LejOS, basada en Java

3) S4A, Scratch para Arduino

4) Visualino

5) Bitbloq 2 (sólo para algunas placas

como UNO y ZUM bq)

Los dos primeros son lenguajes basados

en códigos escritos, mientras que los

otros tres son lenguajes visuales, a base

de ir encajando piezas.

Sin embargo S4A necesita tener

conectada la placa al PC, mientras se

ejecuta el programa en Scratch,

mientras que visualino programa

directamente la placa Arduino, por lo

que no necesita estar conectada al PC.

Page 8: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -8-

• No es necesario tenerla conectada al ordenador para funcionar ya que, una vez programada, se puede conectar

una batería de pilas (8 pilas de 1,5V=12V) y, de este modo, alimentar directamente dispositivos como

servomotores.

• Dispone de un interruptor ON/OFF y en el lateral, de un pulsador para resetear.

La siguiente imagen muestra la forma de conectar "Zum bloqs" a la placa. Observamos que los sensores y actuadores se pueden conectar directamente a la placa, pues los bloques disponen de tres contactos, el pin rojo y el negro suministran corriente, mientras que el tercero corresponde a la señal de salida o entrada del bloque.

5. LADRILLOS INTELIGENTES DE LEGO

La empresa Lego Educación lleva muchos años en el mercado, vendiendo kits de robótica para el aprendizaje fácil e intuitivo de la programación y diseño de robots.

A continuación, se muestran sus tres ladrillos inteligentes más conocidos, a los cuales se les pueden conectar multitud de sensores y actuadores, ya preparados para acoplarlos con la facilidad de ensamblar una pieza de lego.

Lego Wedo

Lego NXT Lego EV3

Para programar los microcontroladores de Lego,

la empresa Lego tiene su propio software de

programación visual, basado en bloques

secuenciados.

Pero también se pueden usar otros lenguajes

como Scratch, para programarlos.

Page 9: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -9-

7. KITS DE ROBÓTICA

1. KITS CASEROS

Lo principal y necesario para tener un kit de robótica es adquirir la placa

microcontroladora. Como hemos visto en el apartado anterior hay muchos

módelos, pero una característica importante es saber si es hardware libre o

hardware propietario, esto puede ser importante a la hora de hacer proyectos

colaborativos, reproducibles y extensibles, y en algunos casos reducir el coste de la

placa.

El kit, lo puedes completar tú mismo comprando los sensores y actuadores en

tiendas de electrónica o por internet y montándolas en una placa de pruebas

"protoboard". Después los conectamos a la placa con cables.

Si eres un "manitas", también puedes montar la parte mecánica, ruedas, ejes,

engranajes, poleas, etc.

Ahora sí, ya tenemos el kit de robótica completo.

2. KITS COMERCIALES

Es ideal la opción anterior, pues mientras se va montando cada elemento, se va

aprendiendo cada vez más.

Pero también existen kits comerciales, montados por algunas empresas, donde ya

vienen preparados y montados los sensores, los actuadores y las partes mecánicas

del robot, junto con la placa microcontroladora. Esto nos ahorra tiempo y dificultad,

pero nos añade coste económico.

Hay cientos de kits comerciales. Algunos ejemplos son:

kit de robótica arduino zum bq BQ Printbot Evolution PICAXE-20X2 Microbot

Lego Wedo Lego NXT Lego EV3

Page 10: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -10-

8. CONTROL POR ORDENADOR.

Una vez que tenemos preparado nuestro robot, es el momento de programarlo, ayudándonos de nuestro ordenador PC,

portátil, tablet o smartphone, para que efectúe las operaciones que nosotros deseemos.

Hemos nombrado algunos lenguajes de programación para programar los microcontroladores de los robots. Para cada

robot se pueden usar uno o varios lenguajes de programación, algunos son lenguajes de alto nivel de código escrito y

otros son lenguajes de programación gráficos de bloques encajables.

Estos programas se introducirán en la memoria de la placa microcontroladora, vía cable USB o vía bluetooth, para que el

microcontrolador pueda ejecutar dichas instrucciones y actuar de acuerdo con ellas.

MEMORIA

Cilindro neumático

Timbre

Led

Bombilla

Motor

Sensores de entrada Actuadores de salida

Page 11: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -11-

9. ROBOTS MÓVILES CON RUEDAS: ROTAR, GIRAR Y

DOBLAR. Muchos de los robots educativos que manejaremos, son

robots que se mueven mediante ruedas. Algunos pueden llevar cuatro

ruedas y otros sólo tres, una para la dirección derecha, otra para la

izquierda y otra central que sólo sirve de apoyo. A esta rueda se le llama

"rueda loca".

En los robots móviles es importante diferenciar entre estas tres maneras de cambiar de dirección.

1. Rotar.

Se debe hacer que la rueda (o ruedas, si es de cuatro ruedas) de un lado del robot avancen,

y las del otro lado, retrocedan. Ambas direcciones deben ser simultáneas y a la misma

velocidad. Con esto se logrará mantener el eje de giro en el centro del robot. A este tipo de

conducción, se le suele llamar conducción tanque.

Ejemplo de rotación en robot Lego EV3.

El motor A tiene como valor de potencia el número 75 y el motor D tiene como valor de potencia el número -75,

2. Girar.

Se debe hacer que la rueda (o ruedas) de un lado del robot estén bloqueadas, y las del otro

lado, avancen o retrocedan, según deseemos que el giro sea hacia adelante o hacia atrás. Con

esto se logrará que el eje de giro este en un lateral del robot.

Ejemplo de giro en robot Lego EV3.

El motor A está iniciado con un valor de potencia igual a 75 y el motor D está iniciado con el valor 0. Esto sucederá por tres rotaciones de rueda.

3. Doblar.

Se debe hacer que la rueda (o ruedas) de un lado avancen con mayor velocidad que la

del otro lado del robot. Con esto se logrará que el eje de giro esté fuera del robot.

Ejemplo para doblar en robot Lego EV3.

El motor A está iniciado con un valor de potencia igual a 75 y el motor D está iniciado con el valor 25. Esto sucederá por tres rotaciones de rueda, permitiendo que el desplazamiento del Cuadribot sea una circunferencia con el eje de giro fuera de la estructura del robot.

Page 12: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -12-

ACTIVIDAD 1. Programando el robot Lego NXT con el software Lego NXT-G

1. ARQUITECTURA BÁSICA DEL NXT.

2. PROGRAMACIÓN DEL NXT MEDIANTE NXT-G (MINDSTORM EDU NXT).

Es el software de Lego para crear los programas en el PC y transferirlos a la memoria del NXT, para ejecutarlos y dar vida a nuestro robot. Podemos descargarlo gratuitamente de la página web de Lego:

http://www.lego.com/es-es/mindstorms/downloads

La pantalla se divide en varias zonas o áreas de trabajo.

CONEXIÓN DE LOS SENSORES

Conectamos mediante un cable cada sensor a uno

de los cuatro puertos de entrada del NXT

CONEXIÓN DE LOS ACTUADORES (MOTORES)

Conectamos mediante un cable cada actuador o

motor a uno de los tres puertos de salida del NXT

EL LADRILLO Y MICROCONTROLADOR NXT

1. Encendemos el NXT

2. Conectamos el PC con el NXT mediante un cable

USB. Descargamos el programa realizado diseñado

en el PC y lo ejecutamos en el NXT.

Zona de trabajo

donde vamos

arrastrando los

bloques de

programación.

Paletas de trabajo

donde

encontramos los

diferentes tipos de

bloques de

programación.

Con estos iconos podemos

comunicarnos con nuestro robot

y descargar el programa cuando

lo tengamos conectado con el

cable USB.

Aquí tenemos muchos

programas con

ejemplos ya

elaborados y

detallados paso a paso,

para ir aprendiendo.

Page 13: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -13-

Al hacer clic sobre un bloque veremos en la parte de abajo de la pantalla todos los parámetros de ese bloque, para

modificarlos a nuestro gusto.

El bloque más usado, pues es con el que movemos a nuestro robot, es el bloque motor o movimiento.

1.- Indica el puerto o puertos que se activarán, es decir, los motores que funcionarán.

2.- Indica el sentido del movimiento del motor o motores, adelante, atrás o paro.

3.- Potencia de los motores: desde 0% a 100%.

4.- Duración del movimiento de los motores. Puede ser por tiempo, por número de rotaciones, por grados o

indefinidamente.

5.- Indica si los dos motores irán a la misma velocidad, o bien, girarán más a izquierda o a derecha.

6.- Indica si el movimiento acaba con frenado o desaceleración.

Para las prácticas siguientes se debe armar el robot tribot.

PROGRAMA NXT 1. ROBOT VAGABUNDO o EVITA OBTÁCULOS CON

SENSOR DE CONTACTO

El robot debe avanzar hasta que choque contra un obstáculo. Cuando

choque, este retrocede, gira y continua su avance, repitiendo el ciclo

indefinidamente.

En nuestro robot tribot el sensor de contacto está en la parte trasera del robot, así que en esta actividad avanzar será

motores con sentido hacia atrás y retroceder será motores con sentido hacia adelante.

Paso 1. Bloque motores C y B avanzan indefinidamente

Paso 2. El bloque “Espera” esta activado en el sensor de contacto y está configurado en el puerto 1. La acción para que

se active es que sea presionado, en ese momento ejecutará los bloques que haya a continuación.

Paso 3. Bloque motores C y B retroceden durante un tiempo muy breve.

Paso 4. Bloque motores C y B Giran durante un tiempo muy breve.

Paso 5. Bucle infinito, que se repetirá indefinidamente hasta que pulsemos el botón de paro en el NXT.

1

2

3

4

5 6

Page 14: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -14-

PROGRAMA NXT 2. ROBOT MURCIÉLAGO o EVITA OBTÁCULOS CON SENSOR ULTRASÓNICO

El robot debe avanzar hasta que detecte un obstáculo a

menos de 40 cm. En ese momento retrocede, gira y continua

su avance, repitiendo el ciclo

Paso 1. Bloque Bifurcación con el sensor ultrasónico. Si se cumple la condición, en este caso, detectar un objeto a menos de 40cm, el programa tomará ejecuta los bloques del camino de arriba de la bifurcación, de lo contrario ejecutará los bloques del camino de abajo de la bifurcación.

Paso 2. Si detecta el obstáculo retrocede y gira por tiempo

breve.

Paso 3. Si no detecta obstáculos avanza

indefinidamente.

Paso 4. Bucle infinito para que el programa se

repita indefinidamente.

PROGRAMA NXT 3. ROBOT SIGUELÍNEAS

El robot debe seguir el recorrido de una línea negra. Para seguir una línea negra, se utiliza un algoritmo que nos permite

desplazarnos por el borde de la línea. La idea es que cuando el robot está sobre la superficie clara, gire a la izquierda y

cuando esté sobre la línea negra gire a la derecha. Mediante este movimiento de zig-zag, se logra el objetivo.

Debemos calibrar el sensor para medir la luz en la superficie clara y en la superficie oscura, para esto, vamos al menú

principal del ladrillo NXT y elegimos la opción View-->Reflected light-->Port 3, si la medición sobre el color claro es 60 y

sobre la línea negra es 40, entonces elegimos el valor 50 como punto medio.

Paso 1. Bloque Bifurcación con el sensor de luz. Si la luz es mayor de 50 (color claro) paramos el motor izquierdo y

movemos el derecho hasta que entre en la zona de color negro, entoces leerá luz menor de 50 (color oscuro) y parará el

motor derecho y moverá el izquierdo, saliendo otra vez de la línea negra.

Paso 2. Bucle infinito, para repetir el ciclo indefinidamente.

Page 15: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -15-

PROGRAMA NXT 4. ROBOT QUE NO CAE DE LA MESA NI CHOCA CON OBSTÁCULOS

El robot debe evitar caer de una mesa y al mismo tiempo evitar chocar con cualquier obstáculo. Para ello se debe

realizar una bifurcación dentro de otra bifurcación.

Paso 1. Bloque Bifurcación con el sensor de luz. Si detecta menos de 45 (oscuro), para los motores, retroceden un

momento y giran para cambiar la dirección. Si por el contrario la luz es mayor de 45 (claridad) entonces entra en la

siguiente bifurcación y lee el siguiente sensor.

Paso 2. Bloque Bifurcación con sensor ultrasónico que lee la distancia a los obstáculos. Si tiene un obstáculo a menos de

30 cm, para los motores, retroceden un momento y giran para cambiar de dirección. Si no existen obstáculos, los

motores avanzan indefinidamente.

Paso 3. Bucle infinito para repetir toda la secuencia del programa indefinidamente.

Page 16: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -16-

ACTIVIDAD 2. CONTROLAR EL ROBOT NXT MEDIANTE UN TELÉFONO MÓVIL

Paso 1. Con nuestro terminal móvil, entramos en Google Play, y

buscamos NXT Remote Control.

Paso 2. Descargamos la aplicación y la ejecutamos.

Paso 3. Sale una ventana en la que pulsamos Scan, para escanear los

nxt cercanos, los cuales deben tener activo el bluetooth.

Paso 4. Veremos en pantalla los códigos MAC de los NXT detectados.

Paso 5. Hacemos clic sobre el NXT con el que deseemos conectarnos.

Paso 6. Puede que nos pida una clave, normalamente 1 2 3 4.

Paso 7. Se nos una de las ventanas de la aplicación, con unos botones con

flechas (Button control) con las que podemos mover nuestro robot en las cuatro

direcciones principales. Con una barra desplazable controlamos la velocidad de

los motores.

En la parte de abajo de la pantalla debe indicar "connected" en color verde.

Paso 8. Si pulsamos en propiedades, arriba a la derecha, podemos mover

nuestro robot de otras tres maneras diferentes:

• Touchpad controls. Deslizando el dedo podemos mover el robot en

cualquier dirección de los 360º de la circunferencia.

• Tank controls. Deslizando dos dedos podemos regular la velocidad del

motor derecho e izquierdo independientemente.

• 3 motors controls. Deslizando tres dedos podemos regular la velocidad

del motor derecho e izquierdo independientemente, además de un

tercer motor, que usualmente es un

brazo robótico.

Page 17: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -17-

Actividad 3. Programando el robot Lego EV3 con el software de Lego

La generación de robots Lego EV3 es la más moderna y la que sigue a la NXT.

Tanto los sensores, como los actuadores de Lego EV3 son compatibles con el robot Lego NXT. De la misma forma, el lenguaje de Lego EV3 se puede usar para programar el robot NXT, aunque éste, tiene su propio lenguaje gráfico por bloques, que ya hemos aprendido a manejar en la practicas anteriores.

ROBOT EVITA OBSTÁCULOS

Paso 1.- Diseñamos el robot Tribot EV3.

Paso 2.- Crear un nuevo proyecto. Para ello abre el software de Lego EV3 mediante Inicio > Todos los programas > LEGO MINDSTORMS Education EV3 > LEGO MINDSTORMS Education EV3 o bien haciendo doble clic en el icono de acceso directo situado en el Escritorio.

Paso 3.- Clic en el botón + Agregar proyecto para crear un proyecto nuevo.

En este proyecto el vehículo deberá moverse de la posición inicial hasta detenerse en la

posición final sin tocar los obstáculos describiendo la siguiente secuencia:

1. Moverse hacia delante. Se desplazará hacia delante mientras no detecte la

proximidad de un obstáculo.

2. Esperar hasta detectar proximidad. Cuando detecte un obstáculo, el sensor

ultrasónico arrojará un valor limite (10 cm) y dejará pasar al siguiente bloque.

3. Giro a la izquierda. Girará en el sentido antihorario una amplitud de 90 grados.

4. Moverse hacia delante. Se desplazará hacia delante algunos segundos.

5. Detenerse. El vehículo se detendrá.

6. Paso extra. Se desplazará hacia delante mientras no detecte la proximidad del

siguiente obstáculo, de lo contrario volverá a evitarlo y se repetirá la secuencia.

Paso 4. Moverse hacia delante.

En la paleta de bloques, situada en la parte inferior del área de diseño del programa, selecciona

la paleta de Acciones (color verde). Arrastra el bloque Mover la dirección y conéctalo con el

bloque de Inicio en el área de diseño del programa.

Clic en el Modo del bloque Mover la dirección y elige la opción Encendido. Este modo

encenderá los motores y se mantendrán encendidos hasta nueva orden.

Una vez definido el Modo sólo resta configurar los parámetros, Dirección, si el valor es 0 se moverá hacia delante en línea

recta y Potencia, el valor por defecto será 50.

Paso 5. Esperar hasta detectar proximidad (obstáculo)

Arrastra y conecta a la secuencia el bloque de Control de flujo > Esperar.

Pulsa en el botón de Modo de este bloque y elige la opción Sensor ultrasónico > Comparar >

Distancia en centímetros.

Despliega el combo de comparación y elige "Menor que <". En el valor numérico introduce,

por ejemplo, 10 cm. Esto significa que este bloque esperará hasta que el sensor ultrasónico

detecte una proximidad de un objeto inferior a 10 cm. En cuanto esto ocurra dejará pasar al

siguiente bloque en la secuencia de programación.

Page 18: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -18-

Paso 6. Giro a la izquierda

Arrastra y conecta a la secuencia el bloque de Acciones > Mover la dirección. Pulsa en el botón de Modo y elige la

opción Encencido por rotaciones. Establece los valores necesarios para que el vehículo retroceda marcha atrás a la

posición inicial:

• Dirección. El valor -100 indicará que gira a la izquierda.

• Potencia. En este caso pondremos 50%.

• Rotaciones. Sitúa como valor 0,5 para que efectúe el giro de 90 grados aprox.

• Detener el final. Esta opción activada.

Paso 7. Moverse hacia delante y detenerse

En la paleta de bloques, situada en la parte inferior del área de diseño del programa, selecciona la paleta

de Acciones (color verde). Arrastra el bloque Mover la dirección y conéctalo con el bloque de Inicio en el área de diseño

del programa.

Clic en el Modo del bloque Mover la dirección y elige la opción Encendido por

rotaciones. Este modo encenderá los motores y se mantendrán encendidos hasta nueva

orden. Una vez definido el Modo sólo resta configurar los parámetros:

• Dirección. Si el valor es 0 se moverá hacia delante en línea recta.

• Potencia. El valor por defecto será 50.

• Tiempo. Durante 5 segundos.

• Detener el final. Esta opción activada.

Paso 8. Fin del programa

Durante la ejecución de un programa éste se detiene cuando se alcanza el último bloque de la secuencia. Sin embargo es

buena práctica situar un bloque Detener programa al final. Este bloque se puede encontrar en la paleta azul marino

de Avanzados.

La secuencia resultante de bloques sería:

Paso 9. Guardar el proyecto

En la barra de menús elige Archivo > Guardar proyecto como ... Define la carpeta destino e introduce el nombre

del proyecto. Por ejemplo: DetectorDeObstaculos. Clic en el botón Aceptar.

Paso 10. Ejecutar el programa

Conecta el bloque EV3 al ordenador usando el cable USB. Desde el software de Lego EV3, en el panel de Hardware clic en

el botón Descargar para enviar el programa diseñado. Retira el cable USB. En la página Archivos del bloque abre la

carpeta DetectorDeObstaculos, selecciona la entrada Programa y pulsa en el botón Centro para ejecutarlo.

Paso Extra. Evitar obstáculos infinitamente o durante un tiempo determinado.

Si quitamos el último bloque y metemos toda la secuencia en el siguiente bucle infinito, la secuencia se estaría repitiendo

siempre, hasta que detengamos manualmente el robot.

Otra posibilidad sería encerrarlo en un bucle y definir un tiempo. (ejemplo: 20 segundos)

Page 19: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -19-

ACTIVIDAD 4. Programando ARDUINO ZUM CORE con BITBLOQ 2

Bitbloq 2 es un lenguaje de programación por bloques, on line,

al estilo scratch, orientado hacia las placas microcontroladoras.

El departamento educativo de la empresa BQ, llamado DIWO,

es el creador de este software libre. En su portal podemos

obtener cientos de ejemplos y prácticas.

http://diwo.bq.com/

http://diwo.bq.com/course/aprende-robotica-y-

programacion-con-bitbloq-2/

Antes de empezar a programar con Bitbloq 2 es importante

asegurarse que tenemos todo lo necesario para que éste

funcione correctamente en nuestro ordenador.

Los pasos que debemos seguir son los siguientes:

1. Conecta tu placa al ordenador con el cable USB.

2. Abre Bitbloq 2 en tu navegador Google Chrome.

3. Pulsa sobre la pestaña Placas y arrastra tu placa al recuadro blanco. Si tienes una placa distinta a la que aparece

en el listado compatible con la familia UNO, utiliza la placa Arduino UNO.

4. Pulsa en Verificar y observa cómo compila correctamente el programa.

5. Pulsa sobre el botón Cargar, aparecerá un cuadro de dialogo pidiéndote descargar la aplicación Web2board.

Selecciona tu sistema operativo, se bajará un archivo a tu ordenador.

6. Si estas utilizando Windows, descomprime el archivo descargado y ejecuta el archivo web2board.exe. En el caso

de que estés utilizando Linux descomprime el archivo y ejecuta el archivo Web2Board, se abrirá una aplicación

que solicitará que introduzcas tu contraseña de usuario, introdúcela y pulsa intro.

7. Una vez que hayas instalado el programa Web2board es recomendable que reinicies el ordenador.

8. Tras reiniciar el ordenador abre Bitbloq 2 selecciona tu placa y pulsa sobre el botón Cargar. Se empezará a cargar

el programa a tu placa. Tras un momento aparecerá en pantalla el mensaje que te indicará que todo ha funcionado

correctamente: Programa subido con éxito.

Ahora accede a la página http://bitbloq.bq.com/

Pulsa sobre Empezar a jugar. Si deseas registrarte o ya tienes una cuenta, haz click en Entrar o registrarte y sigue los pasos

que te indiquen. La primera vez que entres a bitbloq 2 te ofrecerá la opción de una visita guiada.

El programa se divide en tres pestañas principales situadas a tu izquierda:

Hardware, donde diremos qué placa, sensores y actuadores

utilizamos.

Información del proyecto, donde añadiremos información a éste.

Software, donde programaremos nuestro proyecto, bien por

bloques, o bien por código, si eres un programador más

experimentado

Page 20: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -20-

SENSORES DIGITALES Y ANALÓGICOS DE LA PLACA ZUM CORE

Un sensor digital solo puede tener dos valores: 1 o 0, todo o nada. Un ejemplo de sensor digital es un pulsador, en el que cuando pulsamos el botón éste vale 1, y cuando no lo pulsamos 0. En una placa ZUM o similar, los sensores digitales irán conectados en los pines digitales D0-D13.

Una característica importante a tener en cuenta es que los pines digitales 0->RX y 1->TX se usan para recibir y enviar información, por lo que si les conectas un sensor o actuador y programas la placa, puede que el programa no se cargue o no funcione correctamente. Además, el pin D13, debido a la existencia del LED D13, no recibe la misma tensión, por lo que puede darte problemas en el uso de algunos elementos. Usa con precaución dichos pines.

Un sensor analógico puede tener múltiples estados siendo capaz de transformar la cantidad de luz, temperatura u otros elementos físicos en un valor comprendido entre 0 y 1023. Un ejemplo de sensor analógico es un sensor de luz, donde dependiendo de la cantidad de luz que el sensor recibe dará un valor mayor o menor. En una placa ZUM o similar los sensores analógicos irán conectados en los pines analógicos A0-A5.

PROGRAMA 1. Modificando la velocidad de parpadeo de un LED mediante un potenciómetro

Conecta un LED y un potenciómetro a tu placa.

En el Bucle principal (Loop), en el cual debemos poner los bloques que deseamos ejecutar indefinidamente, declaramos la variable tiempo_parpadeo como el valor que devuelve el potenciómetro.

En la pestaña Control -> Avanzados, elegimos el bloque Esperar que nos permitirá introducir la variable tiempo_parpadeo como el tiempo de espera entre el encendido y el apagado del LED (0 a 1023 milisegundos).

Ahora vamos a MAPEAR, es decir, convertir un rango de valores en otro distinto.

En el ejemplo anterior, variábamos el parpadeo del LED entre 0 y 1023 milisegundos. Pero… ¿y si deseamos controlar el parpadeo del LED entre 0 y 10 segundos? La solución es utilizar el bloque Mapear, que transformará la escala de 0 a 1023 a una nueva de 0 a 10000 ms (10 seg).

Page 21: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -21-

PROGRAMA 2. Modificando el tono de un zumbador desde un potenciómetro

Vamos a variar la nota que emite el zumbador utilizando el potenciómetro. Antes de empezar a programar, conectamos los componentes:

Recordemos que el potenciómetro puede tener valores de entre 0 y 1023, pero en este caso queremos que las frecuencias sigan una escala de 200 a 500 Hz, escala muy próxima a las notas más utilizadas. Para ello, vamos a utilizar un nuevo bloque llamado Mapear.

Ahora vamos a MAPEAR, es decir, convertir un rango de valores en otro distinto.

En el caso del zumbador deberemos trasformar o mapear la escala de 0-1023 a una nueva de 200-500.

Seleccionamos el bloque avanzado del zumbador, que nos va a permitir introducir frecuencias y en la pestaña Matemáticas, opción Avanzados, elegimos el bloque Mapear.

PROGRAMA 3. Detector de oscuridad

Un sensor de luz es una resistencia que modifica su valor dependiendo de la luz que reciba. Cuando hay más luz, deja pasar más corriente eléctrica y cuando hay menos luz, deja pasar menos corriente.

El sensor de luz del ZUM Kit devuelve valores comprendidos entre 0 (máxima oscuridad) y 800 (máxima iluminación). Recuerda que es un componente analógico.

Cuando la cantidad de luz está por debajo de 200, se enciende el led, de lo contrario se ilumina.

Page 22: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -22-

PROGRAMA 4. EL ZUMBADOR PITA A MEDIDA QUE SE ACERCA UN OBSTÁCULO

Un sensor de ultrasonidos es un componente que utiliza ondas de alta frecuencia para saber la distancia a un objeto. Este tipo de sensores tienen dos partes, una es el emisor que emite la señal y la otra el receptor que recibe la señal si ésta rebota sobre algún obstáculo cercano.

Este es el mismo sistema que usan los murciélagos para orientarse y se aplica de forma similar en robótica para detectar obstáculos y medir distancias.

Conectando el sensor de ultrasonidos

El sensor de ultrasonidos tiene cuatro pines marcados como: GND, ECH, TRI, VCC.

El TRI (Trigger) es el encargado de ordenar al sensor que emita la onda y el ECH (Echo) la recibe. En función del tiempo que transcurre entre la emisión y recepción de la señal, nuestra placa calcula la distancia. Estos dos cables deben ir conectados a un pin de señal, que en tu placa ZUM son de color blanco. Los otros dos cables, GND y VCC, se conectan a cualquier pin negro y rojo respectivamente.

Comprobando su funcionamiento

Podemos visualizar la distancia a un objeto utilizando el puerto serie. El sensor de ultrasonidos siempre nos devolverá la distancia en centímetros.

El monitor serie es un medio de comunicación por el que Arduino puede

enviar y recibir información hacia o desde ordenador, a través de un cable

USB. Este monitor serie, dependiendo del lenguaje de programación se

abre de diferente formas. Para Bitbloq 2, es con la opción:

Sensor anticolisión de aparcamiento

Vamos a diseñar un sistema que avise al robot de la distancia que le separa de otros objetos para evitar la colisión con estos. Este es el sistema que usan los vehículos para facilitar las maniobras de estacionamiento. Para ello, programamos que cuando la distancia a un objeto sea menor de 50 cm, el zumbador comience a emitir un pitido intermitente, que irá pitando con más frecuencia cuanto más se vaya aproximando. Primero creamos la variable tiempo como el valor de la distancia devuelto por el sensor de ultrasonidos y lo multiplicamos por 10. Esto nos permitirá percibir mejor cómo varía el intervalo entre pitidos del zumbador.

Page 23: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -23-

PROGRAMA 5. CONTROLANDO UN SERVOMOTOR-MINISERVO MEDIANTE UN POTENCIÓMETRO

Un servomotor es un motor que es capaz de girar entre 0 y 180 grados, y que podemos decidir a qué posición o ángulo exacto deben moverse. Debemos diferenciar los servomotores miniservos de los servos de rotación continua, capaces de girar más de 180 grados.

IMPORTANTE: Si utilizas muchos motores y el puerto USB puede que no haya suficiente energía para alimentarlos a todos. Siempre que utilices servomotores recuerda alimentarlos mediante el portapilas. Recibirán mucha más energía a la hora de moverse.

Controlando el miniservo utilizando un potenciómetro

Utilizamos el bloque mapear siempre, ya que tenemos la necesidad de convertir una escala en otra distinta. En el caso del potenciómetro, éste da valores entre 0 y 1023, mientras que el miniservo solo puede moverse entre valores de 0 y 180. La solución más sencilla es mapear el valor del potenciómetro de 0-1023 a 0-180 para poder controlar correctamente el miniservo.

Para realizar este programa deberás utilizar el bloque genérico del miniservo. Lo encontrarás en Componentes->Avanzados. En el primer hueco deberás poner el número de pin al que has conectado el miniservo o, tal como hemos realizado en otras ocasiones, la variable que almacena dicho número. En avanzados encontrarás dichas variables. Ahora ya podemos mover el potenciómetro para controlar grado a grado la posición del miniservo.

Page 24: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -24-

ACTIVIDAD 5. PASANDO DE PROGRAMACIÓN BITBLOQ 2 A PROGRAMACIÓN CON IDE

ARDUINO

Cómo ya vimos anteriormente una de la funcionalidades de Bitbloq 2 es que podemos ver el código original en lenguaje IDE Arduino, a la vez que vamos programando mediante el acoplamiento de bloques, e incluso si hacemos clic en "Editar código" podemos modificarlo, pero en este caso ya no podremos volver atrás, es decir, ya no podremos volver a programar por bloques.

Otra opción para dar el salto a programar con IDE Arduino es copiar el código generado en Bitbloq 2 a la IDE Arduino y seguir modificando y programando desde aquí.

Los pasos a seguir son los siguientes:

1.- Instala la IDE Arduino entrando en: https://www.arduino.cc/en/Main/Software#, y descargando el archivo ejecutable.

2.- Configura tu placa y puerto serie. En el menú herramientas, configura la placa que uses, en el caso de BQ Zum core, placa Arduino BT con procesador AT mega 328. Selecciona el puerto serie que corresponda, prestando atención al sistema operativo, pues el puerto cambia su nombre dependiendo de él.

• Windows → COMX

• Linux → /dev/ttyUSBX

• Mac → /dev/tty.usbserialX

donde x = 1, 2, etc.

3.- Copia y pega el código de Bitbloq, modifícalo y cárgalo en la placa.

Page 25: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -25-

ACTIVIDAD 6. Programando PRINTBOT EVOLUTION.

Printbot Evolution es un minirobot diseñado y fabricado por la empresa BQ, pero basándose en hardware y software

libre. De tal manera que los planos de la piezas en tres dimensiones son públicos y cualquier persona puede imprimirlos

mediante una impresora 3D y efectuar su montaje. Una vez armado con sus piezas mecánicas, sensores y actuadores,

sólo queda programarlo.

Los principales componentes de este robot son:

• La placa controladora Arduino bq

• Sensores IR (infrarrojos), LDR (luz), ultrasonido (distancia)

• Un zumbador

• Dos servomotores de rotación continua para mover al robot

• Un miniservo que hace mover la cabeza (sensor ultrasonido).

• Fuente de alimentación mediante portapilas de 8 pilas AAA.

• Chasis formado por piezas de plástico. Disponibles sus planos y sus instrucciones de montaje en:

http://bitbloq.bq.com/

PRINTBOT 1. SIGUELÍNEAS

Vamos a programar el printbot para que siga

una línea negra de detectará con los dos

sensores IR que lleva en la parte delantera.

Para lo cual programaremos el siguiente

algoritmo:

• Si el sensor izquierdo (2) esta sobre línea

negra:

o entonces la rueda izquierda (8) puede

avanzar

o en caso contrario parar la rueda

izquierda

• Si el sensor derecho (3) esta sobre la línea negra:

o entonces la rueda derecha (9)

puede avanzar

o en caso contrario parar la rueda

derecha

Page 26: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -26-

PRINTBOT 2. EVITA OBSTÁCULOS

Paso 1. Tomaremos tres medidas con el sensor de ultrasonidos: a la izquierda, al centro y a la derecha, moviendo para

ello el miniservo de la cabeza.

Paso 2. Comprobamos la detección de obstáculos. Si no hay obstáculo a menos de 25 cm por delante del robot, haremos

que suene un pitido "Beep" y avanzamos recto. Pero si hay un obstáculo sonará un pitido "Meec" y comprobamos si lo

podemos esquivar por el lateral izquierdo.

Paso 3. Si no se puede por la izquierda, lo comprobamos por la derecha,

y si las tres direcciones están bloqueadas, se debe retroceder y hacer que

cambie de rumbo girando a la izquierda.

Los bloques de programación son los siguientes:

En las variables globales programamos, “obs_Left, obs_Right y

obs_Center” las utilizaremos para guardar un 1 o un 0 si se ha detectado un obstáculo a la

izquierda, derecha o delante respectivamente. Un 1 significa obstáculo en esa dirección.

Las variables “angle_Left, angle_Right y angle_Center” guardan las posiciones del

miniservo para que los “ojos” del robot estén mirando hacia la izquierda, derecha o centro.

Cuando ordenamos al miniservo que se mueva a un ángulo lo que hacemos es girar y

orientar el sensor ultrasonidos.

La función “search_Obstacle” es la buscadora de obstáculos. Tiene como parámetro de

entrada un ángulo y la salida será un 1 o un 0.

En el bucle principal (loop), programamos:

Una vez definimos las variables, vamos a

comenzar a programar el bucle de programa

que se repetirá una y otra vez. Lo primero

es hacer que el robot se pare con la función

Stop.

Page 27: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -27-

Las 3 mediciones se programan así:

Primero mueve el miniservo a ese ángulo de entrada, después usa el bloque del sensor de ultrasonidos que mide

distancia (en centímetros) y por último el bloque verde de comparación:

• Si la distancia que mide el sensor es menor que 25cm: reproduce sonido de error con el zumbador y devuelve

un 1. ¡Hay obstáculo!

• De lo contrario, pitido agudo con el zumbador “beep” que indica zona despejada. Devolverá en este caso un 0.

¡Está despejado!

Ahora viene la elección de cómo debe actuar el robot según los obstáculos detectados.

Page 28: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -28-

ACTIVIDAD 7. Programando ARDUINO UNO Y ZUM CORE con VISUALINO

Antes de empezar a trabajar con Arduino UNO, debemos conocer algunas características importantes de sus pines de entrada y de salida, y de cómo conectarlos a los sensores comerciales ayudándonos de una placa de pruebas protoboard, pues ahora los sensores no vienen preparados con componentes adicionales, ni alimentados.

En este caso tenemos que saber cómo conectarlos a la alimentación y a algunos componentes electrónicos adicionales necesarios para que nuestros sensores y actuadores funcionen adecuadamente.

Para realizar todas estos circuitos y conexiones existen aplicaciones software que nos ayudan al diseño inicial de nuestros circuitos. Vamos a estudiar dos de ellos brevemente:

1.- FRITZING

Es el programa por excelencia para la realización de esquemas eléctricos en proyectos con Arduino. Es software libre y

dispone bibliotecas con la mayoría de componentes, incluido por

supuesto las propias placas Arduino, placas de conexiones protoboard,

leds, motores, displays etc.

Con esta aplicación podemos hacer esquemas eléctricos, cambiar el

color de los cables, diseñar nuestra placa de circuito impreso final y

gran cantidad de opciones, como listados de componentes, etc, que

convierten a este programa en una herramienta muy útil.

Fritzing no es un simulador de funcionamiento de Arduino.

Web Principal: http://fritzing.org/home/

Descarga: http://fritzing.org/download/

2.- AUTODESK 123D Circuit.io

Herramienta online gratuita de Autodesk que permite dibujar esquemas de forma similar a Fritzing. Además permite simulación de circuitos, e incluso podemos realizar la “programación virtual” de las placas Arduino y comprobar el funcionamiento. Es decir, es un simulador online.

Aún está en desarrollo, por lo que la simulación es lenta y puede dar algún problema.

Web principal: http://123d.circuits.io/

Web del simulador: http://www.123dapp.com/circuits

3. INSTALANDO Y CONFIGURANDO VISUALINO

Visualino es lenguaje de programación con un entorno similar a

Scratch. Es un software libre basado en Google Blokly y Bitbloq de BQ. Permite crear programas para Arduino acoplando

bloques a modo de puzle. Pero además, permite programar directamente la placa de Arduino y por tanto, hace innecesaria

la conexión permanente al PC.

Otra funcionalidad importante es que los bloques generan el código de IDE Arduino (C/C++) en tiempo real en una

ventana. El entorno es similar al del IDE de Arduino, con las mismas opciones principales: Verificar, Subir, Nuevo, Abrir,

Guardar y Preferencias.

1.- Accedemos a su web: http://www.visualino.net/

2.- Hacemos clic en Descargar

3.- Seleccionamos nuestro sistema operativo

4.- Descargo el archivo comprimido zip de la última

versión.

Page 29: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -29-

5.- Descomprimo el archivo zip

6.- Busco el archivo "visualino.exe" y lo ejecuto.

7. En el menú File--> Prefrerences, selecciona el idioma español.

4.- ENCENDER UN LED CON UN BOTÓN

El botón pulsador se conecta al pin 7. Este pin va conectado a masa

(GND =0V) a través de una resistencia de 10 KΩ, para asegurarnos de

que cuando no esté a 5V (1 lógico), se mantenga a 0V (0 lógico).

El LED va al pin 8, pero cuando sale 1 lógico, es decir 5V, puede ser

demasiada tensión y podríamos dañar el componente, por lo que conectamos en serie con él una resistencia de 2,2 KΩ,

para crear una caída de tensión. A esto lo llamamos divisor de tensión.

5.- LEDS QUE ENCIENDEN CORRELATIVAMENTE SEGÚN POTENCIÓMETRO

Primero declaramos las variables, después apagamos todos los leds. A continuación a la variable "valor" le asignamos el

valor del potenciómetro. Posteriormente mapeamos el valor del potenciómetro 0 a 1023 --> 8 a 12, que es el rango de

puertos de salida de los leds. Enviamos por el puerto serie estos dos valores, que debemos ver en el monitor de visualino. Finalmente contamos, con una variable "i" , desde 8 hasta 12 y cuando coincida con el valor del pin de algún led,

éste se encenderá.

Page 30: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -30-

5.- REGULAR LA LUMINOSIDAD DE UN LED MEDIANTE UN POTENCIÓMETRO

Comenzamos declarando la variable "valorPotenciometro", a la que asignamos el

valor recibido por el pin 0. Después mapeamos dicho valor (0 a 1023) a un rango (0

a 255).

Esto se hace porque para reconfigurar un pin digital en un pin analógico, se usa el

bloque "Escribir en PIN digital_el valor analógico_", donde este valor debe estar

entre 0 y 255. Es decir, un valor de 255 equivale a 5V, mientras que por ejemplo un

valor de 100 equivalen a 5*100/256=1,95V.

Esto se debe a que Arduino tiene una resolución de 0 a 1023 en la lectura de datos

analógicos y sin embargo, un rango de 0 a 255 para escribir datos analógicos.

Observamos que al ir girando el potenciómetro va variando la cantidad de luz en el

Led.

El primer bloque de asignación de la variable "valorPotenciometro" puede ponerse también de esta forma:

Page 31: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -31-

6.- DETECTOR DE OSCURIDAD MEDIANTE PARPADEO DE UN LED

Observamos de nuevo que tanto el LDR como el LED deben alimentarse conectándose a 5V y a GND(tierra o negativo).

Pero no lo hacemos directamente, pues sería demasiada tensión y podríamos dañar los componentes, por lo que

conectamos en serie con ellos una resistencia de 220 Ω, para crear una caída de tensión. A esto lo llamamos divisor de

tensión.

Cuando el valor de pin analógico 0, dado por el LDR, sea menor de 100 provocará un parpadeo del Led.

Leemos el valor del pin 0, donde tenemos el LDR y ponemos

un bucle para que mientras se cumpla la condición de que ese

valor sea menor de 100, ejecute otro bucle que hace

parpadear el Led conectado al pin 8.

7.- ALARMA POR DETECCIÓN DE LUZ (CAJA FUERTE)

En esta actividad construimos una alarma para que cuando

abran nuestra caja fuerte o un cajón con nuestras cosas

valiosas, suene una alarma de aviso.

Primero declaramos dos variables "valor" y "zumbador". A

continuación le asignamos a la variable "valor" la entrada del

sensor LDR por el pin analógico A0 (0 a 1023).

Posteriormente imprimimos ese valor por el puerto serie para

verlo por el monitor de visualino y ejecutamos una bifurcación

condicional, si la variable luz es mayor de 150 activa un

zumbador por el pin 13, intermitentemente (suena 0,5 seg y

se apaga 1 seg).

Page 32: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -32-

8.- CONTROLAR LA POSICIÓN ANGULAR DE UN SERVO MEDIANTE UN POTENCIÓMETRO

Declaramos la variable del valor del potenciómetro y la de la posición del servo, y las mapeamos. Ahora el servo

seguirá los grados de rotación según el valor del potenciómetro.

9.- SIGUELÍNEAS

El robot Printbot Evolution también puede ser programado desde

visualino, mediante la lectura de sus dos sensores infrarrojos

delanteros, que devolverán un 0 lógico si detectan negro y un 1 lógico

si detectan blanco. El robot debe activar sus motores derecho e

izquierdo atendiendo a estas lecturas, como se muestra en la tabla.

Estados Sensor

izquierdo Sensor

derecho Motor

izquierdo Motor

derecho

No detecta negro

1 1 ADELANTE ADELANTE

S. derecho detecta negro

1 0 ADELANTE PARA

S. izquierdo detecta negro

0 1 PARA ADELANTE

Page 33: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -33-

ACTIVIDAD 8. Programando ARDUINO con SCRATCH (S4A)

S4A es un entorno Scratch modificado que incluye nuevos bloque de programación para controlar los sensores y actuadores de la placa Arduino. También incorpora una tabla con valores que informa del estado de los sensores cad 75 ms. La configuración de entrada/salida está siendo desarrollada, por lo que de momento tenemos activas:

• 6 entradas analógicas (pines A0-A5)

• 3 salidas analógicas (pines digitales 5, 6 y 9)

• 2 entradas digitales (pines digitales 2 y 3)

• 3 salidas digitales (pines 10, 11 y 13)

• 4 salidas especiales para conectar servomotores de rotación continua Parallax (pines digitales 4, 7, 8 y 12)

Lo primero que debemos hacer es instalar S4A + Arduino. Para ello, seguimos los siguientes pasos:

1.- Descargar el software de la web http://s4a.cat/index_es.html, e instalarlo.

2.- Se deberá instalar en la tarjeta Arduino el Firmware correspondiente que facilita la comunicación con S4A. Esto se realiza cargando el fichero firmware en el IDE de Arduino y después descargándolo sobre la tarjeta.

3.- Finalmente se ejecuta S4A y de realiza el diseño haciendo uso de las librerías de bloques correspondientes.

PROGRAMA 1. DETECTOR DE TEMPERATURA

Hemos de crear un programa que cuando detecte calor (por encima de 850, recuerda que el rango es 0-1023), debe encender un Led rojo y mostrar un disfraz de verano en pantalla, sino ponemos el disfraz de invierno y apagamos el Led. Se conecta el divisor de tensión formado por el sensor de temperatura NTC y una resistencia de unos 10KΩ a la entrada analógica PIN 5. El Led a la salida digital PIN 13 y el Zumbador a la salida analógica PIN 6.

PROGRAMA 2. DETECTOR DE LUZ

Debemos crear un programa para que cuando el sensor de luz LDR lea un valor de más de 900 (rango 0-1023) ponga en panatalla el disfraz de día y el Led blanco permanezca apagado, sin embargo cuando el LDR lea un valor inferior cambiamos el disfraz a noche y se enciende el Led blanco. Se conecta el divisor de tensión formado por la LDR y una resistencia de unos 220Ω a la entrada analógica PIN 1. El Led a la salida digital PIN 10

Page 34: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -34-

SISTEMAS DE CONTROL Y ROBOTS

1.- Explica qué es la automatización y las ventajas

e inconvenientes que han supuesto para las

personas.

2.- Explica las diferencias entre un sistema de

control en lazo abierto y uno en lazo cerrado.

3.- Indica algún ejemplo de un sistema de control

en lazo abierto y en lazo cerrado.

4.- Explica la diferencia entre máquina y máquina

automática.

5.- Explica la diferencia entre máquina automática

y robot.

6.- ¿Qué es un sensor?

7.- ¿Qué es un androide?

8.- Cuáles son las tres leyes de la robótica.

9.- ¿Quién escribió por primera vez las tres leyes

de la robótica?

10.- Indica los diferentes elementos que entran a

formar parte de la arquitectura de un robot.

11.- Explica las diferencias entre señal analógica y

señal digital.

12.- ¿Por qué se usan en la actualidad los

sistemas de información digital?

13.- ¿Qué es un actuador? Pon ejemplos.

14. Indica diferentes tipos de robots y explica

alguno que te llame la atención.

15.- ¿A qué llamamos los grados de libertad de un

robot?

16.- Isaac Asimov añadió una ley cero de la

robótica. Búscala y explica por qué crees que fué

necesario.

PLACAS MICROCONTROLADORAS Y KITS DE

ROBÓTICA

17.- ¿Qué significa hardware y software libre?

18.- De las placas microcontroladoras que hemos

visto en esta unidad, indica cuáles son de

hardware libre.

19.- Indica la diferencia entre entradas analógicas

y entradas digitales.

20.- Explica brevemente las principales

características de la placa Arduino.

21.- ¿Qué lenguajes de programación conoces

para programar la placa Arduino?

22.- ¿Qué diferencias fundamentales existen

entre la placa Arduino UNO y Arduino ZUM

CORE?

23.- ¿Qué es una placa protoboard?

24.- Indica las diferencias entre un kit de robótica

casero y uno comercial.

25.- Realiza un esquema de cómo controlamos

mediante un ordenador las actuaciones de un

robot.

26.- Indica las diferentes partes de la placa

Arduino UNO

Page 35: PROGRAMACIÓN Y ROBÓTICA - … · Se utilizan para realizar tareas que antes se hacían de forma manual. ... sensor de sonido, un sensor de luz, un sensor de tacto(botón), una barra

IES Ángel de Saavedra José Luis Gutiérrez Madrid

Página -35-

ROBOT DE LEGO NXT o EV3

27.- Diseña un robot androide, o también llamado

humanoide, utilizando todas las piezas necesarias

del kit de Lego. Si el montaje lo realizas con NXT,

busca en internet "Alpha Rex 2.0 (8547)",

descárgate las instrucciones de montaje y una vez

armado, prográmalo para que ande

coordinadamente y para que cuando detecte

proximidad de obstáculo se ponga a bailar y

cambie de dirección.

ROBOT DE LEGO NXT o EV3

28.- Debemos montar un semáforo formado por

tres Leds para que funcione con la placa Arduino.

Tenemos que programar en Scratch para Arduino

(S4A) con el objetivo de que este semáforo

funcione coordinadamente con el programa del

semáforo de la pantalla del PC, que desarrollamos

en 2ºESO.

Otra posibilidad es programar el semáforo

mediante Bitbloq 2 o Visualino.

Una posible solución para nuestro programa

puede comenzar así: