programaciÓn y robÓtica - … · se utilizan para realizar tareas que antes se hacían de forma...
Post on 20-Sep-2018
218 Views
Preview:
TRANSCRIPT
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)
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
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
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.
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
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.
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.
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.
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
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
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.
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.
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
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.
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.
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.
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.
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)
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
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).
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.
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.
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.
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.
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
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.
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.
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.
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á.
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:
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).
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
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
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
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í:
top related