Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INDICE
1. PRIMERAS NOCIONES
2. EMPEZAMOS
AMOS A TRABAJAR
10
14
5. FUNCIN REPITE
16
6. PRACTICA: SOS
17
7. PRACTICA: EL SEMAFORO
18
19
22
27
29
35
37
40
41
43
50
54
56
57
1.
PRIMERAS NOCIONES
ARDUBLOCK
Qu es Ardublock?: Ardublock es un lenguaje grfico de
programacin que se distribuye como un pluging de java y que
se aade a las herramientas del IDE de Arduino, con lo que
permite la elaboracin de programas para Arduino sin necesidad
de escribir el cdigo con la sintaxis de sus rdenes.
Se basa en
n el uso de una sencilla interfaz grfica utilizando un sistema de bloques, que
simbolizan diferentes elementos de programacin, por ejemplo: instrucciones,
condiciones, variables, bucles, etc. Estos bloques de programacin se van
ensamblando, como las piezas de un puzle hasta formar programas, lo que hace que
esta herramienta sea de gran utilidad para iniciar a nuestros alumnos en la
programacin con Arduino ya que tiene la posibilidad de pasar nuestro programaprograma
puzle a lenguaje Arduino permitiendo ver
ver a nuestros alumnos a qu sentencias
equivalen cada pieza del puzle.
puzle. . Adems se trata de una aplicacin libre y es muy fcil
de instalar y manejar.
Pines analgicos
Esta es la placa con la que trabajaremos, y las patillas digitales pueden verse en a
la parte superior (P0,1,2,34,5,6,7,8,9,10,11,12,13) y en la inferior las analgicas,
numeradas como A0, A1,.. Tambin en la parte inferior
inferior se encuentra el botn Reset,
que permite reiniciar el bootloader y cargar un nuevo programa, tambin se puede
hacer desde el IDE de Arduino.
En la parte derecha
echa podemos ver el puerto USB,a
USB,a la izquierda la entrada de corriente.
Seis de las entradas digitales
itales se pueden emplear como entradas PWM. Esto quiere
decir que permiten simular un comportamiento analgico enviando seales de valor
variable, de cara a modificar la intensidad de iluminacin de un LED o la
la velocidad de
giro de un motor, se corresponde
orresponden
n a los pines 3, 5, 6, 9, 10 y 11, y permiten enviar
seales de 256 valores distintos entre 0 y 5 voltios.
La alimentacin de Arduino UNO se realiza a travs de la entrada USB, o bien a travs
de la entrada de corriente SHIELDS DE ARDUINO
Los shields son placas que se empotran encima de una placa Arduino y que ofrecen
funcionalidades complementarias a las de esta evitndonos tener que montar circuitos
para probar nuestros programas, una de ellas es la Arduino
Dasic I/O
2.
EMPEZAMOS
AMOS A TRABAJAR
Para empezar a trabajar lo primero que tenemos que hacer es instalar el software
necesario y para ello debers seguir los pasos siguientes:
1 paso:: Descargad e instalad el entorno Arduino siguiendo las instrucciones de
http://arduino.cc/en/Main/Software
2 paso (Seleccionar
Seleccionar la placa Arduino que vamos a utilizar ):
): Conectad la placa
Arduino a un puerto USB de vuestro ordenador, entonces se instalar el nuevo
hardware y fgaros
os en qu puerto est conectada. Siempre podris comprobarlo
en el administrador de dispositivos-puertos
dispositivos
COM y LPT.
En mi caso la placa Arduino se ha instalado en el puerto COM 28
Hacemos clic, se nos abrir una nueva pantalla de trabajo, la de Ardublock como la de
Arduino
3.
Ya con nuestra pantalla de Ardublock abierta vamos a ver con que nos encontramos.
Guardar
programa
Subir programa
(pasarlo a
Arduino)
Cargar un programa
Zoom al programa
Libreras y
funciones (las
piezas del puzle),
estn clasificadas
segn su funcin
10
Ahora vamos a analizar un poco las libreras de Ardublock. Como veras estn
clasificadas por colores segn su funcionalidad,
funcionalidad, son muy intuitivas y sencillas de
manejar. Como ya hemos dicho van encajndose unas en otras como las piezas de un
puzle, si colocamos una funcin o pieza con otra cuya forma no encaja al igual que
ocurre en un puzle la unin no quedar bien realizada,
realizada, sin embargo si la funcin si se
corresponde con el tipo de piezas que deben encajar entre
entr s se oir un clac al
unirlas, esto es muy til para ir aprendiendo que en programacin hay ciertas reglas
que se deben cumplir.
11
Permite leer el
estado de una entrada digital, al colocarla en al
rea de trabajo nos aparecer asociada al un
nmero 1
al clicar
sobre el nmero escogeremos el nmero del pin
que queramos
ramos leer. Lo mismo para pin analgico.
o
bajo a la entrada o salida elegida.
12
Estn dedicados
dicados al control de perifricos concretos, como LED,
analgicos de sonido, etc.
13
Rels, Sensores
4.
Nuestro primer ejercicio ser el apagado y encendido del led rojo de la tarjeta de
experimentacin ARDUINO BASIC I/O, este led se corresponde con la salida D11. Y el
programa por lo tanto quedar como se ve en la figura. Fjate que una vez formado
nuestro puzle daremos a la tecla Upload
completada.
. Ahora ya puedes ver tu primer programa traducido a Arduino.
14
Por lo tanto:
5-2=3V
Aplicando la ley de Ohm (Tensin = Intensidad * Resistencia):
V=I*R
Puesto que conocemos V e I podremos calcular R:
R=V/I
Con los valores:
R = 3 / 0.015 = 200
Por lo tanto necesitaremos la
l resistencia del mercado que ms se aproxime
xime a 200 ,
que es una de 220 .
15
5.
FUNCIN REPITE:
Este sera un ejemplo de cmo utilizar esta funcin. Pero como observars utilizar la
funcin repite as, como nica instruccin de nuestro programa no tiene mucho
much
sentido, ya que como los programas empiezan con un bucle, despus de repetir 3
veces el apagado y encendido de lo que hayamos conectado en la salida 13, por
ejemplo un LED, el programa volver a empezar, por lo que no apreciaremos esa
repeticin.
A continuacin
tinuacin vamos a realizar una prctica en la que esta funcin repite si nos ser
de utilidad.
16
6.
PRACTICA: SOS
La siguiente prctica consistir en realizar una seal de SOS con el led blanco de la
tarjeta de experimentacin ARDUINO BASIC I/O que se corresponde
corresponde con la salida D6.
Si no, puedes utilizar el mismo montaje del ejercicio anterior y por lo tanto el pin 11 en
lugar del 6, o utilizar la salida 13, pin 13 en ella puedes colocar directamente el LED sin
necesidad de usar una resistencia de proteccin.
protecci
Pues vamos all, ahora te toca a ti.
Hay muchas posibilidades para realizarlo por ejemplo sta sera una:
17
7.
PRACTICA: EL SEMAFORO
18
8.
19
sencillo.
void loop()
{
alRead( 4) );
digitalWrite( 6 , digitalRead(
}
20
if (digitalRead( 4))
{
digitalWrite( 11 , HIGH );
}
else
{
digitalWrite( 11 , LOW );
}
}
9.
En esta prctica vamos a ver como se asocia una variable numrica al valor de una
entrada analgica, en nuestro
uestro caso un potencimetro ( Analog1)
Analog1) con el fin de poder
variar el retardo en el encendido y apagado de una
una salida digital (led amarillo colocado
en el PIN 10) al variar una entrada analgica, es decir al girar un potencimetro.
Comenzamos definiendo la variable f, y para ello utilizaremos la funcin:
22
int _ABVAR_1_f;
void setup()
{
pinMode( 10 , OUTPUT);
_ABVAR_1_f = 0;
}
void loop()
{
_ABVAR_1_f = analogRead(A1) ;
digitalWrite( 10 , HIGH );
delay( _ABVAR_1_f );
digitalWrite( 10 , LOW );
delay( _ABVAR_1_f );
}
23
24
25
Seguro que a ti see te han ocurrido otras formas de hacer el programa, sin usar la
funcin while, por ejemplo:
Como ya sabes se pueden realizar distintos programas que lleven a cabo el mismo objetivo.
26
Con esta prctica vamos a llevar a cabo el cambio de giro de un motor de cc de 5V.
Para ello vamos a utilizar
ilizar dos pulsadores como entradas digitales, la 4 y la 6, y para
conectar el motor utilizaremos los pins 3 y 5, ya que como dijimos al inicio de este
manual estas entradas digitales se pueden
pueden emplear como entradas PWM, es decir,
permiten simular un comportamiento analgico enviando seales de valor variable,
vari
de
cara a modificar la velocidad de giro de un motor.
27
28
Los servos motores poseen tres terminales: alimentacin, masa y seal. El terminal
de alimentacin, es normalmente rojo, y se debe conectar al pin 5V de la placa
Arduino. El terminal de masa el cual es normalmente negro debe de conectarse a el
pin de masa del la placa Arduino. El cable de seal suele
suele ser amarillo, naranja o blanco
y debe conectarse al pin 9 de la placa Arduino, y es la que recibe la seal que le indica
el ngulo que debe girar, esta seal est formada por un pulso que el circuito incluido
en el servo interpreta para girar el motor y dejarlo fijo en el ngulo indicado.
29
30
Si lo que quermos
uermos es hacer girar un servo de 0 a 180 continuamente,
continuamente el cdigo
Arduino ms sencillo sera utilizando la funcin for, y podra ser as:
31
32
33
34
35
Este es un ejercicio muy sencillo con el que queremos activar una salida digital (un
LED) conectado en el pin 13, cuando no detecte luz, y deber apagarse cuando la LDR
detecte luz, algo similar a un alumbrado pblico que se activa cuando oscurece y se
desactiva cuando amanece.
El esquema ser el siguiente:
36
Observa el divisor de
tensin.
R=10K
A3 (entrada analgica 3)
Ahora puedes probar a variar t los valores umbrales, si por ejemplo en este ltimo
caso cambias el 300 por 500 el LED se iluminar con ms o menos oscuridad que si
tomamos
mos un valor umbral de 300?
37
A3 (entrada analgica 3)
R=10K
Si queremos que el LED se siga enciendo cundo baje la luz la lgica del programa ser
ahora:
38
Entrada analgica 2
R= 10K
39
16. PRCTICA:
TICA: SENSOR IR, SENSOR DE LUZ INFRAROJA.
40
41
alimentacin: 5V DC
Corriente en
reposo: <2 mA
Su conexin a la placa
Arduino se realiza as:
42
43
44
45
as
que vamos bien.
La solucin podra ser:
46
Otra propuesta:
Si ahora, utilizas tambin motores como salidas puedes disear un coche que gire al
detectar un obstculo, pero eso ya te lo dejo a ti.
47
http://www.arduteka.com/2013/04/robot-miniskybot-2-como-siguelineas
http://www.arduteka.com/2013/04/robot
siguelineas-y-detectorde-obstaculos/
Arduino, Impresion
ultranosidos, TUTORIAL by Borja
QU VAMOS A HACER?
Vamos a ver varios
ios sketch de Arduino para que el robot ejecute las siguientes
funciones:
Seguir una lnea negra sobre un fondo blanco
Esquivar objetos que encuentre en su recorrido
Empujar objetos fuera de un rea limitada por una circunferencia negra
48
Qu necesitamos?
En primer lugar necesitamos que alguien nos imprima en 3D las piezas del robot, si no
conocis a nadie, os podis poner en contacto con nosotros e intentaremos hacer que
no os quedis sin ellas!
El resto del material:
2 servomotores
Arduino UNO
2 led IR
2 receptores IR
4 resistencias (dos de 210 y dos de 10k)
1 sensor ultrasonidos (HC-SR04)
(HC
1 interruptor
tiras de pines
placas donde soldar los componentes.
Para el montaje del robot, podis seguir estas instrucciones creadas por los padres del
proyecto.
Caracterizacin de los servos
Una vez modificados los servos para que se comporten como
o motores que pueden
girar continuamente tenemos que identificar el valor para el cual el motor est parado,
en este video de loleando.es podis ver en detalle cmo realizarlo:
49
La posicin a 0 suele indicarse con 1000s y la posicin 180 con 2000s, al tener
orientaciones opuestas para cada servo hay que asignar valores para que cada servo
gire en un sentido diferente.
Las paradas corresponden a 1450 s y 1390 s.
Circuito IR siguelineas y sensor ultrasonidos
El siguiente paso ser soldar los emisores y receptores IR junto con sus resistencias
segn el siguiente esquema:
Los receptores IR estn cubiertos en la parte lateral con plstico (un pequeo trozo de
globo fino del que se usa para
para hacer figuras) para que slo reciban luz infrarroja por el
extremo, es decir la que rebota desde el suelo.
Conexin con la placa Arduino.
Usaremos el trozo de cable paralelo para conectar los sensores con la placa Arduino. El
cable va soldado a otra placa
placa en la que tambin hemos soldado 9 pines macho en un
extremo que encajarn con las entradas analgicas, ms Vin y GND y un pin que queda
entre los dos bloques de pines (en total 9 pines). En el otro extremo de la placa hemos
soldado 8 pines macho que encajarn
encajarn con las entradas digitales (de 0 a 7) de la placa
Arduino. De esta forma para conectar y desconectar la placa Arduino del robot slo
hay que sacar la placa que tiene los pines soldados.
En esta placa tambin colocamos dos tiras de tres pines machos (en
(en la paste superior)
donde conectaremos los cables de los servos. Por ltimo para conectar las lneas de
control de los servos usaremos dos cables que se conectarn directamente a los pines
8 y 12 de la placa Arduino.
Como vemos en la imagen hemos aadido
aadido un interruptor en el cable de alimentacin
que va desde las pilas a la placa para poder parar el robot.
Cdigo siguelineas
Con este cdigo el robot es capaz de seguir un recorrido marcado por una lnea negra
sobre un fondo blanco. La lnea debe ser lo suficientemente
suficientemente ancha para que los dos
sensores quepan dentro de ella.
51
52
53
54
#include <Servo.h>
int _ABVAR_1_derechoParada;
Servo servo_pin_12;
int _ABVAR_2_izquierdaParada;
int _ABVAR_4_izquierdaAdelante;
int _ABVAR_6_irde;
int _ABVAR_5_irizq;
int _ABVAR_3_derechoAdelante;
Servo servo_pin_8;
void setup()
{
_ABVAR_4_izquierdaAdelante = 0;
_ABVAR_3_derechoAdelante = 0;
_ABVAR_5_irizq = 0;
servo_pin_8.attach(8);
_ABVAR_2_izquierdaParada = 0;
servo_pin_12.attach(12);
_ABVAR_1_derechoParada = 0;
_ABVAR_6_irde = 0;
}
void loop()
{
_ABVAR_1_derechoParada
ada = 1450 ;
_ABVAR_2_izquierdaParada = 1390 ;
_ABVAR_3_derechoAdelante = 2000 ;
_ABVAR_4_izquierdaAdelante = 1000 ;
_ABVAR_5_irizq = analogRead(A5) ;
_ABVAR_6_irde = analogRead(A4) ;
55
servo_pin_12.write( _ABVAR_4_izquierdaAdelante );
servo_pin_8.write( _ABVAR_3_derechoAdelante
VAR_3_derechoAdelante );
if (( ( _ABVAR_6_irde ) < ( 200 ) ))
{
servo_pin_12.write( _ABVAR_2_izquierdaParada );
}
if (( ( _ABVAR_5_irizq ) < ( 200 ) ))
{
servo_pin_8.write( _ABVAR_1_derechoParada );
}
}
56
Pablo Murillo(2011).
Murillo(2011 Tutorial Arduino # 0004 Sensor LDR. Recuperado 9 de
enero de 2014 desde: http://www.arduteka.com/2011/11/tutorial-arduinohttp://www.arduteka.com/2011/11/tutorial
0004-sensor-ldr/
http://www.ardublog.com/
Antony Garca Gonzlez (2013). HC-SR04:
HC
Sensor ultrasnico para Arduino.
Arduino
Recuperado desde http://panamahitek.com/hc-sr04-sensor-ultrasonico
ultrasonico-paraarduino/
57