Mostrando entradas con la etiqueta Android. Mostrar todas las entradas
Mostrando entradas con la etiqueta Android. Mostrar todas las entradas

viernes, 13 de enero de 2017

Control del brillo de una bombilla mediante un Dimmer AC y Bluetooth



Gracias a este POST vamos a aprender a controlar el brillo de una bombilla convencional de 220VAC mediante un Dimmer AC, como ya hicimos en un POST anterior, aunque en este caso vamos a modificar o variar el pulso PWM, que controla el Dimmer AC, desde una APP Android a través de Bluetooth y no desde el monitor serie como ya vimos con anterioridad. Ahora bien, para que nuestro Arduino pueda recibir el valor del PWM a través de Bluetooth tenemos que añadirle a nuestro proyecto un módulo Bluetooth HC-05, descrito y configurado en este POST, aunque lo debemos de conectar a nuestro Arduino como se muestra en la siguiente tabla. Cabe recordaros que la velocidad de comunicación (BAUDIOS) configurada mediante comandos AT del módulo Bluetooth HC-05, que en mi caso son 38400 bps (por defecto), debe coincidir con la velocidad de comunicación serie para el módulo Bluetooth que incluimos dentro de la programación que cargaremos a nuestro Arduino UNO (BT.begin(38400);).

  Tabla de conexiones entre nuestro Arduino y el módulo HC-05

Como ya sabemos de un POST anterior, un Dimmer AC es un atenuador de intensidad capaz de regular los 220VAC de su entrada para que su salida ofrezca un valor de 220VAC o inferior, que es donde conectaremos la bombilla para así poder controlar su brillo variando el pulso PWM entregado a través de Bluetooth. A continuación os muestro una tabla donde se relaciona directamente el valor  de la señal PWM con el porcentaje de atenuación del Dimmer y el porcentaje de brillo de la bombilla.

  Diagrama de funcionamiento del Dimmer AC

Como se puede observar en el diagrama anterior, la atenuación del valor de la entrada del Dimmer AC respecto de su salida es inversamente proporcional al brillo de la bombilla, es decir, a mayor atenuación de los 220VAC de la entrada del Dimmer AC obtenemos menor voltaje en la salida del mismo (menor brillo de la bombilla) y viceversa. A continuación os muestro las conexiones que debemos realizar en el Dimmer AC para que nuestro sistema funcione tal y como se ha descrito.

Tabla de conexiones del Dimmer AC

Una vez realizadas las oportunas conexiones de todo el sistema lo primero que tenemos que hacer es compilar y cargar el programa que tenemos en la descarga, en nuestro Arduino, para posteriormente instalar la aplicación "1 Channel Dimmer Bluetooth " que nos podemos descargar del siguiente enlace. Para instalar la APP en nuestro Smartphone, simplemente descomprimimos la carpeta descargada y copiamos el archivo “1CH_Dimmer_Bluetooth.apk” dentro de la tarjeta SD, para posteriormente abrir el explorador de archivos de nuestro Smartphone, buscar la ruta del archivo copiado y ejecutar el archivo dándole todos los permisos que sean necesarios para su instalación.

  Aplicación Android “1 Channel Dimmer Bluetooth”

Una vez instalada la aplicación debemos de realizar una serie de procesos como se muestra en el siguiente vídeo para poder vincular y conectar el módulo Bluetooth HC-05 a nuestro Smartphone y así poder utilizar la aplicación para enviar el valor del PWM mediante Bluetooth.



Si pulsamos el botón “ON” de la APP se envía a través de Bluetooth el valor  “90” (Bombilla completamente encendida) y si por el contrario pulsamos el botón “OFF” se envía el valor “14” (Bombilla completamente apagada).  Para valores intermedios del pulso PWM (entre 14 y 90), es decir, para variar el brillo de la bombilla, tenemos que ir pulsando sobre la barra central y nunca arrastrar el marcador, puesto que si lo hacemos, el sistema quedará bloqueado necesitando un reinicio para volver a su funcionamiento normal.  Si el valor enviado a través de la APP es superior a 90 es considerado por el Dimmer AC en todos los casos como 90, gracias a la programación que le cargamos a nuestro Arduino, y si es inferior a 14 es considerado siempre como 14. Para poder observar el valor del PWM que le estamos mandando al Dimmer AC a través de la APP en  cada momento simplemente tendremos que abrir el monitor serie del IDE de Arduino como ya lo hemos realizado en múltiples ocasiones y comenzar a enviar valores PWM desde la APP.
  Monitor serie


Lista de Materiales:



·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Dimmer AC (50Hz/220V).

·         Módulo Bluetooth HC-05.

·         Casquillo portalámparas de PVC.

·         Bombilla de 28W/220VAC (vale cualquier bombilla de 220VAC).

·         Protoboard.

·         Cables de conexión.





Código del programa:

miércoles, 21 de diciembre de 2016

Panel luminoso de Matrices LED 8x8 controlado mediante Bluetooth


En este POST aprenderemos a controlar mediante Bluetooth un panel luminoso compuesto por 4 matrices LED 8X8, es decir, lo que haremos en cuestión será mostrar un mensaje de texto en forma de bucle desplazándose de derecha a izquierda (Scroll horizontal) dentro de las 4 matrices LED 8x8 que conectaremos en cascada. Estos mensajes que vamos a visualizar en el panel los podemos enviar a través de Bluetooth desde un PC o desde un Smartphone con sistema operativo Android, aunque los que tengáis un sistema operativo iOS lo podréis realizar de una manera similar aunque no se incluya en este POST. No os voy a hablar más sobre la conexión, el funcionamiento y las características de las matrices LED 8X8 porque ya se explicó en otro POST, ahora bien, para que nuestro Arduino pueda recibir los mensajes a través de Bluetooth necesitamos añadirle el módulo Bluetooth HC-06 descrito y configurado justamente en el POST anterior, aunque lo debemos de conectar a nuestro Arduino como se muestra en la siguiente tabla.

  Tabla de conexiones entre nuestro Arduino y el módulo HC-06
 

Una vez realizadas las oportunas conexiones de todo el sistema lo primero que tenemos que hacer es compilar y cargar el programa que tenemos en la descarga, en nuestro Arduino, puesto que es válido para cualquiera de los dos métodos de envío de mensajes de texto (ASCII) a través de Bluetooth que se van a analizar en este POST. A continuación os describo detalladamente cada uno de los dos métodos de los que disponemos para interactuar a través de Bluetooth con nuestro Arduino junto con el módulo HC-06.

 

Envío de mensajes mediante Bluetooth desde un PC


Como ya os anticipaba con anterioridad, uno de los dos métodos que vamos a poder utilizar para enviar mensajes de texto a través de Bluetooth hacia el módulo HC-06 está basado en la utilización de un PC que tenga este tipo de comunicación o añadiéndole a nuestro PC un “Dongle Bluetooth”, que no es más ni menos que un completo y compacto HARDWARE “Plug and Play” que conectaremos en nuestro PC a través del puerto USB para que se pueda comunicar mediante Bluetooth con otros dispositivos que posean este tipo de protocolo de comunicación.

  Dongle Bluetooth

Para poder vincular y conectar el módulo HC-06 a nuestro PC a través de Bluetooth vamos a utilizar el software “BlueSoleil”, mediante el cual crearemos una conexión Bluetooth entre el PC y el módulo HC-06, asignándole un puerto serie del PC (COM) a dicha conexión. Posteriormente, para el envío de los mensajes de texto a través del puerto serie creado, vamos a utilizar el software “Octoplus Terminal”, que es un entorno gráfico muy simple de configurar y utilizar, que nos facilita enormemente dicha tarea. A continuación os dejo los enlaces de descarga de todo el software necesario así como un video donde se detalla todo el proceso de configuración y funcionamiento del sistema.









Envío de mensajes mediante Bluetooth desde un Smartphone


El segundo método que nos permite el envío de mensajes Bluetooth hacia el módulo HC-06 se basa en utilizar un Smartphone, puesto que están dotados de fábrica de este tipo de comunicación. Para ello debemos de instalar la aplicación "Bluetooth Terminal HC-05" desde la propia PLAY STORE del Smartphone o desde el siguiente enlace.

Aplicación Android Bluetooth Terminal HC-05

Una vez instalada la aplicación debemos de realizar una serie de procesos para vincular y conectar el módulo Bluetooth HC-06 al Smartphone y así poder utilizar la aplicación para enviar mensajes de texto (ASCII) mediante Bluetooth. A continuación os dejo el video donde se detalla todo el procedimiento a realizar.




Lista de Materiales:


  • Arduino UNO Rev.3. 
  • Cable USB tipo A-B.
  • Módulo Bluetooth HC-06.
  • PC con Bluetooth o Dongle Bluetooth.
  • Smartphone con S.O Android.
  • Panel luminoso compuesto por 4 Matrices LED 8x8.
  • Fuente de alimentación de 5VDC/3000mA (opcional).
  • Protoboard.
  • Cables de conexión.



Código del programa:


miércoles, 6 de julio de 2016

Robot Miniskybot 2.0 controlado a través de Bluetooth


Hoy os voy a enseñar a controlar, a través de Bluetooth, el “Robot Miniskybot 2.0” que construimos en un POST anterior. Para ello utilizaremos una aplicación, para Smartphones con Sistema Operativo Android, llamada ”Wise HC-06 Carrinho Bluetooth”, mediante la cual, enviaremos una cadena de caracteres única a través de Bluetooth, cada vez que pulsemos cualquiera de las flechas de control de las que dispone la aplicación, a un módulo HC-06 que tendremos conectado a nuestro Arduino, para que este decodifique las cadenas enviando las ordenes de movimiento a los dos servos de rotación continua  del “Robot Miniskybot 2.0", que son los encargados de generar el movimiento.

Aplicación para Android “Wise HC-06 Carrinho Bluetooth”


La aplicación para Android “Wise HC-06 Carrinho Bluetooth” la podemos obtener directamente desde la “Play Store” de nuestro Smartphone Android o instalarla a través de nuestro PC en este enlace.  

Como de momento no se ha trabajado nunca con dispositivos Bluetooth en este BLOG, nos vamos a parar un poco para poder comprender este tipo de comunicación y en concreto describir el funcionamiento del módulo Bluetooth HC-06, que tan comúnmente se va a utilizar junto con nuestro Arduino, puesto que es inevitable utilizar un módulo Bluetooth HC-06 o HC-05 como puerta de enlace entre los dispositivos Bluetooth, tales como Smartphones o PC´s, y nuestro Arduino, ya que por sí solo no es capaz de comunicarse con este tipo de tecnología.

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:

·         Facilitar las comunicaciones entre equipos móviles.

·         Eliminar los cables y conectores entre éstos.

·         Ofrecer la posibilidad de crear pequeñas redes inalámbricas.

·         Facilitar la sincronización de datos entre equipos personales.

Los dispositivos que con mayor frecuencia utilizan esta tecnología pertenecen a sectores de las telecomunicaciones y la informática personal, como PDA, teléfonos móviles, computadoras portátiles, ordenadores personales, impresoras, cámaras digitales y en nuestro caso el módulo Bluetooth HC-06 que vamos a interconectar con nuestro Arduino.

Logotipo del dispositivo Bluetooth
 
El módulo de Bluetooth HC-06 se trata de un dispositivo relativamente económico y que habitualmente se vende en un formato que permite insertarlo en un protoboard y cablearlo directamente a nuestro Arduino, incluso sin realizar soldaduras. Algunas de las características más importantes de este dispositivo se describen a continuación:

·         Compatible con el protocolo Bluetooth V2.0.

·         Voltaje de alimentación: 3.3VDC – 6VDC.

·         Voltaje de operación: 3.3VDC.

·         Baud rate ajustable: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.

·         Trabaja exclusivamente en modo esclavo, es decir, solo recibe datos.

·         Corriente de operación: < 40 mA

·         Corriente modo sleep: < 1mA


Módulo Bluetooth HC-06

Podemos cambiar las configuraciones de  velocidad de transmisión de datos, el código de emparejamiento, el nombre, etc. mediante un protocolo denominado comandos AT. Para poder hacerlo es necesario que el HC-06 no este emparejado ni siendo usado por ningún dispositivo aunque no es el propósito de este POST, sino que simplemente utilizaremos los valores por defecto que el módulo trae programados, aunque es posible que hayan sido manipulados y tengamos que recurrir a los comandos AT.

