Pathfinder: Arduino UNO Projekt-Kit – Hindernisvermeidender Roboter
Komponenten und Zubehör
| Arduino UNO | × | 1 |
| Ultraschallsensor HC-SR04 (Generic) | × | 1 |
| Li-Ion Akku 1000mAh | × | 2 |
| RGB Diffus Common Cathode | × | 1 |
| Summer (Buzzer) | × | 1 |
| Widerstand 330 Ohm | × | 3 |
| USB-A auf B Kabel | × | 1 |
| Jumper Kabel (generic) | × | 20 |
Benötigte Werkzeuge und Maschinen
- Arduino Materia 101
- Digilent Schraubendreher
Apps und Online-Dienste
- Arduino IDE
- Autodesk Fusion 360
Projektbeschreibung
Zusammenfassung
Die Arbeit stellt den Entwurf eines Hindernisvermeidungs-Roboters vor, der Objekte in seinem Kurs erkennt und durch richtige Entscheidungen um diese navigiert. Es demonstriert eine Roboter-Einheit basierend auf Arduino UNO und Adafruit Motor Shield, programmiert in Arduino IDE. Hindernisvermeidung ist ein Schlüsselfaktor für mobile Roboter. Die Implementierung des Ultraschall-Distanzsensors auf einem Micro-Servo-Motor ermöglichte präzisere Umgebungsdetektion. Dieser Roboter unterscheidet sich durch Integration eines magnetischen Summers und einer Common-Cathode RGB-LED, wodurch er Hinderniserkennung anzeigt und DC-Getriebemotor-Geschwindigkeit in 4 Situationen steuert. Als autonomer Roboter manövriert er durch unbekannte Bedingungen ohne Kollision. Technologie erweiterbar für Militäroperationen und humanitäre Hilfe durch verbesserte Objekterkennung in diversen Umgebungen.
Multimedia






Interpretation
Eingebundene Libraries:
AFMotor.h
Servo.h
Definierte Pin-Belegungen:
#define BuzzPIN A0
#define TrigPIN A1
#define EchoPIN A2
#define LEDBPIN A3
#define LEDGPIN A4
#define LEDRPIN A5
#define DCMROFF 25
Programm-Architektur:
- Objekte in vordefinierten Distanzbereichen erkennen
- Nach freier Richtung für neuen Pfad suchen
- Hinderniserkennung anzeigen und Geschwindigkeit steuern
Alle Operationen autonom ohne externe Steuerung.
Projekt präsentiert Details für mobilen Roboter mit Hindernisvermeidung, autonomer Navigation und Bewegungsanzeige der DC-Getriebemotoren durch farbselektive RGB-LED in 4 Situationen. Roboter unterscheidet sich durch Licht/Sound-Indikation, Motorgeschwindigkeitssteuerung und intensive Manövriertechnik durch 180°-Erkennung vor dem Roboter – programmatisch anspruchsvoll. Basis: Arduino UNO Rev3, Arduino IDE v1.8.5. Integration ermöglichte autonomes Arbeiten mit hoher Genauigkeit. Erweiterung um Kamera und Funktechnik → militärische Aufklärung; Basiseinheiten → Unterstützung seh-/hörbehinderter Menschen bei Objekterkennung.

Youth Zest Project Showcase
Code
Programm (Arduino)
Assembler-Programm für den Aufbau dieser autonomen Maschine.
#include <AFMotor.h> // Adafruit Motor Shield Library
#include <Servo.h> // Servo Motor Library
#define BuzzPIN A0 // Buzzer "+" Pin
#define TrigPIN A1 // Ultraschall Sensor "Trig" Pin
#define EchoPIN A2 // Ultraschall Sensor "Echo" Pin
#define LEDBPIN A3 // RGB LED Blau Pin
#define LEDGPIN A4 // RGB LED Grün Pin
#define LEDRPIN A5 // RGB LED Rot Pin
#define DCMROFF 25 // Offset für Unterschiede zwischen den zwei DC-Motoren
AF_DCMotor M1(1, MOTOR12_64KHZ); // DC Motor #1, 64kHz PWM
AF_DCMotor M2(2, MOTOR12_64KHZ); // DC Motor #2, 64kHz PWM
Servo SER1; // Servo Objekt
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); // Distanz in 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 an Pin 10 (Adafruit Shield)
}
void loop() {
SER1.write(80); // Servo nach vorne (80°)
delay(100);
Distance = Search(); // Distanz messen
if (Distance < 30) { // Hindernis < 30cm
digitalWrite(BuzzPIN, HIGH);
digitalWrite(LEDBPIN, LOW);
digitalWrite(LEDGPIN, LOW);
digitalWrite(LEDRPIN, HIGH); // Rot = Gefahr
M1.setSpeed(100);
M2.setSpeed(100);
ChangePath();
}
else if (Distance >= 30 && Distance < 60) { // 30-60cm
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, HIGH); // Blau = Vorsicht
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); // Grün = OK
digitalWrite(LEDRPIN, LOW);
M1.setSpeed(200);
M2.setSpeed(200);
Forward();
}
else { // > 90cm frei
digitalWrite(BuzzPIN, LOW);
digitalWrite(LEDBPIN, HIGH); // Weiß (alle an) = Frei
digitalWrite(LEDGPIN, HIGH);
digitalWrite(LEDRPIN, HIGH);
M1.setSpeed(250);
M2.setSpeed(250);
Forward();
}
}
void ChangePath() {
Stop();
Backward();
Stop();
SER1.write(12); // Rechts prüfen
delay(500);
RightDistance = Search();
delay(500);
SER1.write(160); // Links prüfen
delay(1000);
LeftDistance = Search();
delay(500);
SER1.write(80); // Zurück zur Mitte
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 & Enclosures
Chassis
Roboter-Chassis für den Aufbau dieser autonomen Maschine.
Schaltpläne
Schaltplan für den Aufbau dieser autonomen Maschine.
Herstellungsprozess
- SPICE Netlist-Syntax: Bauteilbenennung, passive & aktive Elemente, Quellen
- Integrierte Schaltkreise (ICs): Kompakte, leistungsstarke Chips, die moderne Elektronik antreiben
- Temperatur- und Luftfeuchtedaten zwischen zwei Arduinos via Firebase übertragen
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- Multi-Position Temperatursensor-System für Smart-Home-Integration
- DIY Arduino USB Gaming Controller – Bauen Sie Ihren eigenen High-Performance Gamepad
- MOSMusic: Musik-synchronisierte Lichtsteuerung mit CoolMOS MOSFET & Arduino
- Mikroelektronik: Die Wissenschaft winziger Elektronikbauteile
- Bohrmaschinen-Komponenten: Aufbau und Funktion im Detail
- Wesentliche Komponenten eines Verbrennungsmotors