Der Düvelbot ist ein kleiner fahrender Roboter auf Arduino-Basis, der über einen Ultraschallsensor zur Entfernungsmessung und Hindernisvermeidung sowie zwei Infrarot-Sensoren zur Linienverfolgung verfügt. Zusätzlich wird ein Display angebracht, um wichtige Informationen darzustellen, und er kann Töne abgeben. Durch die offene Architektur und die Verwendung von Standard-Arduino-Bauteilen sind einige Erweiterungen denkbar.
Der Düvelbot geht zurück auf eine Idee von Marco Düvelmeyer, der auf seinem Youtube-Kanal Technikwerkstatt 4.0 Tutorials rund um Arduino, 3D-Druck, CAD-Software und mehr für seinen Profilunterricht anbietet. Die Entwicklungsarbeit hat das Unternehmen Funduino übernommen, das den Düvelbot auch zum Kauf anbietet. Dort gibt es auch eine Montageanleitung für den Düvelbot. Für dieses Skript wurde der Düvelbot jedoch in einigen Bestandteilen angepasst und erweitert, daher findet sich hier eine eigene Anleitung mit einigen Anpassungen.
Dieser Abschnitt gibt eine Übersicht über die benötigten Bauteile und wie diese zu verkabeln sind. Dies dient der Kontrolle und kann auch zunächst übersprungen werden.
Suche in den bereitgestellten Kästen alle Kunststoffteile und Elektronikteile heraus, die du für den Düvelbot benötigst.
Kunststoffteile
Bild | Bauteil | Anzahl | STL-Datei zum Drucken |
---|---|---|---|
![]() |
Chassis | 1 | duevelbot-chassis.zip |
![]() |
Slider | 1 | duevelbot-slider.zip |
![]() |
Seitenhänger | 2 | duevelbot-seitenhaenger.zip |
![]() |
Anhänger hinten | optional | duevelbot-batteriehaenger.zip |
Elektronikteile
Bild | Bauteil | Anzahl | Hinweise |
---|---|---|---|
![]() |
Arduino Uno | 1 | |
![]() |
Expansion Shield mit kleinem Steckbrett und mehreren Pins für GND und 5V | 1 | |
![]() |
Motortreiber L298N | 1 | Aufbau und Funktionsweise / Informationen und Datenblatt zum L298N |
![]() |
N20 Getriebemotoren (100 RPM, 6V) | 2 | Die Kabel müssen noch angelötet werden. |
![]() |
Räder mit Felgen | 2 | passend zum Aufsetzen auf die Motorschäfte |
![]() |
Piezo-Summer | 1 | |
![]() |
Ultraschallsensor | 1 | |
![]() |
Infrarotsensoren TCRT5000 | 2 | Datenblatt des Sensors TCRT5000 |
![]() |
OLED-Display SSD1306 0,96" | 1 | |
![]() |
Kabel male - female | viele | Es wird zusätzlich ein male-male-Kabel benötigt. |
![]() |
9V-Block | 2 | Auch als USB-Akku verfügbar. |
![]() |
Clip zum Anschluss des 9V-Block mit Zylinderstecker für Arduino | 1 | |
![]() |
Clip zum Anschluss des 9V-Block mit offenen Kontakten für Schraubklemme | 1 |
Der folgende Schaltplan gibt einen Gesamtüberblick über die Schaltung aller Bauteile. Dies wird im folgenden Schritt für Schritt entwickelt.
Ziel: Es soll eine fahrbare Basisversion des Düvelbot gebaut und programmiert werden, sodass der Düvelbot vorwärts und rückwärts fahren, stoppen und lenken kann. Zudem soll er Töne abspielen können.
Für diesen Abschnitt werden folgende Grundlagen benötigt:
Befolge die folgende Anleitung zur Montage und Verkabelung, um die Basisversion des Düvelbots aufzubauen.
Schritt 2: Drücke den Motor in seine Halterung. Die Lasche kann vorsichtig nach unten gedrückt werden, bis die äußere goldene Platte des Getriebes fest in der Lasche sitzt.
Schritt 4: Stecke die Kabel des linken Motors in die linke Schraubklemme des Motortreibers L298N und schraube sie fest. Verfahre genauso auf der rechten Seite
Schritt 5: Stecke die Kabel des Clips mit offenen Kontakten in der Schraubklemme für die Spannungsversorgung am Motortreiber L298N. In der mittleren Schraubklemme muss ein zweites schwarzes Kabel (male-male) ergänzt werden, mit dem ein gemeinsames GND-Potential mit dem Arduino hergestellt wird. Teste durch vorsichtiges Ziehen an den Kabeln, ob sie fest verschraubt sind.
Schritt 7: Suche die Räder und den Slider heraus und schiebe sie an ihre Position. Beachte die Kerbe an der Radnabe, die genau auf die Kerbe am Motorschaft passt.
Schritt 8: Achte darauf, dass beide Räder gleich weit auf dem Motorschaft sitzen, sodass sie genau symmetrisch sind. Die Räder dürfen nicht am Gehäuse schleifen.
Schritt 9a: Entferne die Jumper für die Enable-Pins auf dem Motortreiber und verstaue sie so, dass sie nicht verloren gehen.
Schritt 9b: Stecke danach sechs Kabel auf die Pins En1/2, In1, In2, In3, In4 und En3/4. Eine genaue Beschriftung und Erklärung der Pins folgt im nächsten Abschnitt zum Schaltplan. Verwende für jeden Pin eine andere Farbe. Notiere dir, welche Farbe zu welchem Pin gehört.
Schritt 10: Führe die Kabel durch die dafür vorgesehenen Öffnungen an den Seiten. In der Regel passen zwei Kabel gut durch das gleiche Loch (nacheinander).
Schritt 11: Bereite den Piezo-Summer vor, indem du zwei Jumper-Kabel anbringst. Beachte das Plus-Symbol auf der oberen Seite - der Pin unter dem Plus muss mit dem Digitalpin am Arduino verbunden werden. Der andere Pin wird mit GND am Arduino verbunden. Am besten verwendest du hier wieder ein schwarzes Kabel für alle GND-Kontakte.
Schritt 12: Platziere den Piezo-Summer zwischen den beiden Motoren und führe die Kabel durch die Öffnungen an der Seite.
Schritt 13: Stecke das Expansion-Board auf den Arduino. Achte darauf, dass die Pinleisten genau übereinander liegen und nicht gegeneinander versetzt sind.
Schritt 14: Verkabele die Kabel der Bauteile entsprechend des Schaltplans mit dem Arduino (siehe nächsten Abschnitt unten). Nutze die GND-Leiste auf dem Expansion-Board (schwarze Kabel im Bild).
Schritt 16: Hake die Seitenhänger in die Öffnungen an der Seite und platziere die zwei 9V-Blöcke darin. Stecke den Clip mit Zylinderanschluss auf einen der 9V-Blöcke.
Schritt 17: Wenn der Roboter starten soll, werden beide 9V-Blöcke angeschlossen. Wenn der Roboter programmiert werden soll, werden die 9V-Blöcke abgeklemmt und stattdessen ein USB-Kabel an den Arduino angeschlossen.
Die Verkabelung erfolgt nach dem folgendem Schaltplan.
Konfiguriere den Piezo-Summer im Open Roberta Lab und lass den Düvelbot ein paar erste Lebenszeichen spielen!
Der Motortreiber L298N enthält eine H-Brücke, um die Motoren zu steuern. Um dies im Programm nutzen zu können, muss man die Funktionsweise der H-Brücke verstehen. Bearbeite dazu die folgenden Aufgaben aus dem Abschnitt Elektrische Grundlagen - Transistoren und Motoren.
Ergänze damit die folgende Tabelle:
In1 | In 2 | En1,2 | In3 | In4 | En3,4 | Wirkung |
---|---|---|---|---|---|---|
vorwärts fahren | ||||||
stoppen | ||||||
rückwärts fahren | ||||||
links vorwärts fahren, rechts stoppen | ||||||
links stoppen, rechts vorwärts fahren | ||||||
links vorwärts, rechts rückwärts fahren | ||||||
links rückwärts, rechts vorwärts fahren |
In der Aufgabe Einfachere Steuerung mit Funktionen siehst du, wie man die Steuerung von einem Motor in eine Funktion auslagern kann. Passe dies an, um die folgenden Funktionen zu implementieren.
vorwaertsFahren ( leistung )
: Lässt den Düvelbot mit der angegebenen Leistung zwischen 0 und 255 vorwärts fahren.
stoppe
: Lässt den Düvelbot stoppen.
rueckwaertsFahren ( leistung )
: Lässt den Düvelbot mit der angegebenen Leistung zwischen 0 und 255 rückwärts fahren.
fahreVorwaertsKurve ( leistungLinks, leistungRechts )
: Lässt den Düvelbot eine Vorwärtskurve fahren, wobei der Motor links mit der Leistung leistungLinks
und der Motor rechts mit der Leistung leistungRechts
gedreht wird (Leistungswerte zwischen 0 und 255).
Für Experten: Passe die Funktionen so an, dass die Leistung in Prozent angegeben wird. Wenn die Leistung also 100 beträgt, dreht sich der Motor mit voller Leistung, wenn die Leistung 0 beträgt, dreht sich der Motor nicht.
fahre ( leistungLinks, leistungRechts )
. Die Werte für leistungLinks
und leistungRechts
können jeweils zwischen -255 und 255 liegen, wobei "-255" eine Drehung des jeweiligen Motors mit voller Leistung nach hinten und "255" eine Drehung des jeweiligen Motors mit voller Leistung nach vorne bedeutet. Achtung: Die Werte für die Enable-Pins müssen immer zwischen 0 und 255 liegen!leistungLinks
und leistungRechts
jeweils zwischen -100 und 100 liegen können, wobei "-100" eine Drehung des jeweiligen Motors mit 100%iger Leistung nach hinten und "100" eine Drehung des jeweiligen Motors mit 100%iger Leistung nach vorne bedeutet.Ziel: Der Düvelbot soll um einen Ultraschallsensor erweitert werden, sodass er Hindernisse erkennen und umfahren kann.
Für diesen Abschnitt werden folgende Grundlagen benötigt:
Die Verkabelung des Ultraschallsensors erfolgt nach dem folgenden Schaltplan.
Programmiere den Roboter so, dass er bei freier Bahn geradeaus fährt. Wenn er aber ein Hindernis "sieht", soll er sich um 90 Grad drehen, damit er wieder freie Fahrt hat. Dies wird endlos wiederholt, sodass der Roboter immer weiter fährt.
Programmiere den Roboter so, dass er schnell fährt, wenn kein Hindernis in Sicht ist und langsamer, wenn er ein Hindernis erkennen kann. Wenn das Hindernis zu nah kommt, dreht sich der Roboter und fährt in eine andere Richtung.
Programmiere den Roboter so, dass er möglichst genau 5cm vor einer Wand stoppt. Er wird bereits vorher immer langsamer und gibt dabei Töne ab. Je näher der Roboter dem Hindernis kommt, desto schneller folgen die Töne aufeinander.
Ziel: Der Düvelbot soll um zwei Infrarot-Sensoren erweitert werden, sodass er einer Linie folgen kann, um Parcours zu absolvieren. Für die Anzeige der Sensorwerte bei der Feinjustierung wird ein Display angebracht.
Für diesen Abschnitt werden folgende Grundlagen benötigt:
Schritt 20: Suche die Infrarot-Sensore (IR-Sensoren) und stecke jeweils drei Kabel auf die Pins Vcc
, GND
und A0
. Da der digitale Pin D0
hier nicht genutzt wird, kann er frei bleiben. Notiere dir, welche Farbe zu welchem Pin gehört, damit du sie später richtig verschalten kannst.
Schritt 21: Schiebe den Arduino etwas zurück und führe die Kabel durch die jeweilige Öffnung in das Chassis und nach oben hinaus.
Schritt 22: Schiebe die Platinen der IR-Sensoren in die dafür vorgesehene Schiene. Durch die Fertigungstoleranzen kann es dazu kommen, dass die Schiene sehr locker oder sehr eng sitzt. Bitte in keinem Fall grobe Gewalt anwenden!
Schritt 24: Schließe die Kabel entsprechend des Schaltplans (siehe unten) an. Notiere dir, ob der rechte oder der linke IR-Sensor mit A0
am Arduino verbunden ist (und entsprechend der andere mit A1
am Arduino), damit du dies später im Programm richtig konfigurieren kannst.
Schritt 25: Stecke das Display in das kleine Steckbrett und verkabele es entsprechend des Schaltplans (siehe unten).
Die Verkabelung des Ultraschallsensors erfolgt nach dem folgenden Schaltplan.
Kantenverfolgung
Linienverfolgung
Linienverfolgung per Steuern und Regeln