Sisukord:

PID-põhise rea jälgimisrobot POLOLU QTR 8RC-anduriga: 6 sammu (piltidega)
PID-põhise rea jälgimisrobot POLOLU QTR 8RC-anduriga: 6 sammu (piltidega)

Video: PID-põhise rea jälgimisrobot POLOLU QTR 8RC-anduriga: 6 sammu (piltidega)

Video: PID-põhise rea jälgimisrobot POLOLU QTR 8RC-anduriga: 6 sammu (piltidega)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Juuli
Anonim
PID-põhine liini jälgiv robot POLOLU QTR 8RC-anduriga
PID-põhine liini jälgiv robot POLOLU QTR 8RC-anduriga

Tere!

see on minu esimene juhiste kirjeldus ja täna ma viin teid teele ja selgitan, kuidas QID-8RC anduri massiivi kasutades robotit järgides PID-põhist joont katkestada.

Enne roboti ehitamisega jätkamist peame mõistma, mida nimetatakse PID -iks,

Samm: tööpõhimõte

Mis on PID ??

Mõiste PID tähistab proportsionaalset, lahutamatut, tuletist. Nii lihtsalt, mida me teeme PID -i kaasamisega rea järgimisse, on see, et anname robotile käsu joont järgida ja pöördeid tuvastada, arvutades vea, kaaludes kaugele on see rajalt eemaldunud.

võtmeterminid, nagu polalu dokumentides mainitud

Proportsionaalne väärtus on ligikaudu võrdeline teie roboti asukohaga joone suhtes. See tähendab, et kui teie robot on täpselt joone keskel, ootame proportsionaalset väärtust täpselt 0

Integraalväärtus salvestab teie roboti liikumise ajaloo: see on kõigi proportsionaalse termini väärtuste summa, mis registreeriti pärast roboti käivitamist

Tuletisinstrument on proportsionaalse väärtuse muutumise kiirus

Selles õpetuses räägime ainult Kp -st ja Kd -terminitest, kuid tulemusi on võimalik saavutada ka Ki -termini abil. Andurilt saadavad näidud ei ole ainult analoognäidud, vaid ka roboti positsiooninäidud. Põhimõtteliselt annab andur väärtusi vahemikus 0 kuni 2500, ulatudes maksimaalsest peegeldusvõimest kuni minimaalse peegelduseni, kuid samal ajal annab teavet ka selle kohta, kui kaugele on robot joonest kinni jäänud.)

Nüüd peame arvestama veaterminiga. See on kahe väärtuse seadeväärtuse ja praeguse väärtuse erinevus. (Seadeväärtus on näit, mis vastab andurite "täiuslikule" paigutamisele ridade peale. Ja praegune väärtus on anduri hetkelised näidud. Näiteks: kui kasutate seda massiivandurit ja kasutate 8 andurit, saate positsiooninäidu 3500, kui olete kohapeal, umbes 0, kui olete liiga kaugel rida ja umbes 7000, kui teil on liiga õigus.) Meie eesmärk on muuta viga nulliks. Ainult siis saab robot sujuvalt joont järgida.

Siis tuleb arvutusosa,.

1) arvutage viga.

Viga = seadeväärtus - praegune väärtus = 3500 - positsioon

Nagu ma kasutan 8 andurit. andur annab positsiooninäidu 3500, kui robot on ideaalselt paigutatud. Nüüd, kui oleme arvutanud oma vea, mille võrra meie robot triivib üle raja, on meil aeg viga uurida ja vastavalt sellele mootori kiirusi reguleerida.

2) määrake mootorite reguleeritud kiirused.

MotorSpeed = Kp * Viga + Kd * (Viga - LastError);

LastError = Viga;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Loogiliselt võttes tähendab viga 0, et meie robot on vasakul, mis tähendab, et meie robot peab natuke paremale minema, mis omakorda tähendab, et parem mootor peab aeglustuma ja vasak mootor kiirendama. SEE ON PID!

MotorSpeedi väärtus määratakse võrrandi enda põhjal. RightBaseSpeed ja LeftBaseSpeed on kiirused (mis tahes väärtus PWM 0-255), millega robot töötab, kui viga on null.

Lisatud kood sisaldab ka seda, kuidas kontrollida anduri positsiooniväärtusi, nii et saate avada jadamonitori ja koodi üles laadida ning joonega ise näha, kuidas mootorid pöörlevad, kui positsioon muutub.

Kui jääte oma roboti rakendamisel hätta, siis lihtsalt kontrollige, kas ja kas näete võrrandite märke muutes !!!

Ja nüüd kõige keerulisem osa KP JA Kd leidmisel, pidin oma roboti täiuslikuks häälestamiseks kulutama rohkem kui 1 tunni. Juhuslike väärtuste asemel leidsin selle määramiseks lihtsama meetodi.

  1. Alustage kp -ga ja Kd -ga, mis on võrdne 0 -ga, ja alustage Kp -st, proovige kõigepealt seadistada Kp väärtuseks 1 ja jälgida robotit. Meie eesmärk on jälgida joont isegi siis, kui see on kõikuv, kui robot ületab ja joone kaotab, vähendage kp väärtust.kui robot ei suuda pöördel navigeerida ja on loid, suurendab Kp väärtust.
  2. Kui robot näib mõnevõrra joont järgivat, alustage Kd väärtust (Kd väärtus> Kp väärtus), alustades 1 -st ja suurendades väärtust, kuni näete sujuvat ajamist väiksema kõikumisega.
  3. Kui robot hakkab joont jälgima, suurendage kiirust ja vaadake, kas ta suudab joont hoida ja järgida.

Pidage meeles, et kiirus mõjutab otseselt PID -häälestust ja mõnikord peate võib -olla oma roboti kiirusele vastama.

Nüüd saame asuda oma roboti ehitamise juurde.

2. samm: ehitamine

Ehitus
Ehitus
Ehitus
Ehitus
Ehitus
Ehitus

Arduino atmega 2560 koos USB -kaabliga - see on peamine kasutatav mikrokontroller.

Šassii- robotraami jaoks olen kasutanud 2 ümmargust akrüülplaati, mida kasutatakse selleks otstarbeks ideaalseks projektiks. Mutrite ja kruvide abil olen ehitanud kahekorruselise šassii, et saaksin ülemise plaadi külge kinnitada teisi mooduleid. Või saate kasutada valmis šassii.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Mikrometallkäigukastiga mootorid- robot vajas PID-rutiiniga toimetulemiseks kiiresti pöörlevaid mootoreid, selleks olen kasutanud mootoreid, mille võimsus on 6 V 400 p / min, ja sobivaid haarduvaid rattaid.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

QTR 8Rc andurite massiivi - seda saab kasutada joonte jälgimiseks, nagu varem mainitud. Arvan, et olete nüüd selge arusaamise andurite massiivi PID -ga käitamisest. Kood on väga lihtne ja olemasolevate arduino teekide abil saate kiire liinijälgija ehitamiseks.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Mootorijuht-tahtsin kasutada mootorsõidukijuhti, mis suudab kiiresti pöördeid ja suunda muuta, mis on võimeline mootoreid tõhusalt pidurdama, kui PWM-signaal langeb.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Lipo aku- 11,1 V lipoaku kasutatakse roboti toiteks. Kuigi olen kasutanud 11,1 V lipoakut, on see võimsus suurem kui arduino ja mootorite jaoks vajalik. Kui leiate kerge kaaluga 7,4 V lipo aku või 6V Ni-MH aku, see on täiuslik. sel põhjusel pean pinge 6V muundamiseks kasutama buck-muundurit.

11.1V-

7.4 V-

Bucki muunduri moodul-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Lisaks vajate hüppajajuhtmeid, mutreid ja polte, kruvikeerajaid ja elektrilinti ning ka tõmblukke, et veenduda, et kõik on paigas.

3. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

kinnitage mootorid ja väike ratas ratastega mutrite ja kruvide abil plaati ning seejärel kinnitage QTR -andur, mootorijuht, arduino -plaat ja lõpuks aku šassiile.

Siin on Internetist leitud täiuslik skeem, mis ütleb teile, kuidas ühendusi luua.

Samm: kujundage oma rööbastee

Kujundage oma rööbastee
Kujundage oma rööbastee

Nüüd tundub, et teie projekt on peaaegu lõppenud. Viimase etapina peab teil olema oma roboti testimiseks väike areen. Kasutasin mustal taustal juhuslikku 3 cm laiust joont. Veenduge, et kleepite kõik hästi. Ja esialgu vältige 90 degee nurkade ristumist ja ristlõiget, sest see on kodeerimise osas keeruline juhtum.

Samm: programmeerige kood

1. Laadige alla ja installige Arduino

Töölaua IDE

· Aknad -

· Mac OS X -

· Linux -

2. Laadige alla ja kleepige QTR 8 RC sensormassiivi fail Arduino teekide kausta.

·

· Kleebi failid teele - C: / Arduino / teegid

3. Laadige alla ja avageLINEFOLLOWING.ino

4. Laadige kood USB -kaabli kaudu üles arduino plaadile

6. samm: VALMIS

Image
Image

nüüd on teil enda tehtud rida jälgiv robot.

Loodan, et sellest õpetusest oli abi. Kui teil on probleeme, võtke minuga kindlasti ühendust aadressil [email protected].

näeme varsti uue projektiga.

Nautige ehitamist !!

Soovitan: