Pathfinder: Kit Projeto Arduino UNO – Robô Desviador de Obstáculos
Componentes e Materiais
- 1x Arduino UNO (componente principal)
- 1x Sensor Ultrassônico HC-SR04 (componente principal)
- 2x Bateria Li-Ion 1000mAh (componente principal)
- 1x LED RGB Difuso Cátodo Comum (componente principal)
- 1x Buzzer (material necessário)
- 3x Resistor 330 Ω (material necessário)
- 1x Cabo USB-A para B (material necessário)
- 20x Jumpers (material necessário)
Ferramentas e Máquinas Necessárias
- Arduino Materia 101 (máquina principal)
- Chave de fenda Digilent (ferramenta necessária)
Aplicativos e Serviços Online
- Arduino IDE (app principal)
- Autodesk Fusion 360 (serviço online)
Sobre o Projeto
Sinopse
Este artigo apresenta o projeto de um Robô Desviador de Obstáculos capaz de detectar objetos em seu caminho e navegar ao redor deles tomando decisões adequadas. Demonstra uma unidade robótica baseada em Arduino UNO e Adafruit Motor Shield com código na Arduino IDE. Desvio de obstáculos é fator chave para robôs móveis. A implementação do Sensor de Distância Ultrassônico montado em Micro-Servo proporcionou maior precisão na detecção de objetos ao redor. Este robô difere de outros por integrar Buzzer Magnético e LED RGB Difuso Cátodo Comum, permitindo indicar procedimento de detecção e controlar velocidade dos Motores DC em 4 circunstâncias. Como robô autônomo, executa manobras em condições desconhecidas sem impacto. A tecnologia pode ser aplicada em operações militares e assistência humanitária melhorando capacidade de detecção em ambientes diversos.
Multimídia






Interpretação
Bibliotecas incluídas:
AFMotor.h
Servo.h
Conexões definidas:
#define BuzzPIN A0 // Buzzer "+"
#define TrigPIN A1 // Ultrassônico Trig
#define EchoPIN A2 // Ultrassônico Echo
#define LEDBPIN A3 // LED Azul
#define LEDGPIN A4 // LED Verde
#define LEDRPIN A5 // LED Vermelho
#define DCMROFF 25 // Offset calibração motores DC
Funcionalidades do programa:
- Detectar objetos em faixas de distância pré-determinadas.
- Buscar novo caminho na direção mais livre.
- Indicar detecção e controlar velocidade (som + luz).
Todas as operações autônomas, sem controle externo.
Este robô difere de outros por: indicação luz/som, controle de velocidade dos motores, e manobra intensa detectando obstáculos em 180° à frente (difícil de combinar via programação). Construído na plataforma Arduino UNO Rev3 com Arduino IDE v1.8.5. Com desenvolvimentos futuros (câmera + wireless), aplicável em operações militares; unidades básicas auxiliam deficientes visuais/auditivos a notificar objetos ao redor.

Youth Zest Project Showcase
Código
ProgramaArduino
Programa assembly para configurar esta máquina autônoma.
#include <AFMotor.h> // Adafruit Motor Shield library
#include <Servo.h> // Servo library
#define BuzzPIN A0
#define TrigPIN A1
#define EchoPIN A2
#define LEDBPIN A3
#define LEDGPIN A4
#define LEDRPIN A5
#define DCMROFF 25
AF_DCMotor M1(1, MOTOR12_64KHZ); // Motor #1 @ 64kHz PWM
AF_DCMotor M2(2, MOTOR12_64KHZ); // Motor #2 @ 64kHz PWM
Servo SER1; // Servo object
int Search(void) {
float Duration = 0.0;
float CM = 0.0;
digitalWrite(TrigPIN, LOW);
delayMicroseconds(2);
digitalWrite(TrigPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPIN, LOW);
Duration = pulseIn(EchoPIN, HIGH);
CM = (Duration / 58.8); // Conversão para cm
return CM;
}
int RightDistance, LeftDistance;
float Distance = 0.00;
void setup() {
pinMode(BuzzPIN, OUTPUT);
pinMode(TrigPIN, OUTPUT);
pinMode(EchoPIN, INPUT);
pinMode(LEDBPIN, OUTPUT);
pinMode(LEDGPIN, OUTPUT);
pinMode(LEDRPIN, OUTPUT);
SER1.attach(10); // Servo no pino 10 (shield Adafruit)
}
void loop() {
SER1.write(80); // Centro (frente)
delay(100);
Distance = Search();
if (Distance < 30) { // Obstáculo < 30cm
digitalWrite(BuzzPIN, HIGH);
digitalWrite(LEDBPIN, LOW);
digitalWrite(LEDGPIN, LOW);
digitalWrite(LEDRPIN, HIGH); // Vermelho
M1.setSpeed(100);
M2.setSpeed(100);
ChangePath();
}
else if (Distance >= 30 && Distance < 60) { // 30-60cm
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, HIGH); // Azul
digitalWrite(LEDGPIN, LOW);
digitalWrite(LEDRPIN, LOW);
M1.setSpeed(150);
M2.setSpeed(150);
Forward();
}
else if (Distance >= 60 && Distance < 90) { // 60-90cm
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, LOW);
digitalWrite(LEDGPIN, HIGH); // Verde
digitalWrite(LEDRPIN, LOW);
M1.setSpeed(200);
M2.setSpeed(200);
Forward();
}
else { // > 90cm livre
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, HIGH); // Branco (RGB all on)
digitalWrite(LEDGPIN, HIGH);
digitalWrite(LEDRPIN, HIGH);
M1.setSpeed(250);
M2.setSpeed(250);
Forward();
}
}
void ChangePath() {
Stop();
Backward();
Stop();
SER1.write(12); // Direita
delay(500);
RightDistance = Search();
delay(500);
SER1.write(160); // Esquerda
delay(1000);
LeftDistance = Search();
delay(500);
SER1.write(80); // Centro
delay(500);
CompareDistance();
}
void CompareDistance() {
if (RightDistance > LeftDistance) TurnRight();
else if (LeftDistance > RightDistance) TurnLeft();
else TurnAround();
}
void Forward() {
M1.run(FORWARD);
M2.run(FORWARD);
}
void Backward() {
M1.run(BACKWARD);
M2.run(BACKWARD);
delay(500);
}
void TurnRight() {
M1.run(BACKWARD);
M2.run(FORWARD);
M1.setSpeed(100 + DCMROFF);
delay(300);
}
void TurnLeft() {
M1.run(FORWARD);
M2.run(BACKWARD);
M2.setSpeed(100 + DCMROFF);
delay(300);
}
void TurnAround() {
M1.run(FORWARD);
M2.run(BACKWARD);
M2.setSpeed(100 + DCMROFF);
delay(700);
}
void Stop() {
M1.run(RELEASE);
M2.run(RELEASE);
delay(100);
}
Peças Personalizadas e Caixas
Chassis
Chassis do robô para montagem desta máquina autônoma.
Esquemático
Diagrama de circuito para montagem desta máquina autônoma.
Processo de manufatura
- Dominando a Sintaxe de Netlist SPICE: Nomenclatura de Componentes, Elementos Passivos e Ativos, e Definição de Fontes
- Circuitos Integrados (CIs): Chips Compactos e Poderosos Impulsionando a Eletrônica Moderna
- Transferência de Dados de Temperatura e Umidade entre Dois Arduinos via Firebase
- Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
- Sistema Multi-Posição de Sensores de Temperatura para Integração em Casa Inteligente
- Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
- Kit MOSMusic: MOSFET, Arduino e Mais - Iluminação Sincronizada com Música
- Microeletrônica Explicada: A Ciência da Eletrônica Minúscula
- Componentes Essenciais de uma Máquina de Furar: Visão Geral Completa
- Principais Componentes de um Motor de Combustão Interna