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:
Livraria AFMotor.h: https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master
O Vídeo:
Espero que gostem!



















Sem comentários:
Enviar um comentário