Bluetooth
- Un poco de teoría Bluetooth
- Conexión del módulo Bluetooth
- APP -> TDR-STEAM - Programa en ArduinoBlocks
- APP -> TDR-STEAM - La APP
- APP -> TDR-STEAM - Resultado
- APP <-> TDR-STEAM - Arduinoblocks
- APP <-> TDR-STEAM - APP INVENTOR- DESIGNER
- APP <-> TDR-STEAM - APP INVENTOR- Blocks
- Llevar la APP creada en APP INVENTOR al móvil
- APP <-> TDR-STEAM- Resultado
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 109) 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.
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 en el móvil
La comunicación con la placa en este caso es muy sencilla, pues estamos empleando el Bluetooth como esclavo, es decir, será como receptor de datos nuestra placa electrónica (slave) y el móvil (master) como emisor de datos.
En nuestro caso usaremos caracteres (bytes) que enviaremos desde un master, como un teléfono móvil. Hay muchas aplicaciones gratuitas para enviar datos. Podemos usar cualquier APP que emita un código por Bluetooth. hay muchos, nosotros hemos elegido este :
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 enlace 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
- CARGAR BUILD- ANDROID APP (.apk)
- Se descarga el fichero apk
- Lo llevas a tu móvil pero tiene que permitir instalar APPs de lugares desconocidos
- 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.
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 procede a enviar la APP al móvil y a ejecutarlo
OPCIÓN CARGAR BUILD- ANDROID APP (.apk)
En esta opción, descargamos el fichero con extensión apk
Procede a compilarlo
Y te da dos opciones para descargar el fichero
Si optas por descargarlo, tienes que buscar la manera de llevarlo al móvil (enviándotelo por email a ti mismo, o whatsapp a ti mismo a veces no funciona pues lo bloquean por seguridad)
La opción de descargarlo por QR pregunta por abrir el link de descarga
Te preguntará permisos para la descarga e instalación de apps de orígenes desconocidos, en mi caso he tenido que permitir los que sean por DuckDuckGo que es el navegador que tengo en el móvil y por donde se ha descargado el enlace anteior
Una vez descargado :
Si pulsamos, intenta instalarlo pero vuelve a salir un mensaje de bloqueo que tenemos que dar a More details - Install anyway
y por fin ya funciona
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 !