Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Dando “vida” ao chassi TG007 usando um Arduino

Imprimir
Avaliação do Usuário: / 5
PiorMelhor 

 

Ok, depois de montar o chassi TG007 (veja o tutorial em http://www.seucurso.com.br/index.php?option=com_content&view=article&id=97:construindo-um-robo-com-o-kit-tg007-da-tato-equipamentos-eletronicos&catid=40:tutoriais&Itemid=61) agora chegou a hora de dar “vida” a ele, ou seja, coloca-lo para movimentar-se de forma autônoma.

Para isso utilizei um controlador para dois motores DC baseado no CI TB6612FNG que tem entre as vantagens do baixo consumo de eletricidade, o pequeno tamanho e consequentemente peso quase desprezível para qualquer projeto de robótica. Não usei o controle como o mostrado em “Ligando, desligando e controlando a velocidade de motores DC com o Arduino” (http://www.seucurso.com.br/index.php?option=com_content&view=article&id=93:ligando-desligando-e-controlando-a-velocidade-de-motores-dc-com-o-arduino&catid=40:tutoriais&Itemid=61) porque com o TB6612FNG também é possível indicar em qual direção desejamos que o motor gire.

O primeiro passo é fixar o seu Arduino ao chassi:

Feito isso encontre uma placa de ensaios (proto-board) que seja pequena o suficiente para abrigar todo o projeto e caiba sobre o robô ou faça como eu, corte uma que esteja disponível ao meio para essa tarefa. Lembre-se que se decidir corta uma placa de ensaios ao meio faça com capricho e com a certeza do que faz.

Prenda-a ao chassi:

Agora vamos colocar a placa do TB6612FNG na placa de ensaios:

Atente-se a nomenclatura dos pinos conforme a figura abaixo:

Vamos às ligações:

1º Conecte os pinos terra (GND) ao GND do Arduino, menos aquele que se encontra imediatamente abaixo do pino VMOT. Facilitará se você colocar uma ligação entre o pino terra do Arduino e a placa de ensaios no barramento lateral, em seguida, ligue os pinos GND ao mesmo barramento.

2º Ligue o pino VCC ao pino de 5V do Arduino. Pode-se fazer o mesmo que foi feito em relação aos pinos GND, ligue o 5V do Arduino a placa de ensaios no barramento lateral e depois ligue o pino VCC ao mesmo barramento. Isso irá facilitar caso deseje adicionar componentes que precise desses mesmos pinos.

3º Conecte os pinos AO1 ao negativo do motor 01 e o pino AO2 ao positivo do motor 01. Conecte também os pinos BO1 ao positivo do motor 02 e o pino BO2 ao negativo do motor 02. Tente manter certa organização nos fios.

4º Conecte o pino VMOT ao positivo das pilhas do seu chassi, elas que fornecerão eletricidade aos motores e não a fonte de alimentação que estiver no Arduino. Abaixo do pino VMOT há um terra (GND), esse deverá ser ligado ao negativo das pilhas. Essa separação é importantíssima, uma fonte para os motores (potência) e uma para o Arduíno. Para essa ligação faça como fizemos com os pinos GND e 5V do Arduino, use a placa de ensaios como intermediária.

5º Ligue o pino PWMA ao pino digital 05 do Arduino. Com ele que diremos a que velocidade o motor 01 deverá girar.

6º Ligue os pinos AIN2 e AIN1 aos pinos digitais 7 e 8, respectivamente, no Arduino. Com eles que acionaremos o motor 01. Pode paracer impossível, mas tente manter ordem no aparente caos de fios.

7º Ligue o pino STBY ao pino digital 11 do Arduino. Com esse pino é possível colocar e tirar a o TB6612FNG do estado de dormência (standby).

8º Ligue os pinos BIN1 e BIN2 aos pinos digitais 9 e 10, respectivamente, no Arduino. Com eles que acionaremos o motor 02.

9º Ligue o pino PWMB ao pino digital 6. Com ele que diremos a que velocidade o motor 02 deverá girar.

 

Agora pode apreciar! Debaixo dessa “confusão” de fios está o nosso protótipo de robô!

Em resumo temos:

Pinos 07 e 08 – motor 01

Pinos 09 e 10 – motor 02

Pino 05 – potência motor 01

Pino 06 – potência motor 02

Pino 11 - standby

Vamos programá-lo e fazê-lo andar de um lado por um segundo, e para o outro também por um segundo.

 

A combinação de níveis para os pinos dos motores é a seguinte:

 

Pino

Nível

Direção

7

HIGH

Motor 01 em frente

8

LOW

7

LOW

Motor 01 para trás

8

HIGH

7

LOW

Motor 01 parado

8

LOW

9

HIGH

Motor 02 em frente

10

LOW

9

LOW

Motor 02 para trás

10

HIGH

9

LOW

Motor 02 parado

10

LOW

 

 

O código do exemplo é o que segue:

 

void setup() { 
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, INPUT);
pinMode(10, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(11, OUTPUT);
}
 
void loop() {
// Toda a força!
digitalWrite(5,255);
digitalWrite(6,255);
// Para frente
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
// Sair do estado de dormência
digitalWrite(11,HIGH);
// Aguardar 1 segundo
delay(1000);
// Entrar no estado de dormência
digitalWrite(11,LOW);
// Aguardar 1 segundo
delay(1000);
// Para trás
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
// Sair do estado de dormência
digitalWrite(11,HIGH);
// Aguardar 1 segundo
delay(1000);
// Entrar no estado de dormência
digitalWrite(11,LOW);
// Aguardar 1 segundo
delay(1000);
// Para trás
}

 

O projeto funcionando:

 

 

 

Considerações finais:

1. Cuidado na ligação dos fios;

2. Atenção ao aquecimento dos motores e do TB6612FNG

3. Agora é só adicionar sensores e programar outros comportamentos

 

Comentários  

 
0 #1 duvidalucas de almeida 04-05-2014 23:29
onde posso comprar CI TB6612FNG procurei no ml mas n achei um igaul ao seu
Citar
 

Adicionar comentário


Código de segurança
Atualizar

You are here: