Мазмуну:

Инерциялык өлчөө бирдигин колдонуунун жолу?: 6 кадам
Инерциялык өлчөө бирдигин колдонуунун жолу?: 6 кадам

Video: Инерциялык өлчөө бирдигин колдонуунун жолу?: 6 кадам

Video: Инерциялык өлчөө бирдигин колдонуунун жолу?: 6 кадам
Video: 2023 Индиялык Челленджер Элитасы Чыныгы Потенциалды Ачууда | 150 гана дүйнө жүзү боюнча жеткиликтүү 2024, Ноябрь
Anonim
Инерциялык өлчөө бирдигин кантип колдонсо болот?
Инерциялык өлчөө бирдигин кантип колдонсо болот?

Контекст:

Мен көңүл ачуу үчүн үйдүн ичинде автономдуу түрдө жылгым келген роботту куруп жатам.

Бул узак иш жана мен этап -этабы менен жасап жатам.

Мен бул темада буга чейин 2 көрсөтмө жарыялаганмын:

  • дөңгөлөк коддогучту жасоо жөнүндө
  • wifi туташуусу жөнүндө

Менин роботум үйдө жасалган дөңгөлөк коддогучтун жардамы менен 2 DC кыймылдаткычына айдалат.

Мен азыр кыймылдуу башкарууну жакшыртып жатам жана бир аз убакытты гироскоп, акселерометр жана IMU менен өткөрдүм. Мен бул тажрыйба менен бөлүшкүм келет.

Локализация жөнүндө көбүрөөк билгиңиз келеби? Бул жерде роботту локалдаштыруу үчүн жасалма интеллект менен УЗИди кантип айкалыштыруу керектиги тууралуу макала бар

1 -кадам: Эмне үчүн инерциялык өлчөө бирдигин колдонуу керек?

Эмне үчүн инерциялык өлчөө бирдигин колдонуу керек?
Эмне үчүн инерциялык өлчөө бирдигин колдонуу керек?

Анда мен эмне үчүн ӨИКти колдондум?

Биринчи себеби, эгер дөңгөлөктөрдү коддогуч түз кыймылды көзөмөлдөө үчүн жетиштүү болсо, жөнгө салгандан кийин да мен +- 5 градустан аз айлануу үчүн тактык ала алган жокмун жана бул жетишсиз.

Ошентип, мен 2 башка сенсорлорду сынап көрдүм. Биринчиден, мен магнитометрди (LSM303D) колдоном. Принцип жөнөкөй эле: айлануудан мурун түндүк багытты алуу, бутага эсептөө жана максатка жеткенге чейин кыймылды тууралоо. Бул коддогучка караганда бир аз жакшыраак, бирок өтө дисперсиялык. Андан кийин мен гироскопту (L3GD20) колдонууга аракет кылдым. Бул принцип айланууну эсептөө үчүн сенсор тарабынан берилген айлануу ылдамдыгын бириктирүү эле. Жана жакшы иштеди. Мен айланууну +- 1 градуста башкара алдым.

Ошентсе да мен кандайдыр бир ӨИКти сынап көрүүгө кызыкчумун. Мен BNO055 компонентин тандайм. Мен бул ӨИКти түшүнүү жана сыноо үчүн бир аз убакыт бөлдүм. Акыр -аягы, мен төмөнкү себептерден улам бул сенсорду тандап алууну чечтим

  • Мен айланууну, ошондой эле L3GD20 менен башкара алам
  • Мен түз жылганда кичине айланууну аныктай алам
  • Мен роботту локалдаштыруу үчүн түндүк багытты алышым керек жана BNO055тин компасын калибрлөө абдан жөнөкөй

2 -кадам: BNO055ти 2D локалдаштыруу үчүн кантип колдонсо болот?

BNO055ти 2D локалдаштыруу үчүн кантип колдонсо болот?
BNO055ти 2D локалдаштыруу үчүн кантип колдонсо болот?

BNO055 IMU - бул абсолюттук багытты бере ала турган Bosch 9 огунун акылдуу сенсору.

Маалымат баракчасы толук документтерди берет. Бул жогорку технологиялык компонент, бул өтө татаал продукт жана мен анын кантип иштээрин билүүгө жана аны колдонуунун ар кандай жолдорун сынап көрүүгө бир нече саат жумшадым.

Бул тажрыйба менен бөлүшүү пайдалуу болмок деп ойлойм.

Биринчиден, мен Adafruit китепканасын колдондум, ал сенсорду калибрлөө жана табуу үчүн жакшы куралды камсыз кылат.

Аягында жана көптөгөн сыноолордон кийин мен чечтим

  • Adafruit китепканасын калибрлөө үчүн гана колдонуңуз
  • BNO055тин бардык мүмкүн болгон режимдеринин 3үн колдонуңуз (NDOF, IMU, Compss)
  • BNO055 өлчөөлөрүнө негизделген локализацияны эсептөө үчүн Arduino Nano арнайбыз

3 -кадам: Vue жабдык пункту

Hardware Point of Vue
Hardware Point of Vue
Hardware Point of Vue
Hardware Point of Vue
Hardware Point of Vue
Hardware Point of 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 китепканасын колдонбой, аны өз алдымча жасоону туура көрөм.

Сунушталууда: