- Material requerido
- Módulo Bluetooth HC-06
- Diagrama de circuito
- Configuración de la aplicación Roboremo para controlar el servo:
- Código y explicación
- Funcionamiento del control del servomotor mediante Bluetooth:
El uso de un servomotor es común en robótica para un control preciso. Aquí, en este tutorial, le mostraremos cómo usar un servomotor de forma inalámbrica con un Arduino UNO y un dispositivo Android a través de una conexión Bluetooth. Ya controlamos el servo con Arduino, esta vez estamos controlando el servomotor usando Arduino y Bluetooth.
Material requerido
- Arduino UNO
- Módulo Bluetooth HC-05 o HC-06
- Servo motor
- Aplicación Roboremo de Playstore
- Tablero de circuitos
- Cable de conexión
Módulo Bluetooth HC-06
Bluetooth puede funcionar en los dos modos siguientes:
- Modo de comando
- Modo operativo
En Command Mode podremos configurar las propiedades de Bluetooth como el nombre de la señal de Bluetooth, su contraseña, la tasa de baudios de operación, etc. El Modo de Operación es aquel en el que podremos enviar y recibir datos entre el Microcontrolador PIC y el módulo Bluetooth. Por lo tanto, en este tutorial jugaremos solo con el modo operativo. El modo de comando se dejará a la configuración predeterminada. El nombre del dispositivo será HC-05 (estoy usando HC-06) y la contraseña será 0000 o 1234 y, lo más importante, la velocidad en baudios predeterminada para todos los módulos Bluetooth será 9600.
El módulo funciona con un suministro de 5 V y los pines de señal funcionan con 3,3 V, por lo que hay un regulador de 3,3 V en el módulo. Por tanto, no debemos preocuparnos por ello. De los seis pines, solo cuatro se utilizarán en el modo de funcionamiento. La tabla de conexión de pines se muestra a continuación
S. No | Pin en HC-05 / HC-06 | Pin nombre en MCU | Número de pin en PIC |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 nd pin |
3 | Tx | RC6 / Tx / CK | 25 º pin |
4 | Rx | RC7 / Rx / DT | 26 th pin |
5 | Estado | CAROLINA DEL NORTE | CAROLINA DEL NORTE |
6 | ES (habilitado) | CAROLINA DEL NORTE | CAROLINA DEL NORTE |
Consulte nuestros otros proyectos para obtener más información sobre el módulo Bluetooth HC-05 con otros microcontroladores:
- Coche de juguete controlado por Bluetooth usando Arduino
- Sistema de automatización del hogar controlado por Bluetooth usando 8051
- Luces controladas por voz usando Raspberry Pi
- Radio FM controlada por teléfono inteligente usando Arduino y procesamiento
- Interfaz del módulo Bluetooth HC-06 con el microcontrolador PIC
Consulte también todos los proyectos relacionados con bluetooth aquí.
Diagrama de circuito
El diagrama de circuito para este proyecto de control de servomotor Bluetooth Arduino se muestra a continuación:
Configuración de la aplicación Roboremo para controlar el servo:
Paso 1: - Descargue la aplicación Roboremo de la Play Store de Android e instálela en su teléfono inteligente. Después de instalarlo, verá la ventana de la aplicación como se muestra en la figura 1 y al hacer clic en el botón 'Menú' verá la ventana que se muestra en la figura 2 a continuación:
Paso 2: - Luego haga clic en el botón de conexión y verá la ventana que se muestra en la figura 3 a continuación, luego debe seleccionar ' Bluetooth RFCOMM' y luego podrá conectar su módulo bluetooth HC-06 con su aplicación de Android 'Roboremo'.
Paso 3: - Después de conectarse al módulo bluetooth HC-06, vuelva a la ventana de la figura 2 y luego haga clic en ' editar ui ' para crear la interfaz de usuario de acuerdo con sus necesidades.
Cuando haga clic en 'editar ui' , verá nuevamente la ventana que se muestra en la figura 1, luego haga clic en cualquier lugar de la pantalla, verá la ventana de la aplicación como en la figura 4 y seleccione ' Botón ' para obtener la estructura del botón.
Paso 4: - Después de seleccionar el botón, obtendrá una estructura de botones en la pantalla para editar. Puede cambiar el tamaño y mover la estructura a cualquier lugar de la pantalla. Ahora, para configurar el valor que se enviará al hacer clic a través de Bluetooth, tiene 'establecer acción de presionar' (como se muestra en la figura 6) y escribe el valor que desea enviar desde ese botón en particular. Por ejemplo, estamos enviando '1' para rotar el servo presionando el botón 'Inicio' en la aplicación de Android Roboremo.
Puede consultar todos los valores, que se envían al hacer clic en los diferentes botones, en la tabla que figura más adelante.
Paso 5: - Finalmente tenemos la Interfaz de Usuario para controlar el servomotor mediante Smartphone.
Código y explicación
El código completo para el servomotor de control Arduino a través de Bluetooth se proporciona al final.
Arduino tiene una biblioteca para servomotores y maneja todas las cosas relacionadas con PWM para rotar el servo, solo necesita ingresar el ángulo al que desea rotar y existe la función servo1.write (ángulo); que rotará el servo al ángulo deseado.
Entonces, aquí comenzamos definiendo la biblioteca para el servomotor y la biblioteca de serie de software se usa para definir el pin Rx y Tx.
#incluir
En el siguiente código, estamos inicializando los pines Arduino para Rx y Tx, definiendo variables para servo y otras cosas .
Servo myServo; int TxD = 11; int RxD = 10; int servoposición; int servopos; int new1; Software Bluetooth serie (TxD, RxD);
Ahora, configure todas las variables y componentes en la etapa inicial. Aquí hemos adjuntado el servo al noveno pin del Arduino y hemos hecho la posición inicial del servo a 0 grados. La velocidad en baudios para la comunicación en serie y Bluetooth también se ha establecido en 9600.
configuración vacía () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // iniciar la comunicación en serie a 9600bps bluetooth.begin (9600); }
En la función de bucle vacío , Arduino comprobará los valores entrantes todo el tiempo y rotará el servo de acuerdo con el valor recibido del teléfono inteligente. Todos los valores se recibirán mediante comunicación en serie.
Si el valor es 0, el servo girará a 0 grados. Del mismo modo si enviamos 45, 90, 135 y 180 desde la aplicación Bluetooth, el servo girará a un ángulo de 45, 90, 135 y 180 grados respectivamente.
bucle vacío () { if (bluetooth.available ()) { Valor de cadena = bluetooth.readString (); servoposición = valor.toInt (); if (value.toInt () == 0) { Serial.println (servoposición); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposición); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposición); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposición); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposición); myServo.write (180); }
Si enviamos el valor '1' presionando el botón de inicio , el servo girará continuamente hasta que se presione el botón de parada . Aquí estamos enviando '2' al presionar parada botón, que será leído por el Arduino y se romperá el tiempo bucle y se detendrá servo.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (valor); if (value.toInt () == 2) {Serial.println ("YYY"); romper; }} servopos ++; retraso (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Funcionamiento del control del servomotor mediante Bluetooth:
En este proyecto, estamos controlando el servomotor usando una aplicación de Android “Roboremo”. En la interfaz de esta aplicación, hemos creado 5 botones para controlar el servomotor como se explicó anteriormente. El funcionamiento de cada botón se muestra en la siguiente tabla:
S.No. |
Nombre del botón |
Envío de valor |
Descripción |
1. |
comienzo |
1 |
Este botón se usa para comenzar a rotar el servo de 0⁰ a 180⁰. |
2. |
Detener |
2 |
Este botón se utiliza para detener el servo en cualquier momento. |
3. |
0⁰ |
0 |
Este botón se usa para rotar el servo a 0⁰. |
4. |
90⁰ |
90 |
Este botón se utiliza para girar el servo a 90⁰. |
5. |
180⁰ |
180 |
Este botón se utiliza para girar el servo a 180⁰. |
Entonces, al presionar estos botones en su aplicación de Android Roboremo , los datos se enviarán a través del Bluetooth del teléfono inteligente al módulo Bluetooth HC-06. Desde ese módulo HC-06, el Arduino recibe los datos y Arduino gira el Servo en el ángulo definido en el código para el botón en particular. También hemos codificado para el ángulo 45 y 135, pero debido a la limitación de la aplicación Roboremo, solo puede crear 5 botones, por lo que omitimos dos botones.
Así es como puede enviar los datos desde un teléfono inteligente al Arduino usando Bluetooth para controlar el servo de forma inalámbrica. Esto se puede utilizar en muchas aplicaciones como coches de juguete, robots, etc.