- Erforderliche Materialien:
- Konzepte des Linienfolgers
- Schaltplan und Erklärung:
- Programmierung des PIC-Mikrocontrollers:
- PIC Line Follower in Aktion:
Ein Line Follower Robot ist ein einfacher, aber faszinierender Roboter, den die meisten Studenten / Bastler bauen können. In diesem Tutorial erfahren Sie, wie ein Line Follower-Roboter funktioniert und wie wir einen mit dem PIC-Mikrocontroller PIC16F877A erstellen können. PIC16F877A ist eine 40-polige Mehrzweck-MCU von Microchip. Wir haben diesen IC in unserer vollständigen PIC-Lernserie verwendet. Wenn Sie neu sind, können Sie sich in diesen PIC-Tutorials die Grundlagen dieses ICs und das Hochladen von Programmen auf den Mikrocontroller ansehen. Da wir diese Informationen bereits in unseren Tutorials behandelt haben, werden wir sie in der folgenden Erklärung überspringen.
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. Dieser Roboter bietet Ihnen Raum für 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
- Line Follower Robot mit Raspberry Pi
Erforderliche Materialien:
- PIC16F877A
- 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 einen Mikrocontroller wie PIC, 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 der PIC-Mikrocontroller die Motoren an, sich wie unten gezeigt vorwärts zu bewegen
Wenn der linke Sensor auf einer schwarzen Linie leuchtet, weist der Mikrocontroller den Roboter an, nach links zu drehen, indem er nur das rechte Rad dreht.
Wenn der rechte Sensor auf einer schwarzen Linie leuchtet, weist der Mikrocontroller 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.
Schaltplan und Erklärung:
Das vollständige Schaltbild für diesen PIC-basierten Line Follower-Roboter ist unten dargestellt
Die Schaltung verwendet zwei IR-Sensoren und ein Paar Gleichstrommotormotoren zusammen mit einem Motortreibermodul, wie oben gezeigt. Das in diesem Projekt verwendete Motortreibermodul ist L293D. Wir benötigen einen Motortreiber, da der Ausgangspin des PIC-Mikrocontrollers nicht genügend Strom für die Motoren liefern kann. Dieses Modul wird direkt von der Stromquelle (5 V) gespeist, wie in der Schaltung gezeigt. Das Modul verfügt über vier Pins (zwei für jeden Motor), die mit dem PIC verbunden sind, um die Richtung der Motoren zu steuern. Wir haben auch zwei IR-Sensoren, die als Eingang für den PIC-Mikrocontroller dienen. Diese Sensoren gehen hoch (1), wenn sie sich über einer weißen Oberfläche befinden, und gehen niedrig (0), wenn sie sich über einer schwarzen Oberfläche befinden. Die vollständigen Stiftverbindungen sind in der folgenden Tabelle dargestellt.
S.No. |
Verbunden von |
Verbunden |
1 |
IR-Sensor Pin weggelassen |
RD2 (Pin 21) |
2 |
IR-Sensor Pin rechts heraus |
RD3 (Pin 22) |
4 |
Motor 1 Kanal A Pin |
RC4 (Pin 23) |
5 |
Motor 1 Kanal B Pin |
RC5 (Pin 25) |
6 |
Motor 2 Kanal A Pin |
RC6 (Pin 26) |
7 |
Motor 2 Kanal B Pin |
RC7 (Pin 27) |
In der eigentlichen Hardware habe ich eine Power Bank verwendet, die direkt über ihren USB-Anschluss einen Ausgang von +5 V liefert. Daher habe ich den Spannungsregler 7805 umgangen und den PIC, die Sensoren und die Motoren damit betrieben. Sie können das Gleiche tun, indem Sie eine 12-V-Batterie zusammen mit einem Regler verwenden, wie in der Schaltung gezeigt.
Programmierung des PIC-Mikrocontrollers:
Sobald Sie mit Ihrer Hardware fertig sind, ist es Zeit, mit der Programmierung zu beginnen. Das vollständige Programm dieses PIC Line Follower Robot-Projekts finden Sie am Ende dieser Seite. Die wichtigen Abschnitte werden jedoch unten erläutert.
Initialisieren Sie die E / A-Pins mit den folgenden Zeilen. Die 2 IR-Sensorstifte dienen als Eingang und die vier Motorstifte als Ausgangsstifte.
TRISD2 = 1; TRISD3 = 1; // Bad die IR-Sensorpins werden als Eingang deklariert TRISC4 = 0; TRISC5 = 0; // Motor 1 Pins als Ausgang deklariert TRISC6 = 0; TRISC7 = 0; // Motor 2 Pins als Ausgang deklariert
Jetzt müssen wir den Status des IR-Sensors ablesen und den Motor entsprechend steuern. Wenn zum Beispiel beide Sensoren hoch sind (nicht unter die schwarze Linie fallen), bewegen wir beide Motoren vorwärts, wie im folgenden Programm gezeigt.
if (RD2 == 1 && RD3 == 1) // Beide Sensoren nicht über der Balcklinie {RC4 = 0; RC5 = 1; // Motor 1 vorwärts RC6 = 1; RC7 = 0; // Motor 2 vorwärts}
Wenn der linke Sensor über die schwarze Linie kommt , machen wir eine Rechtskurve, indem wir den Motor 1 ruhig halten und den Motor 2 in Vorwärtsrichtung drehen. Diese Art des Drehens wird als Differenzialdrehen bezeichnet.
sonst wenn (RD2 == 0 && RD3 == 1) // Der linke Sensor befindet sich über der schwarzen Linie {RC4 = 1; RC5 = 1; // Motor 1 stoppt RC6 = 1; RC7 = 0; // Motor 2 vorwärts}
In ähnlicher Weise, wenn der rechte Sensor kommt über die schwarze Linie, dann wird der Bot links nehmen aus wiederum durch den zweiten Motor noch Halte und Drehen des ersten Motors allein in Vorwärtsrichtung, wie unten gezeigt.
sonst wenn (RD2 == 1 && RD3 == 0) // Rechter Sensor über schwarzer Linie ist {RC4 = 0; RC5 = 1; // Motor 1 vorwärts RC6 = 1; RC7 = 1; // Motor 2 stoppt}
Schließlich, wenn beide Sensoren unter einer schwarzen Linie kommen dann seine Zeit, den Bot zu stoppen. Dies kann erreicht werden, indem alle Stifte beider Motoren hoch gemacht werden. Der Code, um dasselbe zu tun, ist unten gezeigt
sonst // Beide Sensoren über der schwarzen Linie {RC4 = 1; RC5 = 1; // Motor 1 stoppt RC6 = 1; RC7 = 1; // Motor 2 stoppt}
Das heißt, das Programm ist fertig und kann mit jedem Programmierer wie PicKit auf den PIC hochgeladen werden.
PIC Line Follower in Aktion:
Sobald die Hardware und der Code fertig sind, ist es Zeit für eine Aktion. Wie bereits erwähnt, habe ich eine Power Bank verwendet, um den Bot mit Strom zu versorgen. Alles, was ich tun muss, ist, die Power Bank einfach mit dem Bot zu verbinden, auf dem die Hardware eingerichtet und der Code bereits hochgeladen ist.
Das PIC Perf Board wurde für unsere PIC Tutorial-Reihe entwickelt, in der wir den Umgang mit PIC-Mikrocontrollern gelernt haben. Wenn Sie nicht wissen, wie Sie ein Programm mit Pickit 3 brennen, können Sie zu diesen PIC Microcontroller-Tutorials mit MPLABX und XC8 zurückkehren, da ich all diese grundlegenden Informationen überspringen werde.
Starten Sie den Bot jetzt einfach über eine schwarze Linie und Sie sollten ihn der Linie folgen sehen.
In diesem Fall könnten Sie am Anfang auf einige Schwierigkeiten stoßen. Lesen Sie weiter. Wenn sich die Räder in entgegengesetzter Richtung drehen, wechseln Sie einfach die Polarität des Motors, dessen Rad sich in die entgegengesetzte Richtung dreht. Wenn der Bot von der Linie abweicht, tauschen Sie den IR-Sensor aus und alles sollte in Ordnung sein.
Die vollständige Funktionsweise des Bots finden Sie im folgenden Video. Ich hoffe, Ihnen gefällt das Projekt und Sie haben es genossen, etwas Ähnliches zu bauen. Wenn Sie Probleme haben, dies zum Laufen zu bringen, können Sie sie im Kommentarbereich unten veröffentlichen, um eine Lösung zu finden, oder unsere Foren verwenden, um technische Inhalte zu diskutieren.