domingo, 27 de novembro de 2016

Projeto 12: Construção de um Robot muito simples


Projeto 12: Construção de um Robot muito simples.

Neste projeto vou mostrar como construir um pequeno carro, com poucas componentes, utilizando o Arduino e o Motor Shield L293D.






As componentes utilizadas:


 Placa de madeira (15 x 10 cm)
2 Gear Motors com respetivas rodas
Roda fixa
Toggle Switch DPDT
Motor Shield L293D e Arduino UNO




O esquema de ligações do Motor Shield L293D:



Neste projeto efetuei as seguintes ligações (escolhi os terminais M3 e M4 para ligar os dois motores):


- M4 - A/B - para as ligações do motor esquerdo
- M3 - A/B - para as ligações do motor direito
- EXT_PWR - para a alimentação da pilha de 9V


As fases do projeto:

1 - O esquema de montagem e a preparação da madeira:





2 - Montagem da Roda Fixa na parte da frente e teste das braçadeiras de plástico (150 x 3,5 mm):





3 - Teste da montagem dos motores (seguros pelas braçadeiras) e respetivas rodas:




4 - Soldagem dos fios aos Motores:



5 - Montagem do Toggle Switch, da pilha de 9V e respetivo suporte de ligaçao:


A parte de baixo do Toggle Switch
A ligação do Toggle Switch à bateria 9V e ao suporte da mesma



6 - Montagem "mecânica" toda pronta:






7 - Montagem do Arduino e Motor Shield:



8 - A Fase de montagem finalizada:




O código do Arduino:


O código a escrever para o Arduino é muito simples pois apenas pretendo mostrar como construir um carro que se movimente apenas para a frente e para trás. Esta é a base da movimentação de qualquer robôt. Pretendo mostrar, de futuro, movimentações mais complexas.

// ------------------------------------
// Projeto realizado por: Jacinto Palma
// Novembro de 2016
// ------------------------------------

#include <AFMotor.h>

AF_DCMotor motor1(3);
AF_DCMotor motor2(4);
int i;

void setup() {
  Serial.begin(9600);        

  // Definição da velocidade máxima dos motores
  motor1.setSpeed(220);
  motor2.setSpeed(220);
  // Para os motores (estado inicial)
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  i = 0;
}

void loop() {
 
   while (i < 7500)
   {
     // Movimentação para a frente
     motor1.run(FORWARD);
     motor2.run(FORWARD);
     i=i+1;
   }

   // Para os motores
   motor1.run(RELEASE);
   motor2.run(RELEASE);
   delay (2000);

   while (i >0)
   {
     // Movimentação para trás
     motor1.run(BACKWARD);
     motor2.run(BACKWARD);
     i=i-1;
   }

   // Para os motores
   motor1.run(RELEASE);
   motor2.run(RELEASE);
   delay (2000);
}


Referências:



O Vídeo:




Espero que gostem!

Sem comentários:

Enviar um comentário