Satura rādītājs:

PID balstīts līnijas sekošanas robots ar POLOLU QTR 8RC sensora masīvu: 6 soļi (ar attēliem)
PID balstīts līnijas sekošanas robots ar POLOLU QTR 8RC sensora masīvu: 6 soļi (ar attēliem)

Video: PID balstīts līnijas sekošanas robots ar POLOLU QTR 8RC sensora masīvu: 6 soļi (ar attēliem)

Video: PID balstīts līnijas sekošanas robots ar POLOLU QTR 8RC sensora masīvu: 6 soļi (ar attēliem)
Video: Объяснение прошивки Marlin 2.0.x 2024, Jūlijs
Anonim
Uz PID balstīts līnijas sekošanas robots ar POLOLU QTR 8RC sensoru masīvu
Uz PID balstīts līnijas sekošanas robots ar POLOLU QTR 8RC sensoru masīvu

Sveiki!

šis ir mans pirmais raksts par pamācībām, un šodien es aizvedīšu jūs pa ceļu un paskaidrošu, kā pēc robota, izmantojot QID-8RC sensoru masīvu, uzlikt uz PID balstītu līniju.

Pirms došanās uz robota celtniecību mums ir jāsaprot, ko sauc par PID,

1. darbība. Darba princips

Kas ir PID ??

Termins PID apzīmē proporcionālu, integrālu, atvasinājumu. Tātad, ko mēs darām, iesaistot PID ar rindu sekošanu, mēs dodam robotam komandu sekot līnijai un noteikt pagriezienus, aprēķinot kļūdu, apsverot, kā tālu tā ir novirzījusies no trases.

galvenie termini, kas minēti polalu dokumentos

Proporcionālā vērtība ir aptuveni proporcionāla jūsu robota stāvoklim attiecībā pret līniju. Tas ir, ja jūsu robots ir precīzi centrēts uz līnijas, mēs sagaidām proporcionālu vērtību tieši 0

Neatņemamā vērtība reģistrē jūsu robota kustības vēsturi: tā ir visu proporcionālā termiņa vērtību summa, kas tika reģistrēta kopš robota darbības sākuma

Atvasinājums ir proporcionālās vērtības izmaiņu ātrums

Šajā apmācībā mēs runāsim tikai par Kp un Kd terminiem, tomēr rezultātus var sasniegt, izmantojot arī Ki terminu. No sensora iegūtie rādījumi ir ne tikai analogie rādījumi, bet arī robota pozicionālie rādījumi.tātad būtībā sensors nodrošina vērtības no 0 līdz 2500, sākot no maksimālās atstarošanas līdz minimālajai atstarošanai, bet tajā pašā laikā sniedz arī informāciju par to, cik tālu robots ir iesprūdis no līnijas.)

Tagad mums ir jāapsver kļūdas termins. Tā ir atšķirība starp divām vērtības uzdotās vērtības vērtībām un pašreizējām vērtībām. (Noteiktā vērtība ir nolasījums, kas atbilst sensoru "ideālajam" novietojumam virs līnijām. Un pašreizējais vērtība ir momentānie sensora rādījumi. Piemēram, ja izmantojat šo masīva sensoru un izmantojat 8 sensorus, jūs saņemsiet 3500 pozicionēšanas rādījumu, ja atrodaties uz vietas, aptuveni 0, ja esat pārāk tālu no līnija un ap 7000, ja esat pārāk pareizs.). Mūsu mērķis ir padarīt kļūdu nulli. Tikai tad robots var vienmērīgi sekot līnijai.

Tad nāk aprēķina daļa,.

1) aprēķiniet kļūdu.

Kļūda = iestatītā vērtība - pašreizējā vērtība = 3500 - pozīcija

Kā es izmantoju 8 sensorus. sensors nodrošina 3500 pozicionēšanas rādījumus, kad robots ir ideāli novietots. Tagad, kad esam aprēķinājuši savu kļūdu, robežu, ar kādu mūsu robots pārvietojas pa trasi, mums ir pienācis laiks pārbaudīt kļūdu un attiecīgi pielāgot motora apgriezienus

2) nosaka motoru noregulētos apgriezienus.

MotorSpeed = Kp * kļūda + Kd * (kļūda - pēdējā kļūda);

LastError = Kļūda;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Loģiski izsakoties, kļūda 0 nozīmē, ka mūsu robots atrodas ārpusē pa kreisi, kas nozīmē, ka mūsu robotam ir jāiet mazliet pa labi, kas savukārt nozīmē, ka labajam motoram ir jāpalēninās, bet kreisajam - jāpaātrina. ŠIS IR PID!

MotorSpeed vērtību nosaka no paša vienādojuma. RightBaseSpeed un LeftBaseSpeed ir ātrumi (jebkura vērtība PWM 0-255), ar kādu robots darbojas, ja kļūda ir nulle.

Manis pievienotais kods ietver arī to, kā pārbaudīt sensora pozīcijas vērtības, lai jūs varētu atvērt seriālo monitoru un augšupielādēt kodu un ar līniju pārliecināties, kā motori griežas, mainoties pozīcijai.

Ja, īstenojot savu robotu, rodas nepatikšanas, vienkārši pārbaudiet, vai un redziet, mainot vienādojumu zīmes !!!

Un tagad vissarežģītākā daļa KP UN KD MEKLĒŠANA, man bija jāpavada vairāk nekā 1 stunda, lai perfekti noregulētu savu robotu. Nejaušu vērtību ievietošanas vietā es atradu vienkāršāku metodi, kā to noteikt.

  1. Sāciet ar kp un Kd, kas vienāds ar 0, un sāciet ar Kp, vispirms mēģiniet iestatīt Kp uz 1 un novērot robotu. Mūsu mērķis ir sekot līnijai, pat ja tā ir svārstīga, ja robots pārspēj un zaudē līniju, samaziniet kp vērtību.ja robots nevar pārvietoties pagriezienā un ir lēns, palielina Kp vērtību.
  2. Kad šķiet, ka robots nedaudz seko līnijai, noregulējiet Kd vērtību (Kd vērtība> Kp vērtība), sākot no 1 un palielinot vērtību, līdz redzat vienmērīgu piedziņu ar mazāku svārstību.
  3. Kad robots sāk sekot līnijai, palieliniet ātrumu un pārbaudiet, vai tas spēj noturēt līniju un sekot tai.

Paturiet prātā, ka ātrumam ir tieša ietekme uz PID regulēšanu, un dažreiz jums, iespējams, būs jāpielāgojas, lai tas atbilstu jūsu robota ātrumam.

Tagad mēs varam ķerties pie sava robota būvēšanas.

2. darbība. Veidot

Būvēt
Būvēt
Būvēt
Būvēt
Būvēt
Būvēt

Arduino atmega 2560 ar USB kabeli - tas ir galvenais izmantotais mikrokontrolleris.

Šasija- robota šasijai esmu izmantojis 2 apļveida akrila plāksnes, kuras tiek izmantotas citam šim ideālam projektam. Izmantojot uzgriežņus un skrūves, esmu uzbūvējis divstāvu šasiju, lai augšējai plāksnei varētu piestiprināt citus moduļus. Vai Jūs varat izmantot gatavu šasiju.

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

Mikrometāla pārnesumu motori- robotam bija nepieciešami ātri rotējoši motori, lai tiktu galā ar PID rutīnu, tāpēc esmu izmantojis motorus ar nominālo ātrumu 6V 400 apgr./min un piemērotus satverošus riteņus.

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

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

QTR 8Rc sensoru masīvs - to var izmantot līniju izsekošanai, kā minēts iepriekš, es domāju, ka jūs tagad esat skaidri sapratuši, kā vadīt sensoru masīvu ar PID. Kods ir ļoti vienkāršs, un, izmantojot esošās arduino bibliotēkas, jūs varēsit lai izveidotu ātru līnijas sekotāju.

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

TB6612FNG Motora vadītājs-Es gribēju izmantot motora draiveri, kas spēj ātri pārvarēt pagriezienus un mainīt virzienu, kas spēj efektīvi bremzēt motorus, kad PWM signāls ir zems.

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

Lipo akumulators- 11,1 V lipo akumulators tiek izmantots, lai nodrošinātu robota enerģiju. Lai gan esmu izmantojis 11,1 V lipo akumulatoru, šī jauda ir lielāka par to, kas nepieciešama arduino un motoriem. Ja jūs varat atrast vieglu 7,4 V lipo akumulators vai 6V Ni-MH akumulators būs ideāls. šī iemesla dēļ man ir jāizmanto buks pārveidotājs, lai pārveidotu spriegumu uz 6 V.

11.1V-

7.4 V-

Buck pārveidotāja modulis-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Papildus tam jums ir nepieciešami džemperu vadi, uzgriežņi un skrūves, skrūvgrieži un elektriskās lentes, kā arī rāvējslēdzēji, lai pārliecinātos, ka viss ir savās vietās.

3. solis: salikšana

Salikšana
Salikšana
Salikšana
Salikšana
Salikšana
Salikšana
Salikšana
Salikšana

pievienojiet motorus un nelielu ritentiņa ritenīti plāksnē, izmantojot uzgriežņus un skrūves, un pēc tam piestipriniet pie šasijas QTR sensoru, motora draiveri, arduino plāksni un visbeidzot akumulatoru.

Šeit ir ideāla diagramma, kuru atradu internetā, un tā stāsta, kā būtu jāizveido savienojumi.

4. solis: izveidojiet līniju

Izstrādājiet līniju
Izstrādājiet līniju

Tagad jūsu projekts, šķiet, ir gandrīz beidzies. Kā pēdējais posms jums ir nepieciešama neliela arēna, lai pārbaudītu savu robotu. Es esmu izmantojis nejaušu līniju ar platumu 3 cm balta līnija uz melna fona. Pārliecinieties, ka viss ir labi ielīmēts. Un pagaidām izvairieties no 90 degees leņķa krustojumiem un šķērsgriezumiem, jo tas ir sarežģīts kodēšanas gadījums.

5. darbība: ieprogrammējiet kodu

1. Lejupielādējiet un instalējiet Arduino

Darbvirsmas IDE

· Logi -

· Mac OS X -

· Linux -

2. Lejupielādējiet un ielīmējiet QTR 8 RC sensoru masīva failu mapē Arduino bibliotēkas.

·

· Ielīmējiet failus ceļā - C: / Arduino / bibliotēkas

3. Lejupielādējiet un atverietLINEFOLLOWING.ino

4. Augšupielādējiet kodu arduino panelī, izmantojot USB kabeli

6. darbība: GATAVS

Image
Image

tagad jums ir līniju sekojošs robots, ko esat izgatavojis pats.

Ceru, ka šī apmācība bija noderīga. Ja jums ir kādas problēmas, nevilcinieties sazināties ar mani, izmantojot [email protected].

uz drīzu tikšanos ar jaunu projektu.

Izbaudiet celtniecību !!

Ieteicams: