7 de set. de 2018

Controlando robô pelo Smartphone

Nesse post, vou ensinar como controlar um robô pelo smartphone, utilizando Arduino e Bluetooth. Este tutorial foi feito para a competição de robótica da UnP (Universidade Potiguar): RFC (Robot Fight Championship), onde os robôs se enfrentam em uma arena, e quem destruir, prender ou nocautear o adversário, vence o round e avança na tabela.


Você vai precisar de:

  • 01 Placa Arduino
  • 01 Módulo Bluetooth HC05 ou HC06 
  • 01 Fonte de energia (bateria) 
  • 02 Motor DC 
  • 02 Ponte H (uma para cada motor) 
  • 03 Resistor 1kR ou 10kR
  • Estrutura do robô 
  • Ferramentas e fios

Vou pular a parte de construção da estrutura, e focar na parte eletrônica, e de programação.


Código do robô

Algumas placas Arduino podem ter seus pinos 0 e 1 danificados, por isso criei uma versão de código utilizando a biblioteca SoftwareSerial, permitindo a comunicação rx/tx entre a placa e o módulo Bluetooth.
 
Cada versão possui características diferentes, então escolha de acordo com o que você precisa, e grave o código em sua placa Arduino.


Versão 1


  • 2 Pontes H
  • Sem armas
  • Sem SoftwareSerial (rx/rx nos pinos 0 e 1)
  • PWM usado para suavizar as curvas

Versão 2


  • 3 Pontes H
  • Arma usando ponte H
  • Sem SoftwareSerial
  • PWM usado para suavizar as curvas

Versão 3


  • 2 Pontes H
  • Sem armas
  • SoftwareSerial (rx/tx nos pinos 7 e 8)
  • PWM usado para suavizar as curvas

Versão 4


  • 3 Pontes H
  • Arma usando ponte H
  • SoftwareSerial (rx/tx nos pinos 7 e 8)
  • PWM usado para suavizar as curvas


Circuito

Não entrarei em detalhes sobre a ponte H, pois é um assunto aberto. Você pode construir de várias formas, com vários tipos de transistores ou relés, ou ainda optar por comprá-la pronta. O objetivo desse artigo é ensinar como controlar o robô pelo smartphone, e apenas isso. Entretanto é relevante mencionar que se sua ponte não aguentar corrente o suficiente, ela poderá queimar.
Com sua placa gravada, monte-a de acordo com o esquema abaixo.

Para versões 1 e 2, utilize este circuito:

 
Para versões 3 e 4, utilize este:



Atenção! Utilize 3 resistores de 1kR ou de 10kR, para criar um divisor de tensão no RX do módulo bluetooth, ele precisa receber sinal em 3v3, caso contrário irá queimar.


Aplicativo Android

No seu Smartphone, procure e baixe o aplicativo Arduino Bluetooth RC Car.

Essa é sua interface:



Ligue o Bluetooth no celular, clique na engrenagem, e na opção Connect to car.



Com o código gravado no Arduino, Smartphone pareado com o módulo Bluetooth, e circuito corretamente montado, tudo pronto!

Você pode controlar o robô para frente, para trás, e girar para a direita ou para a esquerda, porém não anda em diagonais.

Caso o robô esteja com o sentido contrário, inverta os fios da ponte H.

Se não funcionou perfeitamente até aqui, sugiro que desmonte o circuito e remonte, prestando atenção nas ligações elétricas, pois qualquer mal contato ou ligação errada, fará com que seu robô não funcione corretamente!

Para alterar a velocidade da rotação, mude nos códigos a variável PWM, com os valores de 0 a 255, que equivalem de 0% a 100%.

Atenção: Se você escolheu o código com ponte H extra como arma, os botões no aplicativo com a figura de um carro, ligam e desligam a arma para um sentido e para outro: o botão que representa a parte frontal do carro, liga uma luz azul e aciona a arma em um sentido. Já o botão que representa a traseira, acende uma luz vermelha, e inverte o sentido.

O robô possui proteção via software, impedindo curto-circuito nas pontes H, evitando que o robô pare de funcionar, ou queime. Ou seja: caso você acione dois botões com sentidos opostos, não haverá curto-circuito.

Também é interessante comentar: tente deixar o módulo e o Arduino o mais estável possível dentro da estrutura. Uma boa dica é colocá-los entre espumas, ou algo que amorteça, pois uma colisão forte pode reiniciar o Arduino, perdendo a conexão Bluetooth, e seu robô ficará parado por alguns segundos até reconectar.