Përmbajtje:

Roboti i ndjekur nga PID i bazuar me grupin e sensorit POLOLU QTR 8RC: 6 hapa (me fotografi)
Roboti i ndjekur nga PID i bazuar me grupin e sensorit POLOLU QTR 8RC: 6 hapa (me fotografi)

Video: Roboti i ndjekur nga PID i bazuar me grupin e sensorit POLOLU QTR 8RC: 6 hapa (me fotografi)

Video: Roboti i ndjekur nga PID i bazuar me grupin e sensorit POLOLU QTR 8RC: 6 hapa (me fotografi)
Video: Stress, Portrait of a Killer - Full Documentary (2008) 2024, Nëntor
Anonim
Roboti i ndjekur nga PID i bazuar në linjën e sensorit POLOLU QTR 8RC
Roboti i ndjekur nga PID i bazuar në linjën e sensorit POLOLU QTR 8RC

Përshëndetje!

ky është shkrimi im i parë mbi udhëzimet, dhe sot do t'ju çoj në rrugë dhe do t'ju shpjegoj se si të ngarkoni një linjë të bazuar në PID pas robotit duke përdorur grupin e sensorëve QTR-8RC.

Para se të shkojmë në ndërtesën e robotit, duhet të kuptojmë atë që quhet PID,

Hapi 1: Parimi i punës

Çfarë është PID ??

Termi PID qëndron për proporcional, integral, derivativ. Kaq thjesht, ajo që ne po bëjmë me përfshirjen e PID me rreshtin vijues është, ne po i japim një urdhër robotit të ndjekë linjën dhe të zbulojë kthesat duke llogaritur gabimin duke marrë parasysh se si larg është larguar nga pista.

termat kryesorë siç përmenden në dokumentet polalu

Vlera proporcionale është afërsisht proporcionale me pozicionin e robotit tuaj në lidhje me linjën. Kjo do të thotë, nëse roboti juaj është i përqendruar saktësisht në linjë, ne presim një vlerë proporcionale saktësisht 0

Vlera integrale regjistron historinë e lëvizjes së robotit tuaj: është një shumë e të gjitha vlerave të termit proporcional që janë regjistruar që kur roboti filloi të funksionojë

Derivati është shkalla e ndryshimit të vlerës proporcionale

Në këtë tutorial, ne do të flasim vetëm për kushtet Kp dhe Kd, megjithatë, rezultatet mund të arrihen duke përdorur termin Ki gjithashtu. Leximet që marrim nga sensori nuk janë vetëm lexime analoge, por edhe lexime pozicionale të robotit. pra në thelb Sensori siguron vlera nga 0 në 2500 duke filluar nga reflektimi maksimal në reflektimin minimal, por, në të njëjtën kohë, gjithashtu siguron informacione se sa larg roboti është bllokuar nga linja.)

Tani duhet të kemi parasysh termin e gabimit, Ky është ndryshimi i dy vlerave të vlerës së pikës së caktuar dhe vlerës aktuale. (Vlera e pikës së caktuar është leximi që korrespondon me vendosjen "e përsosur" të sensorëve në krye të rreshtave. Dhe Rryma vlera është leximet e menjëhershme të sensorit. Për shembull: Nëse jeni duke përdorur këtë sensor të grupit dhe po përdorni 8 sensorë, do të merrni një lexim pozicionor prej 3500 nëse jeni në vend, rreth 0 nëse jeni shumë larg nga linja dhe rreth 7000 nëse keni shumë të drejtë.) Qëllimi ynë është ta bëjmë gabimin zero. Atëherë vetëm roboti mund të ndjekë pa probleme linjën.

Pastaj vjen pjesa e llogaritjes,.

1) llogarit gabimin.

Gabim = Vlera e Pikës së Vendosjes - Vlera aktuale = 3500 - pozicioni

Ndërsa përdor 8 sensorë. sensori jep një lexim pozicionor prej 3500 kur roboti është vendosur në mënyrë perfekte. Tani që kemi llogaritur gabimin tonë, diferenca me të cilën roboti ynë kalon përgjatë pista, është koha që ne të shqyrtojmë gabimin dhe të rregullojmë shpejtësitë e motorit në përputhje me rrethanat

2) përcaktoni shpejtësinë e rregulluar të motorëve.

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

LastError = Gabim;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Duke folur logjikisht, një gabim prej 0 do të thotë që roboti ynë është jashtë në të majtë, që do të thotë se roboti ynë duhet të shkojë pak djathtas, që nga ana tjetër do të thotë, motori i djathtë duhet të ngadalësohet dhe motori i majtë duhet të shpejtohet. KJO PSHT P PID!

Vlera MotorSpeed përcaktohet nga vetë ekuacioni. RightBaseSpeed dhe LeftBaseSpeed janë shpejtësitë (çdo vlerë e PWM 0-255) me të cilat roboti funksionon kur gabimi është zero.

Kodi që kam bashkangjitur gjithashtu përfshin se si të kontrolloni vlerat e pozicionit të sensorit, kështu që ju mund të hapni monitorin serik dhe të ngarkoni kodin dhe të shihni vetë me një linjë se si rrotullohen motorët kur pozicioni ndryshon.

Nëse hasni telashe kur zbatoni robotin tuaj, thjesht kontrolloni nëse dhe shihni duke ndryshuar shenjat e ekuacioneve !!!

Dhe tani pjesa më e ndërlikuar GJETJA Kp dhe Kd, më duhej të kaloja më shumë se 1 orë për të akorduar në mënyrë perfekte robotin tim. Në vend që të vendosja vlera të rastësishme gjeta një metodë më të lehtë për ta përcaktuar këtë.

  1. Filloni me kp dhe Kd të barabarta me 0, dhe filloni me Kp, së pari provoni të vendosni Kp në 1 dhe vëzhgoni robotin, qëllimi ynë është të ndjekim vijën edhe nëse është e lëkundshme, nëse roboti kapërcen dhe humbet vijën zvogëloni vlerën e kp.nëse roboti nuk mund të lundrojë në një kthesë dhe duke qenë i ngadaltë të rrisë vlerën e Kp.
  2. Pasi roboti duket se ndjek disi vijën, rregulloni vlerën Kd (vlera Kd> vlera Kp) filloni nga 1 dhe rriteni vlerën derisa të shihni një makinë të qetë me më pak lëkundje.
  3. Sapo roboti të fillojë të ndjekë vijën, rrisni shpejtësinë dhe shihni nëse është në gjendje të mbajë dhe të ndjekë vijën.

Mbani në mend se shpejtësia ka një ndikim të drejtpërdrejtë në akordimin e PID dhe ndonjëherë ju mund të keni nevojë të rivendoseni që të përputhet me shpejtësinë e robotit tuaj.

Tani ne mund të zbresim në ndërtimin e robotit tonë.

Hapi 2: Ndërtimi

Ndërtimi
Ndërtimi
Ndërtimi
Ndërtimi
Ndërtimi
Ndërtimi

Arduino atmega 2560 me kabllo USB - ky është mikrokontrolluesi kryesor i përdorur.

Shasi- për shasinë robot kam përdorur 2 pllaka akrilike rrethore që përdoren për një projekt tjetër i cili është i përsosur për këtë. Duke përdorur arra dhe vida kam ndërtuar një shasi me 2 kate, në mënyrë që të mund të bashkoj module të tjera në pllakën e sipërme. Ose mund të përdorni shasi të gatshme të disponueshme.

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

Motorët e ingranazheve mikrometal- robotit i duheshin motorë rrotullues të shpejtë për të përballuar rutinën PID, për këtë unë kam përdorur motorë të vlerësuar në 6V 400rpm dhe rrota të përshtatshme mbërthyese.

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

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

Grupi i sensorëve QTR 8Rc - kjo mund të përdoret për gjurmimin e linjave, siç u përmend më herët mendoj se tani keni një kuptim të qartë se si të përdorni grupin e sensorëve me PID. Kodi është shumë i thjeshtë dhe duke përdorur bibliotekat ekzistuese arduino do të jeni në gjendje për të ndërtuar një ndjekës të shpejtë të linjës.

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

TB6612FNG Shoferi i motorit-doja të përdorja një drejtues motorësh i cili mund të trajtojë kthesat dhe të ndryshojë drejtimet në një çast, i cili është i aftë të frenojë në mënyrë efektive motorët kur sinjali PWM u ul.

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

Bateria Lipo- 11.1V lipo përdoret për të siguruar energji për robotin. Megjithëse kam përdorur një bateri lipo 11.1 V, ky kapacitet është më shumë se sa nevojitet për arduino dhe motorët.nëse mund të gjeni një peshë të lehtë 7.4V bateri lipo ose paketë baterie 6V Ni-MH do të jetë perfekte. për shkak të kësaj arsyeje më duhet të përdor një konvertues për të kthyer tensionin në 6V.

11.1V-

7.4 V-

Moduli i konvertuesit Buck-

Përveç kësaj, keni nevojë për tela kërcyes, arra dhe bulona, kaçavida dhe kaseta elektrike dhe gjithashtu lidhëse zipi për t'u siguruar që gjithçka është në vend.

Hapi 3: Montimi

Montimi
Montimi
Montimi
Montimi
Montimi
Montimi
Montimi
Montimi

lidhni motorët dhe një rrotë të vogël rrotulluese në një pjatë duke përdorur arra dhe vida dhe pastaj montoni sensorin QTR, drejtuesin e motorit, bordin arduino dhe në fund baterinë në shasi.

Këtu është një diagram i përsosur që gjeta në internet, i cili ju tregon se si duhet të bëhen lidhjet.

Hapi 4: Hartoni gjurmën tuaj të linjës

Dizajnoni gjurmën tuaj të linjës
Dizajnoni gjurmën tuaj të linjës

Tani projekti juaj duket se ka përfunduar. Për fazën e fundit ju duhet të keni një arenë të vogël për të testuar robotin tuaj. Unë kam përdorur një linjë të rastësishme me gjerësi 3 cm të bardhë në një sfond të zi. Sigurohuni që të ngjitni gjithçka mirë. Dhe tani për tani larg nga kryqëzimet dhe kryqëzimet e këndit 90 degees, sepse është një rast i ndërlikuar në pikën e kodimit.

Hapi 5: Programoni kodin tuaj

1. Shkarkoni dhe instaloni Arduino

IDE e desktopit

· Dritare -

· Mac OS X -

· Linux -

2. Shkarkoni dhe ngjisni skedarin e grupit të sensorëve QTR 8 RC në dosjen e bibliotekave Arduino.

·

· Ngjitni skedarët në shteg - bibliotekat C: / Arduino

3. Shkarkoni dhe hapniLINEFOLLOWING.ino

4. Ngarko kodin në bordin arduino përmes një kabllo USB

Hapi 6: Bërë !

Image
Image

tani ju keni një robot pas vijës të bërë nga vetja.

Shpresoj se ky mësim ishte i dobishëm. Mos hezitoni të më kontaktoni përmes [email protected] nëse keni ndonjë problem.

shihemi së shpejti me një projekt tjetër të ri.

Shijoni ndërtimin !!

Recommended: