Archivos Mensuales: noviembre 2013

Comunicación Bluetooth

Hemos hablado en anteriores entradas de distintas formas que tiene Arduino para comunicarse, aunque en definitiva solo es una, tipo serie. Hoy hablaremos de cómo podemos comunicarnos con Arduino a través del bluetooth.

El dispositivo que vamos a emplear es el “JY-MCU” que se puede encontrar por Internet a un precio razonable (menos de 8 euros).

JY-MCU Este Pequeño módulo Bluetooth transmisor / receptor TTL, fue diseñado para ser controlado a través de RS232, permite transmitir y recibir datos a través de tecnología Bluetooth

ESPECIFICACIONES

Modulo inalámbrico Bluetooth TTL controlado por RS232.

Antena en PCB.

Chipset: CSR.

Versión de Bluetooth: V2.0.

Voltaje de operación: 3.3V.

Corriente de Operación: 20 a 30 mA.

Velocidad de transmisión definida por usuario entre 1200 y  115200.

Predeterminado 9600, N, 8, 1.

Contraseña de fábrica: 1234

Nombre de fábrica: HC-05

Vamos a utilizar una tableta con S.O. Android y una app que podemos encontrar en Google Play llamada “Bluetooth Serial Controller”, disponible en:

https://play.google.com/store/apps/details?id=mBluetoothSerialController.nomal&hl=es

Bluetooth_Serie_Controler

He utilizado esta aplicación por que se adapta a la mayoría de los requerimientos que se necesita para la creación de proyectos de experimentación, es bastante completa y no tiene un nivel de dificulta elevado su configuración.

Lo primero que vamos a realizar es conectar el modulo “JY-MCU” a la placa Arduino, con solo 4 cables.

Pin VCC– Se puede alimentar de 3.6v a 6v, para el ejemplo utilizamos la salida de 5v del Arduino.

Pin GND– Conectada a masa del Arduino.

Pin TXD–  Trasmisión de datos, para el ejemplo conectada al RX (Pin 0) del Arduino.

Pin RXD–  Recepción de datos,  para el ejemplo conectada al TX (Pin 1) del Arduino .

Una vez realizado, observamos que el led del Bluetooth parpadea.

Abrimos la aplicación en la tableta y realizamos la conexión. Para ello debemos buscar el nombre que venia de fabrica (HC-05, en mi caso) o el que al configurar hubiésemos dado. Introducimos el password que venía de fabrica (1234, en mi caso) o el que al configurar hubiésemos dado. Cuando se produzca el emparejamiento el led del Bluetooth dejará de parpadear y se quedará fijo, esto es síntoma que la conexión se ha establecido.

Ya estamos listo para recibir y enviar datos desde la tableta, ahora solo debemos de configurar el programa, definiendo que botones vamos a utilizar, el nombre que le vamos a dar a cada botón  y asignándoles el dato a enviar por cada uno de ellos. La aplicación cuenta con algunos parámetros más de configuración que son fáciles de deducir.

Arduino posee comunicación Serial (Rx, Tx) en los pines 0 y 1 respectivamente, sin embargo algunas veces es deseable observar la información transferida en el Monitor Serial por lo que conviene no usar estos pines en lo posible, en su lugar usar un Software Serial en los pines 2 y 3 (Transmisión Serial por Software, no por Hardware), los cuales serán Rx y Tx respectivamente.

El código del programa se puede ver un poco más abajo. He reutilizado parte del código de la entrada “Unimos Todo en una Placa de Coche” y he añadido alguna función de desplazamiento más. Como se puede ver es muy intuitivo y se explica casi solo.

COMANDO PARA LA MODIFICACIÓN DEL MÓDULO BLUETOOTH:
COMPROBAR COMUNICACIÓN.

Envías: AT                                       Recibes: OK

 RESET

Envías: AT+RESET                       Recibes: OK

 REESTABLECER VALORES DE FRÁBRICA

Envías: AT+ORGL                         Recibes: OK

Restablece con los valores: pin code-1234, nombre- HC-05, 9600 baudios, N, 8, 1.

 ESTABLECER VELOCIDAD EN BAUDIOS.

Envías: AT+BAUD1                       Recibes: OK1200

Envías: AT+BAUD2                       Recibes: OK2400……

1———1200

2———2400

3———4800

4———9600 (Por defecto).

5———19200

6———38400

7———57600

8———115200

9———230400

A———460800

B———921600

C———1382400

Cuidado al  configurar la velocidad, ya que el PC no puede configurarse por encima de 115200 baudios, por lo que para volver a velocidades inferiores la solución sería cambiar la velocidad con un microcontrolador.

CAMBIO DE NOMBRE.

Envías: AT+NAMEnombre           Recibes: OKname

Envías: AT+NAMEbill_gates        Recibes: OKname

CAMBIO DE PIN/PASSWORD.

Envías: AT+PINxxxx                      Recibes: OKsetpin              (pin de 4 cifras)

Envías: AT+PIN8888.                    Recibes: OKsetpin.

CONFIGURACION PARIDAD NINGUNA.

(Los módems de versión superior a V1.5 pueden usar este comando).

Envías: AT+PN (Por defecto)       Recibes: OK NONE

CONFIGURACION PARIDAD IMPAR.

(Los modems de versión superior a V1.5 pueden usar este comando)..

Envías: AT+PO                               Recibes: OK ODD

CONFIGURACION PARIDAD PAR.

(Los modems de versión superior a V1.5 pueden usar este comando).

Envías: AT+PE                               Recibes: OK EVEN

OBTENCION DE VERSION.

Envías: AT+VERSION                  Recibes: LinvorV1.n

Hay más parámetros de configuración e información que se pueden consultar en la página de características del producto.

Esquema Eléctrico:

Coche_Bluetooth_Esquema

Esquema Práctico:

Coche_Bluetooth_bb

Código del Programa:

Codigo_Comunicacion_Bluetooth

Fotos:

Tablet_Bluetooth_2

App de Android

Coche_Bluetooth_1

Vista de conjunto

Coche_Bluetooth_2

Código fuente:

Comunicacion_Bluetooth.ino

Ficha del Proyecto:

Comunicacion Bluetooth Ficha 20

Vídeo resumen:

 

 

 

Anuncios

Comunicación con Visual Basic

Este post es una continuación de los dos anteriores “Comunicación Serie I y II”. En este caso lo que realizamos es una comunicación con un programa desarrollado en Visual Basic 2010 Express.

Una vez comprendido como se comunica la placa Arduino, lo que falta por explicar es como lo realiza VB, pues bien el funcionamiento a grandes rasgos de la aplicación es el siguiente:

  • Inicializamos el puerto serie

Inicializar

  • Diseñamos el Formulario

Formulario

  • Creamos un Procedimiento que obtiene los datos

Procedimiento

  • Establecemos un tiempo de petición de datos, que en esta aplicación es seleccionable.

tiempo

Cuando queremos un dato el programa(VB) manda un “10” con la sentencia “SerialPort1.Write(Chr(10))”, Arduino la recibe con el código “if (Serial.available()) ….  dato = Serial.read() …    if (dato==10)” y manda el valor de la entrada digital con la sentencia “Serial.println(analogRead(sensorPin))”, es un sistema de petición y concesión de datos.

Para que Arduino y Visual Basic se entienda deben establecerse los mismos parámetros de comunicación.

 

Arduino                                                                    Visual Basic SerialPort

Arduino COM3

 

 

Serial.begin(9600);

 

 

 

 

 

 

 

 

 

 

Esta es una aplicación que simula el funcionamiento de un polímetro digital, por supuesto, solo está operativo la lectura de voltajes en el rango de 0 a 5 voltios en corriente continua.

 

Con algunas modificaciones se puede llegar a completar su funcionamiento.

 

Por ejemplo:

Para la medida de corriente alterna, basta con insertar un diodo rectificador en serie. 

Para la medida de intensidades, se puede poner un transductor de intensidad a otra de las entradas analógicas.

Para la medida de resistencias, se puede construir un Puente de Wheatstone a otra entrada analógica diferente.

Y por último, para la medida de frecuencias, se puede utilizar un transductor de frecuencias a otra entrada analógica distinta.

Ahora solo falta utilizar las salidas digitales, para mediante reles, conmutar las distintas lecturas.

 

La captación y representación de valores con un tiempo definido, si está implementado, con ello se puede monitorizar el funcionamiento de un circuito.

Esto no es más que el inicio de un proyecto que falta por completar y que animo a que lo realicéis, y si no os importa me lo comuniquéis.

 

Espero haber sido capaz de explicar el funcionamiento del proyecto, si tenéis alguna duda, no dudéis en contactar, y si la se, os la resuelvo.

Esquema Eléctrico:

Comunicacion_VBasic_Esquema

Esquema Práctico:

Comunicacion_VBasic_

Código del Programa Arduino:

Codigo_VBasic

Código del Programa Visual Basic:

Codigo_Visual_Basic

Fotos:

DSC_0036

shot0001

Captura de Pantalla de la Aplicación

Código fuente:

Polimetro.ino

Ficha del Proyecto:

Comunicación Visual Basic Ficha 19

Vídeo resumen: