bclose

El Bluetooth en S4A

Como utilizar S4A sin cables

Objetivos

 

 

    • Ejecutar programas de S4A en nuestro Arduino sin necesidad de cables.
    • Presentar y configurar el módulo Bluetooth HC-06.
    • Conseguir comunicar el entorno S4A en el PC y Arduino mediante Bluetooth.
 

Material requerido.

Imagen de Arduino UNOArduino Uno o compatible y con el firmware para S4A cargado.

Un PC con el entorno S4A correctamente instalado y configurado.

 

imagen frontal

 Un módulo BlueTooth HC-06

conexiones

Algunos cables de protoboard, preferiblemente Dupont macho/hembra.

Porta baterias

Power supply

 Un porta pilas o una fuente de alimentación para Arduino.

 

INTRODUCCIÓN

 

Si recordáis, en la introducción a S4A que hicimos cuando comenzamos el curso, dijimos que una de las limitaciones que tiene esta herramienta es que hay que tener siempre conectado el Arduino al PC para que S4A pueda comunicarse con él y ejecutar el programa que hayamos creado. Y desde entonces no hemos vuelto a hablar de ello, dando por hecho que sólo podíamos resignarnos y tenerlo conectado continuamente con un cable.

Para  los proyectos que hemos realizado hasta ahora, esto del cable tampoco era un inconveniente muy grande, menos aún en las sesiones en las que hemos utilizado el escenario del S4A. Pero si se nos pasa por la cabeza la idea de hacer, por ejemplo, un robot tipo Rover (como esos que mandamos a la Luna), tener un cable molestando por ahí puede ser un engorro.

Bueno, pues no mentíamos cuando decíamos que la placa necesita estar conectado al PC, pero lo del cable tiene solución: el Bluetooth. Como seguro que sabéis, el Bluetooth es una tecnología que nos permite comunicar dispositivos a distancia sin necesidad de cables, presente en los smartphones, tablets, en lo coches y en infinidad de dispositivos electrónicos.

presentacion

Y como no podría ser de otra manera, existen unos módulos que se conectan a nuestro Arduino y que nos servirán para otorgarle la capacidad de comunicarse vía Bluetooth con otros dispositivos que también soporten esta tecnología.

Así que para conseguir nuestro propósito necesitamoss un PC con Bluetooth y un módulo Bluetooth para nuestro Arduino.

 

ARDUINO Y LOS MÓDULOS BLUETOOTH

 

Sabemos que nuestros Arduinos tienen un conector serie que utilizamos para conectarlo mediante un cable al USB de nuestro PC, y que esto nos permite tanto enviar como recibir datos. Sin embargo esta no es la única opción.

Si nos fijamos en los pines 0 y 1 de Arduino veremos que al lado hay escrito Rx y Tx. ¿Qué significa esto? Pues que estos pines sirven también para realizar la comunicación serie de la misma forma que el cable que hemos utilizado hasta ahora. El pin 0 (Rx) se encarga de recibir datos y el pin 1 (Tx) de transmitir datos.

partes-arduino-uno

Así que si conectamos el módulo Bluetooth a esos dos pines podrá transmitir los datos que lleguen desde otros dispositivos Bluetooth a nuestro Arduino, pudiendo prescindir de cables.  En nuestro caso buscamos recibir los datos que le lleguen desde un PC con Bluetooth y que esté ejecutando S4A.

Hay varios módulos Bluetooth para Arduino, y los más utilizados son el HC-05 y el HC-06. Recomendamos utilizar el HC-06 porque es el más sencillo de conectar y de usar, y será el que utilicemos nosotros para realizar esta sesión.

El HC-06 tiene 4 pines, dos para la alimentación como ya es costumbre, y dos para comunicarse con nuestro Arduino, rotulados como Rx y Tx. A la hora de conectarlo a nuestro Arduino tenemos que conectar el Tx del módulo al Rx del Arduino, y el Tx del módulo al Rx del Arduino, de forma que lo que envíe el módulo Bluetooth lo reciba el Arduino y viceversa. Pero de momento no conectéis nada, ya explicaremos por qué.

Vista posterior

Pero antes de poder utilizarlo de esta forma con el S4A, vamos a tener que cambiar la configuración que tiene predeterminada en el HC-06.

 

CONFIGURANDO EL HC-06 PARA S4A

 

Para configurar el módulo vamos a tener que volver a utilizar el IDE de Arduino, el entorno de programación que se utiliza normalmente para programar los Arduinos, y que utilizamos en la primera sesión del curso de S4A para cargar el programa que nos permite usar S4A con nuestros Arduino. Si por alguna razón no tenéis descargado el IDE, aquí tenéis el enlace que explica cómo hacerlo.

Ahora tenéis que descargar este archivo, que contiene el programa que configurará el Bluetooth: configurar_hc-06_s4a. Lo que hace el programa es cambiar el nombre y la contraseña del Bluetooth para que pongáis la que vosotros queráis, y configurar la velocidad de comunicación para que sea la misma que utiliza el S4A y puedan “entenderse”.

Descomprimir el archivo y ejecutad el programa. En el programa podéis cambiar “PROMETEC” y “5678 por el nombre y la contraseña que queráis que tenga vuestro dispositivo:

String nombre = "PROMETEC"; //Cambiar PROMETEC por el nombre deseado
String password ="5678"; //Cambiar 5678 por el la contraseña deseada

Una vez hecho esto tenemos que cargar el programa en Arduino. Para ello no tenéis más que pulsar en el icono con forma de flecha, y esperar a que en la parte de abajo os aparezca la palabra “Subido”.

Captura

Y una vez hecho esto tendréis que desconectar el cable del ordenador y conectar el módulo Bluetooth HC-06 de la forma que hemos indicado anteriormente y que podéis ver en la siguiente imagen:

montaje bluetooth s4a

Y ahora sí, ya podéis volver a conectar el cable del ordenador. Cuando veáis que se enciende el LED del Arduino que está conectado al pin 13 significará que ya ha terminado de configurarlo.

Una vez configurado habrá que volver a desconectar el Bluetooth del Arduino y cargar el Firmware de S4A en el Arduino para poder volver a trabajar con S4A. Si no os acordáis cómo se hacía o no tenéis el archivo con el Firmware guardado, echad un ojo a esta sesión en la que explicamos cómo hacerlo.

 
  • Si os preguntáis a que viene tanto conectar y desconectar la explicación es que mientras tengamos conectados los pines 0 y 1 del Arduino, la conexión serie mediante el cable no funciona y no nos permite cargarle programas.
  • Por eso desconectamos el módulo para cargar el programa, y una vez cargado podemos conectar el módulo Bluetooth y volver conectar el cable del ordenador para que se ejecute el programa y configure el HC-06. 

Y ya por fin podéis quitar el cable del PC, volver a conectar el HC-06 y conectar el Arduino a la fuente de alimentación.

UTILIZANDO EL BLUETOOTH CON S4A

 

Para conectar el PC en el que ejecutamos S4A y el HC-06 accedemos a la configuración del Bluetooth de nuestro PC y ahí debería aparecernos el módulo con el nombre que le hayamos puesto. Lo seleccionamos, escribimos la contraseña que hemos elegido y esperamos a que se emparejen.

emparejar hc-06 arduino

Entonces abrimos el entorno S4A y si todo ha ido bien, tras un momento de incertidumbre, veremos cómo S4A detecta la placa. Y ya para terminar vamos a hacer un programilla para hacer parpadear el LED de la propia placa Arduino conectado internamente al pin 13 para asegurarnos de que todo esté funcionando correctamente. Veréis que S4A va un poquito más lento a la hora de seleccionar y colocar los bloques, pero nada importante.

blinking led s4a
 
  • Hasta ahora hemos utilizado la alimentación que le da el propio cable que conectamos al USB del ordenador y que sirve también para la comunicación.
  • Pero como precisamente lo que queremos es no depender de ese cable necesitamos una fuente de alimentación externa.
  • Puede ser una fuente de alimentación que se conecta a un enchufe de la casa (como si fuese un cargador de móvil), una caja de alimentación para pilas o una batería, y tiene que tener toma para la alimentación externa del Arduino. 

Pues si veis que efectivamente el LED parpadea, enhorabuena, porque significa que todo ha ido bien y que tenemos todo bien configurado. Podéis volver a realizar cualquiera de las sesiones que hemos visto hasta ahora y deberían funcionar todas correctamente. A partir de ahora utilizaremos este módulo para cosas mucho más divertidas, empezando por intentar hacer un coche que podamos manejar a distancia.

 

RESUMEN DE LA SESIÓN

 

En esta sesión hemos aprendido varias cosas importantes:

 
  • Podemos utilizar el S4A sin necesidad de cables, gracias al Bluetooth.
  • Conocemos un poco mejor cómo funciona nuestro Arduino.
  • Cómo conectar y configurar el módulo HC-06 para que pueda comunicarse con S4A.
  • Hemos realizado un programa y comprobado que S4A lo está ejecutando sin cables de por medio.
 
 
 

 

