Programación con Arduino Jornadas de Robótica 2015 Curso de Impresión 3D y Hardware libre Índice: 0. 1. 2. 3. Instalación Software Presentando la tarjeta Arduino UNO /ZUMBT Bitbloq Alternativas: a. b. Instalables WEB 4. Presentación del IDE Arduino 5. Inicio a la programación con Arduino: a. b. 6. Salidas Digitales Entradas Digitales Robot Seguidor de lineas 0. Instalación Software • Hace falta instalar: – IDE de arduino: Descargar de http://arduino.cc/en/Main/Software e instalar ( “si” a todo) – Google Chrome: Descargar de google 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 Selector de tensión de la placa Conector de alimentación G=GND= Masa=0V V= 5V Sx=x: Pin x Pines de Entrada Analógica 2.-Bitbloq Se accede con la dirección: http://bitbloq.bq.com/ desde: Google Chrome 2. Bitbloq • Antes de nada, instalamos el serial uploader 2.-Bitbloq Se puede acceder • Sin usuario (Todo lo que hagamos habrá que guardarlo en local) • Con usuario (Todo lo que hagamos se guarda en la nube) El usuario puede ser: - Gmail - Facebook - Registrarnos en bq 2.-Bitbloq La Web App puede que te pida instalar una extensión para seguir “CodeBender.cc”. La descargas y reinicias el navegador El resultado es el que ves. 2.-Bitbloq Hay dos partes o pantallas diferentes: ● Pantalla Bloques ● Pantalla Código En la pantalla de los Bloques se elabora el programa con elementos preconfigurados. 2.-Bitbloq Las opciones que hay son: ● Octopus ● zum ● Servo ● LCD block ● Controlar ● Lógica ● Matemáticas ● Texto ● comunicaciones ● Pin functions ● Varialbes ● Funciones 2.-Bitbloq Las opciones que hay son: ● bq ● Servo ● Controlar ● Lógica ● Matemáticas ● Texto ● Avanzado ● Variables ● Funciones 2.-Bitbloq Las opciones que hay son: ● bq ● Servo ● Controlar ● Lógica ● Matemáticas ● Texto ● Avanzado ● Variables ● Funciones 2.-Bitbloq Las opciones que hay son: ● bq ● Servo ● Controlar ● Lógica ● Matemáticas ● Texto ● Avanzado ● Variables ● Funciones 2.-Bitbloq Hay dos partes o pantallas diferentes: ● Pantalla Bloques ● Pantalla Código En la pantalla Código se traduce lo elaborado en la pantalla de Bloques en el lenguaje de “Arduino”, pudiéndose emplear en el IDE. 3.-Alternativas Hay muchísimas, pero las más usuales: ● Instalables: o o Processing S4A (Scratch for Arduino) ● WEB: o o 123D.circuits.io (Simulador) 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 programa Nuevo Fichero Cargar el programa en la tarjeta Abrir 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 Para aprender a programar, emplearemos lo que se denomina “Code-On line” que consiste en que: ● el instructor va ir haciendo los programas a la vez que los explica. ● el alumno va copiando los programas y atendiendo a las explicaciones. Más tarde, el profesor os planteará una serie de mejoras o retos para que lo modifiquéis. 5.-Iniciación a la programación con Arduino Para aprender a programar para un Ordenador en cualquier lenguaje, la primera aplicación suele ser “Hola mundo”. En Arduino, el primer programa es el “Blink”, que consiste en hacer parpadear un LED (Diodo Emisor de Luz) que está cerca de la patilla D13 y que se activa con esta. Vamos pues… a trabajar con Salidas Digitales 5.-Iniciación a la programación con Arduino En bloques: En código: 5.Iniciación a la programación con Arduino En bloques: Analicemos lo que hemos puesto: 1. Conectamos el módulo del LED en el Pin D13 de la placa. 2. Le indico a Arduino que lo encienda 3. Espero 1000ms, es decir, 1 s 4. Le indico a Arduino que lo enchufado en el pin13 se apague 5. Espero 1000ms, es decir, 1 s 6. Vuelve al punto 1 porque llego al final del programa 5.-Iniciación a la programación con Arduino En bloques: Su traducción en código: 5.-Iniciación a la programación con Arduino Explicación: Todo programa Arduino tiene, por lo menos dos funciones: ● setup(): lo que hay entre las llaves “{“ “}” sólo se ejecuta una vez al encenderse la placa. Se emplea, generalmente, para configurar las conexiones. ● loop(): lo que hay entre las llaves “{“ “}” vuelve a ejecutarse cada vez que llega a su fin. Código: 5.-Iniciación a la programación con Arduino 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: 5.-Iniciación a la programación con Arduino - Para cargar en el arduino: - 1º Conecta el cable usb al arduino - 2º Configura el bitbloq serial - 3º Dale al icono programar 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 5.-Iniciación a la programación con Arduino Entradas Digitales: Como entrada digital, vamos a emplear: ● los sensores de infrarrojos de la cabeza del robot “renacuajo” y ● el botón pulsador. Estos elementos nos ofrecen a la tarjeta o 0V (LOW) o 5V (HIGH) 5.-Iniciación a la programación con Arduino Entradas Digitales: Como entrada digital, vamos a emplear: ● los sensores de infrarrojos o o LOW -> detecta negro HIGH -> detecta blanco ● el botón pulsador. o o LOW ->pulsado HIGH ->sin pulsar 5.-Iniciación a la programación con Arduino Ejercicio: 1. Diseña un programa con un pulsador (pin 10) que encienda el LED del (pin 13) cuando lo pulses. ¿Qué pasa?¿Te falta conocer algo? 5.-Iniciación a la programación con Arduino Ejercicio: Si has hecho esto: Siempre se enciende el LED porque no has puesto que el resto del tiempo debe estar apagado 5.-Iniciación a la programación con Arduino Para añadir un caso “else” (es decir si no se cumple el pulsador entonces hacer otra cosa) Se enciende el led cuando se pulsa????? Que está pasando???: Pulsador en lógica negativa 5.-Iniciación a la programación en Arduino • Movimiento motores – Motor izquierdo pin 9 – Motor derecho pin 6 ¿Que sentido deben seguir los motores para que el robot vaya recto, hacia atrás, izquierda o derecha? Hacer un programita que pulsando el pulsador haga que el robot vaya recto. 5. Iniciación a la programación con Arduino Vamos a calibrar el servo, o que es lo mismo, si seleccionamos detener en ambos servos el robot no deberia moverse. Si se mueve hay que desmontar el servo y ajustar el tornillo de calibracion (explicado en las transparencias del primer día) Bloque Código #include <Servo.h> Servo servo_6; Servo servo_9; void setup(){ servo_6.attach(6);} servo_9.attach(9);} void loop(){ servo_6.write(90); servo_9.write(90); } 6. Robot seguidor de 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) Seguidor Renacuajo 6. Robot seguidor de líneas(básico) • El robot seguidor de líneas. Procedimiento: – – – – Si ambos sensores leen blanco: Sigo en línea recta Si el sensor derecho detecta negro: giro un poco a la derecha Si el sensor izquierdo detecta negro: Sigo un poco a la izquierda Si ambos detectan negro… puede ser que sea una bifurcación! Ya veremos – Si después de negro ambos detectan blanco…estoy perdido! Pin 2 IR_Der: M_Der: Pin 6 M_Izq: Pin 9 IR_Izq: Pin 3 6. Robot seguidor de líneas(básico) Si sensor derecho negro entonces mover Rueda Izquierda (sentido antihorario) Si sensor izquiedo negro entonces mover Rueda Derecha (sentido horario) 6. 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 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)
© Copyright 2024 ExpyDoc