Мазмуну:
- Жабдуулар
- 1 -кадам: Курулуш
- 2 -кадам: Кабелдөө
- 3 -кадам: Контролдоо теориясы
- 4 -кадам: MPU 6050 колдонуу
- 5 -кадам: Коддоо
- 6 -кадам: PID тюнинг тартиби
- 7 -кадам: Жыйынтык
Video: Эки дөңгөлөктүү өзүн-өзү тең салуучу робот: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Бул нускоочу өзүн-өзү тең салмактай турган робот үчүн долбоорлоо жана куруу процессинен өтөт. Эскертүү катары, мен жөн гана өзүн-өзү теңдештирүүчү роботтор жаңы түшүнүк эмес экенин айткым келет жана алар башкалар тарабынан курулган жана документтештирилген. Мен бул мүмкүнчүлүктү пайдаланып, сиз менен бул роботту чечмелөөмдү бөлүшкүм келет.
Өзүн-өзү тең салуучу робот деген эмне?
Өзүн-өзү тең салмактап туруучу робот-инерциялуу өлчөө маалыматын колдонуп, борттогу сенсордон чогултуп, позициясын дайыма түз кармап туруу үчүн.
Бул кантип иштейт?
Карап чыгуу үчүн жөнөкөй окшоштук - бул тескери маятник. Массанын борбору бурулуш чекиттен жогору турган жерде. Бирок, биздин учурда, биз маятникти 1 даража эркиндик менен чектеп жатабыз, бир айлануу огуна ээ болобуз, биздин учурда эки дөңгөлөктүн айлануу огу. Кандайдыр бир бузулуу роботтун кулашына алып келгендиктен, биз роботту тең салмактуу кармоо ыкмасына муктажбыз. Бул жерде биздин жабык айланма алгоритмибиз (PID контроллери) ойнойт, биздин робот кайсы багытта түшүп жатканын билип, системаны тең салмакта кармоо үчүн моторлорубуздун айлануу багытын тууралай алабыз.
Жабык цикл алгоритми кантип иштейт?
Роботту тең салмакта кармап туруунун негизги принциби, эгер робот алдыга кулап баратса, роботтун түбүн алдыга жылдыруу менен ордун толтурат, ошондуктан вертикалдуу кармайт. Ошо сыяктуу эле, эгер робот артка жыгылып жатса, анда ал роботтун түбүн артка жылдырып, өзүн кармайт.
Ошентип, биз бул жерде эки нерсени кылышыбыз керек, биринчиден, робот башынан өткөргөн жантаюу бурчун (Ролл) эсептеп, натыйжада моторлордун айлануу багытын көзөмөлдөшүбүз керек.
Жантаюу бурчун кантип өлчөйбүз?
Жантыктын бурчун өлчөө үчүн биз инерциялык өлчөө бирдигин колдонобуз. Бул модулдар акселерометр менен гироскопту камтыйт.
- Акселерометр - бул туура ылдамданууну өлчөөчү электромагниттик түзмөк, бул дененин бир заматта эс алуу алкагындагы ылдамдануусу.
- Гироскоп - бул бурчтук ылдамдыкты өлчөөчү электромеханикалык түзүлүш жана аппараттын багытын аныктоо үчүн колдонулат.
Бирок, мындай сенсорлорду колдонуудагы көйгөй:
- Акселерометр абдан ызы -чуу, бирок убакыттын өтүшү менен ырааттуу, бурч капыстан горизонталдык кыймылдарга жараша өзгөрүп турат
- Гироскоптун мааниси, тескерисинче, убакыттын өтүшү менен жылып кетет, бирок башында бул абдан так
Бул үйрөтүү үчүн, мен чыпканы ишке ашыргым келбейт, тескерисинче, борттогу Digital Motion Processing (DMP). Башкалар жылмакай сигналды алуу үчүн кошумча чыпканы колдонушкан, сиз каалаган ыкманы тандай аласыз. робот же ишке ашыруу менен тең салмактайт.
Жабдуулар
Бөлүктөр:
- Arduino Pro Mini 3.3V 8 8 МГц ATMEGA328 менен
- TTL сериялык адаптер модулуна FT232RL 3.3V 5.5V FTDI USB
- GY-521 модулу MPU-6050 менен
- N20 микро тиштүү мотор 6V - 300rpm
- L298N мотор айдоочу
- LM2596S DC - DC Бак конвертери
- Батарея (Заряддалуучу 9.7V Li-Ion батарейкасы)
- Батарея боосу
- Эки прототиптелген PCB схемалары
- Эркек жана ургаачы төөнөгүчтөр секиргич зымдар
Куралдар:
- Лампочка жана ширетүүчү
- Нейлон он алты бурчтук стейдер
- Так бурамалар топтому
- 3D принтер
1 -кадам: Курулуш
Менде 3D принтер бар болгондуктан, мен шассини 3D басып чыгарууну чечтим жана бардыгын бириктирүү үчүн стенддерди колдонууну чечтим.
Робот 4 катмардан турат
- Төмөнкү катмар моторлорду туташтырат жана L298N мотор айдоочу модулуна орнотуу чекиттерине ээ
- Кийинки катмарда Arduino pro mini менен прототип тактасы жана ага башталган
- Үчүнчү катмар ӨИКти орнотот
- Мен "бампер катмары" деп атаган үстүнкү катмар батареяны, бук конвертерин жана акча которууну камтыйт
Менин негизги дизайн принцибим бардыгын модулдук түрдө сактоо болчу. Мунун себеби, эгерде компоненттердин биринде бир нерсе туура эмес болуп калса, мен аны оңой алмаштыра алам же башка долбоордун компоненти керек болсо, мен аны системаны кайра колдоно албайм деп тынчсызданбай эле оңой эле ала алам.
2 -кадам: Кабелдөө
Мен Arduino pro мини баштык казыктары менен дал келүү үчүн кээ бир ургаачы пинттерди тактага туташтырдым. Ушундан кийин, I/O кирүүгө мүмкүндүк берүү үчүн, эркек баш тактасын кадаймын. Калган компоненттер 3D басылган рамкага орнотулган жана секирүүчү зымдардын жардамы менен туташкан.
3 -кадам: Контролдоо теориясы
Эми биз долбоордун өзөгүнө өтүүдөбүз. Роботту тең салмакта кармоо үчүн, моторлорду туура багытта жана туура ылдамдыкта роботту тең салмакта жана стабилдүү кармоо үчүн тийиштүү башкаруу сигналын жаратышыбыз керек. Бул үчүн биз PID контроллери деп аталган популярдуу башкаруу циклинин алгоритмин колдонобуз. Кыскартуулардан көрүнүп тургандай, бул контроллердин үч термини бар, бул пропорционалдуу, интегралдык жана туунду терминдер. Алардын ар бири системага болгон таасирин аныктоочу коэффициенттер менен коштолот. Көбүнчө контроллерди ишке ашыруунун эң көп убакытты талап кылган бөлүгү-бул эң оптималдуу жооп алуу үчүн ар бир уникалдуу системанын кирешесин жөнгө салуу.
- Пропорционалдык термин катаны түздөн -түз көбөйтөт, андыктан ката канчалык чоң болсо, жооп ошончолук чоң болот
- Интегралдык термин туруктуу абалдагы катаны азайтуу үчүн катанын топтолушуна негизделген жоопту жаратат. Система канчалык узак болсо, моторлор ошончолук тез жооп берет
- Туунду термин-бул келечектеги жоопту болжолдоо үчүн колдонулган катанын туундусу жана мында туруктуу абалдын ашкандыгына байланыштуу термелүүнү азайтат.
Бул алгоритмдин негизги принциби - бул ийкемдүүлүк бурчун дайыма эсептөө, бул каалаган позиция менен учурдагы абалдын ортосундагы айырма, бул ката деп аталат. Андан кийин бул ката баалуулуктарын колдонот жана моторлорго жөнөтүлүүчү башкаруу сигналдары болгон продукцияны алуу үчүн пропорционалдуу, интегралдык жана туунду жооптордун суммасын эсептейт. Натыйжада, эгер ката чоң болсо, моторлорго жөнөтүлгөн башкаруу сигналы тең салмактуу абалга жетүү үчүн моторлорду жогорку ылдамдыкта айландырат. Ошо сыяктуу эле, эгер ката кичине болсо, роботту тең салмакта кармоо үчүн башкаруу сигналы моторлорду аз ылдамдыкта айландырат.
4 -кадам: MPU 6050 колдонуу
MPU6050 китепканасы
github.com/jrowberg/i2cdevlib/tree/master/…
Бардык сенсорлор бири -биринин так көчүрмөсү эмес. Натыйжада, эгер сиз эки MPU 6050 тестирлесеңиз, ошол эле бетке дагы эле жайгаштырылганда акселерометр менен гироскоптун ар кандай маанилерине ээ боло аласыз. Бул туруктуу бурчтун ордун басуу үчүн биз колдонгон ар бир сенсорду белгилешибиз керек. Бул скриптти иштетүү:
www.i2cdevlib.com/forums/topic/96-arduino-…
Луис Роденас тарабынан жазылган, биз ордун толтурабыз. Орнотуу каталарын жөндөө () тартибинде офсет баалуулуктарын аныктоо аркылуу жоюуга болот.
Digital Motion Processor колдонуу
MPU6050 DMP (Digital Motion Processor) камтыйт.
DMP деген эмне? Сиз DMPди өз кыймылынын синтездөө алгоритмдерин колдонуп, mpu6050 бортундагы 3 октук гироскоптон жана 3 октук акселерометрден комплекстүү кыймылды иштетүүчү борттогу микроконтроллер катары элестетсеңиз болот. Болбосо Arduino жасай турган иштетүүнү жүктөө
Аны кантип колдонсо болот? DMPди кантип колдонууну билүү үчүн MPU6050 китепканасы менен келген MPU6050_DMP6 эскизинин мисалынан өтүңүз (Arduino IDEде: Файл-> Мисал-> MPU6050-> MPU6050_DMP6). Бул ошондой эле сенсордун чындыгында иштээрин жана зымдардын туура экенин текшерүү үчүн жакшы мүмкүнчүлүк
5 -кадам: Коддоо
Мен Arduino IDEди жана FTDI интерфейсин Arduino pro mini программасы үчүн колдондум.
MPU6050 китепканасы менен келген мисалдын эскизин (MPU6050_DMP6) колдонуу менен мен PID () жана MotorDriver () функцияларын коштум.
Китепкана кошуу
- MPU6050: MPU6050 сенсорун колдонуу үчүн, биз Jeff Rowbergтен I2C иштеп чыгуучулардын китепканасын жүктөп алып, аны компьютериңиздеги программалык файлдарда жайгашкан Arduino "китепканалары" папкасына кошушубуз керек.
- Wire: Бизге I2C түзмөктөрү менен байланышууга мүмкүнчүлүк берүү үчүн Wire китепканасы дагы керек.
Жасалма коду
Китепканаларды камтыйт:
- Wire.h
- MPU6050
- I2Cdev.h
Өзгөрмөлөрдү, константаларды жана объекттерди баштоо
Жайгашуу ()
- Моторлорду көзөмөлдөө үчүн пин режимин коюңуз
- LED абалына пин режимин коюңуз
- MPU6050ди баштоо жана офсет маанилерин коюу
PID ()
PID маанисин эсептөө
MotorDriver (PID жооп)
Моторлордун ылдамдыгын жана багытын көзөмөлдөө үчүн PID маанисин колдонуңуз
Loop ()
- DMPден маалымат алыңыз
- Чакыруу PID () MotorDriver () функциялары
6 -кадам: PID тюнинг тартиби
Бул долбоордун эң түйшүктүү бөлүгү жана эгер сиз абдан бактылуу болуп калбасаңыз, бир аз сабырдуулукту талап кылат. Бул жерде кадамдар:
- I жана D терминин 0 коюңуз
- Роботту кармап туруп, Рду робот жөн гана тең салмактуулук абалына карата термеле башташы үчүн тууралаңыз
- Р топтому менен, робот баланссыз болгондо тезирээк ылдамдашы үчүн I көбөйт. Мен жана мен туура күүлөнгөндө, робот бир аз термелүү менен, жок эле дегенде, бир нече секундага тең салмактуу болушу керек.
- Акыр -аягы, D жогорулатуу термелүүнү азайтуу
Эгерде биринчи аракет канааттандырарлык жыйынтык бербесе, анда башка мааниси бар кадамдарды кайталаңыз. Ошондой эле PID баалуулуктарын кийинчерээк жөндөп, өндүрүмдүүлүктү андан ары жогорулатуу мүмкүн экенин билиңиз. Бул жердеги баалуулуктар аппараттык жабдууларга көз каранды, эгер сиз абдан чоң же өтө кичине PID баалуулуктарын алсаңыз таң калбаңыз.
7 -кадам: Жыйынтык
Колдонулган микро тиштүү моторлор чоң баш аламандыктарга акырындык менен жооп бериши керек болчу жана система өтө жеңил болгондуктан, каалаган маятник эффектин алуу үчүн инерция жетишсиз болчу, ошондуктан робот алдыга эңкейсе, ал жөн гана бурчка таянып, алдыга карай жарышмак. Акыр -аягы, 3D басып чыгарылган дөңгөлөктөр - бул начар тандоо, анткени алар тайып кете беришет.
Жакшыртуу боюнча сунуштар:
- Жогорку моментке ээ болгон ылдамыраак моторлор, башкача айтканда DC моторлору үчүн чыңалуу рейтинги жогору болот
- оор батареяны алыңыз же массаны бир аз жогору көтөрүңүз
- Көбүрөөк тартуу үчүн 3D басылган дөңгөлөктөрдү резина дөңгөлөктөргө алмаштырыңыз
Сунушталууда:
Өзүн тең салмактоочу робот - PID башкаруу алгоритми: 3 кадам
Өзүн -өзү теңдештирүүчү робот - PID Control Algorithm: Бул долбоор ойлонулган, анткени мен Control Algorithms жана PIDтин функционалдык циклдерин кантип эффективдүү ишке ашыруу жөнүндө көбүрөөк билүүгө кызыкчумун. Долбоор дагы эле өнүгүү стадиясында, анткени Bluetooth модулу дагы кошула элек
Баасы төмөн дөңгөлөктүү робот оюнчугун куруңуз: 9 кадам
Баасы төмөн дөңгөлөктүү робот оюнчугун жасаңыз: Бул көрсөтмөдө сиз өзүңүзгө же балдарыңызга жасай ала турган жөнөкөй, арзан дөңгөлөктүү робот оюнчугун жасай аласыз. Мен сизге кепилдик бере алам, сиздин оюнчугуңузду балдарыңыз өмүр бою эстеп калышат. Оюнчук тиркелген сүрөткө окшош болот
Proyecto Laboratorio De Mecatrónica (Эки дөңгөлөктүү тең салмактуулук роботу): 6 кадам
Proyecto Laboratorio De Mecatrónica (Эки дөңгөлөктүү тең салмактуулук роботу): "Эки дөңгөлөктүү тең салмактуу робот" функциясын иштеп чыгуу үчүн, бул функцияны колдонуңуз. paso a con con explicación y concejos. Эне системасы кезектеги роботтун жоктугунан көрүнүп турат
Бир дөңгөлөктүү робот: 3 кадам
Бир дөңгөлөктүү робот: Бул долбоордо мен сизге бир дөңгөлөктүү роботту же велосипедди этап -этабы менен кантип жасоону көрсөтөм, ошондо сиз өзүңүз жасай аласыз. Бул робот MPU6050 сенсорунун жардамы менен ийилүүнү эсептөө менен автоматтык түрдө тең салмактай алат, ал экиден турат
Өзүн тең салмакка салуучу Робо-рыцарь: 7 кадам (Сүрөттөр менен)
Өзүн тең салмакка салуучу Robo-Knight: Видео оюндар жана стол оюндары достор жана үй-бүлө менен убакыт өткөрүүнүн эң сонун жолу. Кээде сиз оффлайнда убакыт өткөрүп, электроникаңыздын бардыгын таштап салгыңыз келет, дагы бир жолу виртуалдуу спорт, аркада же мушташуу дүйнөсүнө чөмүлөсүз