Tartalomjegyzék:

PID alapú vonalkövető robot POLOLU QTR 8RC érzékelő tömbvel: 6 lépés (képekkel)
PID alapú vonalkövető robot POLOLU QTR 8RC érzékelő tömbvel: 6 lépés (képekkel)

Videó: PID alapú vonalkövető robot POLOLU QTR 8RC érzékelő tömbvel: 6 lépés (képekkel)

Videó: PID alapú vonalkövető robot POLOLU QTR 8RC érzékelő tömbvel: 6 lépés (képekkel)
Videó: Урок 95: Использование щита двигателей постоянного тока L293D 4 для Arduino UNO и Mega | Пошаговый курс Arduino 2024, Július
Anonim
PID alapú vonalkövető robot POLOLU QTR 8RC érzékelő tömbvel
PID alapú vonalkövető robot POLOLU QTR 8RC érzékelő tömbvel

Helló!

ez az első írásom az utasításokról, és ma elvezetlek az útra, és elmagyarázom, hogyan kell a PID-alapú vonalat a QTR-8RC érzékelő tömb segítségével robotot követni.

Mielőtt folytatnánk a robot építését, meg kell értenünk, mit nevezünk PID -nek,

1. lépés: Működési elv

Mi az a PID ??

A PID kifejezés az arányos, integrált, derivált kifejezést jelenti. Tehát egyszerűen mit csinálunk a PID vonalkövetéssel való bevonásával, azt a parancsot adjuk a robotnak, hogy kövesse a vonalat, és a hiba kiszámításával észlelje a fordulatokat, figyelembe véve, hogyan messze elmozdult a pályáról.

kulcsfogalmak, amint azt a polalu dokumentumok említik

Az arányos érték megközelítőleg arányos a robot helyzetével a vonalhoz képest. Vagyis, ha robotja pontosan a vonal középpontjában van, akkor pontosan 0 arányos értéket várunk

Az integrál érték rögzíti a robot mozgásának történetét: ez az arányos kifejezés összes értékének összege, amelyet a robot futása óta rögzítettek

A derivált az arányos érték változásának mértéke

Ebben az oktatóanyagban csak a Kp -ről és a Kd kifejezésekről fogunk beszélni, azonban az eredmények a Ki kifejezés használatával is elérhetők. Az érzékelő által kapott leolvasások nemcsak analóg értékek, hanem a robot pozíciói is.az alapvetően Az érzékelő 0 és 2500 közötti értékeket biztosít a maximális visszaverődéstől a minimális fényvisszaverődésig, ugyanakkor tájékoztatást nyújt arról is, hogy a robot milyen messzire került a vonaltól.)

Most figyelembe kell vennünk a hibakifejezést, Ez a két érték alapérték és az aktuális érték különbsége. (Az alapérték az az érték, amely megfelel az érzékelők "tökéletes" elhelyezésének a sorok tetején. És Az érték az érzékelő pillanatnyi leolvasása. Például: Ha ezt a tömbérzékelőt használja, és 8 érzékelőt használ, akkor 3500 pozíciós leolvasást kap, ha helyben van, és körülbelül 0, ha túl messze van tőle. a vonal és 7000 körül, ha túlságosan igazad van.). Célunk, hogy a hiba nulla legyen. Csak akkor tudja a robot simán követni a vonalat.

Ezután jön a számítási rész,.

1) számítsa ki a hibát.

Hiba = Alapérték - Jelenlegi érték = 3500 - pozíció

8 érzékelőt használok. az érzékelő 3500 pozíciós leolvasást ad, ha a robot tökéletesen van elhelyezve. Most, hogy kiszámítottuk a hibánkat, azt a határt, amellyel robotunk a pályán sodródik, itt az ideje, hogy megvizsgáljuk a hibát, és ennek megfelelően állítsuk be a motor fordulatszámát.

2) határozza meg a motorok beállított fordulatszámát.

MotorSpeed = Kp * Hiba + Kd * (Hiba - Utolsó hiba);

LastError = Hiba;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logikailag a 0 -as hiba azt jelenti, hogy robotunk balra kint van, ami azt jelenti, hogy robotunknak egy kicsit jobbra kell haladnia, ami viszont azt jelenti, hogy a jobb motornak le kell lassulnia, és a bal motornak fel kell gyorsulnia. EZ PID!

A MotorSpeed értékét maga az egyenlet határozza meg. A RightBaseSpeed és a LeftBaseSpeed azok a sebességek (bármilyen PWM 0-255 érték), amelyeken a robot fut, amikor a hiba nulla.

A mellékelt kód tartalmazza azt is, hogyan lehet ellenőrizni az érzékelő helyzeti értékeit, így megnyithatja a soros monitort, és feltöltheti a kódot, és egy sorral láthatja, hogyan forognak a motorok, amikor a helyzet változik.

Ha bajba kerül a robot megvalósításakor, ellenőrizze az egyenletek előjeleinek megváltoztatásával, hogy és látja -e !!!

És most a Kp AND Kd megtalálásának legtrükkösebb része, több mint 1 órát kellett töltenem a robot tökéletes hangolásához. Véletlen értékek megadása helyett találtam egy egyszerűbb módszert ennek meghatározására.

  1. Kezdje kp -val és Kd -val 0 -val, majd kezdje Kp -vel, először próbálja Kp -t 1 -re állítani, és figyelje meg a robotot, a célunk az, hogy kövessük a vonalat, még akkor is, ha ingatag, ha a robot túllép és elveszti a vonalat, csökkentse a kp értékét. Ha a robot nem tud navigálni egy kanyarban és lassú, akkor növelje a Kp értéket.
  2. Ha úgy tűnik, hogy a robot valamelyest követi a vonalat, állítsa be a Kd -értéket (Kd -érték> Kp -érték) 1 -ről, és növelje az értéket, amíg sima hajtást nem lát, kisebb ingadozással.
  3. Amint a robot elkezdi követni a vonalat, növelje a sebességet, és nézze meg, hogy képes -e megtartani és követni a vonalat.

Ne feledje, hogy a sebesség közvetlen hatással van a PID hangolásra, és előfordulhat, hogy újra kell hangolnia a robot sebességéhez.

Most már elkezdhetjük a robot építését.

2. lépés: Az építés

Az építés
Az építés
Az építés
Az építés
Az építés
Az építés

Arduino atmega 2560 USB kábellel - ez a fő használt mikrovezérlő.

Alváz- a robot alvázhoz 2 kör alakú akrillemezt használtam, amelyeket egy másik projekthez használnak, amely tökéletes erre. Anyák és csavarok segítségével 2 szintes alvázat építettem, hogy más modulokat rögzítsek a felső lemezhez. Vagy használhatja a rendelkezésre álló kész alvázat.

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

Mikrometál hajtóműves motorok- a robotnak gyorsan forgó motorokra volt szüksége ahhoz, hogy megbirkózzon a PID rutinokkal, ezért 6V 400 fordulat / perc névleges teljesítményű motorokat és megfelelő fogógörgőket használtam.

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

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

QTR 8Rc érzékelő tömb - ez használható a vonalkövetéshez, amint azt korábban említettük. Azt hiszem, most már tisztán megértette, hogyan kell az érzékelő tömböt PID -vel kezelni. A kód nagyon egyszerű, és a meglévő arduino könyvtárak segítségével hogy gyors vonalkövetőt építsen.

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

TB6612FNG Motorvezérlő-Olyan motorhajtót akartam használni, amely pillanatok alatt képes kezelni a kanyarokat és az irányváltást, ami képes hatékonyan fékezni a motorokat, amikor a PWM jel alacsony.

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

Lipo akkumulátor- 11,1 V-os lipo akkumulátor a robot áramellátására szolgál. Bár 11,1 V-os lipo akkumulátort használtam, ez a kapacitás több, mint amennyi az arduino és a motorokhoz szükséges. Ha talál egy könnyű súlyú 7,4 V lipo akkumulátor vagy 6V Ni-MH akkumulátor tökéletes lesz. emiatt egy bak konvertert kell használnom a feszültség 6V-ra való átalakítására.

11.1V-

7.4 V-

Buck konverter modul-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Ezenkívül szüksége van áthidaló huzalokra, anyákra és csavarokra, csavarhúzókra és elektromos szalagokra, valamint cipzárra is, hogy megbizonyosodjon arról, hogy minden a helyén van.

3. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

rögzítse a motorokat és egy kis görgő kereket egy lemezbe anyákkal és csavarokkal, majd szerelje fel a QTR érzékelőt, a motor meghajtóját, az arduino kártyát és végül az akkumulátort a házra.

Itt van egy tökéletes diagram, amelyet az interneten találtam, és elmondja, hogyan kell létrehozni a kapcsolatokat.

4. lépés: Tervezze meg a vonalvezetést

Tervezze meg a vonalvezetést
Tervezze meg a vonalvezetést

Most úgy tűnik, hogy a projekt majdnem véget ért. Mivel az utolsó szakaszban szüksége van egy kis arénára, hogy tesztelje robotját. Véletlenszerű, 3 cm széles, fehér vonalvonalat használtam fekete alapon. Győződjön meg róla, hogy mindent jól beillesztett. És egyelőre kerülje a 90 degees szögkeresztet és keresztmetszetet, mert ez bonyolult eset a kódolás szempontjából.

5. lépés: Programozza be a kódot

1. Töltse le és telepítse az Arduino programot

Asztali IDE

· Windows -

· Mac OS X -

· Linux -

2. Töltse le és illessze be a QTR 8 RC érzékelő tömbfájlt az Arduino libraries mappába.

·

· Illessze be a fájlokat az elérési útba - C: / Arduino / libraries

3. Töltse le és nyissa meg aLINEFOLLOWING.ino oldalt

4. Töltse fel a kódot az arduino kártyára USB -kábelen keresztül

6. lépés: KÉSZ

Image
Image

Most van egy sorkövető robotja, amelyet saját maga készített.

Remélem, ez az oktatóanyag hasznos volt. Ne habozzon kapcsolatba lépni velem a [email protected] címen, ha bármilyen problémája van.

hamarosan találkozunk egy újabb projekttel.

Élvezze az építkezést !!

Ajánlott: