Controlando um servo motor utilizando Android e Bluetooth
A um tempo atrás eu escrevi um post sobre como controlar as portas do Arduino usando um módulo bluetooth JY-MCU. Recentemente, mostrei como enviar dados do Arduino para o Android no post Enviando dados do Arduino para o Android usando bluetooth.
Vou agora usar o mesmo princípio desses artigos, mas dessa vez para controlar um servo motor, um Micro Servo 9G, com ângulo de rotação de 180 graus :
Desta vez, o módulo bluetooth utilizado tem nível de sinal de 3.3 v (verifique no verso do seu módulo BT qual a tensão do nível de sinal) :
O funcionamento deste circuito segue um dos exemplos da biblioteca SERVO, e que eu já utilizei anteriormente para montar o post com o sugestivo nome de Controlando um Servo. No exemplo, é utilizado um potenciômetro para controle do ângulo de rotação do motor.
Seguindo esta idéia, e usando o programa MicrocontrollerBT no Android, vou criar um botão deslizante para fazer a função do potenciômetro e controlar o motor.
Observe na montagem do circuito que eu utilizei 2 resistores no pino RX do módulo Bluetooth. A função desses resistores é atuar como um divisor de tensão, já que o módulo BT que estou utilizando trabalha com 3.3 v no pino de sinal, e se ligarmos diretamente esse pino no Arduino, que trabalha com 5 volts, corremos o risco de danificar o módulo BT. Utilizei 2 resistores, um de 220 ohms e um de 330 ohms, que fizeram com que a tensão do sinal vindo do Arduino caísse para aproximadamente 3 volts.
Você não tem resistores de 220 e 330 ohms ? Não tem problema. Acesse este link, digite 5 para a tensão de entrada, digite os valores dos resistores (R1 e R2) que você possui, e pressione o botão Calcular para verificar a tensão de saída no campo correspondente, lembrando que por segurança esta deve ser, no máximo, de 3.3v.
Monte o circuito e carregue o programa abaixo no Arduino, mas antes desconecte o Vcc do módulo blueooth, pois como ele também utiliza a comunicação serial para transmitir dados ao Arduino, pode gerar algum erro na hora da transmissão pelo computador.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Programa : Controle de servo pelo Android utilizando Bluetooth // Autor : Arduino e Cia #include <Servo.h> Servo myservo; int val; void setup() { //Pino de dados do servo ligado na porta 4 myservo.attach(4); Serial.begin(9600); } void loop() { if(Serial.available()>=2) { int key=Serial.read(); int val=Serial.read(); myservo.write(val); } } |
Conecte o Vcc novamente ao módulo BT. Vamos passar agora para a parte de configuração do Android. Carregue o Microcontroller BT :
Clique no botão MENU do seu celular, e escolha a opção NEW LAYOUT :
Adicione um nome ao seu layout. Utilizei Arduino Servo :
Após digitar o nome, o programa volta para a tela anterior, com o layout em branco, e o nome do layout escolhido no canto superior esquerdo :
Clique novamente o botão MENU, e em EDIT MODE :
Note que a parte superior do layout ficará vermelha, indicando que vc está no modo de edição. Arraste a aba na parte inferior, até que aparecam os botões que podem ser adicionados ao layout. Clique no botão deslizante, conforme destacado, e segure até que o mesmo apareça na tela principal do layout :
Agora clique sobre o botão deslizante para configurar suas propriedades. Na parte superior esqueda, selecione Analog Input. em Set Key, escolha 5. Abaixo, em MAX, escolha 180, que é o valor máximo, em graus, que o servo irá rotacionar . A configuração do botão deslizante ficará assim :
Terminada a parte de configuração, basta apertar a teclar RETORNAR, no seu celular. Note que o layout ficara na cor cinza novamente, indicando que você saiu do modo de edição :
Clique agora no botão MENU, depois em Connect :
Escolha o dispositivo bluetooth, que deve estar previamente pareado com o seu aparelho, e após alguns segundos o layout do programa ficará verde, indicando que o mesmo está conectado ao módulo bluetooth no Arduino. Observe no lado direito, no topo do layout, que o meu celular está conectado ao dispositivo LINVOR :
Feito isso, mexa no botão deslizante para ver o servo se movimentar até o ângulo correspondente, lembrando que o botão foi configurado até o valor máximo de 180 graus, que é o ângulo máximo de movimentação deste servo.
Você pode utilizar mais motores no Arduino usando este procedimento. Fique atento apenas ao fato de que esses motores costumam exigir muita corrente da placa, e provavelmente você terá que utilizar uma fonte de alimentação externa para alimentá-los.
Avalie este post!
Tags In
Related Posts
56 Comments
Deixe um comentário Cancelar resposta
Publicidade
Posts recentes
Marcadores
16x2
20x4
128x64
android
arduino
atmega328
attiny85
bluetooth
blynk
componentes
dht11
display
display 7 segmentos
esp32
esp8266
ftdi
gsm
hc-05
HC-SR04
i2c
iot
IR
LCD
led
livros
matriz 8x8
max7219
modulo
modulos
motor de passo
motores
nodemcu
oled
raspberry pi
raspbian
rele
RFID
rtc
sensores
servo motor
shield
som
temperatura
wifi
wireless
como baixar esse aplicativo gratis? obrigado valew
blz, quero baixar esse aplicativo tem como ? obrigado.
Bom dia, tem sim. Acesse esse link :
https://play.google.com/store/apps/details?id=com.kvndev.android.three&hl=en
Abraço !
por favor preciso de ajuda para acionar 4 servos por me enviar um codgo??????
Qual programa é usado para simular o circuito android/servo/placa bluetooth?
Obrigado.
Bom dia Bruno !
Eu uso o Fritzing para montar os circuitos :
http://fritzing.org/download/
E alguns componentes eu mesmo crio.
Abraço !
Oi bom dia gostaria de sabre como faço para adicionar mas 1 servo ?
Boa tarde !
Não tenho 2 servos para testar aqui no momento, mas você pode partir desse programa, criando um botão adicional no Android :
//Programa : Controle de servo pelo Android utilizando Bluetooth
//Autor : Arduino e Cia
#include
Servo myservo;
Servo myservo2;
int val;
void setup()
{
//Pino de dados do servo ligado na porta 4
myservo.attach(4);
//Pino de dados do servo2 ligado na porta 6
myservo2.attach(6);
Serial.begin(9600);
}
void loop()
{
if(Serial.available()>=2)
{
int key=Serial.read();
int val=Serial.read();
myservo.write(val);
myservo2.write(val);
}
}
Abraço !
Amigo eu não estol conseguindo ,Quais os valores devo colocar no programa ??
Boa tarde,
Você pode usar esse programa que eu passei. O que você precisa agora é configurar o aplicativo no Android para controlar o segundo motor, que está ligado na porta 6.
Abraço !
Oi,amigo entra em contato comigo,estou com dificuldades num código
[email protected]
Quero ligar tres portas via bluetooth microcontroller BT,e junto ligar pela botoeira, pra ter opçao,me ajuda, meu email vai ficando ai,eu nao achei o seu pra entrar em contato com vc
olá, o link de download do aplicativo não está funcionando. Poderia verificar isso. Obrigado.
Vamos verificar. Obrigado !
Consigo usar o MicroController BT, para realizar o exemplo acima, mas com 2 servos, sendo que gostaria de executar comandos distintos ora para um servo, ora para outro. Como configuro isso no MicroController BT e no loop() do Arduino.?
Bom dia,
Por favor veja a minha resposta acima para o thuliofuse, ele teve a mesma necessidade. Basta utilizar o programa exemplo que eu passei, e adicionar os botões correspondentes no Microcontroller BT.
Abraço !
olá..
meu Modulo BT não consegue conectar.. diz no programa que incapaz de se conectar com o dispositivo.
Boa tarde. O módulo precisa ser pareado com o celular antes de utilizar o Microcontroller BT. Abraço !
como usar essa barra do microcontroller bt para controlar uma porta pwm ou o brilho de um led?
Boa tarde.
Você pode usar esse mesmo programa como base, apenas mudando a porta para PWM e enviando à ela o valor desejado.
Abraço !
ola fiz tudo corretamente , ele ate conectou porem mexo no celular e nao faz nada na placa , pq sera que nao ta indo ? ja config pino e tudo , obg
Boa tarde,
Qual o seu módulo ? você montou o divisor de tensão ?
Abraço !
da pra salvar o painel que vc faz no aplicativo ?
Boa tarde,
Somente na versão paga.
Abraço !
Binary sketch size: 5.936 bytes (of a 258.048 byte maximum)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
aparece isso , nao sei o pq
Boa tarde,
Qual programa você está compilando ?
Abraço !
Boa tarde testei o codigo acima para controle de dois servos, porem movimenta apenas um pois estão lendo a mesma variavel (val) gostaria de saber se alguem conseguiu alguma outra maneira ? Ou se você mesmo conseguiu
Boa tarde Robson,
Não testei ainda, mas vou ver se arrumo 2 servo motores para testar isso.
Abraço !
Olá, gostaria de saber como faço para adicionar mais de um servo ?
tem app para windows phone?
Boa tarde,
Sim, tente o Bluetooth Serial Terminal: http://www.windowsphone.com/pt-br/store/app/bluetooth-serial-terminal/59d3cfee-90ae-4d5f-a5e5-0bf180c66d93
Abraço !
Olá, alguém por gentileza pode me enviar o .apk do "microcontroller BT" para meu e-mail?
Pois o aplicativo saiu do Google Play e o link dado acima instala um tal de "1Mobile Market"
Meu e-mail é [email protected]
Boa tarde como ficaria o codico com 3 servos e cada um mover se separadamente
Bom dia,
Coloque mais linhas com as outras portas do servo, por exemplo 5 e 6:
myservo.attach(5);
myservo.attach(6);
Depois, é só criar no aplicativo botões para essas portas, alterando o "Set Key".
Abraço!
Olá voce teria a programação pra acionar o servo por controle de voz,pra utilizar no app também
Olá, alguém por gentileza pode me enviar o .apk do "microcontroller BT" para meu e-mail?
Pois o aplicativo saiu do Google Play e o link dado acima instala um tal de "1Mobile Market"
Meu e-mail é [email protected]
Olá, estou tendo problemas, ainda não descobri nos fóruns uma solução definitiva, podem me ajudar?
O erro que aparece é esse aqui:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Boa tarde Aryel,
Qual IDE e qual Arduino você está usando ?
Abraço!
Boa tarde,
É a versão 1.6.6 da IDE para Linux, baixada do site http://www.arduino.cc, antes estava usando a versão anterior que está disponível nos repositórios da versão 14.04 do Lubuntu, mas devido ao problema acima baixei essa versão mais nova, porém o problema ainda persiste. Em alguns fóruns estavam comentando que talvez seria necessário atualizar o "firmware" da placa ao que me pareceu.
Testei com uma placa UNO do laboratório da faculdade e com minha placa Funduino Mega 2560, o problema foi o mesmo.
Bom dia Aryel,
Conseguiu resolver o problema ? consegue baixar a IDE em outro computador e ver se o problema persiste ?
Me parece que esse negócio de atualizar firmware da placa é um caso extremo..
Abraço!
Bom dia,
Consegui resolver, era muito simples, esqueci que era preciso desconectar o módulo bluetooth na hora de fazer upload do código para a placa. Feito isso, e seguindo os passos corretamente deu tudo certo.
estou montando um carrinho com 4 motores com ponte H gostaria de saber a programação que vc usaria ?
boa tarde amigo, como eu configuro esse controle de um ou mais servos no aap inventor 2 ???
Olá Jordan, aqui nesse link ensinam a fazer o controle de vários servos com App Inventor 2:
http://mitappsinventor.blogspot.com.br/2015/05/control-multiple-servo-motors-using.html
ola como eu faço para enviar horarios para acionar o um motor pelo Bluetooth ? por exemplo enviar pelo app 30s 1minuto ou 30 minutos ai fazer o motor le um desses codigos ?
boa noite eu gostaria de saber como faço para salvar o layout pois toda vez tenho que refazer tudo de novo quando saio do apk
Como controlar dois servos com movimentos distintos ?
Boa noite , preciso de um tutorial para ligar um servo motor de 5 fios mod: 28BYJ-48 5V via bluetooth?
Alguém sabe e pode me ajudar
[email protected]
Como eu salvo o Layout no app
Olá gostaria de saber se consigo adicionar um motor de passo. Se sim, como ficaria o programa
No esquema não estão invertidos a ligação tx/rx?
Boa tarde e se fosse usar um led para aumentar e diminuir o brilho como ficaria a programação ?
Oi Alexandre,
Acho que o que você precisa está nesse post aqui:
https://www.arduinoecia.com.br/2013/07/dimmer-com-arduino-portas-analogicas.html
Abraço!
Adilson
Não consegui baixar o app
Bom dia Adilson como faço para usar esse programa no motor mod: 28BYJ-48 5V
Eu gosto muito destes servo motores da para fazer vários projetos
Parabéns pelo conteúdo ficou ótimo
Valeu Luan!
Grande abraço. 🙂
Adilson