Projeto 14: Construção de um Robôt (Tanque).
Neste projeto vou mostrar como construir um robôt utilizando o chassis RP5 com lagartas e 2WD.
As componentes utilizadas:
Chassis Tanque RP5 2WD com suporte de 6 pilhas 1,5V
Arduino Uno + 2A Motor Shield + Cartão 17x8 cm + Pilha 9V + Conetor 9V
Breadboard pequena
O esquema de ligações do 2A Motor Shield:
As fases do projeto:
1 - A montagem da pilha de 9V no cartão:
2 - Passagem dos fios dos motores para a parte de cima do cartão:
3 - Fixação do Arduino e do Motor Shield:
4 - Ligar os Motores ao Motor Shield e a Pilha de 9V ao Arduino:
(Os fios castanhos no centro e os brancos nas pontas dos 4 conetores verdes)
(os jumpers deverão estar como ilustra a figura acima)
(os jumpers para a alimentação devem estar ligado nos pins Vin)
5 - A fase de montagem finalizada:
(Posteriormente ainda passei os fios da alimentação das pilhas do chassis
para a frente do tanque, na breadboard)
O Código do Arduino:
// ------------------------------------
// Projeto realizado por: Jacinto Palma
// Dezembro de 2016
// ------------------------------------
int m1speed=6; // pino para o controlo da velocidade do Motor1
int m2speed=5; // pino para o controlo da velocidade do Motor2
int m1direction=7; // pino para o controlo da direção do Motor1
int m2direction=4; // pino para o controlo da direção do Motor2
void setup()
{
pinMode(m1direction, OUTPUT);
pinMode(m2direction, OUTPUT);
delay(5000);
}
void goForward(int duration, int pwm)
{
digitalWrite(m1direction,HIGH); // mover Motor1 para a frente (forward)
digitalWrite(m2direction,HIGH); // mover Motor2 para a frente (forward)
analogWrite(m1speed, pwm); // atribuir a velocidade ao Motor1
analogWrite(m2speed, pwm); // atribuir a velocidade ao Motor2
delay(duration);
analogWrite(m1speed, 0);
analogWrite(m2speed, 0);
}
void goBackward(int duration, int pwm)
{
digitalWrite(m1direction,LOW); // mover Motor1 para trás (backward)
digitalWrite(m2direction,LOW); // mover Motor2 para trás (backward)
analogWrite(m1speed, pwm);
analogWrite(m2speed, pwm);
delay(duration);
analogWrite(m1speed, 0);
analogWrite(m2speed, 0);
}
void rotateRight(int duration, int pwm)
{
digitalWrite(m1direction,HIGH); // mover Motor1 para a frente (forward)
digitalWrite(m2direction,LOW); // mover Motor2 para trás (backward)
analogWrite(m1speed, pwm);
analogWrite(m2speed, pwm);
delay(duration);
analogWrite(m1speed, 0);
analogWrite(m2speed, 0);
}
void rotateLeft(int duration, int pwm)
{
digitalWrite(m1direction,LOW); // mover Motor1 para trás (backward)
digitalWrite(m2direction,HIGH); // mover Motor2 para a frente (forward)
analogWrite(m1speed, pwm);
analogWrite(m2speed, pwm);
delay(duration);
analogWrite(m1speed, 0);
analogWrite(m2speed, 0);
}
void loop()
{
goForward(1000, 255);
rotateLeft(1000, 255);
goForward(1000, 255);
rotateRight(1000, 255);
goForward(1000, 255);
goBackward(2000, 255);
delay(2000);
}
O Vídeo:
Espero que gostem!














Sem comentários:
Enviar um comentário