- Erforderliche Materialien:
- Konzepte des Linienfolgers
- Raspberry Pi Line Follower Robot Schaltplan und Erklärung:
- Programmieren Ihres Raspberry PI:
- Raspberry Pi Line Follower in Aktion:
Wie wir alle wissen, ist Raspberry Pi eine wunderbare Entwicklungsplattform, die auf einem ARM-Mikroprozessor basiert. Mit seiner hohen Rechenleistung und Entwicklungsmöglichkeiten kann es Wunder in Händen von Elektronik-Hobbyisten oder Studenten vollbringen. Um mehr über einen Raspberry Pi und seine Funktionsweise zu erfahren, versuchen wir, einen Line Follower-Roboter mit Raspberry Pi zu erstellen.
Wenn Sie sich für Robotik interessieren, sollten Sie mit dem Namen „ Line Follower Robot “ vertraut sein. Dieser Roboter ist in der Lage, einer Linie zu folgen, indem er ein Paar von Sensoren und Motoren verwendet. Es klingt möglicherweise nicht effizient, einen leistungsstarken Mikroprozessor wie Raspberry Pi zu verwenden, um einen einfachen Roboter zu bauen. Dieser Roboter bietet Ihnen jedoch Raum für eine unendliche Entwicklung, und Roboter wie Kiva (Amazon Warehouse Robot) sind ein Beispiel dafür. Sie können auch unsere anderen Line Follower-Roboter überprüfen:
- Line Follower Robot mit 8051 Mikrocontroller
- Linienfolger-Roboter mit Arduino
Erforderliche Materialien:
- Raspberry Pi 3 (jedes Modell sollte funktionieren)
- IR-Sensor (2Nos)
- DC-Getriebemotor (2Nos)
- L293D Motortreiber
- Chaises (Sie können auch Ihre eigenen mit Pappe bauen)
- Power Bank (Jede verfügbare Stromquelle)
Konzepte des Linienfolgers
Line Follower Robot kann mithilfe eines IR-Sensors eine Linie verfolgen. Dieser Sensor verfügt über einen IR-Sender und einen IR-Empfänger. Der IR-Sender (IR-LED) sendet das Licht und der Empfänger (Fotodiode) wartet darauf, dass das übertragene Licht zurückkehrt. Ein IR-Licht kehrt nur zurück, wenn es von einer Oberfläche reflektiert wird. Während alle Oberflächen kein IR-Licht reflektieren, kann nur die weiße Farboberfläche sie vollständig reflektieren, und die schwarze Farboberfläche beobachtet sie vollständig, wie in der folgenden Abbildung gezeigt. Erfahren Sie hier mehr über das IR-Sensormodul.
Jetzt werden wir zwei IR-Sensoren verwenden, um zu überprüfen, ob der Roboter mit der Linie in der Spur ist, und zwei Motoren, um den Roboter zu korrigieren, wenn er sich aus der Spur bewegt. Diese Motoren benötigen einen hohen Strom und sollten bidirektional sein. Daher verwenden wir ein Motortreibermodul wie L293D. Wir benötigen auch ein Rechengerät wie Raspberry Pi, um die Motoren anhand der Werte des IR-Sensors anzuweisen. Ein vereinfachtes Blockdiagramm desselben ist unten gezeigt.
Diese beiden IR-Sensoren werden auf beiden Seiten der Leitung platziert. Wenn keiner der Sensoren eine schwarze Linie erkennt, weist PI die Motoren an, sich wie unten gezeigt vorwärts zu bewegen
Wenn der linke Sensor auf einer schwarzen Linie leuchtet, weist der PI den Roboter an, durch Drehen des rechten Rads allein nach links zu drehen.
Wenn der rechte Sensor auf einer schwarzen Linie leuchtet, weist der PI den Roboter an, nach rechts zu drehen, indem er nur das linke Rad dreht.
Wenn beide Sensoren eine schwarze Linie haben, stoppt der Roboter.
Auf diese Weise kann der Roboter der Linie folgen, ohne die Spur zu verlassen. Lassen Sie uns nun sehen, wie die Schaltung und der Code aussehen.
Raspberry Pi Line Follower Robot Schaltplan und Erklärung:
Das vollständige Schaltbild für diesen Raspberry Pi Line Follower Robot ist unten dargestellt
Wie Sie sehen können, besteht die Schaltung aus zwei IR-Sensoren und zwei Motoren, die an den Raspberry pi angeschlossen sind. Der gesamte Stromkreis wird von einer mobilen Energiebank gespeist (in der obigen Stromkreis durch eine AAA-Batterie dargestellt).
Da die Details der Stifte auf dem Raspberry Pi nicht erwähnt werden, müssen wir die Stifte anhand des folgenden Bildes überprüfen
Wie in der Abbildung gezeigt, ist der Pin in der oberen linken Ecke des PI der + 5V-Pin. Mit diesem + 5V-Pin werden die IR-Sensoren wie im Schaltplan gezeigt (rot verdrahtet) mit Strom versorgt. Dann verbinden wir die Erdungsstifte mit einem schwarzen Kabel mit der Erdung des IR-Sensors und des Motortreibermoduls. Das gelbe Kabel wird verwendet, um den Ausgangspin des Sensors 1 und 2 mit den GPIO-Pins bzw. 3 zu verbinden.
Um die Motoren anzutreiben, benötigen wir vier Stifte (A, B, A, B). Diese vier Pins sind von GPIO14,4,17 bzw. 18 verbunden. Das orangefarbene und das weiße Kabel bilden zusammen die Verbindung für einen Motor. Wir haben also zwei solcher Paare für zwei Motoren.
Die Motoren sind mit dem L293D Motor Driver - Modul, wie im Bild gezeigt, und das Fahrer - Modul wird durch eine angetrieben Leistungsbank. Stellen Sie sicher, dass die Erdung der Power Bank mit der Erdung des Raspberry Pi verbunden ist. Nur dann funktioniert Ihre Verbindung.
Programmieren Ihres Raspberry PI:
Sobald Sie mit Ihrer Montage und den Anschlüssen fertig sind, sollte Ihr Roboter ungefähr so aussehen.
.Jetzt ist es Zeit, unseren Bot zu programmieren und zum Laufen zu bringen. Den vollständigen Code für diesen Bot finden Sie am Ende dieses Tutorials. Weitere Informationen zum Programmieren und Ausführen von Code in Raspberry Pi finden Sie hier. Die wichtigen Zeilen werden unten erläutert
Wir werden die GPIO-Datei aus der Bibliothek importieren. Mit der folgenden Funktion können wir die GPIO-Pins von PI programmieren. Wir benennen auch "GPIO" in "IO" um. Wenn wir also im Programm auf GPIO-Pins verweisen möchten, verwenden wir das Wort "IO".
importiere RPi.GPIO als IO
Manchmal, wenn die GPIO-Pins, die wir verwenden möchten, andere Funktionen ausführen. In diesem Fall erhalten wir während der Ausführung des Programms Warnungen. Der folgende Befehl weist den PI an, die Warnungen zu ignorieren und mit dem Programm fortzufahren.
IO.setwarnings (False)
Wir können die GPIO-Pins von PI entweder anhand der Pin-Nummer an Bord oder anhand ihrer Funktionsnummer referenzieren. Wie 'PIN 29' auf der Karte ist 'GPIO5'. Also sagen wir hier entweder, dass wir den Pin hier durch '29' oder '5' darstellen werden.
IO.setmode (IO.BCM)
Wir setzen 6 Pins als Eingangs- / Ausgangspins. Die ersten beiden Pins sind die Eingangspins zum Lesen des IR-Sensors. Die nächsten vier sind die Ausgangspins, von denen die ersten beiden zur Steuerung des rechten Motors und die nächsten beiden für den linken Motor verwendet werden.
IO.setup (2, IO.IN) #GPIO 2 -> Linker IR-Ausgang IO.setup (3, IO.IN) #GPIO 3 -> Rechter IR-Ausgang IO.setup (4, IO.OUT) #GPIO 4 - > Motor 1 Klemme A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 Klemme B IO.setup (17, IO.OUT) #GPIO 17 -> Motor Linke Klemme A IO.setup (18, IO.OUT) #GPIO 18 -> Motor Linke Klemme B.
Der IR-Sensor gibt „True“ aus, wenn er sich über einer weißen Oberfläche befindet. Solange beide Sensoren True anzeigen, können wir vorwärts gehen.
if (IO.input (2) == True und IO.input (3) == True): #both white bewegt sich vorwärts IO.output (4, True) # 1A + IO.output (14, False) # 1B-IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Wir müssen rechts abbiegen, wenn der erste IR-Sensor über eine schwarze Linie kommt. Dies erfolgt durch Lesen des IR-Sensors. Wenn die Bedingung erfüllt ist, stoppen wir den rechten Motor und drehen den linken Motor alleine, wie im folgenden Code gezeigt
elif (IO.input (2) == False und IO.input (3) == True): # rechts drehen IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, wahr) # 2A + IO.output (18, falsch) # 2B-
Wir müssen nach links abbiegen, wenn der zweite IR-Sensor über eine schwarze Linie kommt. Dies erfolgt durch Lesen des IR-Sensors. Wenn die Bedingung erfüllt ist, stoppen wir den linken Motor und drehen den rechten Motor alleine, wie im folgenden Code gezeigt
elif (IO.input (2) == True und IO.input (3) == False): # links drehen IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Wenn beide Sensoren über eine schwarze Linie kommen, bedeutet dies, dass der Roboter anhalten muss. Dies kann erreicht werden, indem beide Klemmen des Motors wie im folgenden Code gezeigt wahr gemacht werden
sonst: # bleibt noch IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Raspberry Pi Line Follower in Aktion:
Laden Sie den Python-Code für den Zeilenfolger auf Ihren Raspberry Pi hoch und führen Sie ihn aus. Wir brauchen ein tragbares Netzteil, eine Powerbank ist in diesem Fall praktisch, daher habe ich das gleiche verwendet. Der von mir verwendete wird mit zwei USB-Anschlüssen geliefert, sodass ich den PI und den anderen zum Einschalten des Motortreibers verwendet habe (siehe Abbildung unten).
Jetzt müssen Sie nur noch Ihren eigenen schwarzen Farbtrack einrichten und Ihren Bot darüber freigeben. Ich habe ein schwarzes Isolierband verwendet, um die Spur zu erstellen. Sie können jedes schwarze Farbmaterial verwenden, aber stellen Sie sicher, dass Ihre Grundfarbe nicht dunkel ist.
Die vollständige Funktionsweise des Bots finden Sie im folgenden Video. Ich hoffe, Sie haben das Projekt verstanden und es genossen, eines zu bauen. Wenn Sie Fragen haben, posten Sie diese im Kommentarbereich unten.