Мазмуну:
- 1 -кадам: Эмне үчүн инерциялык өлчөө бирдигин колдонуу керек?
- 2 -кадам: BNO055ти 2D локалдаштыруу үчүн кантип колдонсо болот?
- 3 -кадам: Vue жабдык пункту
- 4 -кадам: Бул кантип иштейт?
- 5 -кадам: Архитектура жана Программалык камсыздоо
- 6 -кадам: Мен эмнени үйрөндүм?
Video: Инерциялык өлчөө бирдигин колдонуунун жолу?: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Контекст:
Мен көңүл ачуу үчүн үйдүн ичинде автономдуу түрдө жылгым келген роботту куруп жатам.
Бул узак иш жана мен этап -этабы менен жасап жатам.
Мен бул темада буга чейин 2 көрсөтмө жарыялаганмын:
- дөңгөлөк коддогучту жасоо жөнүндө
- wifi туташуусу жөнүндө
Менин роботум үйдө жасалган дөңгөлөк коддогучтун жардамы менен 2 DC кыймылдаткычына айдалат.
Мен азыр кыймылдуу башкарууну жакшыртып жатам жана бир аз убакытты гироскоп, акселерометр жана IMU менен өткөрдүм. Мен бул тажрыйба менен бөлүшкүм келет.
Локализация жөнүндө көбүрөөк билгиңиз келеби? Бул жерде роботту локалдаштыруу үчүн жасалма интеллект менен УЗИди кантип айкалыштыруу керектиги тууралуу макала бар
1 -кадам: Эмне үчүн инерциялык өлчөө бирдигин колдонуу керек?
Анда мен эмне үчүн ӨИКти колдондум?
Биринчи себеби, эгер дөңгөлөктөрдү коддогуч түз кыймылды көзөмөлдөө үчүн жетиштүү болсо, жөнгө салгандан кийин да мен +- 5 градустан аз айлануу үчүн тактык ала алган жокмун жана бул жетишсиз.
Ошентип, мен 2 башка сенсорлорду сынап көрдүм. Биринчиден, мен магнитометрди (LSM303D) колдоном. Принцип жөнөкөй эле: айлануудан мурун түндүк багытты алуу, бутага эсептөө жана максатка жеткенге чейин кыймылды тууралоо. Бул коддогучка караганда бир аз жакшыраак, бирок өтө дисперсиялык. Андан кийин мен гироскопту (L3GD20) колдонууга аракет кылдым. Бул принцип айланууну эсептөө үчүн сенсор тарабынан берилген айлануу ылдамдыгын бириктирүү эле. Жана жакшы иштеди. Мен айланууну +- 1 градуста башкара алдым.
Ошентсе да мен кандайдыр бир ӨИКти сынап көрүүгө кызыкчумун. Мен BNO055 компонентин тандайм. Мен бул ӨИКти түшүнүү жана сыноо үчүн бир аз убакыт бөлдүм. Акыр -аягы, мен төмөнкү себептерден улам бул сенсорду тандап алууну чечтим
- Мен айланууну, ошондой эле L3GD20 менен башкара алам
- Мен түз жылганда кичине айланууну аныктай алам
- Мен роботту локалдаштыруу үчүн түндүк багытты алышым керек жана BNO055тин компасын калибрлөө абдан жөнөкөй
2 -кадам: BNO055ти 2D локалдаштыруу үчүн кантип колдонсо болот?
BNO055 IMU - бул абсолюттук багытты бере ала турган Bosch 9 огунун акылдуу сенсору.
Маалымат баракчасы толук документтерди берет. Бул жогорку технологиялык компонент, бул өтө татаал продукт жана мен анын кантип иштээрин билүүгө жана аны колдонуунун ар кандай жолдорун сынап көрүүгө бир нече саат жумшадым.
Бул тажрыйба менен бөлүшүү пайдалуу болмок деп ойлойм.
Биринчиден, мен Adafruit китепканасын колдондум, ал сенсорду калибрлөө жана табуу үчүн жакшы куралды камсыз кылат.
Аягында жана көптөгөн сыноолордон кийин мен чечтим
- Adafruit китепканасын калибрлөө үчүн гана колдонуңуз
- BNO055тин бардык мүмкүн болгон режимдеринин 3үн колдонуңуз (NDOF, IMU, Compss)
- BNO055 өлчөөлөрүнө негизделген локализацияны эсептөө үчүн Arduino Nano арнайбыз
3 -кадам: Vue жабдык пункту
BNO055 I2C компоненти болуп саналат. Ошентип, байланыш үчүн SDA жана SCL менен камсыздоо керек.
Жөн гана сиз сатып алган продуктка ылайык Vdd чыңалуусуна кам көрүңүз. Bosch чипи диапазондо иштейт: 2.4Vдан 3.6Vга чейин жана 3.3v жана 5v компоненттерин таба аласыз.
Нано менен BNO055ти туташтыруу үчүн эч кандай кыйынчылыктар жок.
- BNO055 нано менен иштейт
- SDA & SCL 2 x 2k тартма каршылыгы менен туташкан.
- Диагностика үчүн 3 нанога туташкан LED (резисторлор менен)
- 2 туташтыргычы жүктөөдөн кийин режимди аныктоо үчүн колдонулат
- BNO карай 1 туташтыргычы (Gnd, Vdd, Sda, Scl, Int)
- Robot/Mega карай 1 туташтыргычы (+9V, Gnd, sda, Scl, Pin11, Pin12)
Бир аз ширетүү жана бүттү!
4 -кадам: Бул кантип иштейт?
Байланыш пунктунан:
- Nano I2C автобустун мастери
- Robot/Mega жана BNO055 I2C кулдары
- Нано BNO055 регистрлерин биротоло окуйт
- Робот/Мега нанодон сөздү талап кылуу үчүн сандык сигналды көтөрөт
Vue эсептөө пунктунан: Nano BNO055 менен айкалыштырылат
- Компастын аталышы (локалдаштыруу үчүн колдонулат)
- Салыштырмалуу аталыш (ротацияларды көзөмөлдөө үчүн колдонулат)
- Абсолюттук аталыш жана позиция (кыймылдарды көзөмөлдөө үчүн колдонулат)
Функционалдык жактан: Nano:
- BNO055 калибрлөөнү башкарат
- BNO055 параметрлерин жана буйруктарын башкарат
Nano & BNO055 подсистемасы:
- ар бир роботтун дөңгөлөктөрү үчүн абсолюттук багытты жана локализацияны эсептөө (масштабдык фактор менен)
- роботтун айлануу учурунда салыштырмалуу аталышын эсептөө
5 -кадам: Архитектура жана Программалык камсыздоо
Негизги программалык камсыздоо Arduino Nanoдо иштейт
- Архитектура I2C байланышына негизделген.
- Мен роботту башкарган Атмега мурунтан эле жүктөлгөндүктөн, нано арноону чечтим жана бул архитектура башка жерде колдонууну оңой кылат.
- Нано BNO055 регистрлерин окуйт, баштыкты жана локализацияны эсептейт жана сактайт.
- Роботтун кодун иштетүүчү Arduino Atmega, дөңгөлөктөрдү коддогучтарды Наного жөнөтөт жана Nano регистрлеринин ичиндеги аталыштарды жана локализацияны окуйт.
GitHubда бул жерде подсистема (Nano) коду бар
Adafruit калибрлөө куралы GitHubда болсо (калибрлөө eeproomдо сакталат)
6 -кадам: Мен эмнени үйрөндүм?
I2C жөнүндө
Биринчиден, мен ошол эле автобуста 2 кожоюн (Arduino) жана 1 кул (сенсор) болууга аракет кылдым, бирок аягында нанону гана кожоюн кылып коюу жана 2 Arduino ортосундагы GPIO туташуусун колдонуу "токенди талап кылуу" мүмкүн жана эң оңой..
2D багыттоо үчүн BNO055 жөнүндө
Мен 3 түрдүү иштөө режимине топтой алам: робот бош турганда NDOF (гироскопту, акселерометрди жана компаларды бириктирүү), робот кыймылда болгондо IMU (гироскопту, акселерометрди бириктирүү) жана локализация фазасында Компас. Бул режимдердин ортосунда которулуу оңой жана тез.
Коддун өлчөмүн азайтуу жана кагылышууну аныктоо үчүн BNO055 үзгүлтүгүн колдонуу мүмкүнчүлүгүн сактап калуу үчүн, мен Adafruit китепканасын колдонбой, аны өз алдымча жасоону туура көрөм.
Сунушталууда:
Убакытты өлчөө (Тасманын өлчөө сааты): 5 кадам (Сүрөттөр менен)
Убакытты өлчөө (Тасманын өлчөө сааты): Бул долбоор үчүн биз (Алекс Фиел & Анна Линтон) күнүмдүк өлчөөчү куралды алып, аны саатка айландырдык! Баштапкы план учурдагы рулетканы моторлоштуруу болгон. Муну жасоодо, биз өзүбүздүн кабыгыбызды түзүү оңой деп чечтик
Техникалык палуба менен Макей Макейди колдонуунун оңой жолу: 5 кадам
Техникалык палуба менен Макей Макейди колдонуунун оңой жолу: Саламатсызбы. Жакында мен бул сынакта технологиялык палуба макей макей программасын көрдүм, бул чынында эле сонун, бирок оор көрүнгөндүктөн, мен технологиялык палуба менен оюндарды ойноонун оңой жолун түздүм. Эгерде менин көрсөтмөм сизге жакса, макей макей конкурсуна добуш бериңиз
Саат радиосун жаңыртуу - Bluetooth бирдигин орнотуу: 6 кадам
Саат радиосунун модернизациясы-Bluetooth бирдигин орнотуу: Бул өзгөртүүнүн эки бөлүгү бар, бири-учурдагы Радио Сааты, экинчиси " Bluetooth Hands-Free MP3 декодер тактасы ZTV-M01BT Shell & Алыстан башкаруу " кошумча аудио күчөткүчкө муктаж болот. Саат
Кулпу экраныңызды 6 жөнөкөй кадам менен алмаштыруунун тез жана оңой жолу (Windows 8-10): 7 кадам
Кулпу экраныңызды 6 жөнөкөй кадам менен алмаштыруунун тез жана оңой жолу (Windows 8-10): Ноутбук же ПКдеги нерселерди өзгөрткүңүз келеби? Атмосфераңыздын өзгөрүшүн каалайсызбы? Компьютериңиздин кулпу экранын ийгиликтүү персоналдаштыруу үчүн бул тез жана оңой кадамдарды аткарыңыз
ЫКЧАМ ЖАРЫК КЫЛУУНУН ЭҢ ОҢОЙ ЖОЛУ !! 3 ЖӨНӨКӨЙ КАДАМ !!: 3 кадам
ЫКЧАМ ЖАРЫК КЫЛУУНУН ЭҢ ОҢОЙ ЖОЛУ !! 3 ЖӨНӨКӨЙ КАДАМ !!: Сизге эмне керек - Калай фольга 1 АА батарея (кээ бир ААА батареялары иштейт) 1 Мини лампочка (көпчүлүк лампалар үчүн колдонулган лампалар; сүрөттү караңыз) Сызгыч (керек болсо)