Inhoudsopgave:

PID-lijnvolger Atmega328P - Ajarnpa
PID-lijnvolger Atmega328P - Ajarnpa

Video: PID-lijnvolger Atmega328P - Ajarnpa

Video: PID-lijnvolger Atmega328P - Ajarnpa
Video: Line Follower & Mase Solver ROBOT 2024, Juli-
Anonim
Image
Image

INVOERING

Deze instructable gaat over het maken van een efficiënte en betrouwbare lijnvolger met PID (proportioneel-integraal-afgeleide) controle (wiskundig) die in zijn hersenen loopt (Atmega328P).

Lijnvolger is een autonome robot die een zwarte lijn volgt in een wit gebied of een witte lijn in een zwart gebied. Robot moet in staat zijn om een bepaalde lijn te detecteren en deze te blijven volgen.

Er zullen dus weinig onderdelen/stappen zijn om een LIJNVOLGER te maken. Ik zal ze allemaal stap voor stap bespreken.

  1. Sensor (Oog om de lijn te zien)
  2. Microcontroller (hersenen om wat berekeningen te doen)
  3. Motoren (spierkracht)
  4. Motor bestuurder
  5. Chassis
  6. Batterij (energiebron)
  7. Wiel
  8. Diversen

Hier is de VIDEO VAN DE LIJNVOLGER

IN DE VOLGENDE STAPPEN BEN IK IN DETAILS OVER ALLE COMPONENTEN

Stap 1: Sensor (oog) QTR 8RC

Sensor (Oog) QTR 8RC
Sensor (Oog) QTR 8RC
Sensor (Oog) QTR 8RC
Sensor (Oog) QTR 8RC
Sensor (Oog) QTR 8RC
Sensor (Oog) QTR 8RC

Dankzij Pololuvoor het vervaardigen van deze geweldige sensor.

De module is een handige drager voor acht IR-emitter- en -ontvangerparen (fototransistor) die gelijkmatig verdeeld zijn met intervallen van 9,525 mm. Om een sensor te gebruiken, moet u eerst het uitgangsknooppunt opladen (opladen van de condensator) door een spanning toe te passen op zijn OUT-pin. U kunt dan de reflectie aflezen door de extern geleverde spanning terug te trekken en te bepalen hoe lang het duurt voordat de uitgangsspanning vervalt vanwege de geïntegreerde fototransistor. Een kortere vervaltijd is een indicatie van meer reflectie. Deze meetmethode heeft verschillende voordelen, vooral in combinatie met de mogelijkheid van de QTR-8RC-module om de LED-stroom uit te schakelen:

  • Er is geen analoog-naar-digitaal-omzetter (ADC) nodig.
  • Verbeterde gevoeligheid via analoge uitgang met spanningsdeler.
  • Parallelle uitlezing van meerdere sensoren is mogelijk met de meeste microcontrollers.
  • Parallelle aflezing maakt optimaal gebruik van LED-stroominschakeloptie mogelijk

Specificaties:

  • Afmetingen: 2,95 "x 0,5" x 0,125" (zonder geïnstalleerde header-pinnen)
  • Bedrijfsspanning: 3,3-5,0 V
  • Voedingsstroom: 100 mA
  • Uitgangsformaat: 8 digitale I/O-compatibele signalen die kunnen worden gelezen als een getimede hoge puls
  • Optimale detectieafstand: 0,125" (3 mm) Maximaal aanbevolen detectieafstand: 0,375" (9,5 mm)
  • Gewicht zonder koppennen: 0,11 oz (3,09 g)

De QTR-8RC-uitgangen verbinden met digitale I/O-lijnen

De QTR-8RC-module heeft acht identieke sensoruitgangen die, net als de Parallax QTI, een digitale I/O-lijn nodig hebben die de uitgangslijn hoog kan aansturen en vervolgens de tijd kan meten voordat de uitgangsspanning afneemt. De typische volgorde voor het uitlezen van een sensor is:

  1. Schakel IR-LED's in (optioneel).
  2. Stel de I/O-lijn in op een uitgang en zet deze hoog.
  3. Wacht ten minste 10 μs tot de sensoruitgang stijgt.
  4. Maak van de I/O-lijn een ingang (hoge impedantie).
  5. Meet de tijd die nodig is om de spanning te laten afnemen door te wachten tot de I/O-lijn laag wordt.
  6. Schakel IR-LED's uit (optioneel).

Deze stappen kunnen doorgaans parallel worden uitgevoerd op meerdere I/O-lijnen.

Met een sterke reflectie kan de vervaltijd zo laag zijn als enkele tientallen microseconden; zonder reflectie kan de vervaltijd oplopen tot enkele milliseconden. De exacte tijd van het verval hangt af van de I/O-lijnkarakteristieken van uw microcontroller. In typische gevallen kunnen zinvolle resultaten binnen 1 ms beschikbaar zijn (d.w.z. wanneer niet wordt geprobeerd subtiele verschillen te meten in scenario's met lage reflectie), waardoor bemonstering tot 1 kHz van alle 8 sensoren mogelijk is. Als laagfrequente bemonstering voldoende is, kan een aanzienlijke energiebesparing worden gerealiseerd door de LED's uit te schakelen. Als een bemonsteringsfrequentie van 100 Hz bijvoorbeeld acceptabel is, kunnen de LED's 90% van de tijd uit zijn, waardoor het gemiddelde stroomverbruik wordt verlaagd van 100 mA naar 10 mA.

Stap 2: Microcontroller (hersenen) Atmega328P

Microcontroller (hersenen) Atmega328P
Microcontroller (hersenen) Atmega328P
Microcontroller (hersenen) Atmega328P
Microcontroller (hersenen) Atmega328P

Met dank aan Atmel Corporation voor het vervaardigen van deze geweldige microcontroller AKA Atmega328.

Belangrijkste parameters voor ATmega328P

Parameterwaarde:

  • Flash (Kbytes): 32 Kbytes
  • Aantal pinnen: 32
  • Maximaal Bedrijfsfreq. (MHz): 20 MHz
  • CPU: 8-bit AVR
  • Max. I/O-pinnen: 23
  • Ext-onderbrekingen: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • ADC-kanalen: 8
  • ADC-resolutie (bits): 10
  • SRAM (kbyte): 2
  • EEPROM (bytes): 1024
  • I/O-voedingsklasse: 1,8 tot 5,5
  • Bedrijfsspanning (Vcc): 1,8 tot 5,5
  • Timers: 3

Voor gedetailleerde informatie ga door de Datasheet van Atmega328P.

In dit project gebruik ik Atmega328P om een paar redenen

  1. Goedkoop
  2. Heeft genoeg RAM voor berekening
  3. Voldoende I/O-pinnen voor dit project
  4. Atmega328P wordt gebruikt in Arduino …. U kunt in de afbeelding en video een Arduino Uno opmerken, maar 's nachts gebruik ik Arduino IDE of een willekeurige Arduino. Ik heb alleen de hardware als interfacebord gebruikt. Ik heb de bootloader gewist en USB ASP gebruikt voor het programmeren van de chip.

Voor het programmeren van de chip heb ik Atmel Studio 6 gebruikt

Alles DE BRONCODE IS IN GitHub Download het en controleer het test.c-bestand.

Om dit pakket te compileren, moet u de POLOLU AVR LIBRARY SETUP downloaden en installeren. Controleer de bijlagen …

Ik ben ook bezig met het UPLOADEN van een Atmega328P-ontwikkelbordschema en bordbestand … U kunt het zelf maken …

Stap 3: Motor en motorstuurprogramma

Motor en motorbestuurder
Motor en motorbestuurder
Motor en motorbestuurder
Motor en motorbestuurder
Motor en motorbestuurder
Motor en motorbestuurder

Ik heb 350 RPM 12V BO Type Geared DC-motor gebruikt als actuator. Voor meer informatie… MOTOR LINK

Als motordriver heb ik L293D H-bridge IC gebruikt.

Ik voeg hiervoor het schema en het bordbestand toe.

Stap 4: Chassis en overige

Chassis en overige
Chassis en overige
Chassis en overige
Chassis en overige
Chassis en overige
Chassis en overige

De Bot is gemaakt van multiplex met een dikte van 6 mm.

Aanbevolen: