guía 2 - comunicando arduino y mi smartphone

17
CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEI OPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO COMUNICANDO ARDUINO Y MI SMARTPHONE Resultados de aprendizaje: Una vez desarrollada esta guía, el lector estará en capacidad de: Configurar la comunicación a través de Bluetooth en un Smartphone haciendo uso de App Inventor. Configurar la comunicación a través de Bluetooth haciendo uso de Arduino y el módulo JY – MCU Variar la intensidad de luz emitida por diodos LED Herramienta de Software: MIT App Inventor 2. Lector de código QR, se sugiere QR Droid Arduino Herramienta de Hardware: Teléfono inteligente (en esta guía, lo llamaremos teléfono) Arduino Duemilanove. Módulo bluetooth JY - MCU Protoboard Resistencias LED INTRODUCCIÓN ¿Qué es Bluetooth?

Upload: johan-rm

Post on 04-Dec-2015

5 views

Category:

Documents


0 download

DESCRIPTION

Comunicacion de Arduino con Smartphone, variacion de luminosidad de leds

TRANSCRIPT

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

COMUNICANDO ARDUINO Y MI SMARTPHONE

Resultados de aprendizaje: Una vez desarrollada esta guía, el lector estará en capacidad de:

Configurar la comunicación a través de Bluetooth en un Smartphone haciendo uso de App Inventor.

Configurar la comunicación a través de Bluetooth haciendo uso de Arduino y el módulo JY – MCU

Variar la intensidad de luz emitida por diodos LED

Herramienta de Software:

MIT App Inventor 2.

Lector de código QR, se sugiere QR Droid

Arduino

Herramienta de Hardware:

Teléfono inteligente (en esta guía, lo llamaremos teléfono)Arduino Duemilanove.Módulo bluetooth JY - MCUProtoboardResistenciasLED

INTRODUCCIÓN

¿Qué es Bluetooth?

Es una tecnología creada por la compañía Ericsson para la comunicación inalámbrica entre dispositivos a corta distancia y en la banda libre 2.4GHz (ISM- Industrial, scientific and medical). Se utiliza en diversos productos tales como teléfonos celulares, laptops, vehículos, cámaras, impresoras entre otros (García A, 2011). Bluetooth se originó de la siguiente manera:

• Surgió como resultado de un proyecto de la compañía Ericsson en 1994

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

• El nombre de la tecnología es en honor al rey danés Herald Blatand (“diente azul”)

• Las compañías Intel, IBM, Nokia, Toshiba se unieron a Ericsson para conformar el Bluetooth SIG (Special Interes Group) - Mayo de 1998.

• La versión 1.0 de la especificación del estándar se presentó en 1999.• Opera sobre la banda ISM (Industrial Scientific Medical) de 2.45 Ghz,

aunque hay restricciones en algunos países (Francia, España y Japón).

Evolución de Bluetooth

Desde sus inicios, Bluetooth ha tenido las siguientes versiones:

• Bluetooth v1.1, versión inicial de la tecnología.• Bluetooth v1.2, usa la técnica "Adaptive Frequency Hopping (AFH)" para

mejorar la eficiencia en la transmisión. Además se mejora la seguridad (encriptación).

• Bluetooth v2.0, incorpora la técnica "Enhanced Data Rate" (EDR), la cual permite incrementar tasa de transferencia hasta 3Mbps.

• Bluetooth v2.1, se reduce el consumo de energía (5 veces menor) y se simplifica el proceso de conexión de los dispositivos (emparejamiento).

• Bluetooth v3.0, define una mayor tasa de transferencia.• Bluetooth v4.0: define tres tipos de conexión – clásica, rápida y de bajo

consumo de energía.

Detalles técnicos de Bluetooth

• Rango de frecuencias (banda ISM): 2402 - 2480 MHz (total 79 MHz)• Tasa de transferencia:1 Mbps (Nominal) - 720 kbps (real)• Alcance: hasta 10 metros (depende de la versión)• Seguridad: autenticación tipo desafío/respuesta y encriptación de 128 bits.• Bajo consumo de poder: 10 μA en standby, 50 mA cuando trasmite.• Cada nodo de la red tiene una dirección MAC de 48 bits.• Ancho de banda:

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

Clasificación de Bluetooth

RETO 1: DESARROLLAR LA PROGRAMACION PARA LA INTERACCION ENTRE LOS LEDS, ARDUINO Y BLUETOOTH

PARTE 1: Conexión de arduino, leds y bluetooth1. Para la variación de la intensidad de los led’s vamos a usar las salidas

seriales llamadas PWM en el arduino, usaremos las salidas 5,6,9, el bluetooth va a usar los puertos RX,TX, VCC 5v y GND, y para los led’s se van a usar unas resistencias de 100 ohmios, teniendo esto en cuenta, pasamos a montar los componentes en la protoboard de la siguiente manera:

Nota: la conexión del Terminal RXD y TXD entre Arduino y Bluetooth tiene que ser invertida, es decir, se conecta el puerto TXD en el arduino, a la terminal RXD en el bluetooth

Figura 1. Montaje en arduino y Protoboard.

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

Los pines largos de los diodos led son los positivos, estos son los que van conectados a la resistencia, el otro pin va a tierra (GND).

Precaución: Verifique el montaje del circuito con el de la figura 1, antes de conectar la placa al computador, no vaya a ser que esta se queme o entre en corto, si no está seguro, pida ayuda al profesor.

Figura 1ª. Montaje en placa.

2. Conecta el arduino al Computador, luego abre la aplicación de ARDUINO y copia el siguiente código:

//Programa Basico de Arduino para controlar la intensidad de 3 led's por medio de un celular /* Declaracion de Variables */String strGeral, dispositivo, valorRecibido; /* el valor que va a recibir del bluetooth va a ser strGeral, pero este valor va a ir acompañado de un Caracter, que nos define con que led vamos a interactuar, asi que se divide ese valor numerico y ese valor tipo Caracter, el caracter se va a almacenar en la variable dispositivo, mientras que el valor entero se va a almacenar en valorRecibido.*/int ledPinRojo = 9; // Aqui se conecta el led Rojo al pin 9(PWM) en el arduinoint ledPinAmarillo = 5; // Aqui se conecta el led Amarillo al pin 5(PWM) en el arduinoint ledPinBlanco = 6; // Aqui se conecta el led Blanco al pin 6(PWM) en el arduinoint incomingByte;

void setup() { /* *Esta parte del codigo inicializa el Bluetooth y los Led's */ Serial.begin(9600); pinMode(ledPinRojo, OUTPUT);

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

pinMode(ledPinAmarillo, OUTPUT); pinMode(ledPinBlanco, OUTPUT);}void DividirDatos() { /* Este metodo nos va a permitir dividir los datos como se explicó en un principio. */ if (strGeral.indexOf(" ") >=0){ dispositivo = strGeral.substring(0,(strGeral.indexOf(" "))); valorRecibido = strGeral.substring(strGeral.indexOf(" ")+1); }}

void loop () { if (Serial.available()) { strGeral = String(""); while (Serial.available()) { strGeral = strGeral + char(Serial.read()); delay(1); } DividirDatos(); incomingByte = valorRecibido.toInt(); //Se convierte el valorRecibido a un numero entero, ya que el bluetooth lo manda como un String Serial.println("\nString Geral: " + strGeral); //se imprimen los datos, estos datos se pueden ver en el Monitor Serie. Serial.println("Dispositivo: " + dispositivo); //Monitor Serie se encuentra ubicado en la parte superior derecha del programa Arduino Serial.println("Valor recebido: " + valorRecibido); Serial.println(incomingByte); /*Si el caracter que acompaña el valor numerico es R, entonces el valor que viene del bluetooth se escriba en el LedPinRojo */ if (dispositivo == "R") { analogWrite(ledPinRojo, incomingByte); } /*Si el caracter que acompaña el valor numerico es A, entonces el valor que viene del bluetooth se escriba en el LedPinAmarillo */ if (dispositivo == "A") { analogWrite(ledPinAmarillo, incomingByte); } /*Si el caracter que acompaña el valor numerico es B, entonces el valor que viene del bluetooth se escriba en el LedPinBlanco */ if (dispositivo == "B") { analogWrite(ledPinBlanco, incomingByte); } }}

3. Ve al menú Herramientas /Placa, ahí seleccionas el arduino que se va a usar, en este caso es el duemilanove, ajusta el procesador a Procesador “ATmega328”

4. Vuelve a Herramientas y donde dice puerto, seleccionas el puerto que aparece disponible en el momento.

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

5. En la parte superior del programa hay una opción que dice subir, cliquea esta opción para cargar el programa a la placa, durante este proceso, el programa verificará que todo esté bien y cargará el programa a la placa de Arduino, este proceso puede tardar varios segundos dependiendo del computador.

Figura 2. Programando en Arduino.

Nota: (Si no has usado la placa Arduino, espera a que esta se instale de forma automática en el computador, si el programa no lo reconoce o genera un error como el anterior mostrado en la figura 2, ve a Equipo/ propiedades/

Subir/Cargar

Monitor Serie

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

administrador de dispositivo, ahí buscas donde dice Puertos COM y LPT ahí seleccionas el puerto y das doble clic, dirígete a la pestaña Configuración del puerto, da clic en el botón opciones avanzadas y estando ahí, cambia el COMX a otro COM que esté libre).

RETO 2: COMUNICACIÓN INALÁMBRICA ENTRE ARDUINO Y EL SMARTPHONE

PARTE 1: ¿Se Imagina poder controlar la intensidad de las luces de su casa?, ¿se imagina poder encender y apagar sus electrodomésticos a distancia?. Esta guía le permitirá comunicar a su teléfono con un Arduino de manera inalámbrica haciendo uso de Bluetooth, y con esto, le facilitará entre otras cosas, activar y desactivar de manera remota artículos que usted tenga en su hogar (bombillos, equipos de sonido, cerrar y abrir puertas, etc.). Para esto, siga los siguientes pasos:

1. En el modo diseñador de App Inventor, arrastre un “ListPicker” (ubicado a la izquierda, en “User Interface”, ver figura 1) al Screen 1. Modifique el nombre de dicho ListPicker para que sea más fácil de reconocer (se recomienda nombrar a los listas iniciando con lst y luego el nombre que desea para dicha lista, por ejemplo: lstConectar), así mismo, modifique el nombre del Screen1.

Figura 3. Añadiendo ListPicker – App Inventor

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

2. Una vez hecho esto, en la paleta “User Interface” añada un Label al Screen 1 (o el nombre que le haya puesto).

3. Añada también al Screen 1, 3 HorizontalArrangement de la paleta “Layout” (Fije el ancho de estas componentes al máximo de la interfaz haciendo uso de “fill parent”). En estos momentos, su interfaz deberá lucir como la de la Figura 2.

Figura 4. Añadiendo HorizontalArrangement – App inventor

4. Añada un Label y un Slider (paleta User Interface) dentro de cada HorizontalArrangement, modifique sus nombres indicando que el primero es para el color rojo, el segundo para el color amarillo, y el tercero para el color blanco, a cada slider cambie las siguientes propiedades:- ThumbPosition=0.- MinValue=0.- MaxValue=255.Adicionalmente cambie el ancho del slider al valor máximo de la pantalla, modificando la propiedad Width a fillpatern, además de esto, usted puede cambiarle el color al slider.

5. Arrastre desde la paleta Connectivity (a la izquierda) al Screen 1, un BluetoothClient, modifique su nombre para reconocerlo fácilmente.

6. Modifique su interfaz, agregándole colores y detalles de acuerdo a su gusto. En este momento, su diseño debe tener una apariencia similar a la de la figura 5.

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

Figura 5. Diseño de la interfaz

7. De clic en el editor de bloques. Como se observa en la figura 6, en la paleta “Blocks” puede encontrar entre otras cosas, el “Screen 1” que ha creado en el modo diseñador, y los objetos asociados a dicho Screen.

Figura 6. Editor de bloques – App Inventor

8. El primer paso será configurar la lógica de programación asociada a la conexión Bluetooth, para esto, arrastre y asocie los bloques de programación que se muestran en la Figura 7.

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

Figura 7. Opciones para botones

9. Lo siguiente es detectar cada movimiento de los deslizadores creados, para esto, arrastre y asocie los bloques de programación presentados en las figuras 8,9,10.

Figura 8. Programación – Slider Rojo

Nota: Cada uno de los sliders va a enviar el valor del slider cuando cambie dicho valor va a estar en un rango de 0-255 el cual se estableció en el paso 4, este valor va a ir acompañado de un carácter, que diferenciará el slider, para el slider rojo, este valor irá acompañado de la letra R, para el amarillo la M, para el Blanco, la B

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

Figura 9. Programación – Slider Amarillo

Figura 10. Programación – Slider Blanco

10. Para descargar la aplicación a su teléfono, seleccione la opción “Build”, con esta podrá generar el código QR o el archivo .apk, tal y como se presenta en la figura 11.

Figura 11. Código QR de la aplicación

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

11. Una vez generado el código QR, ejecute la aplicación QR Droid y seleccione la opción escanear.

12. Escanee el código QR para iniciar la descarga de la aplicación a su teléfono.

13. Instale y ejecute la aplicación en su teléfono, la figura 10 muestra un ejemplo de dicha ejecución.

Figura 12. Ejecución de la aplicación en el teléfono.

NOTA: Debe habilitar la opción relacionada con la instalación de aplicaciones provenientes de fuentes desconocidas en su teléfono (Configuración – Seguridad – Fuentes Desconocidas, esto varía dependiendo del teléfono).

14. Active el Bluetooth de su teléfono y mediante la aplicación, verifique que pueda conectarse a otros dispositivos con Bluetooth (primero debe establecer la comunicación con los otros dispositivos, es decir, debe aparear su dispositivo con los otros que tengan Bluetooth, sólo así, la aplicación implementada en esta guía los detectará).

CENTRO DE INNOVACIÓN EDUCATIVA EN INGENIERÍA – CIEIOPEN LAB – INTEGRACIÓN DE HARDWARE Y SOFTWARE PARA PROTOTIPADO RÁPIDO

ENLACES SUGERIDOS

CREAR APP PARA ARDUINO CON APP INVENTOR. Makers. 2014 [Consultado el 28 de Agosto de 2015]. Disponible en internet: http://diymakers.es/crear-app-para-arduino-con-app-inventor/

BLUETOOTH Y APP INVENTOR. Whatakuai. 2013 [Consultado el 28 de Agosto de 2015]. Disponible en internet: http://www.whatakuai.com/es/bluetooth-and-app-inventor/

Documentación de referencia de App Inventor. [Consultado el 16 de Julio de 2015]. Disponible en internet: http://appinventor.mit.edu/explore/content/reference-documentation.html

BIBLIOGRAFÍA

GARCÍA, Alexander. Redes WPAN. Especialización en Telemática. Universidad Autónoma de Occidente. 2011.

IEEE STANDARD. Wireless Medium Access Control (MAC) and Physical Layer (PHY) specification for Wireless Personal Area Networks (WPANs). 2005.

SIG. SIG Introduces Bluetooth low energy wireless technology, the next generation Bluetooth wireless technology. 2009.