Sistemas%mecánico% · 80 Arduino% ElectrónicaIndustrial% • El “ Phisical% Compu@ng”,% en%...
Transcript of Sistemas%mecánico% · 80 Arduino% ElectrónicaIndustrial% • El “ Phisical% Compu@ng”,% en%...
78
Arduino
Electrónica Industrial
• Interruptores • Pulsadores • Potenciómetros • LDRs • Fotocélulas • Encoders
• Galgas extensom • Termopares • Acelerómetros • MEMs
SENSORES • Solenoides, relés, piezoeléctricos • Motores de con@nua • Motores paso a paso • Servomotores • Disposi@vos hidráulicos y neumá@cos.
ACTUADORES
• C. discretos • Amplificadores
• Filtros • A/D
ACONDICIONADORES DE SEÑALES DE
ENTRADA E INTERFACES
• Combinacionales • Secuenciales • μP • μC
• Memorias • SoC • Comunicaciones • Soaware
SISTEMAS DE CONTROL DIGITAL
• D/A • Amplificadores • PWM
• Transistores
ACONDICIONADORES DE SEÑALES DE SALIDA
E INTERFACES • LEDs • Displays • LCD
• CRT • TFT
VISUALIZADORES
Sistemas mecánico
79
Arduino
Electrónica Industrial
Conceptos generales
• Arduino es una plataforma de diseño de objetos interac@vos (Physycal Compu@ng o Phisical Interac@on Design) que integra una tarjeta microcontroladora open-‐source, un entorno de desarrollo de soaware basado en el lenguaje de programación Processing y una amplia comunidad de usuarios.
• En resumen, Arduino se u@liza para desarrollar objetos y entornos interac@vos (internet de las
cosas) que @enen 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 soaware 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 www.arduino.com.
Arduino
80
Arduino
Electrónica Industrial
• El “Phisical Compu@ng”, en el sen@do más amplio, persigue construir objetos interac@vos mediante el uso de soaware y hardware. Estos objetos se caracterizan por poder percibir señales de un mundo analógico y poder responder a las mismas.
• Aunque esta definición incluiría mul@tud de campos tecnológicos, tales como los sistemas de control de tráfico de automóviles inteligentes, automa@zación de procesos industriales, etc., el “Phisical Compu@ng” no hace referencia a estos campos tecnológicos. Este término @ene más 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.
• En el pasado, u@lizar electrónica significaba tener que tratar con ingenieros todo el @empo, y a la vez construir un circuito en un pequeño componente. Esto impedía que la gente crea@va no podía u@lizar estas tecnologías fácilmente. La mayor parte de las herramientas estaban pensadas para ingenieros y requerían conocimientos muy profundos.
• En la actualidad los microcontroladores son mucho más baratos y fáciles de usar. Con Arduino, un diseñador o ar@sta puede conocer las bases de la electrónica y los sensores muy rápidamente y puede comenzar a construir proto@pos con muy poca inversión.
Phisical Compu@ng ( Solo para leer por los alumnos).
Conceptos generales
81
Arduino
Electrónica Industrial
• Es un entorno mul@plataforma. Puede correr sobre Windows, Macintosh y Linux. • El IDE de Arduino está basado en Processing, un entorno de desarrollo fácil de u@lizar por
ar@stas y diseñadores.
• Las tarjetas μC Arduino se pueden programar vía un cable USB, no un puerto serie.
• Tanto el hardware como el soaware 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 ac@va con la que poder colaborar y recibir ayuda.
¿Qué lo diferencia de otros entornos?
Conceptos generales
82
Arduino
Electrónica Industrial
Placas Arduino (I)
Consultar para una lista completa hyp://en.wikipedia.org/wiki/List_of_Arduino_compa@bles
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
83
Arduino
Electrónica Industrial
Shields: Arquitectura modular inteligente
• Las Shields son placas que a modo de accesorio se pueden conectar a una placa Arduino o compa@ble.
• Para ello los pines de sus puertos guardan una disposición de compa@bilidad.
• Existe una gran variedad de shields con diversa funcionalidad: control de motores, comunicaciones, proto@pado rápido, etc.
• Arduino.
• GSM Shield.
• Ethernet Shield.
Una lista completa Shields se puede encontrar en: hyp://shieldlist.org/
Placas Arduino (II)
84
Arduino
Electrónica Industrial
Placa Arduino Uno (I)
• ATmega 328P-‐PU
• 32 Kbyte de memoria de programa FLASH
• 2 Kbyte 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: hyp://arduino.cc/en/Main/ArduinoBoardUno
Caracterís@cas principales del Arduino ™ Uno Rev. 3
85
Arduino
Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno
Alimentación y POWER
• Puerto USB
Alimentación 5 V
• Jack Alimentación externa 5-‐15 V
3.3V 3,3 vol@os
5V 5 vol@os
GND 0 vol@os
Vin Alimentación externa de entrada sin regular
Placa Arduino Uno (II)
86
Arduino
Electrónica Industrial Fuente: hyp://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 u@lizadas para conexiones I2C/TWI A0-‐A5 = pueden funcionar como puertos digitales (14-‐19)
AREF Voltaje de referencia para entradas analógicas
Placa Arduino Uno (III)
87
Arduino
Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno
Comunicaciones
• Puerto serie RX/TX.
• ICSP. Para cargar el gestor de arranque (bootloader) o programas/firmware.
• Puerto USB y FTDI chipset
Placa Arduino Uno (IV)
88
Arduino
Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno
Otras caracterís@cas • Botón de RESET.
• LEDs de test, TX y RX.
• LED de encendido • Reloj a 16/20 Mhz.
• Microcontrolador Atmega328
Placa Arduino Uno (V)
89
Arduino
Electrónica Industrial Fuente: hyp://arduino.cc/en/Hacking/PinMapping168
Mapeado entre ATmega168/328 y Arduino
Entradas/salidas de Arduino (I)
90
Arduino
Electrónica Industrial
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 disposi@vos que consuman potencia.
Entradas/salidas de Arduino (II)
91
Arduino
Electrónica Industrial
Puertos analógicos
• Conver@dor 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
• No se pueden conectar directamente a disposi@vos que consuman potencia.
Entradas/salidas de Arduino (III)
92
Arduino
Electrónica Industrial
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.
Entradas/salidas de Arduino (IV)
93
Arduino
Electrónica Industrial
¿Cómo se trabaja en la prác@ca?
• 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 u@lizar……
Entradas/salidas de Arduino (V)
94
Arduino
Electrónica Industrial
Algunos ejemplos de sensores y actuadores para Arduino
Brújula Sensor de temperatura
Medidor ultrasónico
GPS Pantalla tác@l Controlador de motor
Unidad GSM/GPRS
Sensor de presión
Entradas/salidas de Arduino (VI)
95
Arduino
Electrónica Industrial
Tiendas
Españolas Extranjeras
" www.cooking-‐hacks.com
• www.bricogeek.com
• www.ardumania.es
" www.parallax.com
" www.sparkfun.com
• www.makershed.com
• www.liquidware.com
• www.ladyada.net
• www.adafruit.com
Se agradece cualquier información para tener actualizada esta lista
Entradas/salidas de Arduino (VII)
96
Arduino
Electrónica Industrial
El entorno de desarrollo Arduino (I)
¿Cómo podemos empezar?
• Descargar la úl@ma versión del IDE (1.0.1). • hyp://arduino.cc/en/Main/Soaware
• Sigue las instrucciones de hyp://arduino.cc/es/Guide/HomePage para la instalación en
Windows, Mac o Linux. • Conecta la placa Arduino a tu ordenador usando el cable USB. el LED verde indicador de la
alimentación (nombrado como PWR en la placa) debería quedar encendido a par@r de ese momento.
• Haz doble click sobre la aplicación Arduino. • Abre el programa de ejemplo para hacer parpadear un LED ("LED blink"): Abrir > Basics >
Blink • 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 @empos de retardo y comprueba que la frecuencia de parpadeo varía
97
Arduino
Electrónica Industrial
Versión 1.0.1 Menú
Área de Programación
Área de DEBUG
El entorno de desarrollo Arduino (II)
98
Arduino
Electrónica Industrial
Versión 1.0.1
• El soaware desarrollado con Arduino se conoce 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
El entorno de desarrollo Arduino (III)
99
Arduino
Electrónica Industrial
Conceptos generales
• Se basa en C estándar.
• Para el control de los puertos del microcontrolador se u@lizan 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
El lenguaje de programación (I)
100
Arduino
Electrónica Industrial
Estructura de un programa
Se @enen que programar obligatoriamente dos funciones: void setup() // se ejecuta una sola vez, cuando se inicia el sketch { } void loop() // se ejecuta de modo con@nuo indefinidamente { }
El lenguaje de programación (II)
101
Arduino
Electrónica Industrial
Primer ejemplo. LED parpadeante. Esquemá@co
El lenguaje de programación (III)
102
Arduino
Electrónica Industrial
Primer ejemplo. LED parpadeante. Programa
/* 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 rou@ne runs once when you press reset: void setup() { // ini@alize the digital pin as an output. pinMode(led, OUTPUT); } // the loop rou@ne runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1500); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1500); // wait for a second }
El lenguaje de programación (IV)
103
Arduino
Electrónica Industrial
Primer ejemplo. LED parpadeante. Montaje en protoboard.
El lenguaje de programación (V)
104
Arduino
Electrónica Industrial
Segundo ejemplo. Fade. Esquemá@co
Habrá que u@lizar: • 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() func@on. This example code is in the public domain. */ int led = 9; // the pin that the LED is ayached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup rou@ne runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(led, OUTPUT); } // the loop rou@ne runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(led, brightness); // change the brightness for next @me through the loop: brightness = brightness + fadeAmount; // reverse the direc@on 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); }
El lenguaje de programación (VI)
Tarjeta Arduino
Pin 9
Gnd
Dr. Andrés Iborra Universidad Politécnica de Cartagena Campus Muralla del Mar, s/n 30202 Cartagena
Tel. +34 968 32 56 54 Fax. +34 968 32 53 45 E-‐mail [email protected] Twiyer @CincubatorHUB @aiborra Lista de correo cloud-‐[email protected] Www www.cincubator.com