Bluetooth Un poco de teoría Bluetooth ONDAS Una onda es una señal que se propaga por un medio. Por ejemplo el sonido, que es una onda mecánica que viaja usando el aire o cualquier otro material. Pero en el caso de las señales eléctricas pueden ser enviadas por el cable o a través del vacío (no necesitan un medio para transmitirse). Dependen de 3 parámetros principalmente: Amplitud: altura máxima de la onda. Hablando de sonido representaría el volumen. Si nos referimos a una onda eléctrica estaríamos representando normalmente el voltaje. Longitud de onda λ: distancia entre el primer y último punto de un ciclo de la onda (que normalmente se repite en el tiempo). Frecuencia f : Número de veces que la onda repite su ciclo en 1 segundo (se mide en hertzios). Periodo T es simplemente es la inversa de la frecuencia. T=1/f La relación entre ellas es muy fácil pues las ondas electromagnéticas viajan a la velocidad de la luz c y si velocidad es espacio/tiempo luego c = λ/T luego c= λ*f Dentro del espectro electromagnético encontramos diferentes tipos de señales dependiendo de las características de su onda. TRANSMISIÓN INALÁMBRICA: BLUETOOTH.    Hoy en día, este grupo está formado por miles de empresas y se utiliza no sólo para teléfonos sino para cientos de dispositivos. Bluetooth es una red inalámbrica de corto alcance pensada para conectar pares de dispositivos y crear una pequeña red punto a punto, (sólo 2 dispositivos). Utiliza una parte del espectro electromagnético llamado “ Banda ISM ”, reservado para fines no comerciales de la industria, área científica y medicina. Dentro de esta banda también se encuentran todas las redes WIFI que usamos a diario. En concreto funcionan a 2,4GHz. (Un G son 10 9 ) luego entre FM y Microondas. ¿Sabias que? Su curioso nombre viene de un antiguo rey Noruego y Danés, y su símbolo, de las antiguas ruinas que representan ese mismo nombre.  Hay 3 clases de bluetooth que nos indican la máxima potencia a la que emiten y por tanto la distancia máxima que podrán alcanzar: También es muy importante la velocidad a la que pueden enviarse los datos con este protocolo: Mbps : Mega Bits por segundo.       MBps: Mega Bytes por segundo. kb = 1.024 b     M = 1.024 k     G = 1.024 M ¿Te atreves a calcularlo … . ? ¿Cuántos ciclos por segundo tendrán las ondas que están en la Banda ISM?  ¿Cuál es el periodo de esas ondas? Solución  a)  f = 2.4G b) λ=c/f= 12.5cm o sea, las antenas tendrían que ser de esta longitud. Hay muchos trucos para reducirla, una de ellas es la forma de serpiente que puedes ver en el HC-06 ¿Te atreves a calcularlo...? ¿A qué distancia y cuanto tiempo tardarían en enviarse los siguientes archivos por Bluetooth? Un vídeo de 7Mb usando versión 2 clase 2 Una imagen de 2.5Mb usando versión 3 clase 1 Un archivo de texto de 240KB usando versión 1.2 clase 1 Solución  1) 7Mb / 3Mbs = 2.3 seg. 2) 2.5Mb / 24Mbs = 0.1 seg. 3) 240 kB 8b/B = 1.920 kb   1.920 kb  / 1.024 =   1.875 Mb     1.875Mb / 1Mbs  = 1.875 seg.  ¿Bluetooth clásico o Bluetooth Low Energy = BLE ? Es un protocolo similar al clásico Bluetooth pero diseñado a consumir menos potencia manteniendo funcionalidad. Su popularidad ha crecido en multitud de dispositivos En robótica, el clásico device que utiliza BLE es la Micro:bit . Aunque la Micro:bit no tiene Wifi integrada, posee una radiofrecuencia que podemos configurar para Bluetooth (hay que elegir, o utilizar sus comandos de Radio o utilizar comandos de Bluetooth) Por eso a la hora de elegir la APP tienes que tener en cuenta: Si acepta Bluetooth clásico o BLE Que la APP acepte leer datos desde el robot como enviar Nosotros hemos elegido uno sencillo que cumple las dos condiciones (hay muchas APPs) Serial Bluetooth Terminal Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU Conexión del módulo Bluetooth Módulo Bluetooth HC-06 SLAVE El módulo Bluetoth HC-06 tiene 4 pines, funciona SLAVE o sea, esclavo. Si quieres saber más de este módulo,  consulta esta página de Arduino con código Módulo Bluetooth HC-05 MASTER-SLAVE Un módulo HC-05 tiene en cambio 6 pines y puede funcionar en dos modos MASTER o SLAVE El HC-05 puede funcionar como maestro y esclavo. La diferencia con el módulo HC-06 que sólo funciona como esclavo. El HC-05 es por lo tanto un módulo técnicamente superior. Físicamente el HC-05 tiene 6 pines mientras que el HC-06 sólo 4. Esto le permite al HC-05 trabajar con distintos modos de funcionamiento más avanzados, (ver https://fgcoca.github.io/BlueTooth-HC-05-y-HC-06/modulos/) En nuestro caso El módulo que se facilita en el kit está fabricado por la empresa KEYSTUDIO, tiene 4 pines por lo tanto es un ... HC-06. Comparte este módulo las líneas de datos D0 y D1 utilizados en la comunicación serie COM !!! 😮😮😮 no podemos a la vez tener el HC06 y comunicarnos con el Arduino con el ordenador. Existe un interruptor para desconectar el módulo bluetooth cuando conectamos el Arduino al ordenador por el puerto serie COM, pero a nuestro criterio crea confusión. Recomendamos pues  NO TOCAR ESTE INTERRUPTOR, DEJARLO SIEMPRE EN ON es decir, el interruptor siempre hacia el borde como en la figura, y simplemente conectar el HC06 cuando se utilice, y desconectarlo cuando queremos subir un programa al Arduino Resumiendo Nuestro consejo es : CUANDO ESTAMOS SUBIENDO UN PROGRAMA DEL ORDENADOR AL ARDUINO : CUANDO ESTAMOS USANDO EL BLUETOOTH  No se toca el interruptor, siempre en posición ON (pestaña al borde de la placa) Si el HC-06 ESTÁ CONECTADO NO SE PUEDE COMUNICAR CON EL ORDENADOR Esto no es nuevo en los cursos de Arduino, en el curso Arduino con código también hay que tener esa precaución https://libros.catedu.es/books/programa-arduino-mediante-codigo/page/modulo-hc-06 Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU APP -> TDR-STEAM - Programa en ArduinoBlocks Este caso es sencillo pues el módulo Bluetooth trabaja como esclavo Si recibe datos, que almacene en una variable tipo texto que le llamaremos codigo el código que recibe de nuestra APP hasta el salto de línea Si recibe una A que encienda el led azul y apague el rojo Si recibe una R que encienda el led rojo y apague el azul La APP tiene que enviar A y salto de línea o R y salto de línea ACUÉRDATE DE SUBIRLO A LA PLACA ARDUINO SIN EL MÓDULO HC06 CONECTADO Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU APP -> TDR-STEAM - La APP La APP Arduino Bluetooth Control Esta APP es para comunicación PLACA->APP es decir, el Bluetooth será como receptor de datos nuestra placa electrónica (slave) y el móvil (master) como emisor de datos.  Esta APP permite enviar datos pero de distintas formas Arduino Bluetooth Control Esta APP es muy completa y configurable, aquí para descargarla de Google Play . El código de programa que tenemos que cargar en la placa se basa en escuchar de forma continua el puerto serie. Cuando llegue el dato, se ejecutará la acción que le indiquemos . ¡¡así de sencillo !! Vincular móvil Hay que vincular nuestro móvil y nuestra APP de Android con el Arduino, para ello sigue este sencillo tutorial : Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU APP -> TDR-STEAM - Resultado Pulsamos en el símbolo de dos flechas circulares arriba a la derecha para vincular al HC06 Sale una pantalla para elegir de todos los elementos Bluetooth vinculados cual elegir, elegimos el HC06 El HC06 deja de parpadear A jugar !! Igual podemos hacer con la voz, decimos rojo o azul y se enciende con la voz los leds También en el terminal podemos escribir R (intro) o A (intro) y se apagan o encienden los leds Retos Utilizar los botones derecha e izquierda para apagar los dos o encender los dos simultáneamente Utilizar otros comandos para usar el RGB  Que emita un sonido o una música si se pulsan los botones APP <-> TDR-STEAM - Arduinoblocks En este caso añadiremos más código al bucle, creamos unas variables tipo texto que sean temperatura, humedad y luz y en crearemos texto con los valores de los sensores correspondientes, una vez creado el texto y finalizado con salto de línea '/' enviamos el texto por bluetooth Hacemos una espera de 2 segundos para no saturar a la APP en datos. ¿Un rollo hacerlo? buenoo.. aquí lo tienes http://www.arduinoblocks.com/web/project/796527 ACUERDATE De quitar el HC-06 para subir este programa al ARDUINO TDR-STEAM APP <-> TDR-STEAM - APP INVENTOR- DESIGNER La comunicación con la placa en este caso no es tan sencilla como en el caso anterior, no nos vale las APPs que hay en Google Play que envían un código y en paz, ahora tenemos que tener una APP que si reciben un código que hagan algo. Esto ya es  exclusivo  por lo tanto  hay que programar una APP que cumpla los requisitos. En nuestro caso lo hemos hecho en APP INVENTOR  https://appinventor.mit.edu/ NO ES EL OBJETIVO DE ESTE CURSO FORMARTE EN APP INVENTOR Pero si no conoces el programa, te recomendamos que vayas a estos contenidos que de una manera muy fácil aprenderás a crear programas con APP INVENTOR y exportarlos al móvil https://libros.catedu.es/books/app-inventor En la parte de DESIGNER  APP <-> TDR-STEAM - APP INVENTOR- Blocks En la parte de Blocks ATENCIÓN : A partir de Android 12 hay que dar permisos a la aplicación para que pueda visualizar los dispositivos bluetooth disponibles, para ver la explicación https://www.youtube.com/watch?v=MNLzS-MOXAg Hay que añadir este código: Puedes descargarte la APP en este enlac e pero tienes que permitir en el móvil instalar APPs desconocidas. Otra forma es en este código QR utilizando la APP de Google Play  MIT AI2 Companion  y poner el código sxbbnv Aquí tienes los pasos de su realización El programa lo tienes aquí  https://gallery.appinventor.mit.edu/?galleryid=e4780fa4-3252-4d73-b846-b2a0935c6d01 Llevar la APP creada en APP INVENTOR al móvil Tienes dos opciones EN VIVO CONNECT - AI COMPANION esta opción es la más rápida, y realmente lo simula a través de la APP INVENTOR. Tienes que tener instalada la APP MIT AI2 COMPANION Se le pasa el código de tu APP a la APP OTRAS OPCIONES Ver https://appinventor.mit.edu/explore/ai2/setup OPCIÓN EN VIVO AI COMPANION Instalas la APP MIT AI2 COMPANION En APP INVENTOR  Y sale un código y un QR asociado al código Abrimos la APP MIT AI2 COMPANION y metemos el código anterior (o lo escaneamos con el QR) En APP INVENTOR verás que sale una barra de progreso enviando tu APP a tu móvil. Cuando termina automáticamente lo ejecuta. APP <-> TDR-STEAM- Resultado Una vez creado la APP vamos en APP Inventor a Build para crear el APK. Si no deseas crear la APP en APP INVENTOR, en este enlace puedes descargar el APK pero ten en cuenta que para instalarlo tienes que permitir orígenes desconocidos, bajo tu responsabilidad Si el TDR-STEAM tiene el programa cargado, simplemente abrimos la APP, conectamos con el HC-06 y a jugar !