Inhaltsverzeichnis:

PID-Linienfolger Atmega328P - Gunook
PID-Linienfolger Atmega328P - Gunook

Video: PID-Linienfolger Atmega328P - Gunook

Video: PID-Linienfolger Atmega328P - Gunook
Video: line following robot 2024, Juli
Anonim
Image
Image

EINLEITUNG

In diesem anweisbaren geht es darum, einen effizienten und zuverlässigen Line Follower mit PID (Proportional-Integral-Derivative) Control (Mathematical) in seinem Gehirn (Atmega328P) zu machen.

Line Follower ist ein autonomer Roboter, der entweder einer schwarzen Linie im weißen Bereich oder einer weißen Linie im schwarzen Bereich folgt. Der Roboter muss in der Lage sein, eine bestimmte Linie zu erkennen und ihr weiter zu folgen.

Es wird also nur wenige Teile / Schritte geben, um einen LINE FOLLOWER zu erstellen. Ich werde sie alle Schritt für Schritt besprechen.

  1. Sensor (Auge, um die Linie zu sehen)
  2. Mikrocontroller (Gehirn, um einige Berechnungen durchzuführen)
  3. Motoren (Muskelkraft)
  4. Kraftfahrer
  5. Chassis
  6. Batterie (Energiequelle)
  7. Rad
  8. Sonstiges

Hier ist das VIDEO DER LINIE FOLLOWER

IN DEN NÄCHSTEN SCHRITTEN WERDE ICH ÜBER JEDE KOMPONENTE IM DETAIL BESPRECHEN

Schritt 1: Sensor (Auge) QTR 8RC

Sensor (Auge) QTR 8RC
Sensor (Auge) QTR 8RC
Sensor (Auge) QTR 8RC
Sensor (Auge) QTR 8RC
Sensor (Auge) QTR 8RC
Sensor (Auge) QTR 8RC

Danke an Pololu für die Herstellung dieses fantastischen Sensors.

Das Modul ist ein praktischer Träger für acht IR-Sender- und -Empfängerpaare (Fototransistor), die gleichmäßig in Abständen von 0,375 (9,525 mm) angeordnet sind. Um einen Sensor zu verwenden, müssen Sie zuerst den Ausgangsknoten (Aufladen des Kondensators) durch Anlegen einer Spannung an an seinem OUT-Pin. Sie können dann das Reflexionsvermögen ablesen, indem Sie die extern zugeführte Spannung abziehen und die Zeitdauer messen, die die Ausgangsspannung aufgrund des integrierten Fototransistors zum Abklingen benötigt. Eine kürzere Abklingzeit ist ein Hinweis auf eine größere Reflexion. Dieser Messansatz hat mehrere Vorteile, insbesondere in Verbindung mit der Fähigkeit des QTR-8RC-Moduls, die LED-Stromversorgung auszuschalten:

  • Es ist kein Analog-Digital-Wandler (ADC) erforderlich.
  • Verbesserte Empfindlichkeit gegenüber dem analogen Spannungsteilerausgang.
  • Das parallele Auslesen mehrerer Sensoren ist mit den meisten Mikrocontrollern möglich.
  • Paralleles Lesen ermöglicht eine optimierte Nutzung der LED-Power-Enable-Option

Spezifikationen

  • Abmessungen: 2,95" x 0,5" x 0,125" (ohne installierte Stiftleisten)
  • Betriebsspannung: 3,3-5,0 V
  • Versorgungsstrom: 100 mA
  • Ausgabeformat: 8 digitale I/O-kompatible Signale, die als zeitgesteuerter High-Puls gelesen werden können
  • Optimaler Erfassungsabstand: 0,125" (3 mm) Maximal empfohlener Erfassungsabstand: 0,375" (9,5 mm)
  • Gewicht ohne Kopfstifte: 0,11 oz (3,09 g)

Anschluss der QTR-8RC-Ausgänge an digitale I/O-Leitungen

Das QTR-8RC-Modul verfügt über acht identische Sensorausgänge, die wie das Parallax QTI eine digitale I/O-Leitung benötigen, die die Ausgangsleitung hoch treiben und dann die Zeit bis zum Abklingen der Ausgangsspannung messen kann. Der typische Ablauf zum Auslesen eines Sensors ist:

  1. Schalten Sie die IR-LEDs ein (optional).
  2. Setzen Sie die E/A-Leitung auf einen Ausgang und fahren Sie ihn hoch.
  3. Warten Sie mindestens 10 μs, bis die Sensorausgabe ansteigt.
  4. Machen Sie die I/O-Leitung zu einem Eingang (hohe Impedanz).
  5. Messen Sie die Zeit bis zum Abfall der Spannung, indem Sie warten, bis die I/O-Leitung auf Low geht.
  6. Schalten Sie die IR-LEDs aus (optional).

Diese Schritte können typischerweise parallel auf mehreren I/O-Leitungen ausgeführt werden.

Bei einem starken Reflexionsvermögen kann die Abklingzeit nur einige Dutzend Mikrosekunden betragen; ohne Reflexion kann die Abklingzeit bis zu einigen Millisekunden betragen. Die genaue Zeit des Abfalls hängt von den I/O-Leitungseigenschaften Ihres Mikrocontrollers ab. In typischen Fällen (d. h. wenn nicht versucht wird, subtile Unterschiede in Szenarien mit geringer Reflexion zu messen), können innerhalb von 1 ms aussagekräftige Ergebnisse vorliegen, die eine Abtastung von bis zu 1 kHz aller 8 Sensoren ermöglichen. Wenn eine Abtastung mit niedrigerer Frequenz ausreicht, können durch Ausschalten der LEDs erhebliche Stromeinsparungen erzielt werden. Wenn beispielsweise eine Abtastrate von 100 Hz akzeptabel ist, können die LEDs zu 90 % der Zeit ausgeschaltet sein, wodurch der durchschnittliche Stromverbrauch von 100 mA auf 10 mA gesenkt wird.

Schritt 2: Mikrocontroller (Gehirn) Atmega328P

Mikrocontroller (Gehirn) Atmega328P
Mikrocontroller (Gehirn) Atmega328P
Mikrocontroller (Gehirn) Atmega328P
Mikrocontroller (Gehirn) Atmega328P

Vielen Dank anAtmel CorporationFür die Herstellung dieses fantastischen Mikrocontrollers AKA Atmega328.

Schlüsselparameter für ATmega328P

Parameterwert

  • Flash (KByte): 32 KByte
  • Pin-Anzahl: 32
  • max. Betriebsfreq. (MHz): 20 MHz
  • CPU: 8-Bit-AVR
  • Max. I/O-Pins: 23
  • Ext Interrupts: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • ADC-Kanäle: 8
  • ADC-Auflösung (Bit): 10
  • SRAM (KByte): 2
  • EEPROM (Bytes): 1024
  • E/A-Versorgungsklasse: 1,8 bis 5,5
  • Betriebsspannung (Vcc): 1,8 bis 5,5
  • Timer: 3

Detaillierte Informationen finden Sie im Datenblatt von Atmega328P.

In diesem Projekt verwende ich Atmega328P aus wenigen Gründen

  1. Billig
  2. Hat genug RAM für die Berechnung
  3. Ausreichende I/O-Pins für dieses Projekt
  4. Atmega328P wird in Arduino verwendet …. Sie können im Bild und Video ein Arduino Uno bemerken, aber nachts verwende ich Arduino IDE oder Any Arduino.. Ich habe nur die Hardware als Schnittstellenplatine verwendet. Ich habe den Bootloader gelöscht und USB ASP zum Programmieren des Chips verwendet.

Für die Programmierung des Chips habe ich Atmel Studio 6 verwendet

DER GESAMTE QUELLCODE IST IN GitHub Laden Sie ihn herunter und überprüfen Sie die Datei test.c.

Um dieses Paket zu kompilieren, müssen Sie das POLOLU AVR LIBRARY SETUP herunterladen und installieren. Überprüfen Sie die Anhänge …

Ich lade auch einen Atmega328P-Entwicklungsboard-Schema und eine Board-Datei HOCH … Sie können es selbst herstellen …

Schritt 3: Motor und Motortreiber

Motor und Motortreiber
Motor und Motortreiber
Motor und Motortreiber
Motor und Motortreiber
Motor und Motortreiber
Motor und Motortreiber

Ich habe 350RPM 12V BO Type Geared DC Motor als Aktuator verwendet. Um mehr Informationen zu erfahren… MOTOR LINK

Als Motortreiber habe ich L293D H-Brücken-IC verwendet.

Ich füge den Schaltplan und die Board-Datei für das gleiche bei.

Schritt 4: Chassis und Sonstiges

Fahrgestell und Sonstiges
Fahrgestell und Sonstiges
Fahrgestell und Sonstiges
Fahrgestell und Sonstiges
Fahrgestell und Sonstiges
Fahrgestell und Sonstiges

Der Bot besteht aus 6 mm dickem Sperrholz.

Empfohlen: