Diese Anleitung soll Sie Schritt für Schritt durch den Bau eines einfachen Hindernisvermeidungsroboters führen. Dies ist die einfachste Roboterart, da sie nur wenige Materialien und geringe Kosten benötigt und sich daher ideal für Anfänger eignet. Bevor wir auf die einzelnen Schritte eingehen, hier eine kurze Definition des Begriffs Robotik.
Die Robotik ist ein interdisziplinäres Teilgebiet der Ingenieurwissenschaften, das sich mit dem Entwurf, dem Bau, dem Betrieb und der Anwendung von Robotern befasst. Diese können programmierbar oder autonom (KI-gesteuert) sein und verschiedene Aufgaben übernehmen, die sonst von Menschen ausgeführt würden. Die Robotik vereint Maschinenbau, Elektrotechnik und Informatik.
Ein Hindernisvermeidungsroboter ist ein autonomer Roboter, der mithilfe von Sensoren Hindernisse erkennt, diese umfährt und weitere Aufgaben ausführt. Er kann so programmiert werden, dass er Hindernissen ausweicht oder Aktionen ausführt, die auf den Messwerten eines Ultraschallsensors basieren. Die Abbildung unten zeigt ein Beispiel für einen solchen Hindernisvermeidungsroboter.
Abb. 1 Ein Hindernisvermeidungsroboter.
Dieser Artikel richtet sich an alle, die zum ersten Mal einen eigenen Roboter bauen möchten, oder an diejenigen, die etwas ganz Einfaches wie einen Hindernisvermeidungsroboter konstruieren wollen. Egal, zu welcher Gruppe Sie gehören, hier finden Sie die Details zum Bau eines autonomen Radroboters. Die notwendigen Schritte sind unten aufgeführt und werden anschließend erläutert.
Bevor Sie mit dem Bau Ihres Roboters beginnen, ist es – wie bei jedem anderen Projekt auch – wichtig, die benötigten Materialien zu ermitteln und zu beschaffen. So erhalten Sie einen klaren Überblick darüber, was möglich ist und was nicht. Für meinen einfachen Hindernisvermeidungsroboter benötige ich sowohl mechanische als auch elektrische Bauteile. Hier sind die wichtigsten Materialien, die dafür erforderlich sind.
Hierbei handelt es sich um Motoren mit angeschlossenen Zahnrädern, die das Drehmoment erhöhen und somit eine stärkere Bewegung ermöglichen. In diesem Fall musste ich den SG90-Servomotor modifizieren, um ihn an meine Pläne für meinen autonomen Roboter anzupassen.
Diese Motoren ähneln Getriebemotoren, verfügen jedoch über ein Potentiometer und teilweise über eine Drehzahlbegrenzung. Das bedeutet, dass ihr Drehwinkel meist auf 180 Grad begrenzt ist, obwohl einige Modelle eine 360-Grad-Drehung ohne Unterbrechung ermöglichen. In diesem Fall habe ich einen begrenzten Typ wie den Servomotor SG90 verwendet. Der SG90 hat drei Kabel: VCC (rot), Signal (gelb oder weiß) und Masse (schwarz oder braun).
Dies ist eine Platine mit Mikroprozessoren oder Mikrocontrollern, die die Schnittstelle zwischen Mechanik, Elektrotechnik und Informatik ermöglicht. Sie bietet Ingenieuren, Hobbybastlern und Studenten eine schnelle Möglichkeit, ihre Projekte zu entwickeln und zu testen. Beispiele hierfür sind Arduino, Raspberry Pi und ESP32. In diesem Fall habe ich einen Arduino Uno verwendet.
Abb. 4. Arduino Uno
Dies ist eine unbestückte Leiterplatte, mit der Sie elektrische Bauteile wie Widerstände, Potentiometer, LEDs und andere benötigte Komponenten bestücken können. Die Verwendung der Leiterplatte ist jedoch optional, da die Verbindungen für dieses Projekt auch ohne sie hergestellt werden können.
Der Ultraschallsensor misst Entfernungen mithilfe von Schallwellen und sendet die Rohdaten an das Entwicklungsboard. Dort werden sie von der Arduino-/Computerschnittstelle interpretiert, um die gewünschte Ausgabe zu generieren. Diese Ausgabe kann beispielsweise das Starten oder Stoppen des Roboters oder eine andere Aktion sein. In diesem Fall habe ich den HC-SR04 verwendet.
Abb. 6. Ultraschallsensor HC-SR04
Der Motortreiber dient dazu, die Motoren mithilfe von Jumperkabeln mit dem Arduino-Board zu verbinden. Dadurch wird die Kontrolle über den Motor ermöglicht, z. B. über Drehrichtung, Geschwindigkeit und alle anderen Aktionen.
Abb. 7. Motortreiber TB6612FNG
Dies ist die Stromversorgung für das gesamte System, im Wesentlichen zwei in Reihe geschaltete Lithium-Ionen-Akkus für eine höhere Spannung. In diesem Fall habe ich zwei 18650-Lithium-Ionen-Akkus mit 3,7 V und 3200 mAh verwendet.
Abb. 8. DC 18650, 3,7 V, 3200 mAh, Lithium-Ionen-Akku
Dieses Abwärtsmodul ermöglicht es Ihnen, höhere Spannungen auf niedrigere Werte für Komponenten wie Arduino Uno, Servomotoren, Getriebemotoren, Ultraschallsensoren und LCD-Displays zu reduzieren. Die beiden in Reihe geschalteten Batterien liefern eine Gesamtspannung von 7,4 V, während die meisten Komponenten mit 5 V bis 6 V arbeiten. Die Reduzierung der Spannung mittels eines DC/DC-Abwärtswandlers verhindert Schäden an den zuvor genannten spannungsempfindlichen Bauteilen.
Abb. 9. DC-DC-Abwärtswandler, Spannungsabwärtsmodul LM2596
Dies ist eine Anzeigeeinheit für Ihre Konfiguration, die anzeigt, welche Aktivität der Roboter zu jedem Zeitpunkt ausführt. In manchen Fällen wird das LCD mit einem Adapter geliefert, der die Anzahl der Pins (12 Pins) des LCDs auf 4 Pins reduziert, um den Anschluss an den Arduino Uno mit nur 4 Pins zu ermöglichen.
Abb. 11. 16×2 I2C LCD und Rucksack
Hierbei handelt es sich um dünne elektrische Leitungen mit Stecker-Stecker, Buchse-Stecker und Buchse-Buchse zum einfachen Verbinden von Bauteilen. In diesem Fall habe ich alle drei Arten von Jumperleitungen für verschiedene Verbindungspunkte verwendet.
Abb. 12. Jumperkabel (weiblich – weiblich)
Es handelt sich um ein Chassis bzw. eine Struktur, die die gesamte Anlage, sowohl die mechanischen als auch die elektrischen Komponenten, zusammenhält. In diesem Fall habe ich das innere Chassis, das alle Komponenten aufnimmt, im 3D-Druckverfahren hergestellt und die gesamte Anlage anschließend mit einem Gehäuse versehen, um ihr ein ansprechenderes äußeres Erscheinungsbild zu verleihen.
Abb. 13. Radroboterrahmen
Hierbei handelt es sich um kleine Reifen für die Mobilität des Roboters. Je nach Wahl können es zwei (mit Kugelgelenk) oder vier sein. In diesem Fall habe ich zwei 3D-gedruckte Räder und ein Kugelgelenk zur Stabilisierung verwendet.
Abb. 14. Roboterräder
Der nächste Schritt ist der Bau des Roboterrahmens. Dieser hängt vom gewünschten Robotertyp ab. Da wir einen autonomen Radroboter bauen, montieren wir den Rahmen und befestigen nach dem Anbringen der notwendigen Komponenten ein Rad daran. Der Rahmen kann entweder fertig im Handel erhältlich oder als DIY-Roboterrahmen verwendet werden. In diesem Fall habe ich nicht nur einen individuellen Rahmen, sondern auch ein Gehäuse für meinen autonomen Radroboter mithilfe von 3D-dell(Fusion 360) und 3D-Druck erstellt. Die einzelnen Schritte sind unten aufgeführt.
Der erste Schritt ist das Starten Ihrer 3D-CAD-Software, beispielsweise SolidWorks, Fusion 360oder Onshape, je nachdem, welches Programm Sie verwenden können. In diesem Fall habe ich mich für Autodesk Fusion 360, da das Projekt sehr einfach war und ich zudem Wert auf ein schlankes Gehäuse mit fließenden Übergängen legte. Anschließend habe ich die CAD-Datei der benötigten Komponenten (sowohl mechanische als auch elektrische) importiert.
Abb. 15. CAD-Dateien für Servomotoren
Abb. 16. Weitere CAD-Komponenten
Im nächsten Schritt wurden die importierten CAD-Dateien der Bauteile mithilfe von Oberflächen- unddelldell. Dies hilft mir, Toleranzprobleme und Kollisionen der Bauteile mit dem Gehäuse während der Montage zu vermeiden.
Abb. 17.delldes Gehäuses
Abb. 18.delldes Gehäuses (Fortsetzung)
Abb. 19. Roboterkopfgehäuse in Arbeit

