Material necessário: HARDWARE | |||
---|---|---|---|
1 | L293D | ||
1 | Chessis | ||
2 | wheels | ||
20 | jumper wires | ||
1 | arduino uno | ||
1 | ultrasonic sensor | ||
SOFTWARE | |||
1 | arduino 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.
![]() |
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);
}
![]() |
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
Enviar um comentário