- Material Necessário
- Módulo Bluetooth HC-06
- Diagrama de circuito
- Configurando o aplicativo Roboremo para controlar o servo:
- Código e Explicação
- Trabalho de controle do servo motor usando Bluetooth:
Usar um servo motor é comum em robótica para um controle preciso. Aqui, neste tutorial, vamos mostrar como usar um servo motor sem fio com um Arduino UNO e um dispositivo Android via conexão Bluetooth. Já controlamos servo com Arduino, desta vez estamos controlando servo motor usando Arduino e Bluetooth.
Material Necessário
- Arduino UNO
- Módulo Bluetooth HC-05 ou HC-06
- Servo motor
- Roboremo App da Playstore
- Tábua de pão
- Fio de conexão
Módulo Bluetooth HC-06
O Bluetooth pode operar nos dois modos a seguir:
- Modo de Comando
- Modo operacional
No modo de comando poderemos configurar as propriedades do Bluetooth como o nome do sinal do Bluetooth, sua senha, a taxa de transmissão de operação etc. O modo de operação é aquele em que poderemos enviar e receber dados entre o microcontrolador PIC e o módulo Bluetooth. Portanto, neste tutorial, vamos brincar apenas com o modo de operação. O modo Comando será deixado com as configurações padrão. O nome do dispositivo será HC-05 (estou usando HC-06) e a senha será 0000 ou 1234 e o mais importante, a taxa de transmissão padrão para todos os módulos Bluetooth será 9600.
O módulo funciona com alimentação de 5 V e os pinos de sinal operam com 3,3 V, portanto, um regulador de 3,3 V está presente no próprio módulo. Portanto, não precisamos nos preocupar com isso. Dos seis pinos, apenas quatro serão usados no modo operacional. A tabela de conexão de pinos é mostrada abaixo
S.Não | Pin em HC-05 / HC-06 | Nome do PIN no MCU | Número do PIN no PIC |
1 | Vcc | Vdd | 31 r pino |
2 | Vcc | Gnd | 32 nd pino |
3 | Tx | RC6 / Tx / CK | 25 th pino |
4 | Rx | RC7 / Rx / DT | 26 th pino |
5 | Estado | NC | NC |
6 | EN (habilitar) | NC | NC |
Confira nossos outros projetos para saber mais sobre o módulo Bluetooth HC-05 com outros microcontroladores:
- Carro de brinquedo controlado por Bluetooth usando Arduino
- Sistema de automação residencial controlado por Bluetooth usando 8051
- Luzes controladas por voz usando Raspberry Pi
- Rádio FM controlado por telefone inteligente usando Arduino e processamento
- Interface do Módulo Bluetooth HC-06 com Microcontrolador PIC
Verifique também todos os projetos relacionados ao bluetooth aqui.
Diagrama de circuito
O diagrama de circuito para este projeto de controle do servo motor Arduino Bluetooth é fornecido abaixo:
Configurando o aplicativo Roboremo para controlar o servo:
Passo 1: - Baixe o aplicativo Roboremo da Android Play Store e instale-o em seu smartphone. Depois de instalá-lo, você verá a janela do aplicativo conforme mostrado na figura 1 e clicando no botão 'Menu' você verá a janela mostrada na figura 2 abaixo:
Passo 2: - Em seguida, clique no botão conectar e você verá a janela mostrada na figura 3 abaixo, então você deve selecionar ' Bluetooth RFCOMM' e então você poderá conectar seu módulo de bluetooth HC-06 com seu aplicativo Android 'Roboremo'.
Passo 3: - Depois de conectar ao módulo bluetooth HC-06 volte para a janela figure2 e clique em ' editar ui ' para criar a interface de usuário de acordo com sua necessidade.
Ao clicar em 'editar ui', você verá novamente a janela mostrada na figura 1 e, em seguida, clique em qualquer lugar na tela, você verá a janela do aplicativo como a figura 4 e selecione ' Botão ' para obter a estrutura do botão.
Passo 4: - Após selecionar o botão, você obterá uma estrutura de botões na tela para edição. Você pode redimensionar e mover a estrutura para qualquer lugar da tela. Agora, para definir o valor a ser enviado no clique via Bluetooth, você deve 'definir a ação de pressionar' (como mostrado na figura 6) e digitar o valor que deseja enviar a partir desse botão específico. Por exemplo, estamos enviando '1' para girar o servo pressionando o botão 'Iniciar' no aplicativo Android Roboremo.
Você pode verificar todos os valores, sendo enviados clicando em botões diferentes, na tabela fornecida na seção posterior.
Passo 5: - Finalmente temos a Interface do Usuário para controlar o servo motor usando Smartphone.
Código e Explicação
O código completo para Arduino Control Servo Motor Via Bluetooth é fornecido no final.
O Arduino tem biblioteca para Servo Motores e lida com todas as coisas relacionadas ao PWM para girar o servo, você só precisa inserir o ângulo para o qual deseja girar e há a função servo1.write (ângulo); que irá girar o servo para o ângulo desejado.
Portanto, aqui estamos começando definindo a biblioteca para servo motor e a biblioteca serial do software é usada para definir o pino Rx e Tx.
#incluir
No código abaixo, estamos inicializando os pinos do Arduino para Rx e Tx, definindo variáveis para servo e outras coisas .
Servo myServo; int TxD = 11; int RxD = 10; servoposição int; int servopos; int new1; Software Bluetooth serial (TxD, RxD);
Agora, configure todas as variáveis e componentes para o estágio inicial. Aqui temos ligado a servo em 9 th pino do Arduino e feita a posição inicial de servo para 0 graus. A taxa de transmissão para comunicação serial e Bluetooth também foi definida para 9600.
configuração vazia () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // inicia a comunicação serial em 9600bps bluetooth.begin (9600); }
Na função void loop , o Arduino verificará os valores recebidos o tempo todo e girará o servo de acordo com o valor recebido do smartphone. Todos os valores serão recebidos via Comunicação Serial.
Se o valor for 0, o servo girará para 0 grau. Da mesma forma, se enviarmos 45, 90, 135 e 180 do aplicativo Bluetooth, o servo girará para um ângulo de 45, 90, 135 e 180 graus, respectivamente.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposição = valor.toInt (); if (value.toInt () == 0) { Serial.println (servoposição); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposição); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposição); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposição); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposição); myServo.write (180); }
Se enviarmos o valor '1' pressionando o botão Iniciar , o servo girará continuamente até que o botão Parar seja pressionado. Aqui estamos enviando '2' em pressionar parada botão, que será lido pelo Arduino e ele vai quebrar o enquanto loop e servo será interrompido.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (valor); if (value.toInt () == 2) {Serial.println ("YYY"); pausa; }} servopos ++; atraso (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; quebrar;}}}}
Trabalho de controle do servo motor usando Bluetooth:
Neste projeto, estamos controlando o Servo Motor usando um aplicativo Android “Roboremo”. Na interface deste aplicativo, criamos 5 botões para controlar o servo motor conforme explicado anteriormente. O funcionamento de cada botão é fornecido na tabela abaixo:
S.No. |
Nome do Botão |
Envio de valor |
Descrição |
1 |
Começar |
1 |
Este botão é usado para começar a girar o servo de 0⁰ a 180⁰. |
2 |
Pare |
2 |
Este botão é usado para parar o servo a qualquer momento. |
3 - |
0⁰ |
0 |
Este botão é usado para girar o servo para 0⁰. |
4 |
90⁰ |
90 |
Este botão é usado para girar o servo em 90⁰. |
5 |
180⁰ |
180 |
Este botão é usado para girar o servo em 180 °. |
Assim, ao pressionar estes botões no seu aplicativo Android Roboremo , os dados serão enviados através do Bluetooth do smartphone para o módulo Bluetooth HC-06. A partir desse módulo HC-06, os dados são recebidos pelo Arduino e o Arduino gira o Servo no ângulo definido no código para o botão específico. Também codificamos os ângulos 45 e 135, mas devido à limitação do aplicativo Roboremo, você só pode criar 5 botões, então pulamos dois botões.
Então é assim que você pode enviar os dados do Smartphone para o Arduino usando Bluetooth para controlar o servo sem fio. Isso pode ser usado em muitas aplicações, como carros de brinquedo, robôs, etc.