Мазмуну:
Video: Өзүн тең салмактоочу робот - PID башкаруу алгоритми: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Бул долбоор мен ойлогом, анткени мен башкаруу алгоритмдери жана функционалдуу PID циклдерин эффективдүү ишке ашыруу жөнүндө көбүрөөк билүүгө кызыкчумун. Долбоор дагы эле өнүгүү стадиясында, анткени Bluetooth модулу кошула элек, ал роботту Bluetooth иштетилген смартфондон башкарууга мүмкүндүк берет.
Колдонулган N20 DC моторлору салыштырмалуу арзан болчу, демек, аларда бир топ ойноо бар. Бул дөңгөлөктөргө моментти колдонуп, моторлор "боштукту" жеңгендиктен, кичине чайпалууга алып келет. Демек, кемчиликсиз жылмакай кыймылга жетүү мүмкүн эмес. Мен жазган код абдан жөнөкөй, бирок натыйжалуу PID алгоритмин көрсөтөт.
Долбоордун корутундусу:
Роботтун шасси Ender 3 принтеринин жардамы менен 3D принтерде басылып, бири-бирине басуу үчүн иштелип чыккан.
Робот Arduino Uno тарабынан башкарылат, ал MPU6050 сенсорунун маалыматын алат жана DC моторун тышкы мотор айдоочусу аркылуу башкарат. Ал 7.4V, 1500mAh батарейкасы менен иштейт. Мотор айдоочусу муну 5V менен жөнгө салып, Arduinoго кубат берет жана моторлорго 7.4В жеткирет.
Программалык камсыздоо gitHubдан 'Arduino-KalmanFilter-master' жана 'Arduino-MPU6050-master' китепканаларынын жардамы менен нөлдөн баштап жазылган.
Берилиштер:
- 3D басылган бөлүктөрү
- Arduino UNO
- MPU6050 6-октук сенсор
- DC DC айдоочусу
- N20 DC Motors (x2)
- 9V батарея
1 -кадам: Robot Build
Басып чыгаруу жана жыйноо
Бүт түзүлүш пресс-фит болушу керек, бирок мен тең салмактоодо роботтун толугу менен катуу болушун камсыз кылуу үчүн компоненттерди коргоо үчүн суперглюгди колдондум.
Мен бөлүктөрдү Fusion 360та иштеп чыктым жана ар бир бөлүктү катаалыраак толеранттуулукка жана бетинин тазалыгы үчүн тирөөчсүз басып чыгарууга оптималдаштырдым.
Ender 3 принтеринде колдонулган жөндөөлөр: 0.16mm Layer Heights @ 40% толтуруу бардык бөлүктөрү үчүн.
2 -кадам: 3D Print роботу
Шасси (x1)
Сол дөңгөлөк (x2)
Сол мотор корпусу (x2)
Arduino Case (x1)
3 -кадам: PID контролдоо алгоритми
Мен gitHubдан 'Arduino-KalmanFilter-master' жана 'Arduino-MPU6050-master' китепканаларын колдонуп, башынан баштап PID башкаруу алгоритмин жаздым.
Алгоритмдин шарты төмөнкүчө:
- MPU6050 чийки маалыматтарды окуу
- Сенсордун ылдамдануусунан улам гироскоптун окууларындагы так эместиктерди жокко чыгаруу үчүн Гироскоптун жана Акселерометрдин маалыматтарын талдоо үчүн Калман чыпкасын колдонуңуз. Бул сенсордун кадамынын салыштырмалуу тегизделген маанисин эки ондукка чейин градуска кайтарат.
- E rror бурчта эсептеңиз, башкача айтканда: Сенсор менен белгиленген чекиттин ортосундагы бурч.
- Пропорционалдык катаны (Пропорционалдуулуктун катасы x катасы) катары эсептеңиз.
- Интегралдык катаны иштеп жаткан сумма катары эсептеңиз (Интеграциянын х катасы).
- Туундун катасын [Дифференциациялоочу туруктуу] x (Катанын өзгөрүшү / Убакыттын өзгөрүшү)] катары туруктуу эсептөө
- Моторлорго жөнөтүлүүчү ылдамдыкты берүү үчүн бардык каталарды жыйынтыктаңыз.
- Ката бурчу белгисинин негизинде моторлорду кайсы багытка бурууну эсептеңиз.
- Укурук чексиз иштейт жана киргизүү өзгөрүп тургандыктан, өндүрүшкө негизделет. Бул кийинки кайталоо үчүн жаңы киргизүү баалуулуктары катары чыгуу баалуулуктарын колдонуп, кайтарым байланыш.
Акыркы кадам - PID циклинин Kp, Ki & Kd параметрлерин тууралоо.
- Жакшы баштапкы чекит - роботту баланстык чекиттин айланасында термелип, кулоону кармаганга чейин Кпти акырындык менен жогорулатуу.
- Андан кийин, Kdны Kpдын 1% тегерегинде баштаңыз жана термелүүлөр жоголгонго чейин жана робот түртүлгөндө жылмакай жылмайынча акырындык менен көбөйтүңүз.
- Акырында, Kiдин 20% тегерегинде баштаңыз жана робот активдүү түрдө жыгылып, вертикалга кайтуу үчүн белгиленген чекти "аша чапканга" чейин өзгөрөт.
Сунушталууда:
Magicbitтен өзүн -өзү тең салуучу робот: 6 кадам
Magicbitтен өзүн -өзү теңдештирүүчү робот: Бул үйрөткүч Magicbit dev тактасын колдонуу менен өзүн -өзү тең салмактай турган роботту кантип жасоону көрсөтөт. Биз ESP32ге негизделген бул долбоордун өнүгүү тактасы катары magicbitти колдонуп жатабыз. Ошондуктан бул долбоордо каалаган ESP32 өнүктүрүү тактасы колдонулушу мүмкүн
Эки дөңгөлөктүү өзүн-өзү тең салуучу робот: 7 кадам
Эки дөңгөлөктүү өзүн-өзү теңдештирүүчү робот: Бул нускоочу өзүн-өзү теңдештирүүчү роботтун дизайнын жана курулуш процессин өтөт. Эскертүү катары, мен жөн гана өзүн-өзү теңдештирүүчү роботтор жаңы түшүнүк эмес экенин айткым келет жана алар башкалар тарабынан курулган жана документтештирилген. Мен бул мүмкүнчүлүктү колдонгум келет
Алыстан башкарылуучу 3D басып чыгаруучу өзүн-өзү тең салуучу роботту кантип түзүү керек: 9 кадам (сүрөттөр менен)
Алыстан башкарылуучу 3D басып чыгарылган өзүн-өзү теңдештирүүчү роботту кантип түзүү керек: Бул B-роботтун мурунку версиясынын эволюциясы. 100% OPEN SOURCE / Arduino роботу. КОД, 3D бөлүктөрү жана электроника ачык, ошондуктан аны өзгөртүүгө же роботтун чоң версиясын түзүүгө болот. Эгерде сизде күмөн болсо, идеяларыңыз же жардамга муктаж болуңуз
2 дөңгөлөктүү өзүн -өзү тең салуучу робот: 4 кадам
2 Дөңгөлөктүү Өзүн Теңдештирүүчү Робот: Менин момун пикирим боюнча, эгер сиз өзүңүздүн 2 дөңгөлөктүү өзүн теңдөөчү роботту курбасаңыз, анда чыныгы Жаратуучу эмессиз. !!! Бул проект абдан жөнөкөй көрүнөт. Тескерисинче, жакшы билимди талап кылат
Tinee9: Arduino өзүн-өзү тең салмакташтыруу: 5 кадам (сүрөттөр менен)
Tinee9: Arduino өзүн-өзү тең салмакташтыруучу: Tiny9 Arduino Self-Balancerди Arduino Nano, servo жана Tiny9 LIS2HH12 модулун колдонуу менен тартуулайт