Мазмұны:

POLOLU QTR 8RC-сенсорлы роботпен PID негізіндегі желі: 6 қадам (суреттермен)
POLOLU QTR 8RC-сенсорлы роботпен PID негізіндегі желі: 6 қадам (суреттермен)

Бейне: POLOLU QTR 8RC-сенсорлы роботпен PID негізіндегі желі: 6 қадам (суреттермен)

Бейне: POLOLU QTR 8RC-сенсорлы роботпен PID негізіндегі желі: 6 қадам (суреттермен)
Бейне: Side leakage of IR light on QTRX reflectance sensors 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 мәнін төмендетеді.. Егер робот бұрыла алмаса және баяу болса, Kp мәнін жоғарылатады.
  2. Робот сызықты біршама ұстанатын сияқты, Kd мәнін реттеңіз (Kd мәні> Kp мәні) 1 -ден бастаңыз және аз қозғалатын тегіс дискіні көрмейінше мәнді арттырыңыз.
  3. Робот сызықпен жүре бастағаннан кейін, жылдамдықты арттырыңыз және оның сызықты ұстап тұра алатынын біліңіз.

Есіңізде болсын, жылдамдық PID тюнингіне тікелей әсер етеді және сізге кейде роботтың жылдамдығына сәйкес келу үшін қайта реттеу қажет болуы мүмкін.

Енді біз роботтың құрылысына кірісе аламыз.

2 -қадам: Құрылыс

Құрылыс
Құрылыс
Құрылыс
Құрылыс
Құрылыс
Құрылыс

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

Шасси- робот шассиі үшін мен басқа дөңгелек акрил пластиналарды қолдандым, олар бұл үшін өте қолайлы. Жаңғақтар мен бұрандаларды қолдана отырып, мен басқа модульдерді үстіңгі тақтаға бекіту үшін 2 қабатты шасси жасадым. дайын шассиді пайдалануға болады.

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

Микрометрлік тісті қозғалтқыштар- роботқа PID жүйесімен айналысу үшін жылдам айналатын қозғалтқыштар қажет болды, ол үшін мен 6В 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 мотор драйвері-мен бұрылыстарды басқара алатын және бағытты өзгерте алатын мотор драйверін қолданғым келді, ол PWM сигналы төмендегенде қозғалтқыштарды тиімді тежеуге қабілетті.

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

Lipo аккумуляторы- 11.1В липо батареясы роботты қуатпен қамтамасыз ету үшін қолданылады. Бірақ мен 11.1 В липо батареясын қолданғаныммен, бұл сыйымдылық ардуино мен қозғалтқыштарға қажет мөлшерден асады. Егер сіз жеңіл салмақты 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 -қадам: Жол сызығын жасаңыз

Сызық жолын жасаңыз
Сызық жолын жасаңыз

Енді сіздің жобаңыз аяқталуға жақын сияқты. Соңғы кезеңде сізге роботты тексеру үшін шағын арена қажет болады. Мен қара фонда ені 3 см ақ сызықтың кездейсоқ сызығын қолдандым. Барлығын жақсылап қойғаныңызға көз жеткізіңіз және әзірге 90 бұрышты бұрыштар мен көлденең қималардан аулақ болыңыз, себебі бұл кодтау үшін күрделі жағдай.

5 -қадам: Кодыңызды бағдарламалаңыз

1. Arduino жүктеп алыңыз және орнатыңыз

Жұмыс үстелінің IDE

· Терезелер -

· Mac OS X -

· Linux -

2. QTR 8 RC сенсорлық массив файлын Arduino кітапханалары қалтасына жүктеп, қойыңыз.

·

· Файлдарды жолға қойыңыз - C: / Arduino / libraries

3. LINEFOLLOWING.ino жүктеп алыңыз және ашыңыз

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

6 -қадам: БОЛДЫ

Image
Image

енді сізде өзіңіз жасаған роботтың келесі сызығы бар.

Бұл оқулық пайдалы болды деп үміттенемін. Егер сізде қандай да бір мәселе туындаса, [email protected] арқылы маған хабарласудан тартынбаңыз.

жақын арада тағы бір жаңа жобамен кездескенше.

Ғимараттан ләззат алыңыз !!

Ұсынылған: