- Erforderliche Materialien
- Konzepte des Linienfolgers
- Schaltungserklärung
- Arbeiten des Line Follower Roboters mit MSP430
- Schaltplan
- Programmiererklärung
Der Linienfolger-Roboter ist aufgrund seiner Einfachheit eines der beliebtesten Robotikprojekte bei Studenten und Anfängern. Es folgt einer Linie, entweder schwarz oder weiß, je nachdem, wie Sie Ihren Mikrocontroller programmieren. Hier stellen wir einen Linienfolger-Roboter mit dem MSP430-Launchpad von Texas Instruments her, der der schwarzen Linie folgt. Wenn Sie mit dem MSP430-Launchpad noch nicht vertraut sind, lesen Sie bitte unser Tutorial Erste Schritte mit MSP430.
Erforderliche Materialien
- MSP430G2 LaunchPad von Texas Instruments
- Das Motortreibermodul L298D
- Kabel anschließen
- IR-Sensormodule
- Chasis, Rad, Achterbahn
- Energia IDE
- Stromversorgung (3,3 V) und 5 V - 12 V.
Konzepte des Linienfolgers
Das Konzept des Linienfolgers hängt mit dem Licht zusammen. Wir haben das Verhalten von Licht auf Schwarz-Weiß-Oberflächen verwendet. Wenn Licht auf eine weiße Oberfläche fällt, wird es fast vollständig reflektiert und bei schwarzer Oberfläche wird Licht von der schwarzen Oberfläche absorbiert. Dieses erklärte Verhalten von Licht wird in diesem Linienfolgerroboter verwendet.
In diesem MSP430-basierten Line Follower-Roboter haben wir IR-Sender und IR-Empfänger verwendet, die auch als Fotodioden bezeichnet werden. Sie dienen zum Senden und Empfangen von Licht. IR überträgt Infrarotlichter. Wenn Infrarotstrahlen auf die weiße Oberfläche fallen, werden sie zurück reflektiert und von Fotodioden eingefangen, wodurch einige Spannungsänderungen erzeugt werden. Wenn IR-Licht auf eine schwarze Oberfläche fällt, wird Licht von der schwarzen Oberfläche absorbiert und es werden keine Strahlen zurückreflektiert, sodass die Fotodiode kein Licht oder keine Strahlen empfängt. Um mehr über IR-Sensoren zu erfahren, folgen Sie dem Link.
Hier in diesem auf MSP430 basierenden Linienfolgerroboter erhält MSP 1 als Eingabe, wenn der Sensor die weiße Oberfläche erkennt, und wenn MSP die schwarze Linie erfasst, erhält MSP 0 als Eingabe.
Schaltungserklärung
Wir können den gesamten Linienfolger-Roboter in verschiedene Abschnitte wie Sensorabschnitt, Steuerabschnitt und Treiberabschnitt unterteilen.
Sensorabschnitt: Dieser Abschnitt enthält IR-Dioden, Potentiometer, Komparator (Operationsverstärker) und LEDs. Das Potentiometer wird zum Einstellen der Referenzspannung an der einen Klemme des Komparators verwendet, und IR-Sensoren erfassen die Leitung und liefern eine Spannungsänderung an der zweiten Klemme des Komparators. Dann vergleicht der Komparator beide Spannungen und erzeugt am Ausgang ein digitales Signal. Hier in dieser Schaltung haben wir zwei Komparatoren für zwei Sensoren verwendet. Als Komparator wird LM358 verwendet. Der LM358 verfügt über zwei rauscharme Operationsverstärker.
Steuerabschnitt: Das MSP430 Launchpad wird zur Steuerung des gesamten Prozesses des Linienfolger-Roboters verwendet. Die Ausgänge der Komparatoren sind mit den digitalen Pins P1_3 und P1_4 des MPS430 Launchpad verbunden. Das MSP430 Launchpad liest diese Signale und sendet Befehle an die Treiberschaltung, um den Leitungsfolger zu steuern.
Treiberabschnitt : Der Treiberabschnitt besteht aus einem Motortreiber und zwei Gleichstrommotoren. Der Motortreiber wird zum Antreiben von Motoren verwendet, da das MSP430 Launchpad dem Motor nicht genügend Spannung und Strom liefert. Deshalb haben wir eine Motortreiberschaltung hinzugefügt, um genügend Spannung und Strom für den Motor zu erhalten. Hier haben wir den L298d-Treiber zum Antrieb von Gleichstrommotoren verwendet. Das MSP430 Launchpad sendet Befehle an diesen Motortreiber und treibt dann Motoren an.
Wir haben Line Follower-Roboter mit verschiedenen Mikrocontrollern entwickelt:
- Line Follower Robot mit 8051 Mikrocontroller
- Linienfolger-Roboter mit Arduino
- Line Follower Robot mit Raspberry Pi
- Line Follower Robot mit PIC Microcontroller
Arbeiten des Line Follower Roboters mit MSP430
Die Arbeit des Linienfolgers ist sehr interessant. Der Linienfolger-Roboter erkennt die schwarze Linie mithilfe des Sensors und sendet das Signal an das MSP430 Launchpad. Dann treibt das MSP430 Launchpad den Motor entsprechend der Sensorleistung an.
Hier in diesem Projekt verwenden wir zwei IR-Sensormodule, nämlich den linken und den rechten Sensor. Wenn sowohl der linke als auch der rechte Sensor Weiß erkennen, bewegt sich der Roboter vorwärts.
Wenn der linke Sensor auf einer schwarzen Linie leuchtet, biegt der Roboter nach links ab.
Wenn der rechte Sensor eine schwarze Linie erkennt, dreht der Roboter die rechte Seite, bis beide Sensoren die weiße Oberfläche erreichen. Wenn die weiße Oberfläche kommt, bewegt sich der Roboter wieder vorwärts.
Wenn beide Sensoren eine schwarze Linie haben, stoppt der Roboter.
Schaltplan
Die Schaltung für diesen MSP430 Line Follower Robot ist sehr einfach. Der Ausgang der Komparatoren ist direkt mit den digitalen Pin-Nummern p1_3 und P1_4 des MSP430 Launchpad verbunden. Der Eingangspin IN1, IN2, IN3 und IN4 des Motortreibers sind an den digitalen Pins P1_5, P2_0, P2_1, P2_2 des MSP430 Launchpad angeschlossen. Ein Motor ist am Ausgangspin der Motortreiber OUT1 und OUT2 angeschlossen, und ein anderer Motor ist an OUT3 und OUT4 angeschlossen. Hier haben wir eine 3,3-V-Versorgung für die Stromversorgung der gesamten Schaltung mit Ausnahme des Motortreibermoduls verwendet. Wir haben das Motortreibermodul mit 8 V versorgt. Der Benutzer kann 5V-12V verwenden.
Sie können auch Ihr eigenes IR-Modul erstellen, wie ich es auf Perf Board erstellt habe. Unten ist die Schaltung für das IR-Modul:
Programmiererklärung
Das vollständige Programm und Video finden Sie am Ende dieses Artikels.
In einem Programm definieren wir zunächst den Eingangs- und Ausgangspin für Sensor und Motoren. Definieren Sie dann einige Makros für die Richtung des Linienfolgers und schreiben Sie eine Anweisung zur Auswahl des Sensorausgangs
Hinweis: Der Sensor ist möglicherweise aktiv niedrig oder aktiv hoch. Überprüfen Sie daher zuerst die Ausgabe des Sensors und wählen Sie dann die Direktive aus, indem Sie activeLowMode kommentieren oder auskommentieren . Kommentieren Sie für Active HIGH das ActiveLowMode- Makro.
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {forward, left, right, stop}; #else int res = {Stopp, rechts, links, vorwärts}; #endif
Danach geben wir in der Setup- Funktion dem Sensor und dem Motorstift die Richtung. Und dann überprüfen wir in der Schleifenfunktion die Eingänge und senden die Ausgabe an das Motortreibermodul, um die Motoren anzutreiben.
void setup () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); für (int i = 0; i <4; i ++) digitalWrite (Pins, (res >> i) & 0x01); }}
In diesem Zeilenfolger gibt es vier Bedingungen, die wir mit dem MSP430 Launchpad lesen. Wir haben zwei Sensoren verwendet, nämlich den linken und den rechten Sensor.
Bedingungen: Aktiver HIGH-Ausgang
Eingang |
Ausgabe |
Bewegung Vom Roboter |
||||
Linker Sensor |
Rechter Sensor |
Linker Motor |
Rechter Motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Halt |
0 |
1 |
1 |
0 |
0 |
0 |
Biegen Sie rechts ab |
1 |
0 |
0 |
0 |
1 |
0 |
Biegen Sie links ab |
1 |
1 |
1 |
0 |
1 |
0 |
Nach vorne |
Das Programm wird gemäß den obigen Tabellenbedingungen geschrieben. Überprüfen Sie den vollständigen Code und das Demonstrationsvideo unten.