programación con arduino · programación con arduino jornadas de robótica 2016 curso de...
TRANSCRIPT
Índice:0. Instalación Software1. Presentando la tarjeta Arduino UNO /ZUMBT2. Bitbloq3. Alternativas:
a. Instalablesb. WEB
4. Presentación del IDE Arduino5. Inicio a la programación con Arduino:
a. Salidas Digitalesb. 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)
1.-Presentación de Arduino UNO
Pines de Entrada y
Salida Digital
Pines de Entrada
Analógica
Conector USB al PC
Conector de
alimentación
Selector de tensión
de la placa
G=GND= Masa=0V
V= 5V
Sx=x: Pin x
2.-BitbloqSe 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
- Registrarnos en
bq
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 CON EL ROBOT APAGADO Y DESCONECTADO
Negro= Masa
Rojo= +5v
Amarillo= Señal entrada o salida (para un LED será una salida)
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
Explicación del código:
● pinMode(nº de pin,modo): configura el
pin como entrada o salida.
● digitalWrite(nº de pin, valor digital):
coloca ese pin a:
○ 5V si es HIGH
○ 0V si es LOW
● delay(milisegundos): indica al
procesador que se espere el tiempo
expresado en milisegundos .
Este código se puede copiar y pegar,
después, en el IDE de Arduino para su
carga en la tarjeta UNO.
Código:
/*** Included libraries ***/
/*** Global variables and function
definition ***/
int led_0 = 3;
/*** Setup ***/
void setup()
{
pinMode(led_0, OUTPUT);
}
/*** Loop ***/ void loop()
{
digitalWrite(led_0, HIGH);
delay(1000);
digitalWrite(led_0, LOW);
delay(1000);
}
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-Motores
• Si con el bloque “parar” no paran, hay que calibrar los motores (ajustar tornillito lateral)
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)M
_Iz
q:
Pin
9
M_
Der:
Pin
6
IR_
Izq:
P
in 3
IR_
De
r:
Pin
2Si sensor derecho negro
entonces mover
Rueda Izquierda (sentido
antihorario)
Si sensor izquierdo negro
entonces mover
Rueda Derecha (sentido
horario)
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 Processingo 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 probarprogramas.
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.
Verificar el
programaCargar el
programa en
la tarjeta
Abrir
Guardar
Nuevo Fichero
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 Bitbloq2. Copia del código al IDE Arduino3. Modificado del código4. Carga del programa en la tarjeta UNO