Robô Inteligente baseado em Arduino

Material necessário:


HARDWARE
1L293D 
1Chessis 
2wheels 
20jumper wires 
1arduino uno 
1ultrasonic sensor 
SOFTWARE
1arduino ide



Aprenda uma maneira super fácil de criar um robô que evita obstáculos com Placa Arduino. Este projeto é simples e eficaz para iniciantes. Criar um Robô que evita obstáculos presentes no seu caminho significa criar um Robô Inteligente, algo muito aliciante. Poderá também criar um Robô que resolve labirintos. Neste artigo partilhamos códigos e conexões.

Robô Inteligente baseado em Arduino

Use um sensor ultrassónico para medir a distância. O aparelho produz uma onda sonora ultrassónica que é refletida de volta a partir de qualquer objeto sólido. A velocidade do som é de 340 metros por segundo. Medir o tempo e aplicar uma fórmula simples ( Distância = Velocidade x Tempo ), obter a distância e dividir essa distância por 2 para conseguir obter a distância exata.
Poderá programar o seu robô de acordo com essa distância exata, assim como fiz no meu código.
Quando a distância é inferior a 15cm, programa-se o robo para virar à esquerda, se a distância for maior de 15cm programe para seguir em frente.

criar robo simples
Imagem: https://maker.pro/arduino/projects/arduino-based-smart-robot


Copie o código abaixo e faça o download no seu painel do Arduino.
        #define trigPin 6
#define echoPin 7
#define left_m1 2
#define left_m2 3
#define rgt_m1 4
#define rgt_m2 5
#define led 13
void setup()
{ Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(left_m1, OUTPUT);
  pinMode(left_m2, OUTPUT);
  pinMode(rgt_m1, OUTPUT);
  pinMode(rgt_m2, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
}
void forward()
{
  analogWrite(5, 30);
  analogWrite(6, 30);
  digitalWrite(left_m1, LOW);
  digitalWrite(left_m2, HIGH);
  digitalWrite(rgt_m1, LOW);
  digitalWrite(rgt_m2, HIGH);
  digitalWrite(led, HIGH);
}
void back()
{
  analogWrite(5, 30);
  analogWrite(6, 30);
  digitalWrite(left_m1, HIGH);
  digitalWrite(left_m2, LOW);
  digitalWrite(rgt_m1, HIGH);
  digitalWrite(rgt_m2, LOW);
  digitalWrite(led, HIGH);
}
void right()
{
  analogWrite(5, 30);
  analogWrite(6, 30);
  digitalWrite(left_m1, HIGH);
  digitalWrite(left_m2, LOW);
  digitalWrite(rgt_m1, LOW);
  digitalWrite(rgt_m2, HIGH);
  digitalWrite(led, HIGH);
}
void left()
{
  analogWrite(5, 30);
  analogWrite(6, 30);
  digitalWrite(left_m1, LOW);
  digitalWrite(left_m2, HIGH);
  digitalWrite(rgt_m1, HIGH);
  digitalWrite(rgt_m2, LOW);
  digitalWrite(led, HIGH);
}
void stops()
{
  digitalWrite(left_m1, LOW);
  digitalWrite(left_m2, LOW);
  digitalWrite(rgt_m1, LOW);
  digitalWrite(rgt_m2, LOW);
  digitalWrite(led, LOW);
}
void loop()
{
  long distance, duration;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) / 29.1;
  Serial.println(distance);
  if (distance >= 25 )
  {
    forward();
   Serial.print("f");
  }
  else if (distance <= 24)
  {

    left();
    
  }
  
delay(400);

}
como montar robo simples
Imagem: https://maker.pro/arduino/projects/arduino-based-smart-robot


Monte o seu robô de acordo com os cismáticos:

Ultrasonic ----------- Arduino------------ motor driver
Eco                                      7
Trig                                      6
                                              2                                  IN 1
                                              3                                  IN2
                                              4                                  IN3
                                              5                                  IN4

Comentários