Upload
santiago-ramirez-castano
View
576
Download
0
Embed Size (px)
Citation preview
Curso de introducción a Arduino
Pablo Carbajales@Kabuto
¿Elegir la placa azul?
¿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.
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.
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)
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.
Placas Arduino: “Meet the family”Arduino Duemilanove (2009)
Arduino NG Rev. C
Arduino Diecimila (10.000)
Arduino NG (Nueva Generación)
Placas Arduino: Los abuelos...
Arduino Extreme v2 Arduino Extreme Arduino USB v2.0
Arduino USB Arduino Serial v2.0 Arduino Serial
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.
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.
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
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
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.
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.
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...
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
.
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)
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)
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.
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
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.
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.
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
Arduino UNO: Datos técnicos
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
Arduino UNO: Entradas y salidas
“Arduino y yo”
- Todo esto está muy bien, pero.. ¡¿PARA QUÉ SIRVE ARDUINO?!
- Pues mira, veamos unos ejemplos...
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
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...
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.
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.
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, ...
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.
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.
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.
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
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(){.........}
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(){
...
...
...}
“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.
“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.
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).
Componentes electrónicos básicos
¡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...
¡MUCHAS GRACIAS!