(15) Comments

    • Marcelo

    La verdad es que no pude conectar el modulo, intente todo varias veces, pero no llego a que el S4A detecte placa, cambié el Serie.Begin por 9600 , lo dejé en 38400… ninguna de las dos formas me funcionó. Alguien podrá ayudarme, a encontrar mi equivocación?.Saludos

    • Hola MArcelo, asegúrate de que tu módulo está a 38400 baudios.

  • Hola.
    En primer lugar agradecer de antemano vuestra ayuda.
    He configurado el módulo HC-06 tal y como explicáis y tras algunos problemas con las velocidades de transmisión del puerto serie lo he conseguido.
    Pero ahora, cuando conecto S4A vía bluetooth con la placa de arduino usando el HC-06 en un programilla que simplemente mueve un par de motores DC a los pocos segundos S4A se bloquea y ya no responde, y esto un montón de veces.
    ¿Hay alguna solución para esto?
    Gracias

    • Hola José, pues la verdad es que no debería, aunque a mí también se me ha parado en alguna ocasión. De todas formas, si quieres trabajar con proyectos sin estar conectado al ordenador continuamente, te recomiendo que pruebes mBlock, que es igual que S4A pero permite cargar los programas en el Arduino y prescindir del cable. Tienes algunos robots y alguna pequeña explicación de mBlock aquí: http://www.prometec.net/mblock/

      Un saludo.

  • Después de horas de pruebas (en el código, en la configuración del puerto, etc.), pude configurar el HC-05, la solución era sumamente fácil y obvia. La velocidad de transmisión de datos que vienen en el firmware, para enlazar S4A con Arduino, es de 38400.
    (Es curioso, con el HC-06 no tuve que configurar su velocidad de transmisión, supongo que es de 9600, pero sin hacer más que realizar las conexiones, S4A reconoció la placa sin problemas.)
    Para el HC-05 tuve que entrar en le modo AT y cambiar la velocidad de transmisión, la coloqué a 38400 mediante la orden AT+UART=38400,0,0.
    Una vez hecho esto, la placa fue reconocida sin problema alguno.
    Saludos

    • Hola Egbert, perdona no te había entendido bien la primera vez. Si te reconoció S4A el HC-06 a la primera tiene que estar también a 38400 configurado por narices. S4A trabaja a esa velocidad. Un saludo.

    • Egbert

    Intenté enlazar el HC-05 con S4A pero sin éxito. ¿Me podrán dar alguna sugerencia en la configuración o decirme si de plano es imposible hacerlo con este modulo? De echo tuve algunos problemas con el modulo que tengo (es un gw-040), porque tienen un botón que me permite (o impide) entrar a los comandos AT, ya lo he logrado, aunque más de un comando no me lo reconoce, me marca error. En este caso quisiera hacer la conexión con S4A. Por donde he tratado de resolver el problema es por la velocidad de comunicación, logré entrar a los comandos AT a una velocidad de 38400bps, así que use esa misma velocidad en la configuración del puerto de mi lap, pero sin exito, S4A se queda buscando la placa.
    Gracias por la ayuda

    • Hola Egbert, intentaremos comprobarlo lo antes posible. Pero si quieres ir probando, tienes que asegurarte de que esté configurado como esclavo y a 38400 baudios. Para configurar estos modulos tienes que pulsar el botón que traen (o cortocircuitar los bornes momentáneamente si no trae el botón) y activar el retorno de línea y de carro. Además los comandos AT son diferentes a los del HC-06.

    • Egbert

    ¿Podré usar el modulo bluetooth HC-05 para hacer la misma practica?

    • Hola Egbert, no lo he probado pero supongo que debería valer, pero asegurándote de que esté configurado como esclavo y con la misma velocidad que S4A que es 38400. Un saludo.

    • Andres

    Hola buen día, tengo una duda, me interesa mucho el uso de los módulos matriciales de 8×8 manipulados con el MAX7219, ahora tengo los módulos FC-16, y en algúnos programas que andan en internet, para enviar mensajes a dichas matrices utilizando Arduino y el Bluetooth, se muestran de forma vertical y no horizontal, aunque si me gustaría ser ayudado de alguna forma, bueno sería encontrar tutoriales de como usar o implementar las librerias tanto MaxMatrx como MD_MAX72xx, es n esta última sólo basta modificar el archivo MD_MAX72xx.h para el harware adecuado y ya está, pero, esto sólo lo puedo realizar con los archivos destinados a o para los de Parola. Te comento que he tratado de encontrar referencias de la libreria MD_MAX72 para adecuarlos a los interesantes archivos que he encontrado pero como mucho compañeros no soy muy buen programador ya que inicio con esto, por tanto es imposible por el momento, realizar esta tarea.
    Gracias y estas haciendo una excelente labor (aunque creo que está por demás decirlo).

  • Volví desde el principio. Observe que el error lo cometí al conectar Tx del bluetooth con el Tx de Arduino, lo mismo hice con Rx. Corregí el error y todo funciona de maravilla.
    Muchas gracias.
    Saludos

    • Estupendo! Nos alegramos de que lo hayas podido corregir. Un saludo.

    • Egbert

    No pude configurar el bluetooth. De echo, cuando subo “configurar_hc-06_s4a” no me cambia la contraseña ni el nombre del dispositivo. Sin embargo, si puedo acceder al él usando la contraseña original. Pero cuando arranco S4A, no se encuentra la placa. Intente hacerlo en la opción “seleccionar puerto serial/USB” y después selecciono manualmente el puerto (que en mi caso me daba COM10 y COM11), pero no tengo resultados. ¿Qué me sugieres?

    • Hola Egbert, probablemente tu bluetooth está configurado a una velocidad distinta de 9600 que es la que tienen por defecto, en teoría al menos. Nuestro programa cambia esa velocidad a la que si entiende S4A que es 38400, pero para poder hacerlo tiene que comunicarse primero con el módulo a la velocidad que tenga el módulo en ese momento.

      Eso lo hacemos en la linea Serial.begin(9600); tu tendrías que ir probando a cambiar esa velocidad entre las posibles hasta que des con la que tiene tu bluetooth en ese momento para poder cambiar el usuario,contraseña y baudrate.

      Un saludo.

Give a Reply

WordPress Anti-Spam by WP-SpamShield