• No se han encontrado resultados

Práctica 2. Metodología de diseño con Arduino

N/A
N/A
Protected

Academic year: 2021

Share "Práctica 2. Metodología de diseño con Arduino"

Copied!
38
0
0

Texto completo

(1)

Arduino

Manuel Jiménez Buendía José Alfonso Vera Repullo Departamento de Tecnología Electrónica Curso 2013/2014

(2)

Electrónica Industrial

2

Material necesario

ARDUINO UNO REV.3. Precio aprox.: €20.00

Cable USB tipo impresora.

(3)

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.

(4)

Electrónica Industrial

4

(5)

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.

(6)

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

(7)

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/

(8)

Electrónica Industrial

8

(9)

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

(10)

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.

(11)

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)

(12)

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.

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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

(18)

Electrónica Industrial

18

Entradas/salidas de Arduino (I)

Fuente: http://arduino.cc/en/Hacking/PinMapping168

(19)

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

(20)

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.

(21)

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.

(22)

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

(23)

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

(24)

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ú “HerramientasPuerto 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

(25)

Electrónica Industrial

25

El entorno de desarrollo Arduino (II)

Versión 1.0.1

Menú

Área de Programación

(26)

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

(27)

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:

(28)

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)

(29)

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

}

(30)

Electrónica Industrial

30

Ejemplo: encendido/apagado LED (II)

Esquemático.

Resistor 330 ohm (orange,

(31)

Electrónica Industrial

31

Ejemplo: encendido/apagado LED (III)

Esquemático.

Resistor 330 ohm (orange,

(32)

Electrónica Industrial

32

Ejemplo: encendido/apagado LED (IV)

(33)

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)

(34)

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

(35)

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>)

(36)

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);

(37)

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)

(38)

Referencias

Documento similar