Kazalo:

Robot za sledenje liniji PID z nizom senzorjev POLOLU QTR 8RC: 6 korakov (s slikami)
Robot za sledenje liniji PID z nizom senzorjev POLOLU QTR 8RC: 6 korakov (s slikami)

Video: Robot za sledenje liniji PID z nizom senzorjev POLOLU QTR 8RC: 6 korakov (s slikami)

Video: Robot za sledenje liniji PID z nizom senzorjev POLOLU QTR 8RC: 6 korakov (s slikami)
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Julij
Anonim
Robot za sledenje liniji na osnovi PID z nizom senzorjev POLOLU QTR 8RC
Robot za sledenje liniji na osnovi PID z nizom senzorjev POLOLU QTR 8RC

Zdravo!

To je moj prvi zapis o navodilih, danes pa vas bom popeljal po cesti in razložil, kako z robotom senzorjev QTR-8RC okrepiti linijo, ki temelji na PID, po robotu.

Preden nadaljujemo z gradnjo robota, moramo razumeti, kaj se imenuje PID,

1. korak: Načelo delovanja

Kaj je PID ??

Izraz PID pomeni proporcionalno, integralno, izpeljano. Tako preprosto, kar počnemo z vključevanjem PID z naslednjo vrstico, dajemo ukaz robotu, naj sledi liniji in odkrije zavoje z izračunom napake, pri čemer upošteva, kako daleč se je premaknilo s proge.

ključni izrazi, omenjeni v dokumentih polalu

Sorazmerna vrednost je približno sorazmerna položaju vašega robota glede na črto. To pomeni, da če je vaš robot natančno centriran na črti, pričakujemo sorazmerno vrednost točno 0

Celotna vrednost beleži zgodovino gibanja vašega robota: je vsota vseh vrednosti sorazmernega izraza, ki so bile zabeležene od začetka delovanja robota

Izpeljani finančni instrument je stopnja spremembe sorazmerne vrednosti

V tej vadnici bomo govorili samo o izrazih Kp in Kd, vendar je rezultate mogoče doseči tudi z izrazom Ki. Odčitki, ki jih dobimo s senzorja, niso le analogni odčitki, ampak tudi položajni odčitki robota..tako v bistvu senzor ponuja vrednosti od 0 do 2500, ki segajo od največje odbojnosti do najmanjše odbojnosti, hkrati pa nudi tudi informacije o tem, kako daleč se je robot oddaljil od črte.)

Zdaj moramo upoštevati izraz napake, to je razlika med dvema vrednostma nastavljene vrednosti in trenutno vrednostjo. (Vrednost nastavljene vrednosti je odčitek, ki ustreza "popolni" postavitvi senzorjev na vrhu vrstic. In Trenutni vrednost so trenutni odčitki senzorja. Na primer: Če uporabljate ta senzor matrike in uporabljate 8 senzorjev, boste prejeli pozicijski odčitek 3500, če ste na mestu, okoli 0, če ste preveč levo od črto in okoli 7000, če ste preveč desni.). Naš cilj je, da napaka postane nič. Šele potem lahko robot gladko sledi liniji.

Nato sledi del izračuna,.

1) izračunajte napako.

Napaka = vrednost nastavljene vrednosti - trenutna vrednost = 3500 - položaj

Kot da uporabljam 8 senzorjev. senzor daje položajno vrednost 3500, ko je robot popolnoma nameščen. Zdaj, ko smo izračunali svojo napako, rob, s katerim se naš robot premika po progi, je čas, da napako natančno preučimo in temu ustrezno prilagodimo hitrost motorja

2) določite nastavljene hitrosti motorjev.

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

LastError = Napaka;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logično gledano, napaka 0 pomeni, da je naš robot levo, kar pomeni, da mora robot iti nekoliko desno, kar pomeni, da se mora desni motor upočasniti, levi pa pospešiti. TO JE PID!

Vrednost MotorSpeed je določena iz enačbe same. RightBaseSpeed in LeftBaseSpeed sta hitrosti (katere koli vrednosti PWM 0-255), pri katerih robot teče, ko je napaka nič.

Koda, ki sem jo priložil, vključuje tudi, kako preveriti pozicijske vrednosti senzorja, tako da lahko odprete serijski monitor in naložite kodo ter se s črto sami prepričate, kako se motorji vrtijo, ko se položaj spreminja.

Če naletite na težave pri izvajanju svojega robota, samo preverite, ali in preverite tako, da spremenite znake enačb !!!

In zdaj najtežji del UGOTOVITEV Kp IN Kd, sem moral porabiti več kot 1 uro, da sem popolnoma uglasil svojega robota. Namesto dajanja naključnih vrednosti sem našel lažjo metodo za to.

  1. Začnite s kp in Kd, ki sta enaka 0, in začnite s Kp, najprej poskusite nastaviti Kp na 1 in opazujte robota, naš cilj je slediti liniji, tudi če je nihajna, če robot preseže in izgubi črto, zmanjšajte vrednost kp.če robot ne more krmariti v zavoju in je počasen, poveča vrednost Kp.
  2. Ko se zdi, da robot nekoliko sledi liniji, prilagodite vrednost Kd (vrednost Kd> vrednost Kp) začnite z 1 in povečajte vrednost, dokler ne vidite nemotenega pogona z manjšim nihanjem.
  3. Ko robot začne slediti liniji, povečajte hitrost in preverite, ali lahko obdrži in sledi liniji.

Upoštevajte, da ima hitrost neposreden vpliv na uglaševanje PID -a in včasih se boste morali prilagoditi hitrosti vašega robota.

Zdaj lahko preidemo na izdelavo našega robota.

2. korak: Zgradba

Zgradba
Zgradba
Zgradba
Zgradba
Zgradba
Zgradba

Arduino atmega 2560 s kablom USB - to je glavni uporabljeni mikrokrmilnik.

Ohišje- za ohišje robota sem uporabil 2 okrogli akrilni plošči, ki se uporabljata za drug projekt, ki je kot nalašč za to. Z maticami in vijaki sem sestavil dvonadstropno ohišje, tako da lahko pritrdim druge module na zgornjo ploščo. Ali lahko uporabite že pripravljeno podvozje.

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

Mikrometalni zobniški motorji- robot je potreboval hitro vrtljive motorje, da se je spopadel z rutino PID, za to sem uporabil motorje z močjo 6V 400rpm in ustrezna oprijemljiva kolesa.

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

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

QTR 8Rc senzorski niz - to lahko uporabite za sledenje linijam, kot je bilo že omenjeno, mislim, da imate zdaj jasno razumevanje, kako upravljati niz senzorjev s PID. Koda je zelo preprosta in z uporabo obstoječih knjižnic arduino boste lahko za izgradnjo hitrega sledilca linij.

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

TB6612FNG Voznik motorja-želel sem uporabiti gonilnik motorja, ki lahko v hipu upravlja z zavoji in spreminja smer, ki je sposoben učinkovito zavirati motorje, ko je signal PWM padel.

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

Lipo baterija- 11.1V lipo baterija se uporablja za napajanje robota. Čeprav sem uporabil lipo baterijo 11.1 V, je ta zmogljivost večja od tiste, ki je potrebna za arduino in motorje. Če najdete lahke 7.4V Lipo baterija ali 6V Ni-MH baterija bo popolna. Zaradi tega moram za pretvorbo napetosti v 6V uporabiti pretvornik dolarjev.

11.1V-

7.4 V-

Modul pretvornika dolarjev-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Poleg tega potrebujete mostične žice, matice in vijake, izvijače in električne trakove ter tudi zadrge, da se prepričate, da je vse na svojem mestu.

3. korak: Sestavljanje

Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje

motorje in majhno kolesce pritrdite na ploščo z maticami in vijaki, nato pa pritrdite senzor QTR, gonilnik motorja, arduino ploščo in na koncu baterijo na ohišje.

Tukaj je popoln diagram, ki sem ga našel na internetu in vam pove, kako naj se vzpostavijo povezave.

4. korak: Oblikujte svojo progo

Oblikujte svojo progo
Oblikujte svojo progo

Zdaj se zdi, da je vaš projekt skoraj konec. Prepričajte se, da ste vse dobro prilepili. Zaenkrat se izogibajte kotnim križem in prerezom 90 dež, ker gre za zapleten primer kodiranja.

5. korak: Programirajte svojo kodo

1. Prenesite in namestite Arduino

Namizni IDE

· Okna -

· Mac OS X -

· Linux -

2. Prenesite in prilepite datoteko matrike senzorjev QTR 8 RC v mapo knjižnic Arduino.

·

· Prilepite datoteke na pot - knjižnice C: / Arduino

3. Prenesite in odpriteLINEFOLLOWING.ino

4. Kodo naložite na ploščo arduino prek kabla USB

6. korak: KONČANO !

Image
Image

zdaj imate robota, ki sledi liniji.

Upam, da vam je bila ta vadnica v pomoč. Če imate težave, se obrnite na mene na [email protected].

se vidimo kmalu z novim projektom.

Uživajte v gradnji !!

Priporočena: