Arduino Bluetooth

Download Report

Transcript Arduino Bluetooth

Arduino Bluetooth
A73529 Sebastián León Calderón
Agenda
1.
2.
3.
4.
5.
6.
7.
8.
Introducción a Arduino.
Arduino BT y Arduino + BT
Ambiente de desarrollo y lenguaje de programación
Requerimientos y primeros pasos
Ventajas y debilidades
Relación con otras plataformas
Enlazando Arduino con Android
Ejemplos prácticos
Arduino Bluetooth: Tema 1
INTRODUCCIÓN A ARDUINO
Introducción: el qué
• “Arduino” es:
• una plataforma computacional basada en una tarjeta de microcontrolador,
• el lenguaje empleado para la programación de dicho microcontrolador, y
• el IDE que facilita la programación en ese lenguaje.
• En la vida real, “Arduino” se refiere a las tarjetas de microcontrolador.
• Arduino es completamente open-source.
Introducción: el para qué
¿Para qué sirve?
• Enlazar dispositivos electrónicos.
• Realizar procesamiento:
• Dispositivos sensores ofrecen estímulos.
• Micro-controlador procesa estímulos y calcula reacciones.
• Reacciones son llevadas a la práctica por dispositivos actuadores.
• Construir cosas “divertidas”.
• ¿Floppy drives haciendo música?
• ¡Bots, bots, bots!
Video: floppy music
• http://www.youtube.com/watch?v=AzmmDRDwHIk
Introducción: el cómo
• Diferentes modelos contienen diferentes partes.
• El modelo BT incorpora un módulo Bluetooth.
• Partes notables:
•
•
•
•
•
•
Micro-controlador (ATmega328).
Memoria flash (32 KB).
SRAM (2 KB).
Pines digitales de entrada/salida (14).
Pines analógicos de entrada (6, resolución de 10 bits).
El módulo Bluetooth (Bluegiga WT11).
• En lugar del adaptador USB típico de los otros modelos.
Arduino Bluetooth: Tema 2
ARDUINO BT Y ARDUINO + BT
Arduino BT
• Modelo comercial oficial.
• Precio ronda los $100 en Amazon :S
• Módulo BT se comunica con el micro-controlador por serial
(pines RX y TX de la tarjeta) .
• Módulo BT se comunica con otros dispositivos vía Bluetooth a
115200 baud.
• No posee adaptador USB.
• Puede programarse inalámbricamente por Bluetooth.
Arduino + BT
• Construido típicamente de dos formas:
• agregando un Bluetooth Shield a una tarjeta Arduino, o
• Conectando un módulo Bluetooth a una tarjeta Arduino.
• Precio se acerca a los $50 ($30 por la tarjeta y $20 por el
shield o módulo BT).
• Módulo BT se comunica con otros dispositivos por Bluetooth a
varias frecuencias (usualmente 57600 o 115200 baud), según
las especificaciones del módulo.
• Programación se realiza por USB.
• Acercamiento más frecuentemente usado
Arduino Bluetooth: Tema 3
AMBIENTE DE DESARROLLO Y
LENGUAJE DE PROGRAMACIÓN
Lenguaje de programación
• También llamado Arduino.
• En realidad es C/C++.
• Consiste en un conjunto de funciones predefinidas empacadas
en una biblioteca llamada “Wiring”.
• Programadores pueden proveer sus propias funciones.
• Un programa se conoce como sketch.
• Algunas funciones notables:
•
•
•
•
•
•
setup()
loop()
digitalWrite()
digitalRead()
delay()
attachInterrupt()
L. de programación (cont.)
Función setup():
• Se ejecuta una vez justo después de arrancar el microcontrolador.
• Contiene la configuración inicial, por ejemplo:
• marcar pines para entrada o salida,
• definir la frecuencia de modulación, o
• agregar interrupciones a pines.
Función loop():
• “Lo que hace el sketch.”
• Ciclo de ejecución hasta el apagado o reinicio.
• Contenido corresponde a una iteración en el ciclo de sensarprocesar-actuar.
Ambiente de desarrollo
•
•
•
•
•
•
•
•
Llamado Arduino IDE para claridad.
Escrito en Java.
Simple y fácil de utilizar.
Orientado fuertemente a usuarios no familiarizados con la
programación.
Ofrece compilación y carga del sketch todo-en-un-botón.
Incluye algunas conveniencias como auto-indentación y pareo
de llaves.
Completamente ad hoc a la programación de Arduino.
Agrega automágicamente las referencias y funciones
requeridas para que el sketch se convierta en un programa
C++ válido (por ejemplo, el main y el include a ).
Ambiente de desarrollo (cont.)
• No es estrictamente requerido.
• Por debajo emplea el compilador avr-g++.
Arduino Bluetooth: Tema 4
REQUERIMIENTOS Y PRIMEROS PASOS
Requerimientos
• Como mínimo:
• Tarjeta Arduino BT o alguna forma de Arduino + BT.
• Una computadora corriendo Windows, Mac OS o Linux.
• Esta computadora debe tener capacidad BT para usarla con Arduino
BT.
• Además ocupa un cable USB (A a B) en todos los otros casos.
• El Arduino IDE (viene con el lenguaje de programación).
• Alimentación eléctrica.
• Además:
• Todos los dispositivos electrónicos que interese usar como
actuadores y sensores.
• Un protoboard para facilitar la conexión de dispositivos.
Primeros pasos
1. Aparear el módulo Bluetooth con la computadora.
• Sólo si se tiene el Arduino BT.
2. Indicar en el IDE cuál tarjeta se utiliza.
• Arduino BT sólo si se tiene el Arduino BT.
3. Instalar los drivers.
4. ¡Empezar a programar!
Arduino Bluetooth: Tema 5
VENTAJAS Y DEBILIDADES
Ventajas: Arduino
•
•
•
•
•
IDE y lenguaje son fáciles de usar y aprender.
Tarjetas Arduino son económicas ($30 o menos).
Software es open-source e independiente de la plataforma.
Hardware es open-source.
Permite hacer todo tipo de cosas divertidas.
Ventajas: Arduino BT
• Programación a distancia sin cable USB.
• Sistema puede controlarse remotamente.
• No requiere de módulos o dispositivos adicionales para
ofrecer la funcionalidad inalámbrica.
Debilidades: Arduino BT
• La Arduino BT es más frágil que otras tarjetas.
• Programación requiere de una computadora con capacidad
Bluetooth.
• El micro-procesador es más pequeño que en otras tarjetas y
por tanto incompatible.
• Notoriamente más cara que la tarjeta Arduino promedio.
Estas debilidades pueden atacarse mediante el uso de Arduino +
BT.
Arduino Bluetooth: Tema 5
RELACIÓN CON OTRAS PLATAFORMAS
Con dispositivos electrónicos
• El objetivo de Arduino es la interconectividad y control de
múltiples dispositivos electrónicos.
• Conectividad se ofrece a través de los pines análogicos y
digitales.
• A través de Arduino es más fácil realizar tareas complejas que
requieren de la interacción entre sensores y actuadores.
• La lógica de percepción y acción es incorporada a priori
mediante el código cargado en la tarjeta.
Con dispositivos móviles
• El módulo Bluetooth extiende la funcionalidad de Arduino y
permite conectividad con dispositivos móviles.
• La lógica puede incorporarse “en caliente” mediante el envío y
recepción de señales por Bluetooth.
• Usos frecuentes:
• Controles remotos.
• Recolección de datos del ambiente y presentación al usuario.
• El mecanismo de transmisión de información y la
interpretación de señales son lo único que requiere
codificarse.
• Existen esfuerzos, como Amarino, por ofrecer al usuario el
paquete prefabricado.
Arduino Bluetooth: Tema 7
ENLAZANDO ARDUINO CON ANDROID
¿Cómo se hace?
• Forma fácil (usando Amarino)
• Incluye un API listo para empezar a enviar y recibir datos por
Bluetooth hacia y desde el dispositivo.
• Basta con agregar la referencia a la biblioteca en la carpeta libs.
• Requiere de algo de familiarización con el API.
• Forma no-tan-fácil (manualmente)
• Requiere algunas inclusiones de las biblioteca de Bluetooth de
Android agregadas en el API 5:
• android.bluetooth.BluetoothAdapter;
• android.bluetooth.BluetoothDevice;
• android.bluetooth.BluetoothSocket;
• Hay que hacer un poco más de “trabajo sucio”.
¿Qué se requiere?
• Los componentes electrónicos anteriores
• Un smartphone o tablet con capacidad Bluetooth y corriendo
al menos Eclair (prácticamente cualquiera).
• AmarinoLibrary.jar para la forma fácil.
• ¡Ganas!
Ejemplo: por Amarino
Lado Amarino
Lado Android
Arduino Bluetooth: Tema 8
EJEMPLOS PRÁCTICOS
Ejemplos prácticos
• ¡Bots, bots, bots!
1.
2.
3.
4.
5.
Compre un carro de juguete a control remoto.
Remplace el módulo de control con una tarjeta Arduino.
Escriba una aplicación para Android con controles de dirección
y aceleración.
???
Profit.
• Guantes para control remoto.
• Impresión a distancia en LCDs.
• Todo tipo de wacky fun stuff.
Videos!
• Multicolor Lamp:
http://www.youtube.com/watch?v=GiibMA_H9rs
• Carro a control remoto:
http://www.youtube.com/watch?v=9nYXe_Xbyns
• Tanque:
http://www.youtube.com/watch?v=0LMrxtlpBQk
• Matriz de LED:
http://www.youtube.com/watch?v=p9FpVXjAojY
Referencias
• Kaufmann, Bonifaz. “Design and Implementation of a Toolkit fr
the Rapid Prototyping of Mobile Ubiquitous Computing.” Tesis
de maestría. Universidad de Kalgenfurt. Agosto 2010.
• Documentación oficial Arduino BT. En línea:
http://www.arduino.cc/en/Main/ArduinoBoardBluetooth.
• Documentación oficial Amarino. En línea:
http://www.amarino-toolkit.net/index.php
• Varios autores. “Communication Between Android And
Arduino With Bluetooth”. En línea:
http://www.elecfreaks.com/677.html