Abb. 20. Roboterkopfgehäuse in Arbeit (Fortsetzung).
Abb. 21. Schnittanalyse der 3D-Modellfront

Abb. 22. Schnittanalyse der Rückseite des 3D-Modells

Abb. 23. Transparente Vorderansicht

Abb. 24. Transparente Rückansicht
Nachdem die 3D-dellabgeschlossen war, exportierte ich die einzelnen Dateien des Rahmens und des Gehäuses im STL-Format und bereitete sie für den 3D-Druck vor.

Abb. 25. STL-Dateiexport läuft

Abb. 26. STL-Datei wird für den 3D-Druck gesliced
Nach dem 3D-Druck habe ich als Nächstes den Rahmen bzw. das Chassis zusammengebaut und alle mechanischen und elektrischen Komponenten angeschlossen. Zuerst wurden die Rahmenmodule montiert, dann die mechanischen Komponenten wie Motoren und Räder, gefolgt von den elektrischen Komponenten wie Arduino Uno, DC/DC-Abwärtswandler, Motortreiber, Ultraschallsensor, LCD-Display, Batterien und Jumperkabeln. Im Folgenden ist die vollständige Anleitung für die mechanischen und elektrischen Verbindungen der Baugruppe beschrieben.
Als Erstes habe ich den 3D-gedruckten Rahmen zusammengebaut und anschließend die mechanischen und elektrischen Komponenten hinzugefügt. Die Bilder unten zeigen das Ergebnis.
Abb. 27. Komponentenmontage
Abb. 28. Gehäusemontage
Anschließend habe ich alle elektrischen Verbindungen hergestellt und die einzelnen Komponenten mit Jumperkabeln miteinander verbunden. Unten sehen Sie einen Schaltplan der Verbindungen

