Select Page

En este artículo vamos a enseñarte como puedes realizar la programación inalámbrica de Arduino por Bluetooth, es decir, como puedes cargar tus programas a la placa ¡Sin cables!.

La carga inalámbrica de programas puede ser útil si requieres que tu arduino se encuentre lejos de tu lugar de trabajo (escondido en un gabinete, por ejemplo), en campo: para actualizar el firmware de placas que no son fácilmente accesibles, en circuitos que no se encuentran aislados de la red eléctrica o con alto voltaje o simplemente por que no te agrada tener una gran cantidad de cables en tu área de trabajo.

En la foto de portada observamos el circuito que utilizaremos armado sobre un protoboard, pero que podemos armar de forma más definitiva usando un proto shield.

Materiales requeridos

Para esta experiencia estaremos usando uno de nuestros módulos bluetooth HC-05, ya que este módulo se comercializa con un PCB que expone el pin “status”. Este pin puede configurarse para cambiar a estado bajo cuando abrimos la conexión al puerto serie bluetooth, lo cual nos proporciona la forma ideal de activar el reset (y comenzar el funcionamiento del bootloader) del arduino.

  • Arduino Uno R3
  • Módulo bluetooth HC-05

Configurando el módulo HC-05 para la programación inalámbrica de Arduino por Bluetooth

Antes de que el HC-05 funcione como un “programador de arduinos”, debemos configurar el módulo para que se comporte como lo requerimos. Debemos asegurarnos que el módulo tenga los siguientes parámetros ajustados:

  • En el caso de Arduino UNO con Optiboot: UART configurada a 115200 baudios, 8 bits, 1 bit de parada, sin paridad
  • Para Arduino Duemilanove / Decimilia: UART configurada a 56700 baudios, 8 bits, 1 bit de parada, sin paridad
  • Configurar la polaridad del pin de state para la polaridad adecuada

Ya explicamos en otra entrada el funcionamiento del módulo bluetooth HC-05 y como entrar al modo de configuración. Por lo que solamente dejamos la secuencia de comandos que debemos introducir para poner a funcionar el módulo como “programador inalámbrico” para tu arduino.

Comandos para configurar el módulo HC-05

Linea por linea lo que hacemos es lo siguiente:

  1. Restaurar la configuración de fabrica
  2. Configurar en modo esclavo (puente serial transparente desde la PC)
  3. Ajustar la polaridad del pin 32 (etiquetado como State en nuestros módulos) del módulo HC-05 para que vaya a estado bajo cuando un dispositivo se conecte al módulo
  4. Hacemos que el baudrate coincida con la velocidad del bootloader
  5. Salir del modo de configuración e iniciar la operación normal del módulo HC-05

Si eres curioso, puedes consultar la hoja de datos del bluetooth HC-05 para ver los detalles de cada comando utilizado.

Armado del circuito para la programación inalámbrica de Arduino por Bluetooth

Conectaremos los pines TX y RX del bluetooth a los pines RX y TX del arduino respectivamente (van cruzados). El pin status del bluetooth pasará a funcionar como reset y debemos conectarlo al pin “reset” del arduino a través de un capacitor cerámico de 100 nF.

Las resistencias que se muestran en el circuito son para reducir el voltaje del pin TX (salida de 5 volts) de arduino a algo cercano a 3.3 Volts, que es el nivel lógico que admite el módulo bluetooth.

Las conexiones van como se muestra en la siguiente imagen:Circuito para la programación inalámbrica de Arduino por BluetoothUna vez que tengamos armado el circuito puede verse de la siguiente manera en un protoboard.programacion_inalambrica_de_arduino_por_bluetooth_01En este momento ya tenemos el hardware listo para intentar realizar la programación de Arduino por Bluetooth.

Programación inalámbrica de Arduino por Bluetooth

Una vez que ya tenemos el módulo bluetooth configurado y el circuito montado, podemos intentar la programación inalámbrica de Arduino por Bluetooth por primera vez.

En este punto vamos a asumir que ya tenemos el módulo HC-05 emparejado con nuestra PC y tenemos el puerto serie sobre bluetooth mostrándose correctamente en nuestro administrador de dispositivos.

La forma de emparejar un dispositivo bluetooth varía de acuerdo al sistema operativo y no lo vamos a incluir aquí. Pero debemos revisar que en el administrador de dispositivos de windows se muestren correctamente los puertos serie virtuales de bluetooth, como se muestra a continuación:programacion_inalambrica_de_arduino_por_bluetooth_00Abrimos el IDE de arduino como es habitual y seleccionamos el nuevo puerto serie que se creo cuando emparejamos el bluetooth con la PC.programacion_inalambrica_de_arduino_por_bluetooth_01Abrimos el sketch de “Blink” que se encuentra en la carpeta de ejemplos y presionamos el botón “Cargar” para comenzar la descarga del programa a la tarjeta arduino.programacion_inalambrica_de_arduino_por_bluetooth_02La carga del programa debería transcurrir de forma normal, hasta que se comience a ejecutar el código cargado en el arduino. Si hay errores puede deberse a que conectamos alguna de las señales incorrectamente o que no configuramos correctamente la polaridad del pin “state”.

Si por algún motivo el sketch no se puede grabar en el arduino, hay que experimentar con el valor del capacitor, normalmente es buena idea aumentar su valor hasta garantizar que el arduino se resetea de manera correcta al abrir el puerto serie sobre bluetooth. Los valores recomendamos son de 100 nF a 1 uF.

Conclusiones

  • La Programación inalámbrica de Arduino por Bluetooth es una buena alternativa cuando no tenemos a la mano la tarjeta para conectarla al puerto USB de la computadora.
  • Podemos convertir cualquier arduino en una placa inalámbrica, capaz de ser programada a distancia mediante bluetooth.
  • Incluso podemos utilizar solamente el ATMEGA328 con el módulo bluetooth dentro de algún desarrollo.
  • El baudrate esta fijo en 115200 baudios, por que es la velocidad de descarga para optiboot (bootloader de arduino UNO).
  • Cualquier sketch que desee transmitir información a la PC mediante bluetooth (por ejemplo con Serial.write()), debe hacerlo utilizando la velocidad de 115200 baudios, ya que el bluetooth permanecerá configurado de esa forma.
  • La carga de los sketch puede durar más si se usa bluetooth, al parecer se debe a la sobrecarga de los protocolos involucrados en la transmisión inalámbrica.
  • Recordemos que cada vez que nos conectemos con un dispositivo bluetooth al arduino, este se va a reiniciar.
Solicitar notificaciones sobre este producto Te informaremos cuando este producto se encuentre en disponible. Por favor introduce un correo electrónico valido, solo será usado para notificarte cuando tengamos stock.