INHOUDSOPGAWE:

PID -lynvolgers Atmega328P: 4 stappe
PID -lynvolgers Atmega328P: 4 stappe

Video: PID -lynvolgers Atmega328P: 4 stappe

Video: PID -lynvolgers Atmega328P: 4 stappe
Video: PID with atmega328p - MPU6050 2024, Julie
Anonim
Image
Image

INLEIDING

Hierdie instruksie handel oor die maak van 'n doeltreffende en betroubare lynvolgers met PID (proporsioneel-integraal-afgeleide) beheer (wiskundig) in sy brein (Atmega328P).

Lynvolger is 'n outonome robot wat 'n swart lyn in wit of wit lyn in swart gebied volg. Die robot moet 'n spesifieke lyn kan opspoor en dit kan volg.

Daar sal dus 'n paar dele/stappe wees om 'n LYNVOLGER te maak; ek sal almal stap vir stap bespreek.

  1. Sensor (oog om die lyn te sien)
  2. Mikrokontroleur (brein om 'n paar berekeninge te doen)
  3. Motors (spierkrag)
  4. Motorbestuurder
  5. Onderstel
  6. Battery (energiebron)
  7. Wiel
  8. Diverse

Hier is die VIDEO VAN DIE LYNVOLGER

IN DIE VOLGENDE STAPPE BESPREEK EK IN BESONDERHEDE OOR ELKE KOMPONENTE

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

Dankie aan Pololu vir die vervaardiging van hierdie wonderlike sensor.

Die module is 'n gerieflike draer vir agt IR -emitter en ontvanger (fototransistor) pare wat eweredig gespasieer is met 'n interval van 0,375 (9,525 mm). Om 'n sensor te gebruik, moet u eers die uitsetknoop (laai van die kondensator) laai deur 'n spanning op sy OUT -pen. U kan dan die reflektansie lees deur die spanning wat ekstern verskaf word, te onttrek en tydsberekening te neem hoe lank dit neem om die uitgangsspanning te verval as gevolg van die geïntegreerde fototransistor. Korter verval is 'n aanduiding van groter refleksie. Hierdie metingsbenadering het verskeie voordele, veral as dit gekoppel is aan die vermoë van die QTR-8RC-module om LED-krag uit te skakel:

  • Geen analoog-na-digitale omskakelaar (ADC) is nodig nie.
  • Verbeterde sensitiwiteit oor analoge uitset van spanningsverdeler.
  • Parallelle lees van verskeie sensors is moontlik by die meeste mikrobeheerders.
  • Parallelle lees maak die gebruik van die LED -krag -opsie moontlik

Spesifikasies

  • Afmetings: 2,95 "x 0,5" x 0,125 "(sonder kopstukke geïnstalleer)
  • Bedryfspanning: 3.3-5.0 V
  • Voedingsstroom: 100 mA
  • Uitsetformaat: 8 digitale I/O-versoenbare seine wat as 'n tydsberekende hoë pols gelees kan word
  • Optimale waarnemingsafstand: 0,125 "(3 mm) Maksimum aanbevole waarnemingsafstand: 0,375" (9,5 mm)
  • Gewig sonder koppenne: 3,11 g

Koppel die QTR-8RC-uitsette aan digitale I/O-lyne

Die QTR-8RC-module het agt identiese sensoruitsette wat, net soos die Parallax QTI, 'n digitale I/O-lyn benodig wat die uitsetlyn hoog kan dryf en dan die tyd meet vir die uitgangsspanning om te verval. Die tipiese volgorde vir die lees van 'n sensor is:

  1. Skakel IR -LED's aan (opsioneel).
  2. Stel die I/O -lyn op 'n uitset en dryf dit hoog.
  3. Laat die sensoruitset minstens 10 μs toe.
  4. Maak die I/O -lyn 'n inset (hoë impedansie).
  5. Meet die tyd vir die spanning om te verval deur te wag totdat die I/O -lyn laag word.
  6. Skakel IR -LED's af (opsioneel).

Hierdie stappe kan tipies parallel uitgevoer word op verskeie I/O -lyne.

Met 'n sterk reflektansie kan die verval tyd so laag wees as 'n paar dosyn mikrosekondes; sonder refleksie kan die verval tyd tot 'n paar millisekondes wees. Die presiese tyd van die verval hang af van die I/O -lynkenmerke van u mikrobeheerder. In tipiese gevalle kan betekenisvolle resultate binne 1 ms beskikbaar wees (d.w.s. as u nie subtiele verskille in lae-reflektans-scenario's wil meet nie), wat tot 1 kHz monsterneming van al 8 sensors moontlik maak. As monsterneming met 'n laer frekwensie voldoende is, kan aansienlike kragbesparings verkry word deur die LED's uit te skakel. Byvoorbeeld, as 'n 100 Hz -monstertempo aanvaarbaar is, kan die LED's 90% van die tyd af wees, wat die gemiddelde stroomverbruik van 100 mA tot 10 mA verlaag.

Stap 2: Mikrokontroleur (brein) Atmega328P

Mikrokontroleur (brein) Atmega328P
Mikrokontroleur (brein) Atmega328P
Mikrokontroleur (brein) Atmega328P
Mikrokontroleur (brein) Atmega328P

Dankie aan Atmel Corporation vir die vervaardiging van hierdie wonderlike mikrobeheerder AKA Atmega328.

Belangrike parameters vir ATmega328P

Parameter Waarde

  • Flits (kbytes): 32 kbytes
  • Speldtelling: 32
  • Maks. Bedryfsfrekwensie (MHz): 20 MHz
  • CPU: 8-bis AVR
  • Maksimum I/O -penne: 23
  • Ext Interrupts: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • ADC -kanale: 8
  • ADC -resolusie (bisse): 10
  • SRAM (Kbytes): 2
  • EEPROM (Bytes): 1024
  • I/O -aanbodklas: 1.8 tot 5.5
  • Bedryfspanning (Vcc): 1.8 tot 5.5
  • Timers: 3

Gaan deur die datablad van Atmega328P vir gedetailleerde inligting.

In hierdie projek gebruik ek Atmega328P om 'n paar redes

  1. Goedkoop
  2. Het genoeg RAM vir berekening
  3. Voldoende I/O -penne vir hierdie projek
  4. Atmega328P word gebruik in Arduino …. U kan 'n Arduino Uno op die foto en video sien, maar nader gebruik ek Arduino IDE of enige Arduino. Ek het slegs die hardeware as 'n koppelvlak gebruik. Ek het die selflaaiprogram uitgevee en USB ASP gebruik vir die programmering van die chip.

Vir die programmering van die chip het ek Atmel Studio 6 gebruik

Al die bronkode is in GitHub, laai dit af en kyk na die test.c -lêer.

Om hierdie pakket saam te stel, moet u die POLOLU AVR LIBRARY SETUP aflaai en installeer Kontroleer die aanhangsels …

Ek laai ook 'n Atmega328P -ontwikkelingsbordskema en bordlêer op … U kan dit self vervaardig …

Stap 3: Motor- en motorbestuurder

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

Ek het 'n 350RPM 12V BO -tipe DC -motor as aandrywer gebruik. Vir meer inligting … MOTOR LINK

As motorbestuurder het ek L293D H- brug IC gebruik.

Ek heg die skematiese en raadslêer hiervoor aan.

Stap 4: Onderstel en meer

Onderstel en ander
Onderstel en ander
Onderstel en ander
Onderstel en ander
Onderstel en ander
Onderstel en ander

Die bot bestaan uit laaghout met 'n dikte van 6 mm.

Aanbeveel: