Мазмұны:
- 1 -қадам: жұмыс принципі
- 2 -қадам: Құрылыс
- 3 -қадам: құрастыру
- 4 -қадам: Жол сызығын жасаңыз
- 5 -қадам: Кодыңызды бағдарламалаңыз
- 6 -қадам: БОЛДЫ
Бейне: POLOLU QTR 8RC-сенсорлы роботпен PID негізіндегі желі: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Сәлеметсіз бе!
Бұл менің нұсқаулықтар туралы бірінші жазбам, бүгін мен сізді жолдан алып тастаймын және 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 сағаттан артық уақыт жұмсауға тура келді. Кездейсоқ мәндерді қоюдың орнына мен оны анықтаудың оңай әдісін таптым.
- Kp мен Kd -ден 0 -ге тең бастаңыз, және Kp -тен бастаңыз, алдымен Kp -ді 1 -ге қойып көріңіз және роботты бақылаңыз, егер біздің мақсатымыз роб шамасынан асып кетсе және сызықты жоғалтып алса, kp мәнін төмендетеді.. Егер робот бұрыла алмаса және баяу болса, Kp мәнін жоғарылатады.
- Робот сызықты біршама ұстанатын сияқты, Kd мәнін реттеңіз (Kd мәні> Kp мәні) 1 -ден бастаңыз және аз қозғалатын тегіс дискіні көрмейінше мәнді арттырыңыз.
- Робот сызықпен жүре бастағаннан кейін, жылдамдықты арттырыңыз және оның сызықты ұстап тұра алатынын біліңіз.
Есіңізде болсын, жылдамдық 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 -қадам: БОЛДЫ
енді сізде өзіңіз жасаған роботтың келесі сызығы бар.
Бұл оқулық пайдалы болды деп үміттенемін. Егер сізде қандай да бір мәселе туындаса, [email protected] арқылы маған хабарласудан тартынбаңыз.
жақын арада тағы бір жаңа жобамен кездескенше.
Ғимараттан ләззат алыңыз !!
Ұсынылған:
Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам
Arduino негізіндегі байланыссыз инфрақызыл термометр | Ардуиноны қолданатын инфрақызыл термометр: Сәлеметсіз бе, балалар, біз индуктивті емес термометр жасаймыз, өйткені кейде сұйықтықтың/қатты заттың температурасы тым жоғары немесе төмен болады, содан кейін онымен байланыс жасау және оны оқу қиын. сол кездегі температура
NodeMCU көмегімен мені роботпен орындаңыз: 4 қадам
NodeMCU көмегімен мені бақылайтын робот: NodeMCU көмегімен өте қарапайым робот. Ол NodeMCU HC SR04 қашықтық сенсоры арқылы жақын жердегі адамды/ адамды сезеді. Ол Нысанды/ Адамды анықтаған кезде, ол жүре бастайды
433 МГц диапазонында төмен бағалы сымсыз сенсорлық желі: 5 қадам (суреттермен)
433 МГц диапазонындағы сымсыз сенсорлық желінің төмен бағасы: Тереза Раджбаға осы мақалада өз жарияланымдарындағы деректерді пайдалануға рұқсат бергені үшін үлкен рахмет. желілер? Қарапайым анықтама
Роботпен басқарылатын терезе жалюзи: 5 қадам
Роботпен басқарылатын терезе перделері: Бұл нұсқаулық Оңтүстік Флорида университетінің (www.makecourse.com) Makecourse жобасының талаптарын орындау үшін жасалған. Бұл жоба сіздің телефоныңыздан Bluetooth арқылы басқарылатын терезе перделерінде. С
Роботпен ойнау: 6 қадам
Роботпен ойнау: жаңа Pixy2 мен DFRobot ESP32 FireBeetle көмегімен элементтерді таба алатын роботты жасаңыз