Abb. 29. Schematische Darstellung eines autonomen, radgetriebenen Hindernisvermeidungsroboters
Um die Spannung von 7,4 V auf 5 V zu reduzieren, drehen Sie das Potentiometer am DC/DC-Abwärtswandler, bis Ihr Multimeter 5 V anzeigt. Das Potentiometer ist die Schraubenkopfkonstruktion am blauen Quader des Abwärtswandlers
Im letzten Montageschritt wurde die gesamte Konstruktion mit dem 3D-gedruckten Gehäuse versehen. Siehe Abbildungen unten.
Abb. 30. Vorderansicht der Baugruppe mit 3D-Rendering.
Abb. 31. Rückansicht der Baugruppe.
Im letzten Schritt wird das Computerprogramm geschrieben, ausgeführt und hochgeladen. Hierfür habe ich die Arduino IDE verwendet, die auf C++ oder C# basiert. Der Code wurde über ein USB-Kabel an einen bestimmten Port des Computers übertragen. Unten sehen Sie Bilder des autonomen Radroboters im Einsatz.
Abb. 32. Das Hochladen des Computerprogramms läuft
Abb. 33. Roboter bereit zur Aktivierung
Ein Beispiel für typischen Arduino-Code ist unten aufgeführt. Sie können ihn kopieren und in Ihr Arduino IDE-Programm einfügen:
// Code für einen autonomen Radroboter mit I2C-LCD // Aktualisiert: Rückwärtsgang und Leerlaufanimation hinzugefügt #include<Servo.h> #enthalten<Wire.h> #enthalten<LiquidCrystal_I2C.h> // Motortreiber-Pins const int AIN1 = 7; const int AIN2 = 6; const int BIN1 = 4; const int BIN2 = 5; const int PWMA = 3;
Kopiert✓