Innholdsfortegnelse:

PID Line Follower Atmega328P: 4 trinn
PID Line Follower Atmega328P: 4 trinn

Video: PID Line Follower Atmega328P: 4 trinn

Video: PID Line Follower Atmega328P: 4 trinn
Video: DIY Fast PID line follower with code **PART 2** 2024, November
Anonim
Image
Image

INTRODUKSJON

Denne instruksen handler om å lage en effektiv og pålitelig Line Follower med PID (proporsjonal-integral-derivat) kontroll (matematisk) som kjører inne i hjernen (Atmega328P).

Linjefølge er en autonom robot som følger enten svart linje i hvitt er eller hvit linje i svart område. Roboten må være i stand til å oppdage en bestemt linje og fortsette å følge den.

Så det vil være få deler/trinn for å lage en LINEFØLGER. Jeg vil diskutere dem alle trinn for trinn.

  1. Sensor (øye for å se linjen)
  2. Mikrokontroller (hjerne for å gjøre noen beregninger)
  3. Motorer (muskelkraft)
  4. Motorsjåfør
  5. Chassis
  6. Batteri (energikilde)
  7. Hjul
  8. Diverse

Her er VIDEOEN AV LINJEFØLGEREN

I de neste trinnene vil jeg diskutere i detaljer om hver komponent

Trinn 1: Sensor (øye) QTR 8RC

Sensor (øye) QTR 8RC
Sensor (øye) QTR 8RC
Sensor (øye) QTR 8RC
Sensor (øye) QTR 8RC
Sensor (øye) QTR 8RC
Sensor (øye) QTR 8RC

Takk tilPolufor å produsere denne fantastiske sensoren.

Modulen er en praktisk bærer for åtte IR -sender og mottaker (fototransistor) par jevnt fordelt med intervaller på 0,375 (9,525 mm). For å bruke en sensor må du først lade ut utgangsnoden (Lading av kondensatoren) ved å bruke en spenning til dens OUT -pin. Du kan deretter lese reflektansen ved å trekke ut eksternt levert spenning og timing hvor lang tid det tar utgangsspenningen å forfalle på grunn av den integrerte fototransistoren. Kortere forfallstid er en indikasjon på større refleksjon. Denne målingstilnærmingen har flere fordeler, spesielt kombinert med QTR-8RC-modulens evne til å slå av LED-strøm:

  • Ingen analog-til-digital-omformer (ADC) er nødvendig.
  • Forbedret følsomhet over spenningsdeler analog utgang.
  • Parallell avlesning av flere sensorer er mulig med de fleste mikrokontrollere.
  • Parallell lesing tillater optimal bruk av LED -strømaktiveringsalternativ

Spesifikasjoner

  • Dimensjoner: 2,95 "x 0,5" x 0,125 "(uten overskriftsstifter installert)
  • Driftsspenning: 3,3-5,0 V
  • Forsyningsstrøm: 100 mA
  • Utdataformat: 8 digitale I/O-kompatible signaler som kan leses som en tidsbestemt høy puls
  • Optimal sanseavstand: 0,125 tommer (3 mm) Maksimal anbefalt sanseavstand: 0,375 tommer (9,5 mm)
  • Vekt uten toppnål: 3,11 g

Grensesnitt mellom QTR-8RC-utgangene og digitale I/O-linjer

QTR-8RC-modulen har åtte identiske sensorutganger som, i likhet med Parallax QTI, krever en digital I/O-linje som er i stand til å drive utgangslinjen høyt og deretter måle tiden for utgangsspenningen til å forfalle. Den typiske sekvensen for å lese en sensor er:

  1. Slå på IR -lysdioder (valgfritt).
  2. Sett I/O -linjen til en utgang og kjør den høyt.
  3. Tillat minst 10 μs for sensorutgangen å stige.
  4. Gjør I/O -linjen til en inngang (høy impedans).
  5. Mål tiden for spenningen til å forfalle ved å vente på at I/O -linjen blir lav.
  6. Slå av IR -lysdioder (valgfritt).

Disse trinnene kan vanligvis utføres parallelt på flere I/O -linjer.

Med en sterk refleksjon kan forfallstiden være så lav som flere titalls mikrosekunder; uten refleksjon kan nedbrytningstiden være opptil noen få millisekunder. Det eksakte tidspunktet for forfallet avhenger av mikrokontrollerens I/O -linjeegenskaper. Meningsfulle resultater kan være tilgjengelige innen 1 ms i typiske tilfeller (dvs. når du ikke prøver å måle subtile forskjeller i lavreflektans-scenarier), slik at opptil 1 kHz sampling av alle 8 sensorene. Hvis sampling med lavere frekvens er tilstrekkelig, kan du oppnå betydelige strømbesparelser ved å slå av lysdiodene. For eksempel, hvis en 100 Hz samplingshastighet er akseptabel, kan lysdiodene være slukket 90% av tiden, og senke gjennomsnittlig strømforbruk fra 100 mA til 10 mA.

Trinn 2: Mikrokontroller (hjerne) Atmega328P

Mikrokontroller (hjerne) Atmega328P
Mikrokontroller (hjerne) Atmega328P
Mikrokontroller (hjerne) Atmega328P
Mikrokontroller (hjerne) Atmega328P

Takk til Atmel CorporationFor Manufacturing this Awesome Microcontroller AKA Atmega328.

Nøkkelparametere for ATmega328P

Parameter Verdi

  • Flash (Kbytes): 32 Kbyte
  • Antall pins: 32
  • Maks. Driftsfrekvens. (MHz): 20 MHz
  • CPU: 8-biters AVR
  • Maks. I/O -pinner: 23
  • Ext Interrupts: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • ADC -kanaler: 8
  • ADC -oppløsning (bits): 10
  • SRAM (Kbytes): 2
  • EEPROM (Bytes): 1024
  • I/O -forsyningsklasse: 1,8 til 5,5
  • Driftsspenning (Vcc): 1,8 til 5,5
  • Tidtakere: 3

For detaljert informasjon, gå gjennom databladet til Atmega328P.

I dette prosjektet bruker jeg Atmega328P av få grunner

  1. Billig
  2. Har nok RAM for beregning
  3. Tilstrekkelige I/O -pins for dette prosjektet
  4. Atmega328P brukes i Arduino…. Du kan merke på bildet og videoen en Arduino Uno, men nattlig bruker jeg Arduino IDE eller hvilken som helst Arduino.. Jeg har bare brukt maskinvaren som et grensesnittkort. Jeg har slettet bootloaderen og brukt USB ASP for programmering av brikken.

For programmering av brikken har jeg brukt Atmel Studio 6

Alle KILDEKODEN ER I GitHub Last ned og sjekk test.c -filen.

For å kompilere denne pakken må du laste ned og installere POLOLU AVR LIBRARY SETUP Kontroller vedleggene …

Jeg laster også opp en Atmega328P Development Board skjematisk og tavlefil … Du kan lage den selv …

Trinn 3: Motor og motordriver

Motor og motorfører
Motor og motorfører
Motor og motorfører
Motor og motorfører
Motor og motorfører
Motor og motorfører

Jeg har brukt 350RPM 12V BO Type Geared DC motor som aktuator. For å vite mer informasjon … MOTOR LINK

Som motorfører har jeg brukt L293D H- bridge IC.

Jeg legger ved skjematisk og tavlefil for det samme.

Trinn 4: Understell og diverse

Chassis og diverse
Chassis og diverse
Chassis og diverse
Chassis og diverse
Chassis og diverse
Chassis og diverse

Bot er laget av lag med tre mm tykkelse.

Anbefalt: