Mundarija:

POLOLU QTR 8RC sensorli PID asosidagi robotdan keyingi chiziq: 6 qadam (rasmlar bilan)
POLOLU QTR 8RC sensorli PID asosidagi robotdan keyingi chiziq: 6 qadam (rasmlar bilan)

Video: POLOLU QTR 8RC sensorli PID asosidagi robotdan keyingi chiziq: 6 qadam (rasmlar bilan)

Video: POLOLU QTR 8RC sensorli PID asosidagi robotdan keyingi chiziq: 6 qadam (rasmlar bilan)
Video: Pololu QTR-8RC line detect test 2024, Iyul
Anonim
POLOLU QTR 8RC-sensorli qatorli robotga asoslangan PID asosidagi chiziq
POLOLU QTR 8RC-sensorli qatorli robotga asoslangan PID asosidagi chiziq

Salom!

Bu mening ko'rsatmalarni birinchi yozishim, bugun men sizni yo'ldan ozdiraman va QTR-8RC datchiklar majmuasi yordamida robotdan keyin PID asosidagi chiziqni qanday burish kerakligini tushuntiraman.

Robot qurilishiga borishdan oldin, biz PID deb nomlangan narsani tushunishimiz kerak.

1 -qadam: ishlash printsipi

PID nima?

PID atamasi mutanosib, integral, lotin degan ma'noni anglatadi, shuning uchun biz PIDni chiziqli ta'qib qilish bilan nima qilyapmiz, biz robotga chiziqni kuzatib borish va xatolarni hisoblash orqali burilishlarni aniqlashni buyuramiz. uzoq yo'lni chetga surib qo'ydi.

polalu hujjatlarida aytilgan asosiy atamalar

Proportional qiymat sizning robotingizning chiziqqa nisbatan pozitsiyasiga taxminan proportsionaldir. Ya'ni, agar sizning robotingiz chiziq bo'ylab aniq joylashgan bo'lsa, biz mutanosib 0 qiymatini kutamiz

Integral qiymat sizning robotingiz harakatining tarixini yozib qo'yadi: bu robot ishlay boshlagandan buyon yozilgan proportsional atama qiymatlarining yig'indisidir

Türev - bu mutanosib qiymatning o'zgarish tezligi

Bu qo'llanmada biz faqat Kp va Kd atamalari haqida gaplashamiz, ammo natijalarga Ki atamasi yordamida erishish mumkin, biz sensordan olayotgan o'qishlar nafaqat analog o'qishlar, balki robotning pozitsion o'qishlari.. Shunday qilib, sensor 0 dan 2500 gacha bo'lgan qiymatlarni beradi, ular maksimal aks ettirishdan minimal aks ettirishgacha, lekin ayni paytda robot chiziqdan qanchalik uzoqlashgani haqida ma'lumot beradi.)

Endi biz xato atamasini ko'rib chiqishimiz kerak, bu ikkita belgilangan qiymat va joriy qiymat o'rtasidagi farq. (Belgilangan qiymat - bu sensorlarning chiziqlar ustidagi "mukammal" joylashishiga mos keladigan o'qish. Va oqim qiymat - bu sensorning bir zumda o'qilishi. Masalan: Agar siz bu sensorni ishlatayotgan bo'lsangiz va 8 ta datchikdan foydalansangiz, siz 3500 pozitsiyali o'qishni olasiz, agar siz aniqlanmagan bo'lsangiz, 0 atrofida. chiziq va taxminan 7000 atrofida, agar siz juda to'g'ri bo'lsangiz.). Bizning maqsadimiz - xatoni nolga tenglashtirish. Shundagina robot chiziqni bemalol kuzatishi mumkin.

Keyin hisoblash qismi keladi.

1) xatoni hisoblang.

Xato = belgilangan qiymat qiymati - joriy qiymat = 3500 - pozitsiya

Men 8 ta sensordan foydalanaman. robot mukammal joylashtirilganda sensor 3500 pozitsion o'qishni beradi. Endi biz o'z xatomizni hisoblaymiz, bizning robotimiz yo'l bo'ylab siljiydi, biz xatoni sinchkovlik bilan o'rganishimiz va dvigatel tezligini mos ravishda sozlashimiz kerak.

2) motorlarning sozlangan tezligini aniqlash.

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

LastError = Xato;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Mantiqan aytganda, 0 xatosi bizning robotimiz chap tomonda ekanligini bildiradi, demak, bizning robotimiz biroz o'ngga burilishi kerak, demak, o'ng dvigatel sekinlashishi, chap dvigatel esa tezlashishi kerak. BU PID!

MotorSpeed qiymati tenglamaning o'zidan aniqlanadi. RightBaseSpeed va LeftBaseSpeed-bu xato nol bo'lganda robot ishlaydigan tezlik (PWM 0-255 har qanday qiymati).

Men biriktirgan kod sensorning pozitsion qiymatlarini qanday tekshirishni o'z ichiga oladi, shuning uchun siz ketma -ket monitorni ochishingiz va kodni yuklashingiz va pozitsiya o'zgarganda dvigatellar qanday aylanishini o'zingiz ko'rishingiz mumkin.

Agar siz robotni ishga tushirishda muammoga duch kelsangiz, tenglamalarning belgilarini o'zgartirib tekshiring va ko'rasiz !!!

Va endi kp va kdni topishning eng qiyin qismi, men robotni mukammal sozlash uchun 1 soatdan ko'proq vaqt sarflashga majbur bo'ldim.

  1. Kp va Kd dan boshlang 0 va Kp bilan boshlang, avval Kpni 1 ga qo'ying va robotni kuzatib boring, bizning maqsadimiz chayqalgan bo'lsa ham, chiziqni ta'qib qilish, agar robot haddan oshib ketsa va chiziqni yo'qotsa kp qiymatini kamaytiradi.. Agar robot o'z burilishida harakat qila olmasa va sekinlik bilan Kp qiymatini oshirsa.
  2. Robot chiziqni bir oz kuzatganga o'xshaydi, Kd qiymatini to'g'rilang (Kd qiymati> Kp qiymati), 1dan boshlang va unchalik tebranmaydigan tekis diskni ko'rmaguningizcha, qiymatni oshiring.
  3. Robot chiziq bo'ylab keta boshlagach, tezlikni oshiring va uning chiziqni ushlab tura oladimi yoki yo'qligini bilib oling.

Shuni yodda tutingki, tezlik PID sozlamalariga to'g'ridan -to'g'ri ta'sir qiladi va ba'zida robotning tezligiga mos keladigan tarzda qayta sozlash kerak bo'ladi.

Endi biz robot ishlab chiqarishga kirishimiz mumkin.

2 -qadam: Qurilish

Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish

USB kabeli bilan Arduino atmega 2560 - bu asosiy mikrokontroller.

Shassis- robot shassisi uchun men boshqa loyihada ishlatiladigan ikkita dumaloq akril plastinadan foydalandim, yong'oq va vintlar yordamida men 2 qavatli shassi qurdim, shunda men boshqa modullarni yuqori plastinkaga ulashim mumkin. siz tayyor shassisdan foydalanishingiz mumkin.

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

Mikrometal tishli dvigatellar- robotga PID ishini bajarish uchun tez aylanadigan dvigatellar kerak edi, buning uchun men 6V 400 rpm tezlikda ishlaydigan dvigatellardan va mos keladigan tutqichli g'ildiraklardan foydalandim.

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

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

QTR 8Rc sensorlar majmuasi - bu chiziqlarni kuzatish uchun ishlatilishi mumkin, yuqorida aytib o'tganimdek, endi siz sensorli massivni PID bilan qanday ishlashni aniq tushunib oldingiz.bu kod juda oddiy va mavjud arduino kutubxonalaridan foydalana olasiz. chiziq izdoshlarini tez qurish.

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

TB6612FNG dvigatel haydovchisi-men burilishlarni boshqaradigan va yo'nalishni bir zumda o'zgartiradigan, PWM signali past bo'lganda dvigatellarni samarali tormozlashga qodir bo'lgan dvigatelni ishlatmoqchi edim.

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

Lipo batareyasi- 11.1V lipo batareyasi robotni quvvat bilan ta'minlash uchun ishlatiladi. Biroq men 11.1 V lipo batareyasini ishlatgan bo'lsam-da, bu sig'im arduino va dvigatellar uchun kerak bo'lgandan kattaroqdir. Agar siz og'irligi 7,4 V ni topsangiz. lipo batareyasi yoki 6V Ni-MH batareya to'plami juda zo'r bo'ladi, shuning uchun men kuchlanishni 6V ga aylantirish uchun konvertorni ishlatishim kerak.

11.1V-https://www.ebay.com/itm/High-Capacity-11-1V-2200…

7.4 V-https://www.ebay.com/itm/VOK-Lipo-Battery-for-RC-…

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

Bunga qo'shimcha ravishda, hamma narsa joyida ekanligiga ishonch hosil qilish uchun o'tish simlari, yong'oq va murvat, tornavida va elektr lentalari, shuningdek fermuar bog'ichlari kerak.

3 -qadam: yig'ish

Yig'ish
Yig'ish
Yig'ish
Yig'ish
Yig'ish
Yig'ish
Yig'ish
Yig'ish

motorlarni va kichik g'ildirak g'ildiragini yong'oq va vintlar yordamida plastinkaga ulang, so'ng QTR sensori, dvigatel drayveri, arduino kartasi va batareyani shassiga ulang.

Mana, Internetda topilgan mukammal diagramma, u sizga qanday ulanish kerakligini aytadi.

4 -qadam: Sizning trekni loyihalash

Tarmoqli trekni loyihalash
Tarmoqli trekni loyihalash

Endi sizning loyihangiz deyarli tugaganga o'xshaydi. Oxirgi bosqichda siz robotni sinab ko'rish uchun kichik maydonga ega bo'lishingiz kerak. Men qora fonda kengligi 3 sm oq chiziqli tasodifiy chiziqdan foydalanganman. Hamma narsani yaxshi yopishtirib qo'yganingizga ishonch hosil qiling va hozircha 90 burchak burchagi va kesishmasidan saqlaning, chunki bu kodlashda murakkab holat.

5 -qadam: Kodni dasturlash

1. Arduino -ni yuklab oling va o'rnating

Ish stoli IDE

· Derazalar -

· Mac OS X -

· Linux -

2. QTR 8 RC datchikli massiv faylini Arduino kutubxonalari papkasiga yuklang va joylashtiring.

·

· Fayllarni yo'lga joylashtiring - C: / Arduino / libraries

3. Yuklab oling vaLINEFOLLOWING.ino -ni oching

4. Kodni USB kabeli orqali arduino kartasiga yuklang

6 -qadam: BILDI !

Image
Image

Endi sizda o'zingiz yaratgan robotni ta'qib qiladigan chiziq bor.

Umid qilamanki, bu dars foydali bo'ldi. Har qanday muammo bo'lsa, men bilan [email protected] orqali bog'lanishdan tortinmang.

tez orada yana bir yangi loyiha bilan ko'rishamiz.

Qurilishdan zavqlaning !!

Tavsiya: