Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Zdravo!
ovo je moje prvo pisanje o instrukcijama, a danas ću vas odvesti na put i objasniti vam kako ojačati liniju zasnovanu na PID-u nakon robota pomoću QTR-8RC senzorskog niza.
Prije nego što pređemo na izgradnju robota, moramo razumjeti ono što se naziva PID,
Korak 1: Princip rada
Šta je PID ??
Izraz PID označava proporcionalni, integralni, izveden. Pa jednostavno, ono što radimo s uključivanjem PID -a sa sljedećom linijom je, dajemo naredbu robotu da prati liniju i otkrije zavoje izračunavanjem greške uzimajući u obzir kako daleko se pomerilo sa staze.
ključni pojmovi navedeni u polalu dokumentima
Proporcionalna vrijednost približno je proporcionalna položaju vašeg robota u odnosu na liniju. Odnosno, ako je vaš robot točno centriran na liniji, očekujemo proporcionalnu vrijednost točno 0
Integralna vrijednost bilježi povijest kretanja vašeg robota: to je zbir svih vrijednosti proporcionalnog pojma koje su zabilježene od početka rada robota
Derivat je stopa promjene proporcionalne vrijednosti
U ovom vodiču govorit ćemo samo o Kp i Kd izrazima, međutim, rezultati se mogu postići i pomoću izraza Ki. očitanja koja dobivamo sa senzora nisu samo analogna očitanja, već i pozicijska očitanja robota..tako, u osnovi senzor daje vrijednosti od 0 do 2500 u rasponu od maksimalne refleksije do minimalne refleksije, ali, istovremeno, pruža i informacije o tome koliko se robot udaljio od linije.)
Sada moramo razmotriti pojam greške, ovo je razlika dvije vrijednosti zadane vrijednosti i trenutne vrijednosti. (Vrijednost zadane vrijednosti je očitanje koje odgovara "savršenom" postavljanju senzora na vrhu redaka. I vrijednost je trenutno očitanje senzora. Na primjer: Ako koristite ovaj senzor niza i koristite 8 senzora, primit ćete pozicijsko očitanje od 3500 ako ste na licu mjesta, oko 0 ako ste previše lijevi od linija i oko 7000 ako ste previše u pravu.). Naš cilj je da greška bude nula. Tek tada robot može glatko slijediti liniju.
Zatim slijedi proračunski dio,.
1) izračunajte grešku.
Greška = Vrijednost zadane vrijednosti - Trenutna vrijednost = 3500 - pozicija
Koristim 8 senzora. senzor daje pozicijsko očitanje od 3500 kada je robot savršeno postavljen. Sada kada smo izračunali našu grešku, marginu za koju naš robot prelazi preko kolosijeka, vrijeme je da ispitamo grešku i prilagodimo brzine motora u skladu s tim
2) odrediti prilagođene brzine motora.
MotorSpeed = Kp * Greška + Kd * (Greška - LastError);
LastError = Greška;
RightMotorSpeed = RightBaseSpeed + MotorSpeed;
LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;
Logično govoreći, greška 0 znači da je naš robot lijevo, što znači da naš robot mora ići malo udesno, što zauzvrat znači da se desni motor mora usporiti, a lijevi motor ubrzati. OVO JE PID!
MotorSpeed vrijednost se određuje iz same jednadžbe. RightBaseSpeed i LeftBaseSpeed su brzine (bilo koje vrijednosti PWM 0-255) pri kojima robot radi kad je greška nula.
Kôd koji sam priložio uključuje i kako provjeriti pozicijske vrijednosti senzora, tako da možete otvoriti serijski monitor i učitati kôd te se linijom uvjeriti kako se motori okreću kada se položaj mijenja.
Ako naiđete na probleme prilikom implementacije svog robota, samo provjerite da li i vidite promjenom znakova jednadžbi !!!
A sada najteži dio PRONAĐENJA Kp I Kd, morao sam potrošiti više od 1 sata da savršeno prilagodim svog robota. Umjesto stavljanja slučajnih vrijednosti, našao sam lakši način da to odredim.
- Počnite s kp i Kd jednakim 0, a počnite s Kp, prvo pokušajte postaviti Kp na 1 i promatrajte robota, naš cilj je pratiti liniju čak i ako je klimava, ako robot pređe i izgubi liniju, smanjite vrijednost kp.ako robot ne može navigirati skretanjem i ako je spor, povećava vrijednost Kp.
- Kad se čini da robot pomalo slijedi liniju, podesite vrijednost Kd (vrijednost Kd> vrijednost Kp) počnite od 1 i povećavajte vrijednost sve dok ne vidite glatku vožnju s manjim kolebanjem.
- Kada robot počne pratiti liniju, povećajte brzinu i provjerite može li zadržati i slijediti liniju.
Imajte na umu da brzina ima izravan utjecaj na podešavanje PID -a i da ćete ponekad morati ponovno podesiti brzinu vašeg robota.
Sada možemo prijeći na izgradnju našeg robota.
Korak 2: Izgradnja
Arduino atmega 2560 sa USB kablom - ovo je glavni mikrokontroler koji se koristi.
Šasija- za šasiju robota koristio sam 2 kružne akrilne ploče koje se koriste za drugi projekt koji je savršen za ovo. Koristeći matice i vijke izgradio sam dvokatnu šasiju, tako da mogu pričvrstiti druge module na gornju ploču.ili možete koristiti gotova dostupna šasija.
www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…
Mikrometalni zupčasti motori- robotu su bili potrebni brzo rotirajući motori kako bi se nosio s PID rutinom, za to sam koristio motore snage 6V 400rpm i odgovarajuće grip kotače.
www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…
www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…
QTR 8Rc senzorski niz - ovo se može koristiti za praćenje linija, kao što je ranije spomenuto. Mislim da ste sada jasno razumjeli kako upravljati nizom senzora s PID -om. Kôd je vrlo jednostavan i pomoću postojećih arduino biblioteka moći ćete za izgradnju brzog sljedbenika linija.
www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…
TB6612FNG Vozač motora-Htio sam upotrijebiti upravljački program motora koji u trenu može upravljati zavojima i mijenjati smjer, koji je sposoban učinkovito kočiti motore kada se signal PWM-a smanji.
www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…
Lipo baterija- Lipo baterija od 11,1 V koristi se za napajanje robota. Iako sam koristio lipo bateriju od 11,1 V, ovaj kapacitet je veći od onog koji je potreban za arduino i motore. Ako možete pronaći lagane 7,4 V lipo baterija ili 6V Ni-MH baterija bit će savršena. Zbog toga moram koristiti konverter u dolarima za pretvaranje napona u 6V.
11.1V-
7.4 V-
Modul pretvarača dolara-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…
Osim toga, potrebne su vam kratkospojne žice, matice i vijci, odvijači i električne trake, a također i patentni zatvarači kako biste bili sigurni da je sve na svom mjestu.
Korak 3: Sklapanje
pričvrstite motore i mali kotač u ploču pomoću matica i vijaka, a zatim montirajte QTR senzor, upravljački program motora, arduino ploču i na kraju bateriju na šasiju.
Evo savršenog dijagrama koji sam pronašao na internetu, koji vam govori kako treba uspostaviti veze.
Korak 4: Dizajnirajte svoju linijsku stazu
Čini se da je vaš projekt skoro završen. Jer za posljednju fazu morate imati malu arenu za testiranje svog robota. Koristio sam slučajnu liniju širine 3 cm bijele linije na crnoj podlozi. Uvjerite se da ste sve dobro zalijepili. I za sada izbjegavajte kutne presjeke i presjeke od 90 stepeni, jer je to komplikovan slučaj u smislu kodiranja.
Korak 5: Programirajte svoj kôd
1. Preuzmite i instalirajte Arduino
Desktop IDE
· Prozori -
· Mac OS X -
· Linux -
2. Preuzmite i zalijepite datoteku niza QTR 8 RC senzora u mapu Arduino biblioteke.
·
· Zalijepite datoteke na putanju - C: / Arduino / libraries
3. Preuzmite i otvoriteLINEFOLLOWING.ino
4. Prenesite kôd na arduino ploču putem USB kabela
Korak 6: GOTOVO
sada imate robota koji prati liniju koji ste sami napravili.
Nadam se da vam je ovaj vodič bio od pomoći. Ne ustručavajte se kontaktirati me putem [email protected] ako imate bilo kakvih problema.
vidimo se uskoro s još jednim novim projektom.
Uživajte u izgradnji !!