8 de jul. de 2014

Como usar o tanque esteira tamiya e a ponte H Drv8833 com arduino

Olá, amantes de robótica!
Querem fazer um tanque de guerra com arduino?
Neste post construiremos um, que será controlado via serial com a plataforma tamiya.
O objetivo principal é ensinar como usar o Drv8833, em razão de existirem pouquíssimos tutoriais falando sobre esse drive para motores.
Em caso de dúvida consulte seu datasheet: drv8833.pdf



Veja o vídeo do tanque tamiya  e o Drv8833 em funcionamento:

Em breve.

Vamos ao material que precisamos: 

Qtd     Itens:
1      -  Arduino UNO ou qualquer outra versão;
1      -  Drv8833 Pololu - Drive de motor ou Ponte H;
1      -  Bateria 3.7v 1000Mh;
1      -  Tanque esteira tamiya;
1      -  Protoboard;
x      -  Jumpers (Fios).

Não sabe onde comprar as peças, confira esse post:  onde comprar arduino e componentes

Vamos à montagem:

Basta fazer as mesmas conexões da imagem abaixo:
(clique na imagem pra ampliá-la)


Montagem passo a passo:



Esses são os componentes que iremos utilizar.
A bateria pode ser qualquer uma que tenha mais de 2,7v e menos que 10,8v. Quando mais Mha, maior a duração.
Depois prenda o drive no robô e conecte os polos dos motores nos pinos "AOUT1 AOUT2 BOUT1 e BOUT2" lembrando de deixar um espaço para o arduino e a bateria.

Coloque a bateria no espaço restante e conecte os cabos ao "VIN" e ao "GND" da ponte h Drv8833.

Faça uma proteção para colocar embaixo do arduino UNO para evitar curto circuito (isso pode até ser feito com um papelão).
Posicione-o em cima da bateria,  prenda com parafusos ou, como eu fiz, com um elástico e conecte os pinos PWM "5 e 6" "9 e 10" aos pinos do drive "B IN1, B IN2, A IN1 e A IN2". Conecte o "GND" do drive ao "GND" da bateria este "GND" (é o primeiro pino do lado "INPUT" do drive).
Os pinos "VMM" "nSLEEP" "nFAULT" "aISEN" e "bISEN" não recebem conexões.

Você poderá colocar uma protoboard para completar e ajudar a adicionar mais componentes, já que o conector USB do arduino fica no mesmo nível da caixa de redução, assim como foi feito na imagem ao lado.









O mais importante, o código fonte

Atenção:
Na sketch a variável "motor" e "motor2" são os dois polos do motor 1. A variável "motor3" e "motor4" são os dois polos do motor 2. Por exemplo, caso você aperte a tecla "w" para ir para frente e ele vá para trás, altere o código até ele responder o comando corretamente.

 /*   
  >>>>> Test Criando Robô Com Arduino <<<<<   
  ##### Robôs, Projetos e Tutoriais! #####   
  .:: Site secundário: http://www.TestCriandoRoboComArduino.com/  
  .:: Site principal: http://www.CriandoRoboComArduino.com/    
  ========== IMPORTANTE ==========   
  O código está livre para usar, citar, alterar e compartilhar,  
  desde que mantenha o site como referência.   
  Obrigado.  
  --------------------------------------------------------------------------------------------------  
  Projeto: Como usar o tanque esteira tamiya e a ponte H Drv8833 com arduino   
  ---------------------------------------------------------------------------------------------------  
 */   
 //Declaração das variáveis  
 int motor= 5; //Pino pwm conectado ao pino input A1 do drive.  
 int motor2 = 6; //Pino pwm conectado ao pino input A2 do drive.  
 int motor3 = 9; //Pino pwm conectado ao pino input B1 do drive.  
 int motor4 = 10; //Pino pwm conectado ao pino input B2 do drive.  
 void setup(){  
  Serial.begin(9600); //iniciando o serial monitor.  
  //Definindo a polaridade dos motores como saída.  
  pinMode(motor, OUTPUT);  
  pinMode(motor2, OUTPUT);  
  pinMode(motor3, OUTPUT);  
  pinMode(motor4, OUTPUT);  
 }  
 void loop(){  
  if(Serial.available() > 0){// se entrar informação, faça  
    int entrada = Serial.read();   
    switch (entrada){    
    // Definindo funções.  
    case 'w'://ir para frente  
     para();  
     frente();  
    break;  
    case 'd'://ir para direita  
     para();  
     direita();  
    break;  
    case 'a'://ir para esquerda   
     para();  
     esquerda();  
    break;  
    case 'p'://parar  
     entrada = 0;  
     para();  
    break;  
    case 's':// ir para trás  
     para();  
     tras();  
    break;  
    }  
   Serial.flush();  
  }  
 }//fim loop  
 //funções  
 void frente(){  
    digitalWrite(motor2, HIGH);  
    digitalWrite(motor3, HIGH);  
 }  
 void para(){  
    digitalWrite(motor, LOW);  
    digitalWrite(motor2, LOW);  
    digitalWrite(motor3, LOW);  
    digitalWrite(motor4, LOW);  
 }  
 void tras(){  
    digitalWrite(motor, HIGH);  
    digitalWrite(motor3, HIGH);  
 }  
 void direita(){  
    digitalWrite(motor, HIGH);  
    digitalWrite(motor4, HIGH);  
 }  
 void esquerda(){  
    digitalWrite(motor4, HIGH);  
    digitalWrite(motor2, HIGH);  
 }  
 /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  
   >>>>> Acesse os sites: <<<<<  
   .:: Testes dos robôs, noticias sobre robótica e muito mais  
     http://www.TestCriandoRoboComArduino.com/  
    .:: Robôs, Projetos e Tutoriais  
     http://www.CriandoRoboComArduino.com/     
   >>>>> Inscreva-se nos canais no Youtube: <<<<<  
   .:: Mostrando os testes dos robôs e projetos  
     Test Criando Robô Com Arduino  
     https://www.youtube.com/TestCriandoRoboComAr  
   .:: Vídeos dos robôs, projetos e tutoriais  
     Criando Robô Com Arduino  
     https://www.youtube.com/CriandoRoboComArduin  
   :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/  

Atenção!
Cuidado, nunca deixe os dois polos dos motores em "high". Exemplo:
 digitalwrite(motor, high);  
 digitalwrite(motor2, high);  
Isso poderá queimar algum componente.
Qualquer dúvida pergunte nos comentários e não faça nada sem ter certeza do que está fazendo!

Enviando os comandos pelo teclado.

Você pode usar o "Serial Monitor" do arduino para dar os comandos ao robô, mas recomendo o uso do "Tera Term", pois ele é mais preciso e fácil de usar.
Baixe o Tera Term aqui e siga o tutorial de configuração:

Abra o tera term e selecione "Serial" em seguida escolha a porta onde esta conectado seu arduino (no meu caso "COM6") e pressione "OK".

Pressione, agora, as teclas "W", "A" , "S" , "D" e "P" para o robô andar ou parar.













Pronto, qualquer duvida é só deixar nos comentários ou entrar em Contato 

Nós do Criando Robô Com Arduino agradecemos ao Bruno por esse tutorial! 


Quer ajuda ou quer ajudar? Clique em Ajuda e veja como você pode ajudar ou ser ajudado.

11 de mai. de 2014

CarIR em desenvolvimento

Olá aos amandes de robótica.

Hoje estou desenvolvendo o robô CarIR que é um carrinho controlado por IR (infra vermelho) com arduino.

Em breve terá videos e fotos!

Abraços


27 de abr. de 2014

HD externo Seagate expansion 1Tb não é confiavel

Olá caros leitores.

Atualmente estou trabalhando na melhoria visual dos sites e estava fazendo um projeto para publicar.
Meu notebook está com um problema no HD. Por isso acionei a garantia, eles virão na minha casa para trocá-lo.
Há uns 11 meses, comprei o HD externo da seagate para fazer backups do meu notebook. Devido ao problema no meu notebook, recortei os dados do notebook e coloquei no HD externo Seagate de 1TB, uma vez que ao trocar o HD do notebook, a assistência técnica não faz backup.
Assim, aos 25 de abril de 2014, passei todos os dados para o HD e no dia seguinte a leitura estava muita lenta e o HD fazendo barulho. Por isso, mandei o windows verificar os erros no disco, o que não resolveu e ele continuou lento, razão pela qual entrei no site do fabricante e baixei um programa para testar o HD externo.
O programa reconheceu muitos erros, porém não reparou nada. Baixei, então, um outro programa no site deles e nisso verifiquei que o HD estava zerado, de tamanho total e livre, ou seja, com isso eu perdi tudo. Baixei programas para recuperar dados, mas eles não reconheciam o HD externo.
Fiquei a noite inteira acordado tentando recuperar algum arquivo do meu  notebook, já que o do HD externo não tinha como acessar, passei a noite inteira e não consegui recuperar quase nada.
Perdi mais de 300 Gb de arquivos que eu tenho há 7 (sete) anos, também perdi um projeto que já estava pronto, só faltava tirar fotos e gravar um vídeo para publicar.
Com isso, eu perdi e agora tenho que recomeçar do 0 (zero)!
Então muito obrigado, SEAGATE, pela produção de um PÉSSIMO PRODUTO! Então, se aceitam um conselho, NÃO CONFIEM NO HD EXTERNO DA SEAGATE! O produto é ruim e confiar nele pode ter como efeito a perda de dados preciosos!

Compartilham aí, pessoal, para mais pessoas saberem como realmente é o HD externo da seagate!

Os posts demorarão mais um pouco, devido a essa fatalidade!

Abraços