- Konzept des Linienfolgerroboters
- Erforderliche Komponenten
- Schaltplan
- Programmierung von Atmega16 für Line Follower Robot
Hier bauen wir ein weiteres Projekt mit dem AVR Atmega16 Microcontroller. Wenn Sie mit AVR-Mikrocontrollern noch nicht vertraut sind, können Sie auf frühere AVR-Projekte und -Tutorials zurückgreifen.
Der Bau eines Roboters ist für alle Elektronik-Hobbyisten immer ein Nervenkitzel. Und dieser Nervenkitzel kann maximiert werden, wenn der Roboter einige Dinge automatisch ohne externe Anweisungen ausführen kann. Einer der am häufigsten von Elektronik-Anfängern gebauten Roboter ist der Line Follower Robot. Wie der Name schon sagt, folgt der Roboter der auf der Oberfläche gezeichneten Linie. Die Linie muss keine gerade Linie sein. Linien können auch beliebige Farben haben.
Wir haben zuvor Line Follower Robot-Projekte mit verschiedenen Controllern erstellt:
- Line Follower Robot mit 8051 Mikrocontroller
- Line Follower Robot mit PIC Microcontroller
- Linienfolger-Roboter mit Arduino
- Line Follower Robot mit Raspberry Pi
- Line Follower Robot mit MSP430 Launchpad
Heute werden wir einen AVR-Mikrocontroller verwenden, um einen Linienfolger-Roboter zu bauen.
Meist werden IR-Sensoren zur Erkennung von Linien verwendet. Die IR-Sensoren erkennen gut weiße oder schwarze Oberflächen. Sie können zwar auch andere hochentwickelte Sensoren verwenden, die alle Farben erkennen und einen Roboter herstellen können, der allen Farblinien folgen kann. Der Roboter sollte in der Lage sein, Linien zu erkennen, selbst wenn der Pfad durch Ändern des Winkels geändert wird, und der Linie weiter folgen. Außerdem sollte es überall dort anhalten, wo sich die Stoppzone in der Linie befindet.
Linienfolgerroboter werden heutzutage häufig in der Fertigungsindustrie, in der Medizin, in Haushaltsanwendungen und im Warenlager eingesetzt. Die Roboter sind nicht nur auf diese Anwendungen beschränkt und können ihre Anwendungen in vielen zukünftigen Anwendungen erweitern.
Konzept des Linienfolgerroboters
Die IR-Sensoren spielen in diesem Projekt eine Schlüsselrolle. IR-Sensoren sind an der Vorderseite des Roboters angebracht, um die gezeichnete schwarze Linie und die Oberfläche zu verfolgen. Der Roboter befindet sich zwischen der Linie und mit Hilfe von IR-Sensoren verfolgt der Roboter die Linie. IR-Sensoren geben den Messwert an den Mikrocontroller zurück. Mit Hilfe des IR-Messwerts bewegt der Mikrocontroller die Motoren nach links oder rechts und bringt den Roboter wieder auf den Pfad.
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 ATmega16, 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 AVR-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.
Erforderliche Komponenten
- DC-Getriebemotoren (2 Einheiten)
- IR-Sensormodul (2 Einheiten)
- L293D-Modul
- Drahtlose Stromquelle (zB Batterie, Power Bank)
- Roboter Chaises
- Atmega16 Mikrocontroller IC
- 16 MHz Kristalloszillator
- Zwei 100nF Kondensatoren
- Zwei 22pF-Kondensatoren
- Druckknopf
- Überbrückungsdrähte
- Steckbrett
- USBASP v2.0 (Um Atmega16 zu programmieren)
Schaltplan
Schließen Sie alle Komponenten wie unten im Schaltplan gezeigt an
Programmierung von Atmega16 für Line Follower Robot
Hier wird der Atmega16 mit USBASP und Atmel Studio7.0 programmiert. Wenn Sie nicht wissen, wie Atmega16 mit USBASP programmiert werden kann, besuchen Sie den Link. Das vollständige Programm finden Sie am Ende des Projekts. Laden Sie das Programm einfach mit dem JTAG-Programmierer und Atmel Studio 7.0 in Atmega16 hoch, wie im vorherigen Tutorial erläutert.
Wir haben versucht, den Code so kurz und einfach wie möglich zu halten. Daher verwenden wir in diesem Code Makros und Sonderfunktionsregister.
if (bit_is_clear (PINA , leftSen)) { // prüfe, ob der linke Sensor ausgeschaltet ist
Diese Anweisung prüft, ob der PA0, an dem der linke Sensor angeschlossen ist, LOW oder HIGH ist.
Wenn Sie mehr über diese Anweisung und andere Makros erfahren möchten, gehen Sie zu diesem Link
Es gibt vier Bedingungen, denen wir folgen, um durch IR-Sensoren zu lesen. IR-Sensoren werden nach ihrer Platzierung an der Vorderseite des Roboters benannt. Das linke IR ist der linke Sensor und das rechte IR ist der rechte Sensor. Die folgenden Bedingungen bestimmen die Bewegung des Roboters.
Wir haben den Code gemäß den oben genannten Bedingungen geschrieben. Die einzige Änderung besteht darin, dass wir nur zwei Eingangspins des L293D verwenden, um beide Motoren anzutreiben.
Der vollständige Code mit einem Demonstrationsvideo ist unten angegeben.