segunda-feira, 28 de novembro de 2016

Projeto 13: Robôt com Controlador L298N


Neste projeto vou mostrar como utilizar o Arduino com o Controlador L298N e recorrendo ao chassis Arexx ARX-CH09.



As componentes utilizadas:

 Arduino Mega + Controlador L298N + Chassis AREXX ARX-CH09

Fios (jumpers wires) + Pilha 9V + Suporte para pilha 9V

Também utilizei: 1 Breadboard pequena + 1 bloco de 2 terminais + 1 Switch pequeno



O esquema de ligações do Controladot L298N:


Como vamos recorrer a uma alimentação de 9V temos de manter o jumper "ATIVA 5v".


A ligação entre as entradas do controlador e o Arduino será a seguinte:

IN1 - D4  (utilizei um fio laranja)
IN2 - D5  (utilizei um fio branco)
IN3 - D6  (utilizei um fio verde)
IN4 - D7  (utilizei um fio azul)




As fases do Projeto:

1ª - Ligação dos motores ao Controlador L298N:



Observação: Para este projeto, aproveitei o chassis ARX-CH09 no qual já tinha montado os motores e a alimentação (3V). Para o presente projeto vou ignorar esta alimentação!


2ª - Ligação dos switch ao bloco de 2 terminais:


Um dos fios vermelhos deste terminal é ligado ao controlador na saída 6-35V (ver esquema anterior). O outro fio vermelho vai diretamente á pilha de 9V. Assim, de uma forma fácil é ligado/desligado o robôt!


3ª - Ligação da alimentação do Arduino:

As ligações efetuadas foram as seguintes:

- GND do controlador liguei 2 fios: GND no Arduino e Ligação à pilha 9V.
- 5V do controlador liguei 1 fio para os 5V do Arduino.



 

A preocupação residiu na funcionalidade e não na estética!


O código do Arduino:

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

//definição dos pinos de entrada do Controlador
//e respetivas ligações no Arduino
int IN1 = 4;
int IN2 = 5;
int IN3 = 6;
int IN4 = 7;
 
void setup()
{
  //Definição dos pinos como saida
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}
 
void loop()
{
 //Gira o Motor A no sentido horario
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, LOW);
 delay(2500);

 //Para o motor A
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, HIGH);
 delay(500);

 //Gira o Motor B no sentido horario
 digitalWrite(IN3, HIGH);
 digitalWrite(IN4, LOW);
 delay(2500);

 //Para o motor B
 digitalWrite(IN3, HIGH);
 digitalWrite(IN4, HIGH);
 delay(500);

 //Gira o Motor A no sentido anti-horario
 digitalWrite(IN1, LOW);
 digitalWrite(IN2, HIGH);
 delay(2500);

 //Para o motor A
 digitalWrite(IN1, HIGH);
 digitalWrite(IN2, HIGH);
 delay(500);

 //Gira o Motor B no sentido anti-horario
 digitalWrite(IN3, LOW);
 digitalWrite(IN4, HIGH);
 delay(2500);

 //Para o motor B
 digitalWrite(IN3, HIGH);
 digitalWrite(IN4, HIGH);
 delay(500);
}


O vídeo:




Espero que gostem!

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!