Download Electrónica Industrial

Document related concepts
no text concepts found
Transcript
Arduino Sistemas mecánico ACTUADORES •  Solenoides, relés, piezoeléctricos •  Motores de con@nua •  Motores paso a paso •  Servomotores •  Disposi@vos hidráulicos y neumá@cos. VISUALIZADORES •  LEDs •  Displays •  LCD •  CRT •  TFT Electrónica Industrial SENSORES •  Interruptores •  Pulsadores •  Potenciómetros •  LDRs •  Fotocélulas •  Encoders •  Galgas extensom •  Termopares •  Acelerómetros •  MEMs ACONDICIONADORES DE SEÑALES DE SALIDA E INTERFACES •  D/A •  Transistores •  Amplificadores •  PWM ACONDICIONADORES DE SEÑALES DE ENTRADA E INTERFACES •  C. discretos •  Filtros •  Amplificadores •  A/D SISTEMAS DE CONTROL DIGITAL •  Combinacionales •  Memorias •  Secuenciales •  SoC •  μP •  Comunicaciones •  μC •  Soaware 78
Arduino Conceptos generales Arduino •  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. Electrónica Industrial 79
Arduino Conceptos generales Phisical Compu@ng ( Solo para leer por los alumnos). •  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. Electrónica Industrial 80
Arduino Conceptos generales ¿Qué lo diferencia de otros entornos? •  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. Electrónica Industrial 81
Placas Arduino (I) Arduino Placas oficiales de Arduino 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) Electrónica Industrial Consultar para una lista completa hyp://en.wikipedia.org/wiki/List_of_Arduino_compa@bles 82
Placas Arduino (II) Arduino 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. •  Ethernet Shield. •  GSM Shield. •  Arduino. Electrónica Industrial Una lista completa Shields se puede encontrar en: hyp://shieldlist.org/ 83
Placa Arduino Uno (I) Arduino Caracterís@cas principales del Arduino ™ Uno Rev. 3 •  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. Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno 84
Arduino Placa Arduino Uno (II) 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 Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno 85
Placa Arduino Uno (III) Arduino Entradas / Salidas AREF Voltaje de referencia para entradas analógicas •  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) Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno 86
Arduino Placa Arduino Uno (IV) Comunicaciones •  Puerto serie RX/TX. •  ICSP. Para cargar el gestor de arranque (bootloader) o programas/firmware. •  Puerto USB y FTDI chipset Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno 87
Arduino Placa Arduino Uno (V) Otras caracterís@cas •  Botón de RESET. •  LEDs de test, TX y RX. •  LED de encendido •  Reloj a 16/20 Mhz. •  Microcontrolador Electrónica Industrial Fuente: hyp://arduino.cc/en/Main/ArduinoBoardUno Atmega328 88
Arduino Entradas/salidas de Arduino (I) Mapeado entre ATmega168/328 y Arduino Electrónica Industrial Fuente: hyp://arduino.cc/en/Hacking/PinMapping168 89
Arduino 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 disposi@vos que consuman potencia. Electrónica Industrial 90
Arduino Entradas/salidas de Arduino (III) 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. Electrónica Industrial 91
Arduino Entradas/salidas de Arduino (IV) 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. Electrónica Industrial 92
Arduino Entradas/salidas de Arduino (V) ¿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…… Electrónica Industrial 93
Entradas/salidas de Arduino (VI) Arduino Algunos ejemplos de sensores y actuadores para Arduino Sensor de temperatura Brújula Medidor ultrasónico Sensor de presión Unidad GSM/GPRS GPS Electrónica Industrial Pantalla tác@l Controlador de motor 94
Entradas/salidas de Arduino (VII) Arduino Tiendas Españolas "
www.cooking-­‐hacks.com •  www.bricogeek.com • 
www.ardumania.es Extranjeras "
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 Electrónica Industrial 95
El entorno de desarrollo Arduino (I) Arduino ¿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 Electrónica Industrial 96
Arduino Versión 1.0.1 El entorno de desarrollo Arduino (II) Menú Área de Programación Electrónica Industrial Área de DEBUG 97
El entorno de desarrollo Arduino (III) Arduino Versión 1.0.1 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 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 Electrónica Industrial 98
El lenguaje de programación (I) Arduino 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>)
Electrónica Industrial //escribe en un puerto PWM un valor de 0 a 255 99
Arduino El lenguaje de programación (II) 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 { } Electrónica Industrial 100
Arduino El lenguaje de programación (III) Primer ejemplo. LED parpadeante. Esquemá@co Electrónica Industrial 101
Arduino El lenguaje de programación (IV) 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 } Electrónica Industrial 102
Arduino El lenguaje de programación (V) Primer ejemplo. LED parpadeante. Montaje en protoboard. Electrónica Industrial 103
El lenguaje de programación (VI) Arduino Segundo ejemplo. Fade. Esquemá@co Tarjeta Arduino Pin 9 Gnd Habrá que u@lizar: •  una salida PWM (3,5,6,9,20 o 11) •  analogWrite(<pin>,<valor>) Electrónica Industrial /* 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); } 104
Dr. Andrés Iborra Universidad Politécnica de Cartagena Campus Muralla del Mar, s/n 30202 Cartagena Tel. Fax. E-­‐mail Twiyer Lista de correo
Www +34 968 32 56 54 +34 968 32 53 45 [email protected] @CincubatorHUB @aiborra cloud-­‐[email protected] www.cincubator.com