Robot Bluetooth con Arduino Nano y Driver TB6612FNG Deja un comentario

En este proyecto construiremos un robot controlado por Bluetooth utilizando un Arduino Nano V3, el driver TB6612FNG para controlar los motores, y el módulo Bluetooth HC-05 para recibir comandos inalámbricos desde un smartphone con la aplicación Serial Bluetooth Terminal
La App la puedes descargar desde aquí

https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&pli=1

Este montaje permite manejar el robot en dirección y velocidad con rampas suaves, ideal para movimientos más realistas y seguros.


Materiales necesarios

  • Arduino Nano V3 – Microcontrolador principal que ejecuta el programa.
  • Driver TB6612FNG – Controla los motores de manera independiente y eficiente.
  • Módulo Bluetooth HC-05 (V2 LE 4.0) – Permite la comunicación inalámbrica con el robot.
  • 4 Motores DC (dos pares en paralelo para mayor potencia).
  • Batería LiPo o pack de pilas de 7.4 V – Alimentación de los motores.
  • Protoboard o Protoshield Nano para facilitar las conexiones.
  • Cables Dupont y chasis de robot.

Módulo Bluetooth HC-05

El HC-05 es ampliamente utilizado en proyectos de mecatrónica y electrónica para comunicación inalámbrica entre microcontroladores, PC o dispositivos móviles.
Puede funcionar en modo maestro o esclavo, emulando un puerto serie.

Características principales:

  • Voltaje de funcionamiento: 3.3 ~ 5 VDC
  • Versión Bluetooth: V2.0 + EDR
  • Velocidad de transmisión (Baud Rate): 9600, 8, 1
  • Rango de señal: hasta 10 m
  • Modos: Esclavo / Maestro

Comandos AT más usados:

  • AT → Testear comunicación.
  • AT+NAME? / AT+NAME= → Ver o cambiar el nombre del dispositivo.
  • AT+PSWD? / AT+PSWD= → Modificar contraseña (requiere 6 dígitos en V2).
  • AT+UART? / AT+UART= → Cambiar baudrate.
  • AT+ROLE? / AT+ROLE= → Definir rol (0=Esclavo, 1=Maestro).
  • AT+RESET → Reiniciar el módulo.

Diagrama de conexiones para configurar el HC-05

Código de Ejemplo para configurar el HC-05 con Arduino

En la versión V2 del Módulo HC-05 BLE no es necesario trabajar en modo AT2, el módulo inicia en modo de configuración por un momento breve. Puedes conectarlo y empezar a enviar comandos. (Abre la Terminal, Selecciona “Desplazamiento automático” y “Ambos NL & CR” y 38400 para modo AT2 o 9600 para modo AT1 en módulos V2 BLE) Para otras versiones anteriores es necesario mantener presionado el botón de configuración en el módulo o colocar el pin de EN a positivo antes de energizar el modulo para acceder a modo AT2 y en el sketch cambiar la velocidad del objeto “miBT” a 38400 bps.

En nuestro caso validaremos el nombre, velocidad de operación, contraseña y rol, el cual será (0=Esclavo).

AT Testear comunicación.
RESPUESTA: OK
AT+NAME?
RESPUESTA: HC-05
AT+NAME= cambiar el nombre del dispositivo.
AT+PSWD?
RESPUESTA: 1234 (si el módulo es V2 no tiene clave establecida)
AT+PSWD= Modificar contraseña (requiere 6 dígitos en V2).
AT+UART?
RESPUESTA: 9600,0,0
AT+UART= Cambiar baudrate. (4800, 9600, 19200, 38400, 57600, 115200)
AT+ROLE= Definir rol (0=Esclavo, 1=Maestro).
AT+RESET Reiniciar el módulo.

Importante: Existen versiones HC-05 V2.3_LE que utilizan Bluetooth 4.0 BLE en lugar de 2.0 SPP, lo que puede generar incompatibilidades con algunas apps clásicas.


Pinout de los módulos

Arduino Nano V3

El Arduino Nano utiliza el microcontrolador ATmega328p y ofrece pines digitales y analógicos en un formato compacto. (Algunas placas genéricas utilizan una versión antigua del gestor de arranque, si tienes problemas para subir el sketch considera cambiarla antes de subirlo a la placa)

  • Alimentación: 5 V (USB o pin VIN).
  • Pines de control: D2-D13, A0-A7.
  • Comunicación serie: D0 (RX) y D1 (TX).

Driver TB6612FNG

Permite controlar dos canales de motor DC de forma independiente.

  • AIN1 / AIN2 / PWMA: Control canal A.
  • BIN1 / BIN2 / PWMB: Control canal B.
  • STBY: Habilita el chip.
  • VM: Alimentación motores (hasta 13.5 V).
  • VCC: Lógica (5 V).
  • GND: Tierra común.

Librería necesaria

https://github.com/sparkfun/SparkFun_TB6612FNG_Arduino_Library


Conexiones utilizadas en este proyecto

ComponentePin Arduino
TB6612 AIN1D2
TB6612 AIN2D4
TB6612 PWMAD5
TB6612 BIN1D7
TB6612 BIN2D8
TB6612 PWMBD6
TB6612 STBYD9
Bluetooth RXD10
Bluetooth TXD11
MotoresSalidas A y B (pares en paralelo)

Diagrama de conexiones


Funcionamiento del código

El programa recibe comandos de un carácter desde la aplicación Bluetooth:

  • F → Avanzar.
  • B → Retroceder.
  • L → Girar a la izquierda.
  • R → Girar a la derecha.
  • S → Detener.

Se implementa una rampa de aceleración para aumentar o disminuir la velocidad gradualmente, evitando movimientos bruscos que puedan dañar los motores.

Sketch para Arduino

Deja una respuesta