410 likes | 996 Views
Arduino Bluetooth. A73529 Sebasti án León Calderón. Agenda . 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
E N D
Arduino Bluetooth A73529 Sebastián León Calderón
Agenda • 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 micro-controlador, • el lenguaje empleado para la programación de dicho micro-controlador, y • el IDE que facilita la programación en ese lenguaje. • En la vida real, “Arduino” se refiere a las tarjetas de micro-controlador. • 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 • Modelocomercialoficial. • Precioronda los $100 en Amazon :S • Módulo BT se comunica con el micro-controladorpor serial (pines RX y TX de la tarjeta) . • Módulo BT se comunica con otrosdispositivos vía Bluetooth a 115200 baud. • No posee adaptador USB. • Puede programarse inalámbricamente por Bluetooth.
Arduino + BT • Construidotípicamente de dos formas: • agregando un Bluetooth Shield a unatarjeta 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 ylenguaje 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 micro-controlador. • 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 sensar-procesar-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ágicamentelas referencias y funciones requeridas para que el sketch se convierta en un programa C++ válido (por ejemplo, el main y el includea ).
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 • Aparear el módulo Bluetooth con la computadora. • Sólo si se tiene el Arduino BT. • Indicar en el IDE cuál tarjeta se utiliza. • Arduino BT sólo si se tiene el Arduino BT. • Instalar los drivers. • ¡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 smartphoneo tablet con capacidad Bluetooth y corriendo al menos Eclair (prácticamente cualquiera). • AmarinoLibrary.jarpara la forma fácil. • ¡Ganas!
Ejemplo: por Amarino Lado Android Lado Amarino
Arduino Bluetooth: Tema 8 Ejemplos prácticos
Ejemplos prácticos • ¡Bots, bots, bots! • 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 wackyfunstuff.
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 Toolkitfrthe 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