Мазмұны:
- 1 -қадам: Неліктен инерциялық өлшеу қондырғысын қолдану керек?
- 2 -қадам: 2D локализация үшін BNO055 қалай қолдануға болады?
- 3 -қадам: Vue аппараттық нүктесі
- 4 -қадам: Бұл қалай жұмыс істейді?
- 5 -қадам: Сәулет және бағдарламалық қамтамасыз ету
- 6 -қадам: Мен не үйрендім?
Бейне: Инерциялық өлшеу қондырғысын қолдану әдісі?: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Мәтінмән:
Мен ермек үшін үйдің ішінде автономды түрде қозғалатын робот жасап жатырмын.
Бұл ұзақ жұмыс, мен біртіндеп жасаймын.
Мен осы тақырып бойынша 2 нұсқаулықты жарияладым:
- Дөңгелек кодер жасау туралы
- wifi байланысы туралы
Менің роботымды үйдегі доңғалақ кодерінің көмегімен тұрақты токтың 2 қозғалтқышымен басқарады.
Мен қазір қозғалыстағы басқаруды жетілдіріп жатырмын және біраз уақытты гироскоппен, акселерометрмен және ХБҚ -мен өткіздім. Мен бұл тәжірибемен бөлісуге қуаныштымын.
Локализация туралы көбірек білгіңіз келе ме? Міне, роботты локализациялау үшін жасанды интеллект пен ультрадыбысты қалай біріктіру керектігі туралы мақала
1 -қадам: Неліктен инерциялық өлшеу қондырғысын қолдану керек?
Неліктен мен ИМУ -ды қолдандым?
Бірінші себеп, егер доңғалақты кодер тура қозғалысты басқаруға жеткілікті дәл болса, тіпті баптаудан кейін де мен +- 5 градустан төмен айналу дәлдігін ала алмадым және бұл жеткіліксіз.
Сондықтан мен 2 түрлі сенсорды сынап көрдім. Алдымен мен магнитометрді қолданамын (LSM303D). Принцип қарапайым болды: айналу алдында солтүстік бағытты алыңыз, мақсатты есептеңіз және мақсатқа жеткенше қозғалысты реттеңіз. Бұл кодермен салыстырғанда сәл жақсы болды, бірақ тым дисперсиялық. Осыдан кейін мен гироскопты (L3GD20) қолдануға тырыстым. Принцип айналуды есептеу үшін сенсор беретін айналу жылдамдығын біріктіру болды. Және ол жақсы жұмыс істеді. Мен айналуды +- 1 градуста басқара алдым.
Соған қарамастан, мен ӨИҚ -ты сынап көруге қызығатынмын. Мен BNO055 компонентін таңдаймын. Мен осы ӨДБ -ды түсінуге және сынауға біраз уақыт жұмсадым. Соңында мен келесі себептерге байланысты сенсорды таңдауға шешім қабылдадым
- Мен айналуды L3GD20 көмегімен басқара аламын
- Мен түзу қозғалу кезінде шамалы айналуды анықтай аламын
- Мен роботты локализациялау үшін солтүстік бағытты алуым керек және BNO055 компасын калибрлеу өте қарапайым.
2 -қадам: 2D локализация үшін BNO055 қалай қолдануға болады?
BNO055 IMU - бұл Bosch 9 осьтік интеллектуалды сенсор, ол абсолютті бағдар бере алады.
Мәліметтер парағы толық құжаттаманы ұсынады. Бұл жоғары технологиялық компонент, бұл өте күрделі өнім, мен оның қалай жұмыс істейтінін білуге және оны қолданудың әр түрлі әдістерін қолдануға бірнеше сағат жұмсадым.
Менің ойымша, бұл тәжірибемен бөлісу пайдалы болар еді.
Алдымен мен сенсорды калибрлеуге және ашуға жақсы құрал беретін Adafruit кітапханасын қолдандым.
Соңында және көптеген сынақтардан кейін мен шешім қабылдадым
- тек калибрлеуді сақтау үшін Adafruit кітапханасын пайдаланыңыз
- BNO055 (NDOF, IMU, Compss) барлық мүмкін болатын режимдерінің 3 -ін қолданыңыз.
- BNO055 бақылауына негізделген локализацияны есептеу үшін Arduino Nano арнаңыз
3 -қадам: Vue аппараттық нүктесі
BNO055 - I2C компоненті. Сондықтан байланыс үшін оған қуат көзі, SDA және SCL қажет.
Сіз сатып алған өнімге сәйкес Vdd кернеуіне назар аударыңыз. Bosch чипі диапазонда жұмыс істейді: 2,4 В -тан 3,6 В -ға дейін, сіз 3,3 В және 5 В компоненттерін таба аласыз.
Нано мен BNO055 қосылуында ешқандай қиындықтар жоқ.
- BNO055 нано қуатымен жұмыс істейді
- SDA & SCL 2 x 2k тартылатын резисторлармен қосылады.
- Диагноз қою үшін наноға қосылған 3 жарық диоды (резисторлармен)
- Жүктеуден кейін режимді анықтау үшін 2 қосқыш қолданылады
- BNO -ға қарай 1 коннектор (Gnd, Vdd, Sda, Scl, Int)
- Robot/Mega қарай 1 қосқыш (+9V, Gnd, sda, Scl, Pin11, Pin12)
Кішкене дәнекерлеу және осымен!
4 -қадам: Бұл қалай жұмыс істейді?
Байланыс нүктесінен:
- Нано - I2C автобус шебері
- Robot/Mega және BNO055 - I2C құлдары
- Нано BNO055 регистрлерін үнемі оқиды
- Робот/Мега нанодан сөз сұрау үшін сандық сигналды көтереді
Есептеу нүктесінен: нано BNO055 -пен бірге жеткізеді
- Компас тақырыбы (локализация үшін қолданылады)
- Салыстырмалы тақырып (ротацияларды басқару үшін қолданылады)
- Абсолютті тақырып және позиция (қозғалыстарды бақылау үшін қолданылады)
Функционалдық тұрғыдан: нано:
- BNO055 калибрлеуін басқарады
- BNO055 параметрлері мен командаларын басқарады
Nano & BNO055 ішкі жүйесі:
- әр робот дөңгелегі үшін абсолюттік бағыт пен локализацияны есептеңіз (масштаб коэффициентімен)
- роботты айналдыру кезінде салыстырмалы бағытты есептеңіз
5 -қадам: Сәулет және бағдарламалық қамтамасыз ету
Негізгі бағдарламалық қамтамасыз ету Arduino Nano -де жұмыс істейді
- Сәулет I2C байланысына негізделген.
- Мен нано арнауды таңдадым, себебі роботты басқаратын Atmega әлдеқайда жүктелген және бұл архитектура басқа жерде қайта пайдалануды жеңілдетеді.
- Нано BNO055 регистрлерін оқиды, тақырыптар мен локализацияны есептейді және сақтайды.
- Arduino Atmega робот кодын басқарады, дөңгелектерді кодтаушы туралы ақпаратты наноға жібереді және нано регистрлеріндегі тақырыптар мен локализацияны оқиды.
Ішкі жүйе (Nano) коды мұнда GitHub -да қол жетімді
Adafruit калибрлеу құралы, егер бұл жерде GitHub болса (калибрлеу бөлмесінде сақталады)
6 -қадам: Мен не үйрендім?
I2C туралы
Алдымен мен бір автобуста 2 мастер (Arduino) мен 1 құл (сенсор) болуға тырыстым, бірақ соңында тек қана наноды мастер ретінде қоюға болады және 2 Arduino арасындағы GPIO байланысын «жетонды сұрау» үшін қолдануға болады..
2D бағдарлау үшін BNO055 туралы
Мен 3 түрлі жұмыс режиміне шоғырлана аламын: робот бос тұрғанда NDOF (гироскопты, акселерометрді және компаны біріктіреді), робот қозғалғанда IMU (гироскопты, акселерометрді біріктіреді) және локализация кезеңінде компасты. Бұл режимдер арасында ауысу оңай және жылдам.
Код өлшемін азайту және соқтығысуды анықтау үшін BNO055 үзілісін қолдану мүмкіндігін сақтау үшін мен Adafruit кітапханасын пайдаланбай, оны өз бетімше жасағанды жөн көремін.
Ұсынылған:
Сандық қақпаның кернеуін өлшеу үшін схеманы қолдану: 7 қадам
Цифрлық қақпаның кернеуін өлшеу үшін тізбекті қолдану: Сандық тізбектер әдетте 5 вольтты қоректендіруді пайдаланады, TTL сериясындағы 5 -2,7 вольтты (цифрлық интегралды микросхеманың түрі) цифрлық кернеулер жоғары болып саналады және олардың мәні 1. цифрлық кернеулер. 0-0.5 формасы төмен деп саналады және
Жүрек соғу жиілігін өлшеу саусағыңыздың ұшында: жүрек соғу жиілігін анықтаудың фотоплетизмографиялық әдісі: 7 қадам
Жүрек соғу жиілігін өлшеу саусағыңыздың ұшында: фотоплетизмография жүрек соғу жиілігін анықтайды: фотоплетизмография (PPG)-бұл тіндердің микроваскулярлық төсегіндегі қан көлемінің өзгеруін анықтау үшін жиі қолданылатын қарапайым және арзан оптикалық әдіс. Ол көбінесе терінің бетінде өлшеу үшін инвазивті емес қолданылады, әдетте
MQ9 W/ Arduino газ сенсорын калибрлеу және қолдану әдісі: 8 қадам
MQ9 Gas Sensor W/ Arduino калибрлеу және қолдану әдісі: Сіз осы және басқа таңғажайып оқулықтарды ElectroPeak ресми веб -сайтынан оқи аласыз Шолу Бұл оқулықта сіз MQ9 газ сенсорын Arduino тақтасының көмегімен калибрлеуді және қолдануды үйренесіз. газ сенсоры қалай жұмыс істейді Ком
Нысанға бағытталған бағдарламалау: Объектілерді құру Оқыту/Оқыту әдісі/Қайшыны қолдану техникасы: 5 қадам
Нысанға бағытталған бағдарламалау: Объектілерді құру Оқыту/Оқыту әдісі/Қайшыны қолдану техникасы: Объектіге бағдарланған бағдарламалауды жаңадан бастаған студенттер үшін оқыту/оқыту әдісі. Бұл оларға сабақтан объектілерді құру процесін елестетуге және көруге мүмкіндік беретін әдіс. Бөлшектер: 1. Қайшы (кез келген түрі жасайды). 2. Қағаз немесе карточка бөлігі. 3. Маркер
WeMos TTgo ESP32 Uno D1 R32 орнату және қолдану әдісі: 3 қадам
WeMos TTgo ESP32 Uno D1 R32 орнату және пайдалану әдісі: WeMos® TTgo ESP32 uno D1 R32 қалай орнату керек, WeMos® TTgo ESP32 uno D1 R32 іске қосу үшін барлық қадамдар арқылы өтеді