·         Nombre por defeco: “linvor” o “HC-06”.

·         Código de emparejamiento por defecto: 1234.

·         La velocidad por defecto (BAUD RATE): 9600. 

Para conectar el módulo Bluetooth HC-06 con la aplicación de Android, lo primero que tendremos que hacer es encender el Bluetooth de nuestro Smartphone y cerciorarnos de que el módulo Bluetooth HC-06 esté correctamente alimentado (+5V y GND) y conectado a nuestro Arduino de la siguiente manera:

·         Pin TX del módulo Bluetooth HC-06  à Pin digital 10 de Arduino.

·         Pin RX del módulo Bluetooth HC-06  à Pin digital 11 de Arduino.

Posteriormente tendremos que vincular el módulo Bluetooth HC-06 con nuestro Smartphone como si de cualquier otro dispositivo Bluetooth se tratara, es decir, una vez encontrado el módulo Bluetooth HC-06 (con nombre  “linvor” o “HC-06” si no lo hemos modificado mediante comandos AT), tendremos que ingresar el código de emparejamiento (1234 si no la hemos modificado mediante comandos AT). Por último, abriremos la aplicación y pulsaremos sobre el icono del Bluetooth para que nos muestre la lista de dispositivos vinculados a nuestro Smartphone, donde tenemos que seleccionar la conexión con nombre “HC-06” para conectarnos al módulo Bluetooth HC-06. Solo tendremos que fijarnos que si hemos realizado la conexión Bluetooth correctamente, el LED de conexión del módulo Bluetooth HC-06 dejará de parpadear para finalmente quedarse encendido todo el tiempo y de esta manera sabremos que todo está ya listo para que comience a moverse el “Robot Miniskybot 2.0” en distintas direcciones, cada vez que pulsemos sobre las diferentes flechas de la aplicación. 

Para la programación del robot he tenido en cuenta los cinco estados siguientes:

•          Avance: Recibe la cadena “F1S0“ à Flecha arriba de la aplicación.

•          Retroceso: Recibe la cadena “T1S0“ à Flecha abajo de la aplicación (si el robot está parado).

•          Paro: Recibe la cadena “T1S0“ à Flecha abajo de la aplicación (si el robot está moviéndose).

•          Derecha: Recibe la cadena “D1S0“ à Flecha derecha de la aplicación.

•          Izquierda: Recibe la cadena “E1S0“ à Flecha izquierda de la aplicación. 

Al pulsar cada una de las flechas de la aplicación, el robot se moverá en una dirección concreta,  a excepción de la flecha hacia abajo, puesto que si el robot está en movimiento, al pulsarla el robot se para, y si el robot está parado, al pulsarla se moverá marcha atrás (retroceso). El tratamiento de las cadenas de caracteres que recibe nuestro Arduino a través de Bluetooth se realiza dentro del programa mediante sentencias “if”, además de incluir múltiples comentarios que nos aclaran el funcionamiento de todo el sistema.   

Por último y antes de que se me olvide, tengo que darle las gracias a “Adriano Moutinho” por haber creado una aplicación tan simple y funcional, y a vosotros deciros que es muy importante dejar votos positivos en las aplicaciones gratuitas que os descarguéis, para que los desarrolladores obtengan algún tipo de beneficio con su trabajo, aunque solo sea el del reconocimiento del mérito personal.



Lista de Materiales:

 
·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo Bluetooth HC-06 (Esclavo).

·         2 Servos de rotación continua (SM-S4306R).

·         Portapilas 6xAAA con conector Jack macho de 2,1mm.

·         6 pilas recargables AAA de 1000mAh con cargador.

·         Robot Miniskybot 2.0:
o   Chasis y dos ruedas impresos en plástico ABS.
o   4 tornillos de  M3x10mm  y 4 tuercas M3.
o   Canica de 16mm de diámetro.
o   2 Juntas tóricas de 50mm de diámetro y 3 mm de grosor.

·         Gomas elásticas para la sujeción de los elementos.

·         Smartphone con S.O Android.

·         Aplicación “Wise HC-06 Carrinho Bluetooth” (Play Store).

·         Protoboard.

·         Cables de conexión.

  
Código del programa: