Съдържание:
Видео: Самобалансиращ се робот - ПИД контрол алгоритъм: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Този проект е замислен, защото имах интерес да науча повече за контролните алгоритми и как ефективно да внедря функционални PID цикли. Проектът все още е във фаза на разработка, тъй като тепърва ще бъде добавен Bluetooth модул, който ще позволи контрол над робота от смартфон с Bluetooth.
Използваните постояннотокови двигатели N20 бяха сравнително евтини и следователно имат значително количество игра в тях. Това води до малък шум, тъй като двигателите преодоляват „отпускането“, тъй като прилагат въртящ момент към колелата. Следователно е почти невъзможно да се постигне идеално гладко движение. Кодът, който написах, е сравнително прост, но ефективно демонстрира възможностите на PID алгоритъма.
Обобщение на проект:
Шасито на робота е 3D отпечатано с помощта на принтер Ender 3 и е проектирано да се прилепва заедно.
Роботът се управлява от Arduino Uno, който взема сензорни данни от MPU6050 и контролира DC двигателите чрез външен драйвер на двигателя. Той работи от 7.4V, 1500mAh батерия. Шофьорът на двигателя регулира това до 5V за захранване на Arduino и захранва 7.4V към двигателите.
Софтуерът е написан от нулата с помощта на библиотеките „Arduino-KalmanFilter-master“и „Arduino-MPU6050-master“от gitHub.
Консумативи:
- 3D отпечатани части
- Arduino UNO
- MPU6050 6-осен сензор
- DC шофьор на мотор
- N20 DC двигатели (x2)
- 9V батерия
Стъпка 1: Изграждане на робот
Печат и монтаж
Цялата конструкция трябва да бъде прилепнала, но използвах суперлепило, за да закрепя компонентите, за да гарантирам, че роботът е напълно твърд при балансиране.
Проектирах частите във Fusion 360 и оптимизирах всяка част за печат без опори, за да се осигурят по -строги допустими отклонения и по -чисто повърхностно покритие.
Настройките, използвани на принтера Ender 3 бяха: 0,16 мм височина на слоя при 40% пълнене за всички части.
Стъпка 2: Робот за 3D печат
Шаси (x1)
Ляво колело (x2)
Ляв корпус на двигателя (x2)
Калъф Arduino (x1)
Стъпка 3: Алгоритъм за PID контрол
Написах алгоритъм за PID контрол от нулата, използвайки библиотеките „Arduino-KalmanFilter-master“и „Arduino-MPU6050-master“от gitHub.
Предпоставката на алгоритъма е следната:
- Прочетете необработени данни от MPU6050
- Използвайте Kalman Filter, за да анализирате данни както от жироскопа, така и от акселерометъра, за да отмените неточностите в показанията на жироскопа поради ускорение на сензора. Това връща относително изгладена стойност за височината на сензора в градуси до две десетични знака.
- Изчислете грешката в ъгъла, т.е.: ъгълът между сензора и зададената точка.
- Изчислете пропорционалната грешка като (Константа на пропорционалност x грешка).
- Изчислете интегралната грешка като текуща сума от (Константа на интеграция x грешка).
- Изчислете производната грешка като константа като [(Константа на диференциация) x (Промяна на грешка / Промяна на времето)]
- Сумирайте всички грешки, за да дадете скоростта, която трябва да бъде изпратена до двигателите.
- Изчислете в каква посока да завъртите двигателите въз основа на знака на ъгъла на грешка.
- Цикълът ще работи неограничено и ще надгражда изхода, тъй като входът варира. Това е контур за обратна връзка, използващ изходните стойности като новите входни стойности за следващата итерация.
Последната стъпка е да настроите параметрите на PID контура Kp, Ki & Kd.
- Добра отправна точка е бавното увеличаване на Kp, докато роботът се колебае около точката на баланс и може да хване падане.
- След това стартирайте Kd на около 1% от стойността на Kp и бавно увеличавайте, докато трептенията изчезнат и роботът се плъзга гладко при натискане.
- И накрая, започнете с Ki около 20% от Kp и променяйте, докато роботът "прескочи" зададената стойност, за да улови активно падане и да се върне във вертикала.
Препоръчано:
Самобалансиращ се робот от Magicbit: 6 стъпки
Самобалансиращ се робот от Magicbit: Този урок показва как да си направите самобалансиращ се робот с помощта на Magicbit dev board. Ние използваме magicbit като борда за разработка в този проект, който е базиран на ESP32. Следователно всяка платка за разработка на ESP32 може да се използва в този проект
Самобалансиращ се робот на две колела: 7 стъпки
Двуколесен самобалансиращ се робот: Този инструктаж ще премине през процеса на проектиране и изграждане на самобалансиращ се робот. Като забележка, просто искам да кажа, че самобалансиращите се роботи не са нова концепция и са създадени и документирани от други. Искам да използвам тази възможност
Създаване на дистанционно управляван самобалансиращ се робот Arduino: B-робот EVO: 8 стъпки
Създаване на дистанционно управляван самобалансиращ се робот Arduino: B-робот EVO: ------------------------------------ -------------- АКТУАЛИЗАЦИЯ: тук има нова и подобрена версия на този робот: B-роботът EVO, с нови функции! ------------ -------------------------------------- Как работи? B-ROBOT EVO е дистанционно контрол
Самобалансиращ се робот, използващ PID алгоритъм (STM MC): 9 стъпки
Самобалансиращ се робот, използващ PID алгоритъм (STM MC): Напоследък беше извършена много работа по самобалансирането на обекти. Концепцията за самобалансиране започва с балансирането на обърнато махало. Тази концепция се разпростира и върху проектирането на самолети. В този проект ние проектирахме малък мод
Контрол на скоростта на DC двигател с помощта на PID алгоритъм (STM32F4): 8 стъпки (със снимки)
Контрол на скоростта на DC двигател с помощта на PID алгоритъм (STM32F4): здравей на всички, Това е tahir ul haq с друг проект. Този път това е STM32F407 като MC. Това е проектът в края на семестъра. Надявам се да ви хареса. Изисква много концепции и теория, така че първо ще се заемем с него. С появата на компютрите и