44
Curso de introducción a Arduino Pablo Carbajales @Kabuto

Curso de introducción a arduino

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Curso de introducción a arduino

Curso de introducción a Arduino

Pablo Carbajales@Kabuto

Page 2: Curso de introducción a arduino

¿Elegir la placa azul?

Page 3: Curso de introducción a arduino

¿Qué es Arduino?Arduino es una plataforma de electrónica abierta. Sirve para la creación de prototipos fáciles de usar, basados en software y hardware flexible. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Page 4: Curso de introducción a arduino

El cerebro de ArduinoArduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing).

Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectarlo a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software.

En la imagen vemos el microcontrolador ATMEGA328P-PU fabricado por ATMEL.

Page 5: Curso de introducción a arduino

Arduino UNOArduino UNO es la versión más famosa de la placa y la podemos encontrar en 2 versiones la Arduino UNO "normal" y la versión UNO SMD. La primera utiliza el microcontrolador ATMEGA328 en formato DIP (Dual in-line package) y la segunda en formato SMD (surface-mount device).

La ventaja que ofrece el formato DIP es que podemos extraerlo o reemplazarlo por uno nuevo siempre que queramos, mientras que en la versión SMD va soldado en la superficie de la placa.

Si se pretende usar la placa como medio de programación del microcontrolador y luego integrarlo en otros montajes, es mejor la versión DIP, en cambio si se va a utilizar la placa en el proyecto final, ambas son válidas por igual.

ArduinoUNO R3(DIP)

Arduino UNO(SMD)

Page 6: Curso de introducción a arduino

Arduino LEONARDOMicrocontrolador: ATMEGA32u4

Digital I/O pins: 20

PWM: 7

Analog Inputs: 12

Puerto: Micro USB

Comunicación USB integrada en el ATMEGA32u4

Existe una versión sin las cabeceras y el puerto de alimentación Barrel Jack 2.1mm.

Page 7: Curso de introducción a arduino

Placas Arduino: “Meet the family”Arduino Duemilanove (2009)

Arduino NG Rev. C

Arduino Diecimila (10.000)

Arduino NG (Nueva Generación)

Page 8: Curso de introducción a arduino

Placas Arduino: Los abuelos...

Arduino Extreme v2 Arduino Extreme Arduino USB v2.0

Arduino USB Arduino Serial v2.0 Arduino Serial

Page 9: Curso de introducción a arduino

Placas Arduino: Los hermanos mayores...Arduino MEGA 2560

Uno de los hermanos mayores del UNO, conocido por muchos por ser el “cerebro” de las impresoras 3D.

Gracias a sus 54 pines de Entrada o Salida, permite conectar un gran número de componentes a la placa.

El microcontrolador que usa y por el que recibe su nombre, es el ATMEGA 2560 fabricado también por ATMEL.

Page 10: Curso de introducción a arduino

Placas Arduino: Los hermanos mayores...Arduino DUE

Parecido al MEGA 2560, este Arduino integra un microcontrolador Atmel SAM3X8E ARM Cortex-M3.

Es el primero Arduino con un controlador ARM DE 32 bit.

Una de sus características importantes es que corre a 3.3V, a diferencia de las demás placas Arduino.

Page 11: Curso de introducción a arduino

Placas Arduino: Los hermanos menores...Arduino NANO

Microcontrolador: ATMEGA328

Digital I/O pins: 14

PWM: 7

Analog Inputs: 8

Puerto: Mini B USB

Diseñado y producido por Gravitech

Page 12: Curso de introducción a arduino

Placas Arduino: Los hermanos menores...Arduino MICRO

Microcontrolador: ATMEGA32u4

Digital I/O pins: 20

PWM: 7

Analog Inputs: 12

Puerto: Micro USB

Comunicación USB integrada en el ATMEGA32u4

Page 13: Curso de introducción a arduino

Placas Arduino: Los hermanos menores...Arduino MINI

Microcontrolador: ATMEGA328

Digital I/O pins: 14

PWM: 6

Analog Inputs: 12

Puerto: NINGUNOComunicación: necesita un adaptador externo

Voltaje MÁXIMO: 9V.

Page 14: Curso de introducción a arduino

Placas Arduino: Los primos...Arduino Pro

Microcontrolador: ATMEGA368Digital I/O pins: 14

PWM: 6

Analog Inputs: 6

Puerto: conector JST para baterias LiPo

Puerto alimentación: Barrel Jack 2.1 (opcional)

Modelos: 3.3V y 5V.Comunicación: cable FTDI o SparkFun breakout.

Pineado compatible con Shields para UNO.

Diseñado y producido por SparkFun Electronics.

Page 15: Curso de introducción a arduino

Arduino Pro mini

Microcontrolador: ATMEGA168Digital I/O pins: 14

PWM: 6

Analog Inputs: 8

Puerto: NO

Modelos: 3.3V y 5V.Comunicación: cable FTDI o SparkFun breakout.

Diseñado y producido por SparkFun Electronics.

Placas Arduino: Los primos...

Page 16: Curso de introducción a arduino

Placas Arduino: Los primos...Arduino Fio

Microcontrolador: ATMEGA328PDigital I/O pins: 14

PWM: 6

Analog Inputs: 8

Puerto: conector JST para baterias LiPo

Puerto: USB

Voltaje: 3.3VComunicación: cable FTDI o SparkFun breakout.

Pineado compatible con Xbee Shields (abajo)

Diseñado y producido por SparkFun Electronics y Shigeru Kobayashi

.

Page 17: Curso de introducción a arduino

Placas Arduino: Los “conect@2”...Arduino ETHERNET

Microcontrolador: ATMEGA328

Chip internet: W5100

Digital I/O pins: 14 (pines 10 a 13 reservados)

PWM: 4

Analog Inputs: 12

Puerto: RJ45 (Ethernet)Puerto: microSD

Comunicación: cable FTDI o SparkFun breakout.

Comunicación: PoE (opcional con breakout)

Page 18: Curso de introducción a arduino

Placas Arduino: Los “conect@2”...Arduino YÚN

Microcontrolador: ATMEGA32u4 y Atheros AR9331Atheros AR9331 soporta una distribución de Linux basada en OpenWRT llamada LininoDigital I/O pins: 20

PWM: 7

Analog Inputs: 12

Puerto: RJ45 (Ethernet) / Wi-Fi

Puerto: microSD

Puerto: micro USB // USB Host

Comunicación: PoE (opcional con breakout)

Page 19: Curso de introducción a arduino

Placas Arduino: Los recién llegados...Arduino GALILEO

Microcontrolador: Intel Quark SoC X1000Digital I/O pins: 14

PWM: 6

Analog Inputs: 6

Puertos: Mini PCI-e, Ethernet, microSD, USB Host, USB cliente (programación)

Alimentación: Barrel Jack 2.1

Voltaje: 3.3V (5V via jumper)

Pineado compatible con Shields para UNO.

Page 20: Curso de introducción a arduino

Placas Arduino: Los recién llegados...Arduino TRE

Microcontrolador: ATMEGA32u4

Procesador: Sitara AM335x a 1GHz (Linux)

Digital I/O pins: 14

PWM: 5

Analog Inputs: 6

Puertos: 1 USB, 4 USB Host, HDMI, Ethernet, microSD, 2 jacks audio

Pineado compatible con Shields para UNO y XBee Shields

Colaboración entre Arduino y BeagleBoard.org. Fabricado en USA.

Disponibilidad: Primavera 2014

Page 21: Curso de introducción a arduino

Placas Arduino: Los “robots”...Arduino ROBOT

Microcontrolador: 2 ATMEGA32u4 (1 por placa)

Digital I/O pins: 5

PWM: 6

Analog Inputs: 4

Puerto: microSD

Sensores: Pad de botones, Potenciómetro, LCD a color, altavoz, brújula, 2 motores (ruedas), infrarrojos.

Comunicación: USB integrada en el ATMEGA32u4

Destinado a proyectos de robótica.

Page 22: Curso de introducción a arduino

Placas Arduino: Los “robots”...Arduino ESPLORA

Microcontrolador: ATMEGA32u4

Sensores: incorpora múltiples sensores en la placa: Joystick analógico (tipo PS3), 4 botones, potenciómetro lineal, micrófono, LDR, temperatura, acelerómetro, zumbador, RGB LED, conector para TFT Display.

Puertos: Micro USB, puertos E/S TinkerKit

Diseñado para gente que quieren ponerse en marcha con Arduino sin tener que aprender primero conceptos de electrónica.

Page 23: Curso de introducción a arduino

Placas Arduino: Los “otros”...Arduino Lilypad

Microcontrolador: ATMEGA328V

Digital I/O pins: 14

PWM: 6

Analog Inputs: 6

Comunicación: cable FTDI o SparkFun breakout.

Voltaje: Operativo: 2.7 a 5.5V. MÁXIMO 5.5V.

Pensada para “wearables”. Permite ser cosida a telas u otros materiales con hilo conductor.

Diseñada y producida por Leah Buechley y SparkFun Electronics

Page 24: Curso de introducción a arduino

Arduino UNO: Datos técnicos

Page 25: Curso de introducción a arduino

Arduino UNO: Datos técnicosMicrocontroller ATmega328

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Clock Speed 16 MHz

Page 26: Curso de introducción a arduino

Arduino UNO: Entradas y salidas

Page 27: Curso de introducción a arduino

“Arduino y yo”

- Todo esto está muy bien, pero.. ¡¿PARA QUÉ SIRVE ARDUINO?!

- Pues mira, veamos unos ejemplos...

Page 28: Curso de introducción a arduino

Proyecto: ALARMINOIdea: crear una especie de temporizador con alarma.Componentes: Display de 7 dígitos LED, zumbador, LED, botones pulsadores y resistenciasMaterial: Arduino UNO y Proto Shield

Page 29: Curso de introducción a arduino

Proyecto: Coche “inteligente”Idea: hacer un coche “inteligente” que pueda salvar obstáculos. Además responde a un mando a distancia por infrarrojos.Componentes: Sensor de distancia por ultrasonidos, LEDs, resistencias...Material: Arduino UNO, Motor Shield, Prototype Shield, chásis del coche, 2 motores, portapilas, tornilleria varia...

Page 30: Curso de introducción a arduino

Proyecto: Arduino “casero”Idea: Construir un Arduino que sea compatible con Shields para UNO, aprovechando el pineado de las Prototype Shields.Componentes: Prototype Shields, cabeceras, condensadores, regulador 7805, LEDs, pulsador, resistencias, ATMEGA328, conector Barrel Jack hembra 2.1mm, cristal 16MHz.Nota: Lleva un puerto FTDI para poder actualizarlo mediante el cable FTDI o Breakout.

Page 31: Curso de introducción a arduino

Proyecto: HASAMINOIdea: crear un brazo robot controlado por 2 Joystick tipo PlayStation.Componentes: servomotores, garra de aluminio, 2 Joystick, regulador 7805, condensadores.Material: Arduino UNO y Prototype Shield, caja de plástico como base.

Page 32: Curso de introducción a arduino

Proyecto: Arduino FlasherIdea: Construir un flasheador para grabar el Bootloader y cargar un Sketch en un ATMEGA328 vírgen.Componentes: ATMEGA328 (como programador), LEDs, condensadores, resistencias, resonador 16 MHz...Material: 2 Arduino Prototype Shields, interruptores, pulsador, zócalo 28 pins, cabeceras, ...

Page 33: Curso de introducción a arduino

Proyecto: GARDUINOIdea: Construir un control de riego para una planta, basado en la humedad de la tierra.Componentes: LCD 20x2, botones pulsadores, resistencias, relé, mini bomba sumergible, sensor de humedad, mini USB hembra, LEDs...Material: Caja de registro eléctrico como contenedor.Notas: Proyecto basado en Arduino. Utilizo un ATMEGA328 pre-programado con el código.Lleva además un puerto FTDI para poder actualizarlo mediante el cable FTDI o Breakout.

Page 34: Curso de introducción a arduino

Arduino IDEUn entorno de desarrollo integrado, llamado también IDE (sigla en inglés de integrated development environment), es un programa informático compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios.

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDE’s pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.

El Arduino IDE está disponible para Windows, Mac OS X y Linux.

Page 35: Curso de introducción a arduino

Arduino IDELos botones del Arduino IDE son muy sencillos, vamos a verlos uno a uno.

Verificar: Comprueba el código en busca de errores.

Cargar: Compila el código y lo vuelca en la placa Arduino.

Nuevo: Crea un nuevo sketch.

Abrir: Abre un menú con todos los programas sketch del

Sketchbook (librería de sketch).

Guardar: Salva el programa sketch.

Monitor Serial: Inicia la monitorización serie.

Page 36: Curso de introducción a arduino

Estructura de un “Sketch”El lenguaje con el que se programa en Arduino es un derivado del lenguaje de programación "Wiring".

La estructura básica de un sketch es similar a la de un programa en C aunque con algunas diferencias.

Veamos cuál es la estructura mínima en un sketch.

1. Definición de variables

2. Función setup

3. Función loop

Page 37: Curso de introducción a arduino

Estructura de un “Sketch”En la primera parte definiremos las variables globales que usaremos en el sketch.

int led = 13;

La segunda parte de un Sketch es una parte que solo se ejecuta una vez tras el arranque de la placa Arduino, el Setup.

Void Setup(){.........}

Page 38: Curso de introducción a arduino

Estructura de un “Sketch”La siguiente parte importante de un Sketch: el Loop. Es la parte principal de nuestro programa pues en él tendremos que poner el código para que el microcontrolador lo ejecute de manera recursiva, es decir, esta parte del Sketch se repetirá una y otra vez mientras la placa Arduino tenga energía.

Void Loop(){

...

...

...}

Page 39: Curso de introducción a arduino

“Hello world” (Blink Sketch)En la mayoría de los lenguajes de programación, el primer programa que tu escribes imprime en la pantalla del ordenador la frase "Hola Mundo".

Ya que una placa Arduino no tiene una pantalla, haremos parpadear un LED.

Las placas están diseñadas para que hacer parpadear un LED sea muy fácil usando el pin digital 13. Algunas (como la UNO, la Diecimila o la LilyPad) tienen el LED directamente incorporado en la placa.

El ejemplo de la izquierda que habéis visto hasta ahora hace esto.

Page 40: Curso de introducción a arduino

“Hello world” (Blink Sketch)En la definición de variables creamos una llamada “led” y le asignamos el valor 13. Esto es así porque usaremos el pin digital 13 en nuestro Arduino.

En el setup le indicaremos al Arduino que ese pin será una salida (OUTPUT). Para esto usaremos la función “pinMode”.

En el loop, usando la variable definida antes, lo que haremos es poner el pin 13 en HIGH, es decir, aplicaremos 5v en el pin.Esperamos 1 segundo y repetimos la operación esta vez apagando el pin, lo pondremos en estado LOW o 0v.

Antes de acabar volvemos a esperar 1 segundo y como la función loop acaba aquí vuelve automáticamente al principio poniendo de nuevo el pin en HIGH.

Page 41: Curso de introducción a arduino

Protoboard o Breadboard.La "protoboard" o "breadboard" (en inglés) es un tablero con orificios conectados eléctricamente entre sí, habitualmente siguiendo patrones de líneas, en el cual se pueden insertar componentes electronicos y cables para el montaje y prototipado de circuitos electrónicos y sistemas similares.

De esta manera podemos “pinchar” nuestros componentes para realizar prototipos sin tener que realizar un solo punto de soldadura tantas veces como queramos.

Las columnas verticales (en verde) están conectadas entre sí, al igual que las filas horizontales (en rojo y azúl), sin embargo éstas no comparten la conexión entre ellas.

El espacio central está diseñado para poder insertar un chip con encapsulado DIP (por ej. ATMEGA328 del Arduino UNO).

Page 42: Curso de introducción a arduino

Componentes electrónicos básicos

Page 43: Curso de introducción a arduino

¡Quiero más!Para saber más y profundizar en tus proyectos personales tienes en internet infinidad de información:

arduino.ccplayground.arduino.ccforum.arduino.ccinstructables.comarduteka.cometc...

Page 44: Curso de introducción a arduino

¡MUCHAS GRACIAS!