Pathfinder: Arduino UNO Project Kit – Componenten & Benodigdheden
Onderdelen en benodigdheden
| Arduino UNO | × | 1 |
| Ultrasonische sensor HC-SR04 (Generiek) | × | 1 |
| Li-Ion accu 1000mAh | × | 2 |
| RGB Diffused Common Cathode | × | 1 |
| Buzzer | × | 1 |
| Weerstand 330 ohm | × | 3 |
| USB-A naar B kabel | × | 1 |
| Draadjes (standaard) | × | 20 |
Benodigde tools en machines
- Arduino Materia 101
- Digilent Schroevendraaier
Apps en online diensten
- Arduino IDE
- Autodesk Fusion 360
Over dit project
Samenvatting
Dit document beschrijft het ontwerp van een obstakelvermijdende robot die objecten in haar pad detecteert en eromheen navigeert door passende beslissingen. Het demonstreert een robotische eenheid gebaseerd op Arduino UNO en Adafruit Motor Shield, geprogrammeerd in Arduino IDE. Obstakelvermijding is een cruciale factor voor mobiele robots. De implementatie van de ultrasonische afstandssensor op een micro-servomotor leverde meer precisie bij het detecteren van omringende objecten. Deze robot verschilt van andere door de integratie van een magnetische buzzer en een CC RGB Diffused LED, waarmee ze objectdetectie aangeeft en de snelheid van DC-gearmotoren in 4 omstandigheden regelt. Als autonome robot manoeuvreert het door onbekende omstandigheden zonder impact. De technologie kan ingezet worden voor militaire operaties en humanitaire hulp door de detectiecapaciteit in diverse omgevingen te verbeteren.
Multimedia






Interpretatie
De gebruikte bibliotheken:
AFMotor.h
Servo.h
Gedefinieerde verbindingen:
#define BuzzPIN A0
#define TrigPIN A1
#define EchoPIN A2
#define LEDBPIN A3
#define LEDGPIN A4
#define LEDRPIN A5
#define DCMROFF 25
Het verwachte programma:
- Objecten detecteren op vooraf bepaalde afstanden.
- Zoeken naar een vrij pad in een open richting.
- Objectdetectie aangeven en snelheid regelen.
Alle operaties autonom, zonder externe controle.
Deze robot verschilt door licht-geluidindicatie, motor-snelheidsregeling, en intense manoeuvring door 180-graden detectie voorin. Gebouwd op Arduino UNO Rev3 met Arduino IDE v1.8.5. Met verdere uitbreiding (camera, draadloos) bruikbaar voor militaire operaties of hulp aan visueel/gehoorbeperkte mensen.

Youth Zest Project Showcase
Code
Programma (Arduino)
De assembleercode voor het opzetten van deze autonome machine.
#include <AFMotor.h>
#include <Servo.h>
#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);
AF_DCMotor M2(2, MOTOR12_64KHZ);
Servo SER1;
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);
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);
}
void loop() {
SER1.write(80);
delay(100);
Distance = Search();
if (Distance < 30) {
digitalWrite(BuzzPIN, HIGH);
digitalWrite(LEDBPIN, LOW);
digitalWrite(LEDGPIN, LOW);
digitalWrite(LEDRPIN, HIGH);
M1.setSpeed(100);
M2.setSpeed(100);
ChangePath();
}
else if ((Distance >= 30) && (Distance < 60)) {
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, HIGH);
digitalWrite(LEDGPIN, LOW);
digitalWrite(LEDRPIN, LOW);
M1.setSpeed(150);
M2.setSpeed(150);
Forward();
}
else if ((Distance >= 60) && (Distance < 90)) {
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, LOW);
digitalWrite(LEDGPIN, HIGH);
digitalWrite(LEDRPIN, LOW);
M1.setSpeed(200);
M2.setSpeed(200);
Forward();
}
else {
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, HIGH);
digitalWrite(LEDGPIN, HIGH);
digitalWrite(LEDRPIN, HIGH);
M1.setSpeed(250);
M2.setSpeed(250);
Forward();
}
}
void ChangePath() {
Stop();
Backward();
Stop();
SER1.write(12);
delay(500);
RightDistance = Search();
delay(500);
SER1.write(160);
delay(1000);
LeftDistance = Search();
delay(500);
SER1.write(80);
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);
}
Custom parts en behuizingen
Chassis
Het robot-chassis voor het opzetten van deze autonome machine.
Schema's
Het schakelingsschema voor het opzetten van deze autonome machine.
Productieproces
- Geïntegreerde Schakelingen (IC's): Compacte, Krachtige Chips die Moderne Elektronica Aandrijven
- Temperatuur- en vochtigheidsdata overdragen tussen twee Arduinos via Firebase
- Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
- Meerpositie-temperatuursensorsysteem voor slimme thuisintegratie
- DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
- MotionSense: Slimme inbraakdetectie met Arduino en ESP8266
- MOSMusic Project Kit: MOSFET, Arduino en meer
- Essentiële Onderdelen van een Boormachine: Een Uitgebreid Overzicht
- Belangrijkste Componenten van een Interne Verbrandingsmotor
- SPICE Netlist Syntaxis Beheersen: Componentnamen, Passieve & Actieve Elementen, en Brondefinities
- Micro-elektronica: de wetenschap van miniatuur elektronica