Мазмуну:

POLOLU QTR 8RC-сенсор массиви бар PIDге негизделген линия: 6 кадам (Сүрөттөр менен)
POLOLU QTR 8RC-сенсор массиви бар PIDге негизделген линия: 6 кадам (Сүрөттөр менен)

Video: POLOLU QTR 8RC-сенсор массиви бар PIDге негизделген линия: 6 кадам (Сүрөттөр менен)

Video: POLOLU QTR 8RC-сенсор массиви бар PIDге негизделген линия: 6 кадам (Сүрөттөр менен)
Video: Ардуино QTR-8RC 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) катаны эсептөө.

Error = Setpoint Value - Current Value = 3500 - позиция

Мен 8 сенсорду колдонуп жатам. сенсор робот кемчиликсиз жайгаштырылганда 3500 позициялык көрсөткүчүн берет. Эми биз өзүбүздүн катабызды, роботубуз тректи аралап өтүүчү чекти эсептеп чыккандан кийин, катаны кылдаттык менен текшерип, мотор ылдамдыгын ошого жараша тууралоого убакыт келди.

2) моторлордун туураланган ылдамдыгын аныктоо.

MotorSpeed = Kp * Error + Kd * (Error - 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 маанисин төмөндөтөт.эгер робот бир бурулушту башкара албаса жана Kp маанисин жогорулатса.
  2. Робот сызыкты бир аз ээрчип алгандай көрүнгөндөн кийин, Kd маанисин (Kd мааниси> Kp мааниси) 1ден баштаңыз жана анча -мынча кыймылсыз жылмакай дискти көргөнгө чейин маанини жогорулатыңыз.
  3. Робот линияны ээрчип баштаганда, ылдамдыгын жогорулатып, линияны сактап калууга жана ээрчүүгө жөндөмдүү экенин текшериңиз.

Ылдамдык PID тюнингине түздөн -түз таасирин тийгизерин унутпаңыз жана кээде роботтун ылдамдыгына дал келүү үчүн кайра жөндөө керек болушу мүмкүн.

Эми биз роботубуздун курулушуна кире алабыз.

2 -кадам: куруу

Build
Build
Build
Build
Build
Build

USB кабели бар Arduino atmega 2560 - бул колдонулган негизги микроконтроллер.

Chassis- робот шасси үчүн мен дагы башка долбоор үчүн колдонулган 2 тегерек акрил пластинкасын колдонгом. Жаңгактарды жана бурамаларды колдонуу менен мен 2 кабаттуу шасси кургам, ошондо мен башка модулдарды үстүңкү табакка тиркей алам. сиз даяр шассини колдоно аласыз.

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

Микрометрдик тиштүү моторлор- роботко PID көндүмдөрүнө туруштук берүү үчүн тез айлануучу кыймылдаткычтар керек болчу, бул үчүн мен 6В 400rpm ылдамдыктагы моторлорду жана ылайыктуу дөңгөлөктүү дөңгөлөктөрдү колдондум.

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 Мотор айдоочусу-Мен PWM сигналы төмөндөгөндө моторлорду эффективдүү тормоздоого жөндөмдүү болгон бурулуштарды башкара турган жана багыттарды бир заматта өзгөртө ала турган мотор айдоочусун колдонгум келди.

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

Lipo аккумулятору- 11.1V липо батареясы роботту кубаттандыруу үчүн колдонулат. Бирок мен 11.1 В липо батареясын колдонгом, бирок бул кубаттуулук arduino менен моторлорго керектүү нерседен көп. Эгер сиз 7.4В жеңил салмакты тапсаңыз lipo батарейкасы же 6V Ni-MH батарейкасы бул идеалдуу болот. Ушул себептен улам мен чыңалууну 6Вга айландыруу үчүн акча алмаштыргычты колдонушум керек.

11.1V-

7.4 V-

Бак конвертер модулу-https://www.ebay.com/itm/1PCS-DC-DC-LM2596-power-…

Буга кошумча катары баардык нерсенин ордунда экенине ынануу үчүн секиргич зымдар, гайкалар жана болттор, отверткалар жана электр ленталары, ошондой эле сыдырма галстуктар керек.

3 -кадам: чогултуу

Чогултуу
Чогултуу
Чогултуу
Чогултуу
Чогултуу
Чогултуу
Чогултуу
Чогултуу

моторлорду жана кичинекей дөңгөлөктүү дөңгөлөктү гайкалар менен бурамалар менен табакка салыңыз, андан кийин QTR сенсорун, мотор драйверин, arduino тактасын жана акырында батареяны шассиге орнотуңуз.

Бул жерде мен интернеттен тапкан кемчиликсиз диаграмма, ал сизге байланыштарды кантип жасоо керектигин айтат.

4 -кадам: Сиздин Line Track Дизайн

Сиздин Line Track Дизайн
Сиздин Line Track Дизайн

Эми сиздин долбоор дээрлик аяктады окшойт. Соңку этапта роботту текшерүү үчүн кичинекей аренаңыз болушу керек.i кара фондо туурасы 3 см ак сызыктын туш келди сызыгын колдонгон. Баарын жакшылап чаптаңыз. Азырынча 90 бурчтуктун кесилиштеринен жана кесилиштеринен алыс болуңуз, анткени бул коддоодо татаал иш.

5 -кадам: Кодуңузду программалаңыз

1. Arduino жүктөп алып, орнотуңуз

Desktop IDE

· Терезелер -

· Mac OS X -

· Linux -

2. QTR 8 RC сенсор массивинин файлын Arduino китепканалары папкасына түшүрүп чаптаңыз.

·

· Файлдарды жолго чаптаңыз - C: / Arduino / libraries

3. Жүктөө жана openLINEFOLLOWING.ino

4. USB кабели аркылуу arduino тактасына кодду жүктөңүз

6 -кадам: БОЛДУ

Image
Image

Эми сизде роботтун артынан өзүңүз жасаган линия бар.

Бул окуу куралы пайдалуу болду деп үмүттөнөм. Эгер сизде кандайдыр бир көйгөй болсо, [email protected] аркылуу мени менен байланышуудан тартынбаңыз.

жакында дагы бир жаңы долбоор менен көрүшөбүз.

Куруудан ырахат алыңыз !!

Сунушталууда: