domingo, 4 de dezembro de 2016

Projeto 14: Construção de um Robôt

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