Práctica 2. Metodología de diseño con Arduino - … · Práctica 2. Metodología de diseño con...
Transcript of Práctica 2. Metodología de diseño con Arduino - … · Práctica 2. Metodología de diseño con...
Práctica 2. Metodología de diseño con Arduino
Manuel Jiménez Buendía
José Alfonso Vera Repullo Departamento de Tecnología Electrónica
Curso 2013/2014
Metodología de diseño con Arduino
Electrónica Industrial 2
Material necesario • ARDUINO UNO REV.3. Precio aprox.: €20.00 • Cable USB tipo impresora. • Arduino Sidekick Basic Kit (KIT2243P). Precio aprox: €20.00
Metodología de diseño con Arduino
Electrónica Industrial 3
Microcontroladores
• Un microcontrolador (μC) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria, y que dispone de los tres elementos básicos de una microcomputadora: un procesador, memoria e interfaces.
• Existe una amplia variedad de microcontroladores con muy diferentes prestaciones (velocidad de reloj, consumo de energía, tamaño de los datos, interfaces, etc.)
Los microcontroladores se utilizan para reducir el tamaño, costo económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la unidad central de procesamiento, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. Ventajas de los microcontroladores : • Bajo coste. • Versatilidad. • Desarrollo más rápido. • Facilidad de programación • Tamaño muy reducido.
Metodología de diseño con Arduino
Electrónica Industrial 4
Conceptos generales
Metodología de diseño con Arduino
Electrónica Industrial 5
Los microcontroladores se utilizan en un amplio rango de aplicaciones. Algunas de estas pueden ser: • Electrodomésticos => Panel de control de un horno microondas. • Equipos de sonido => Reproductor musical y/o vídeo (MP3 y/o MP4). • Vehículos (Automóviles, camiones y aviones) => Control de velocidad de crucero, antibloqueo de frenos,
control de encendido, entrada automática , control ambiental y flujo de aire y de combustible, etc... • Juguetes => Sistema de control de un perro robot. • Equipos de oficina => Control de una máquina de Fax.
Los microcontroladores suponen más de un 50% de los Circuitos Integrados existentes hoy en día. Mientras se pueden tener uno o dos microprocesadores de propósito general en casa (por ejemplo en los ordenadores personales), se pueden encontrar una o dos docenas de microcontroladores distribuidos entre los diferentes dispositivos existentes en un hogar cualquiera. Los μC se pueden encontrar en casi cualquier dispositivo electrónico como automóviles, lavadoras, frigoríficos, hornos microondas, teléfonos, mandos inalámbricos, teclados, juguetes, etc.
Aplicaciones
Metodología de diseño con Arduino
Electrónica Industrial 6
Fabricantes
Empresa 8 bits 16 bits 32 bits
Atmel X X
Freescale X X X
Holtek X
Intel X X X
National Semiconductor X X X
Microchip X X X
NXP Semiconductor X X X
Renesa X X X
STMicroelectronics X
Texas Instruments X X
Zilog X
Metodología de diseño con Arduino
Electrónica Industrial 7
Conexiones básicas de un μC
Fuente de alimentación de 5 V DC
Circuito de RESET
Oscilador
Fuente: http://www.mikroe.com/
Metodología de diseño con Arduino
Electrónica Industrial 8
Arduino
Metodología de diseño con Arduino
Electrónica Industrial 9
Conceptos generales
• Arduino es una plataforma de diseño de objetos interactivos (Physical Computing o Physical Interaction Design) que integra una tarjeta microcontroladora open-source, un entorno de desarrollo de software basado en el lenguaje de programación Processing y una amplia comunidad de usuarios.
• En resumen, Arduino se utiliza para desarrollar objetos y entornos interactivos (internet de las
cosas) que tienen que ver con la creación de obras de arte, diseño de mecatrónica (para consumo e industrial) y proyectos DIY (Do It Yourself) para aficionados.
• Los objetos pueden ser autónomos (stand-alone) o pueden comunicarse con cualquier software a través de puerto serie (p.e. Flash, Processing, MaxMSP,….), bien por cable o por Xbee, ZigBit, etc.
• Las tarjetas microcontroladoras pueden ser construidas por el usuario final o pueden comprarse ya fabricadas.
• El entorno de desarrollo (IDE, Integrated Development Environment) puede ser descargado libremente desde arduino.cc
Arduino
Metodología de diseño con Arduino
Electrónica Industrial 10
Conceptos generales
• Es un entorno multiplataforma. Puede correr sobre Windows, Macintosh y Linux. • El IDE de Arduino está basado en Processing, un entorno de desarrollo fácil de utilizar por
artistas y diseñadores.
• Las tarjetas μC Arduino se pueden programar vía un cable USB, no un puerto serie.
• Tanto el hardware como el software es open-source. El usuario puede descargar los diagramas de los circuitos, comprar todos los componentes y fabricárselo el mismo, sin tener que pagar nada a los fabricantes de Arduino.
• El hardware es barato. Una tarjeta Arduino UNO cuesta unos 20 €. Y reemplazar un chip dañado en la tarjeta es fácil y barato (no cuesta más de 5€).
• Hay una comunidad de usuarios muy activa con la que poder colaborar y recibir ayuda.
¿Qué lo diferencia de otros entornos?
Metodología de diseño con Arduino
Electrónica Industrial 11
Placas Arduino (I)
Consultar para una lista completa http://en.wikipedia.org/wiki/List_of_Arduino_compatibles
Arduino Leonardo (2012) Arduino Mega 2560 (XXXX) Arduino Uno (XXXX) Arduino Mega (XXXX)
Arduino Duemilanove (XXXX) Arduino Diecimila(XXXX) Arduino Bluetooth (XXXX) Arduino NG Rev.C (XXXX)
Arduino NG (XXXX) Lily PAD Arduino (XXXX) Arduino Nano (XXXX) Arduino Mini (XXXX)
Placas oficiales de Arduino
Metodología de diseño con Arduino
Electrónica Industrial 12
Placas Arduino (II) Shields: Arquitectura modular inteligente
• Las Shields son placas que a modo de accesorio se pueden conectar a una placa Arduino o compatible.
• Para ello los pines de sus puertos guardan una disposición de compatibilidad.
• Existe una gran variedad de shields con diversa funcionalidad: control de motores, comunicaciones, prototipado rápido, etc.
• Arduino.
• GSM Shield.
• Ethernet Shield.
Una lista completa Shields se puede encontrar en: http://shieldlist.org/
Metodología de diseño con Arduino
Electrónica Industrial 13
Placa Arduino Uno (I)
• ATmega 328P-PU
• 32 KB de memoria de programa FLASH
• 2 KB de RAM
• 16 MHz de velocidad de reloj
• Entradas / Salidas
• 14 pines de entradas/salidas • 6 pines de entradas analógicas (también salidas) • Total: 20 entradas/salidas
• Completamente autónomo (stand-alone) una vez
programado.
Fuente: http://arduino.cc/en/Main/ArduinoBoardUno
Características principales del Arduino ™ Uno Rev. 3
Metodología de diseño con Arduino
Electrónica Industrial 14
Placa Arduino Uno (II)
Fuente: http://arduino.cc/en/Main/ArduinoBoardUno
Alimentación y POWER
Puerto USB Alimentación 5 V
Jack
Alimentación externa: Recomndado: 7-12 V Límites: 6-20 V
3.3V 3,3 voltios
5V 5 voltios
GND 0 voltios
Vin Alimentación externa de entrada sin regular
Metodología de diseño con Arduino
Electrónica Industrial 15
Placa Arduino Uno (III)
Fuente: http://arduino.cc/en/Main/ArduinoBoardUno
Entradas / Salidas
14 pines de E/S digitales. 2,4,7,8,12,13 = puertos digitales convencionales 3,5,6,9,10,11 = puertos PWM
Puertos analógicos.
A4, A5 = son utilizadas para conexiones I2C/TWI A0-A5 = pueden funcionar como puertos digitales (14-19)
AREF Voltaje de referencia para entradas analógicas
Metodología de diseño con Arduino
Electrónica Industrial 16
Placa Arduino Uno (IV)
Fuente: http://arduino.cc/en/Main/ArduinoBoardUno
Comunicaciones
Puerto serie RX/TX. ICSP. (In-Circuit Serial Programming)
Para cargar el gestor de arranque (bootloader) o programas/firmware.
Puerto USB y FTDI chipset
Metodología de diseño con Arduino
Electrónica Industrial 17
Placa Arduino Uno (V)
Fuente: http://arduino.cc/en/Main/ArduinoBoardUno
Otras características Botón de RESET LEDs de test, TX y RX LED de encendido Reloj a 16/20 MHz Microcontrolador
Atmega328
Metodología de diseño con Arduino
Electrónica Industrial 18
Entradas/salidas de Arduino (I)
Fuente: http://arduino.cc/en/Hacking/PinMapping168
Mapeado entre ATmega168/328 y Arduino
Metodología de diseño con Arduino
Electrónica Industrial 19
Entradas/salidas de Arduino (II) Puertos de entrada/salida digitales
• Trabajan con niveles de tensión TTL: • 0 - 0,8 V = 0 • 2- 5 V = 1
• No se pueden conectar directamente a dispositivos que consuman potencia (Imax= 40 mA).
Puertos analógicos
• Convertidor A/D de 10 bits: 0 a 1023. • La tensión de referencia es 5 V.
• 0 V = 0 • 2,5 V = 215 • 5 V = 1023
Metodología de diseño con Arduino
Electrónica Industrial 20
Entradas/salidas de Arduino (III) Puertos PWM
• Es un puerto híbrido, ya que es un puerto digital que mediante la modulación de 0 y 1 consigue expresar una idea de potencia.
Metodología de diseño con Arduino
Electrónica Industrial 21
Entradas/salidas de Arduino (IV) ¿Cómo se trabaja en la práctica?
• Asignamos componentes a los puertos disponibles (digitales, analógicos y PWM).
• Realizamos lecturas y escrituras con el objeto de obtener un dato de un sensor o contralar un determinado actuador.
• Procesamos los datos en el μC.
Veamos algunos ejemplos de componentes que podemos utilizar……
Metodología de diseño con Arduino
Electrónica Industrial 22
Entradas/salidas de Arduino (V) Algunos ejemplos de sensores y actuadores para Arduino
Brújula Sensor de temperatura
Medidor ultrasónico
GPS Pantalla táctil Controlador de motor
Unidad GSM/GPRS
Sensor de presión
Metodología de diseño con Arduino
Electrónica Industrial 23
¿Dónde comprar un Arduino? Tiendas
Se agradece cualquier información para tener actualizada esta lista
Españolas Extranjeras
www.cooking-hacks.com
www.bricogeek.com
www.ardumania.es
www.electan.com
Rayte
www.parallax.com
www.sparkfun.com
www.makershed.com
www.liquidware.com
www.ladyada.net
www.adafruit.com
Metodología de diseño con Arduino
Electrónica Industrial 24
El entorno de desarrollo Arduino (I) ¿Cómo podemos empezar?
• Descargar la última versión del IDE (1.0.5). • http://arduino.cc/en/Main/Software
• Sigue las instrucciones de http://arduino.cc/es/Guide/HomePage para la instalación en
Windows (recomendable fichero instalable), Mac o Linux (descomprimir, instalar el driver, abrir el IDE y seleccionar el puerto correcto (Menú “HerramientasPuerto Serial”)).
• Conecta la placa Arduino a tu ordenador usando el cable USB. el LED verde indicador de la alimentación (nombrado como ON en la placa) debería quedar encendido a partir de ese momento.
• Haz doble clic sobre la aplicación Arduino o el acceso directo. • Abre el programa de ejemplo para hacer parpadear un LED ("LED blink"): Abrir > Basics >
Blink (pin 13 del microcontrolador). • Compilamos el programa de ejemplo: Verificar • Cargamos el código compilado en Arduino: Cargar
Si todo funciona correctamente el LED de TEST debería parpadear Prueba a cambiar los tiempos de retardo y comprueba que la frecuencia de parpadeo varía
Metodología de diseño con Arduino
Electrónica Industrial 25
El entorno de desarrollo Arduino (II) Versión 1.0.1
Menú
Área de Programación
Área de DEBUG
Metodología de diseño con Arduino
Electrónica Industrial 26
El entorno de desarrollo Arduino (III) Versión 1.0.1
• Los programas desarrollados con Arduino se conocen como sketches.
• Los sketches se escriben con un editor de texto y son guardados con la extensión .ino
Verificar Chequea errores
Cargar Compila y carga
Nuevo Crea nuevos sketches
Abrir Abre sketches existentes
Guardar Graba Sketches
Monitor Serial Abre el monitor serie
Metodología de diseño con Arduino
Electrónica Industrial 27
El lenguaje de programación (I) Conceptos generales.
• Se basa en C estándar.
• Para el control de los puertos del microcontrolador se utilizan las funciones predefinidas:
• pinMode(<puerto>,<modo>) // configura un puerto digital para leer o escribir datos
• digitalWrite(<puerto>,0 o 1) // envía un 0 o 1 al puerto digital
• digitalRead(<puerto>) // devuelve un 0 o 1 del puerto
• analogRead(<puerto>) // devuelve un valor (0-1023) del puerto analógico
• analogWrite(<puerto>,<valor>) //escribe en un puerto PWM un valor de 0 a 255
Referencia funciones – sintaxis: http://arduino.cc/en/Reference/HomePage
Metodología de diseño con Arduino
Electrónica Industrial 28
Se tienen que programar obligatoriamente dos funciones: void setup() // se ejecuta una sola vez, cuando se inicia el sketch { } void loop() // se ejecuta de modo continuo indefinidamente { }
El lenguaje de programación (II) Estructura de un programa.
Metodología de diseño con Arduino
Electrónica Industrial 29
Ejemplo: encendido/apagado LED (I) Código fuente.
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
LED L (en placa conectado a pin 13)
Metodología de diseño con Arduino
Electrónica Industrial 30
Ejemplo: encendido/apagado LED (II) Esquemático.
Resistor 330 ohm (orange, orange, brown)
Metodología de diseño con Arduino
Electrónica Industrial 31
Ejemplo: encendido/apagado LED (III) Esquemático.
Resistor 330 ohm (orange, orange, brown)
Metodología de diseño con Arduino
Electrónica Industrial 32
Ejemplo: encendido/apagado LED (IV) Montaje en protoboard.
Metodología de diseño con Arduino
Electrónica Industrial 33
Ejemplo: encendido/apagado LED (V) Esquemático.
Resistor 330 ohm (orange, orange, brown)
Medir Polímetro: • I en LED • V en salida (Pin 13)
Metodología de diseño con Arduino
Electrónica Industrial 34
Fritzing • Esquemático, PCB,
protoboard • Multiplataforma
http://fritzing.org/download/ http://sourceforge.net/projects/fritzing.mirror/?source=directory
http://www.virtualbreadboard.com/
Virtual breadboard • Sólo protoboard • Windows (Linux/OSX sólo VBB
express with Mono runtime)
Metodología de diseño con Arduino
Electrónica Industrial 35
Ej.: on/off (fade) progresivo de un LED (I) Esquemático y código fuente.
Pin 9
Habrá que utilizar: • una salida PWM (3,5,6,9,20 o 11) • analogWrite(<pin>,<valor>)
Metodología de diseño con Arduino
Electrónica Industrial 36
Ej.: on/off (fade) progresivo de un LED (II) Esquemático y código fuente.
Pin 9
Habrá que utilizar: • una salida PWM (3,5,6,9,20 o 11) • analogWrite(<pin>,<valor>)
/* Fade This example shows how to fade an LED on pin 9 using the analogWrite() function. This example code is in the public domain. */ int led = 9; // the pin that the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(30); }
Metodología de diseño con Arduino
Electrónica Industrial 37
Ej.: on/off (fade) progresivo de un LED (III) Esquemático y código fuente.
Pin 9
Habrá que utilizar: • una salida PWM (3,5,6,9,20 o 11) • analogWrite(<pin>,<valor>)
Modificar código para menor velocidad Medir Polímetro: • V en salida (Pin 9) Osciloscopio: • V en salida (Pin 9)