Агуулгын хүснэгт:

POLOLU QTR 8RC-мэдрэгч бүхий робот дагасан PID дээр суурилсан шугам: 6 алхам (зурагтай)
POLOLU QTR 8RC-мэдрэгч бүхий робот дагасан PID дээр суурилсан шугам: 6 алхам (зурагтай)

Видео: POLOLU QTR 8RC-мэдрэгч бүхий робот дагасан PID дээр суурилсан шугам: 6 алхам (зурагтай)

Видео: POLOLU QTR 8RC-мэдрэгч бүхий робот дагасан PID дээр суурилсан шугам: 6 алхам (зурагтай)
Видео: Pololu 38 кГц ИК-датчик приближения, фиксированное усиление, низкий + Raspberry Pi 2024, Долдугаар сарын
Anonim
POLOLU QTR 8RC-мэдрэгчтэй массив бүхий роботын дагаж буй PID дээр суурилсан шугам
POLOLU QTR 8RC-мэдрэгчтэй массив бүхий роботын дагаж буй PID дээр суурилсан шугам

Сайн уу?

Энэ бол миний зааварчилгааны талаар бичсэн анхны нийтлэл бөгөөд өнөөдөр би чамайг замаас нь хөндийрүүлж, QTR-8RC мэдрэгчийн массивыг ашиглан PID дээр суурилсан шугамыг хэрхэн яаж салгах талаар тайлбарлах болно.

Роботын барилга руу явахаасаа өмнө бид PID гэж нэрлэгддэг зүйлийг ойлгох хэрэгтэй.

Алхам 1: Ажлын зарчим

PID гэж юу вэ?

PID гэдэг нэр томъёо нь пропорциональ, интеграл, дериватив гэсэн утгыг илэрхийлдэг. Тэгвэл PID -ийг мөрийн мөрөөр хийхдээ бид роботыг дагаж мөрдөх, алдааг тооцоолох замаар эргэлтийг илрүүлэх тушаал өгч байна. хол замаасаа холдсон.

polalu баримт бичигт дурдсан гол нэр томъёо

Пропорциональ утга нь таны роботын шугамын байрлалтай ойролцоо пропорциональ байна. Өөрөөр хэлбэл, хэрэв таны робот яг шугам дээр төвлөрсөн бол бид пропорциональ утгыг яг 0 гэж хүлээж байна

Интеграл утга нь таны роботын хөдөлгөөний түүхийг бүртгэдэг: энэ нь робот ажиллаж эхэлснээс хойш бүртгэгдсэн пропорциональ хугацааны бүх утгуудын нийлбэр юм

Дериватив нь пропорциональ утгын өөрчлөлтийн хурд юм

Энэхүү гарын авлагад бид зөвхөн Kp ба Kd нэр томъёоны талаар ярих болно, гэхдээ Ki нэр томъёог ашиглан үр дүнд хүрч болно. Мэдрэгчээс авсан уншилтууд нь зөвхөн аналог уншлага төдийгүй роботын байрлалын уншилт юм. Үндсэндээ мэдрэгч нь хамгийн их тусгалаас хамгийн бага тусгал хүртэлх 0 -ээс 2500 хүртэлх утгыг өгдөг боловч үүнээс гадна робот шугамаас хэр хол тасарсан тухай мэдээллийг өгдөг.)

Одоо бид алдааны нэр томъёог авч үзэх хэрэгтэй, Энэ бол тогтоосон утга ба одоогийн утгын хоёр утга хоорондын зөрүү юм. (Тогтоосон утга нь мэдрэгчийг шугамын дээд хэсэгт "төгс" байрлуулахтай тохирч байгаа утга юм. утга нь мэдрэгчийн агшин зуурын уншилт юм. Жишээ нь: Хэрэв та энэ массив мэдрэгчийг ашиглаж байгаа бөгөөд 8 мэдрэгчийг ашиглаж байгаа бол, хэрэв та цэг дээр байгаа бол 3500, хэрэв та хэт хол үлдсэн бол ойролцоогоор 0 орчим байрлалтай уншигдах болно. шугам, ойролцоогоор 7000 бол хэрвээ та хэт зөв байгаа бол.). Бидний зорилго бол алдааг тэг болгох явдал юм. Зөвхөн дараа нь робот шугамыг жигд дагаж чадна.

Дараа нь тооцооллын хэсэг,.

1) алдааг тооцоолох.

Алдаа = Тодорхой цэгийн утга - Одоогийн утга = 3500 - байрлал

Би 8 мэдрэгч ашиглаж байна. роботыг төгс байрлуулах үед мэдрэгч нь 3500 гэсэн байрлалтай уншилтыг өгдөг. Одоо бид алдаагаа, манай робот зам дагуух зөрүүг тооцоолсон тул алдааг нарийвчлан судалж, хөдөлгүүрийн хурдыг тохируулах цаг болжээ.

2) хөдөлгүүрийн тохируулсан хурдыг тодорхойлох.

MotorSpeed = Kp * Error + Kd * (Алдаа - LastError);

LastError = Алдаа;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Логикоор авч үзвэл 0 гэсэн алдаа нь манай робот зүүн тийш эргэсэн гэсэн үг бөгөөд энэ нь манай робот бага зэрэг баруун тийш явах ёстой гэсэн үг бөгөөд энэ нь баруун мотор удаашрах, зүүн хөдөлгүүр хурдасгах шаардлагатай гэсэн үг юм. ЭНЭ ПИД!

MotorSpeed -ийн утгыг тэгшитгэлээс өөрөө тодорхойлно. RightBaseSpeed ба LeftBaseSpeed нь алдаа тэг байх үед робот ажиллаж буй хурд (PWM 0-255-ийн аливаа утга) юм.

Миний хавсаргасан кодонд мэдрэгчийн байрлалын утгыг хэрхэн шалгах талаар оруулсан болно, ингэснээр та цуваа дэлгэцийг нээж кодыг байршуулж, байрлал өөрчлөгдөхөд хөдөлгүүр хэрхэн эргэдэгийг өөрөө харж болно.

Хэрэв та роботыг ажиллуулахдаа асуудалтай тулгарвал тэгшитгэлийн тэмдгийг өөрчилж, эсэхийг шалгаж үзээрэй !!!

Тэгээд одоо Kp AND Kd -ийг олох хамгийн хэцүү хэсэг нь би роботыг төгс тааруулахын тулд 1 гаруй цаг зарцуулсан юм.

  1. Kp ба Kd -ийг 0 -тэй тэнцүү эхэлж, Kp -ээр эхэлж эхлээд Kp -ийг 1 болгож роботыг ажиглаарай. Бидний зорилго бол эргэлдэж байсан ч гэсэн шугамыг дагах явдал юм.. Хэрэв робот эргэж чадахгүй, удаан байвал Kp -ийн үнэ цэнийг нэмэгдүүлнэ.
  2. Робот шугамыг дагаж мөрдвөл Kd -ийн утгыг (Kd утга> Kp утга) 1 -ээс эхэлж, бага чичиргээтэй гөлгөр хөтөчийг харах хүртэл утгыг нэмэгдүүлнэ.
  3. Робот шугамыг дагаж эхэлмэгц хурдыг нэмэгдүүлж, шугамаа хадгалж, дагах чадвартай эсэхийг шалгаарай.

Хурд нь PID тааруулахад шууд нөлөөлдөг бөгөөд заримдаа роботынхоо хурдыг тааруулахын тулд дахин тохируулах шаардлагатай болдог гэдгийг санаарай.

Одоо бид робот бүтээх ажилдаа орж болно.

Алхам 2: Бүтээл

Бүтээх
Бүтээх
Бүтээх
Бүтээх
Бүтээх
Бүтээх

USB кабельтай Arduino atmega 2560 - энэ бол гол микроконтроллер юм.

Явах эд анги- роботын явах эд ангиудын хувьд би өөр төсөлд ашигладаг 2 дугуй хэлбэртэй нийлэг хавтанг ашигласан. Самар, эрэг ашиглан би 2 давхар явах эд анги барьсан бөгөөд ингэснээр би бусад модулийг дээд хавтан дээр хавсаргаж болно. та бэлэн бэлэн явах эд анги ашиглаж болно.

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

Микрометрийн арааны мотор- PID горимыг даван туулахын тулд роботод хурдан эргэдэг мотор хэрэгтэй байсан бөгөөд үүний тулд би 6V 400 эргэлтийн хурдтай хөдөлгүүр, тохиромжтой бариултай дугуй ашигласан.

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

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

QTR 8Rc мэдрэгчийн массив - үүнийг мөрийг хянахад ашиглаж болно, дээр дурдсанчлан та одоо мэдрэгчийн массивыг PID ашиглан хэрхэн ажиллуулах талаар тодорхой ойлголттой болсон гэж бодож байна. Код нь маш энгийн бөгөөд одоо байгаа arduino номын санг ашиглах боломжтой болно. хурдан мөр дагагч бий болгох.

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

TB6612FNG Мотор драйвер-Би ХОУХ-ны дохио буурахад хөдөлгүүрийг үр дүнтэй тоормослох чадвартай эргэлтийг зохицуулж, чиглэлээ хурдан өөрчилж чаддаг мотор жолооч ашиглахыг хүссэн юм.

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

Липо батерей- 11.1V липо батерейг роботыг эрчим хүчээр хангахад ашигладаг. Хэдийгээр би 11.1 В-ийн липо батерей ашигласан боловч энэ хүчин чадал нь arduino болон моторт шаардагдах хэмжээнээс илүү байна. Хэрэв та 7.4V хөнгөн жинтэй бол lipo зай эсвэл 6V Ni-MH батерейны багц нь төгс төгөлдөр байх болно. Ийм учраас би хүчдэлийг 6V болгон хувиргахын тулд хөрвүүлэгч ашиглах шаардлагатай болсон.

11.1V-

7.4 V-

Бак хөрвүүлэгч модуль-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Үүнээс гадна бүх зүйл байгаа эсэхийг шалгахын тулд танд холбогч утас, самар, боолт, халив, цахилгаан соронзон хальс, цахилгаан товч хэрэгтэй болно.

Алхам 3: угсрах

Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна

мотор болон жижиг кастерын дугуйг самар, эрэг ашиглан хавтан дээр холбож, дараа нь QTR мэдрэгч, мотор драйвер, arduino самбар, эцэст нь батерейг эд анги руу холбоно уу.

Энд би интернетээс олсон төгс диаграмм бөгөөд холболтыг хэрхэн яаж хийх ёстойг хэлж өгдөг.

Алхам 4: Шугаман замаа зохион бүтээгээрэй

Шугаман замаа зохион бүтээгээрэй
Шугаман замаа зохион бүтээгээрэй

Одоо таны төсөл бараг дуусч байгаа юм шиг байна. Сүүлийн шатанд роботоо туршихын тулд жижиг талбайтай байх хэрэгтэй. Би хар дэвсгэр дээр 3см цагаан өргөнтэй санамсаргүй шугам ашигласан. Та бүгдийг сайн наасан эсэхээ шалгаарай. Одоогоор 90 degees өнцгийн хөндлөн огтлолцол, огтлолцлоос зайлсхийх хэрэгтэй, учир нь энэ нь кодлоход төвөгтэй асуудал юм.

Алхам 5: Кодоо програмчлах

1. Arduino татаж аваад суулгана уу

Ширээний IDE

· Цонхнууд -

· Mac OS X -

· Линукс -

2. QTR 8 RC мэдрэгчийн массив файлыг татаж аваад Arduino libraries фолдерт буулгана уу.

·

· Файлуудыг зам руу буулгах - C: / Arduino / libraries

3. LINEFOLLOWING.ino -г татаж аваад нээнэ үү

4. Кодыг USB кабелиар дамжуулан arduino самбар дээр байршуулна уу

Алхам 6: Гүйцэтгэв

Image
Image

Одоо та өөрийн гараар бүтээсэн роботыг дагаж мөрдөж байна.

Энэ заавар танд тусалсан гэж найдаж байна. Хэрэв танд ямар нэгэн асуудал байвал надтай [email protected] хаягаар холбоо бариарай.

удахгүй дахин нэг шинэ төсөлтэй уулзацгаая.

Байшингаа сайхан өнгөрүүлээрэй !!

Зөвлөмж болгож буй: