Está en la página 1de 42

Programación con

Arduino
Jornadas de Robótica 2016
Curso de Impresión 3D y Hardware libre
Índice:
0. Instalación Software
1. Presentando la tarjeta Arduino UNO /ZUMBT
2. Bitbloq
3. Alternativas:
a. Instalables
b. WEB
4. Presentación del IDE Arduino
5. Inicio a la programación con Arduino:
a. Salidas Digitales
b. Entradas Digitales
6. Robot Seguidor de lineas
0. Instalación Software
• Hace falta instalar:
Google Chrome: Descargar de google
• Es recomendable instalar:
IDE de arduino: Descargar de
http://arduino.cc/en/Main/Software e instalar ( “si”
a todo)
0. Instalación IDE Arduino
Descargar y darle a “si” a todo.
0. Google Chrome
• Instalar el google Chrome
1.-Presentación de Arduino UNO
Pines de Entrada y
Salida Digital
Conector USB al PC

G=GND= Masa=0V
Selector de tensión V= 5V
de la placa Sx=x: Pin x

Conector de
alimentación Pines de Entrada
Analógica
2.-Bitbloq
Se accede con la dirección: http://bitbloq.bq.com/
desde: Google Chrome
Podemos entrar
como invitado

O con una cuenta


2. Bitbloq
• Mejor tener una cuenta (así se guardan
nuestros programas)
El usuario puede ser:
- Gmail
- Facebook
- Registrarnos en
bq
2.-Bitbloq
Hay dos partes o
pantallas
diferentes:
● Pantalla
HARDWARE
● Pantalla
CÓDIGO
2.-Bitbloq
En la pantalla Hardware
conectamos los
dispositivos a la
placa de arduino tal
como los tenemos
conectados en
nuestro robot
Primero elegimos la
placa que tiene
nuestro robot
2.-Bitbloq
Luego podemos
conectar los
componentes pines
correspondientes

En arduino los pines


son los puertos
Digitales o
Analogicos que
podemos controlar,
como por ejemplo
Leds, motores,
pulsadores,
sensores….
2.-Bitbloq-ejemplo led
Vamos a conectar un
led, que es una salida
digital, por ejemplo
al pin 3
En el robot real hacemos
lo mismo.
!!Mucho cuidado,
conectar los cables
siguiendo los
colores!!!
TODAS LAS CONEXIONES
Negro= Masa
CON EL ROBOT Rojo= +5v
APAGADO Y Amarillo= Señal entrada o salida (para un LED será una salida)
DESCONECTADO
2.-Bitbloq-ejemplo led
En la pantalla software es
donde programamos
nuestro robot.
Un programa está
compuesto por 3
partes: Inicialización
de variables,
configuración, bucle
principal
En la parte derecha
tenemos todos los
elementos que
podemos añadir al
programa
2.-Bitbloq-ejemplo led
En software nos vamos a
“componentes”.
Vemos que tenemos la
opción de
encender/apagar el
led (¡si hubieramos
añadido más
componentes a la
placa tendriamos más
opciones!)
Arrastramos sobre bucle
principal
2.-Bitbloq-ejemplo led
Conectamos el cable
USB al robot
Pinchamos sobre el
botón de su subir el
programa
Bitbloq detectará la
placa y programará
tu robot( La primera
vez que lo hagas te
instalará un
programa que se
llama web2board)
¿SE ENCIENDE EL LED???
2. Bitbloq-ejemplo led
• Lo anterior era
programación por
bloques (muy sencillo).
• Eso se traduce a código
(más complicado, pero
más potente)
2.Bitbloq-ejemplo-led-parpadeo
• Ahora vamos a hacer
que parpadee. Para
ello lo encenderemos
y aparemos dejando
un tiempo intermedio
• Utilizaremos un
bloque de espera
(delay)
2.Bitbloq-ejemplo-led-parpadeo
/*** Included libraries ***/
Explicación del código: Código: /*** Global variables and function
● pinMode(nº de pin,modo): configura el definition ***/
pin como entrada o salida. int led_0 = 3;
● digitalWrite(nº de pin, valor digital): /*** Setup ***/
coloca ese pin a: void setup()
○ 5V si es HIGH {
○ 0V si es LOW pinMode(led_0, OUTPUT);
● delay(milisegundos): indica al }
procesador que se espere el tiempo /*** Loop ***/ void loop()
expresado en milisegundos . {
digitalWrite(led_0, HIGH);
delay(1000);
Este código se puede copiar y pegar, digitalWrite(led_0, LOW);
después, en el IDE de Arduino para su delay(1000);
carga en la tarjeta UNO. }
2. Bitbloq-ejemplo led+botón
• Ahora vamos a estudiar
entradas digitales
• Utilizaremos un botón.
Cuando se pulsa la
entrada digital es 1 (o
verdadero) y cuando se
suelta la entrada digital
es 0 (o falso)
• Conectaremos al pin 4 el
botón
2. Bibloq- Ejemplo led+pulsador
• En programación se usan las
“estructuras de control”.
Sirven para crear condiciones,
del ejemplo: SI
botón=pulsado ENTONCES
encender led
• Esta estructura es IF---THEN
(en programación se suele
escribir en inglés)
• Hay otras estructuras como:
– While (mietras se cumpla una
condición hacer algo).
– FOR (repetir algo un número
de veces)
2-Bitbloq-led+botón
• Añadimos la lógica necesaria:

¿Se apaga y se enciende el


led cuando pulsamos el
botón?
2. Bitbloq-led+boton
• Con el programa
anterior se quedaba
encendido… faltaba
programar que cuando
el botón no estuviera
pulsado se apagara
• Esta secuencia de
control es: SI tal
ENTONCES esto, SINO
esto_otro
• (en inglés
IF…THEN…ELSE…)
2.Bitbloq-led+botón
• El código es:
2.Bitbloq-Motores
• Movimiento motores
– Motor izquierdo pin 9
– Motor derecho pin 6
2. Bitbloq-Motores
• Hacemos
que el robot
siga recto
• ¿Cómo será
para girar y
para ir hacia
atrás?
2. Bitbloq-Motores
• Si con el bloque “parar” no paran, hay que
calibrar los motores (ajustar tornillito lateral)
Seguidor Renacuajo
2. Bitbloq- Robot sigue líneas
• Localización por medio de landmarks
– Utilizaremos dos sensores de infrarrojos para seguir líneas
negras colocadas en el suelo, como utilizan los robots
guiados en la industria (aunque con otro tipo de líneas)
2. Robot seguidor de líneas(básico)

Pin 2
IR_Izq: Pin 3

IR_Der: Si sensor derecho negro


entonces mover
Rueda Izquierda (sentido

M_Der: Pin 6
M_Izq: Pin 9

antihorario)

Si sensor izquierdo negro


entonces mover
Rueda Derecha (sentido
horario)
2.Bitbloq- Robot sigue líneas
2.Bitbloq- Robot sigue líneas
2. Robot seguidor de líneas
• Problema: velocidad del servo.
• Solución 1: Utilizar el bloque servo de posición y
ponerle manualmente el valor
• Solución 2: copiar el código al IDE de arduino y
aumentar o disminuir el valor de velocidad del
servo
• Solución 3: LA VUESTRA
3.-Alternativas
Hay muchísimas, pero las más usuales:
● Instalables:
o Processing
o S4A (Scratch for Arduino)
● WEB:
o 123D.circuits.io (Simulador)
o Blockly Demo (origen de Bitbloq)
3.-Alternativas instalables
Processing: Open Source del MIT. De
donde proviene el IDE de Arduino.
Se puede comunicar vía USB con la
tarjeta cargando a esta un
firmware.
Puedes descargártelo en:
http://processing.org/
3.-Alternativas instalables
Processing (II): puedes compilar (crear
la aplicación ejecutable) en:
● JAVA: para ejecutar en cualquier
PC.
● JavaScript: para incrustar en una
WEB.
● APK Android: para correr en un
dispositivo Android.
3.-Alternativas instalables
S4A (Scratch for Arduino): creada por españoles en Cataluña.
Tiene su origen en Scratch (del MIT) y permite conectar una tarjeta Arduino UNO vía
USB cargando en ella un firmware. Está en:
http://s4a.cat/
3.-Alternativas WEB
123D.circuits.io (Simulador): es una WEBApp comercial, no es Open Source,
pero tiene cuenta gratuita con limitaciones.
http://123d.circuits.io/
Si no tienes tarjeta, es una
buena solución para probar
programas.
3.-Alternativas WEB
Blockly Demo: (origen de Bitbloq) verás el parecido en Inglés. A través de
Internet puedes acceder a esta versión Demostración, puesto que te puedes bajar
un paquete que crea un servidor WEB con la aplicación, de manera que puedes
crear nuevos bloques.
http://www.gasolin.idv.tw/public/blockly/demos/blocklyduino/index.html
4.-Presentación del IDE de Arduino
Al pulsar en el icono arranca el IDE
de Arduino que funciona sobre la
máquina virtual de JAVA.
El lenguaje empleado para generar las
programas es “C” simplificado,
coloquialmente “Arduino”.
Está pensado para aprender rápido.

Guardar

Verificar el Nuevo Fichero Abrir


programa
Cargar el
programa en
la tarjeta
4.-Presentación del IDE de Arduino
Abre el monitor del puerto serie,
podemos observar la comunicación
por USB entre el PC y la tarjeta UNO.
5.-Iniciación a la programación con Arduino
Otra manera más avanzada:
1. Composición por bloques con Bitbloq
2. Copia del código al IDE Arduino
3. Modificado del código
4. Carga del programa en la tarjeta UNO
COMPETICIÓN
Características del circuito:

Posible Circuito:

- Las ramas a seguir en las bifurcaciones se definen aleatoriamente cuando el robot


comienza el recorrido.
- Aparece un obstáculo en la última bifurcación (en la rama contraria a la indicada por la
señal)

También podría gustarte