Мазмұны:

Gyro, акселерометр және Arduino көмегімен бұрыш өлшеу: 5 қадам
Gyro, акселерометр және Arduino көмегімен бұрыш өлшеу: 5 қадам

Бейне: Gyro, акселерометр және Arduino көмегімен бұрыш өлшеу: 5 қадам

Бейне: Gyro, акселерометр және Arduino көмегімен бұрыш өлшеу: 5 қадам
Бейне: Измерьте температуру и влажность Wi-Fi с помощью ESP32 DHT11 и DHT22 - Robojax 2024, Қараша
Anonim
Gyro, акселерометр және Arduino көмегімен бұрыштарды өлшеу
Gyro, акселерометр және Arduino көмегімен бұрыштарды өлшеу

Бұл құрылғы ақыр соңында баланстық роботқа айналатын өрескел прототип, бұл тесікшенің екінші бөлігі (акселерометрді оқыңыз және моторды теңгерімді басқарыңыз). Бұл жерде тек гиро бар бөлікті табуға болады, бұл нұсқаулықта біз бұрышты гиро мен акселерометрдің көмегімен өлшейміз, ал сенсорды біріктіру үшін біркелкі сигнал алу үшін техниканы қолданамыз. Техника «қосымша сүзгі» деп аталады

1 -қадам: бізге не қажет:

Бізге не қажет
Бізге не қажет
Бізге не қажет
Бізге не қажет
Бізге не қажет
Бізге не қажет
Бізге не қажет
Бізге не қажет

Бұл жобада біз қолданатын боламыз:- Breadboard- Микроконтроллер, мен Arduinoboard- Wire- Jumper Wires- Gyroscope XV-8100- Nunchuck Wii қолдандым. (акселерометр үшін)- Arduino үшін Nunchuck Wii адаптері

2 -қадам: құрылыс…

Құрылуда…
Құрылуда…
Құрылуда…
Құрылуда…
Құрылуда…
Құрылуда…

Схема сіздің arduino -да 0 портына тікелей қосылған гироскоптан және I2C портындағы nunchuck wii қосылуынан тұрады. Гиро құрастыру: 1. - гироны нан тақтасына қосыңыз2. - кез келген сым:- arduino-дағы аналогтық портқа қосылатын гиродан Vo түйреуіші (ақшыл-қызғылт сым)- жерге қосылған гиродан G-істікше (ақ сым)- Vdd-ке қосылған гиродан V+ түйреуіш (қызғылт сым) Құрастыру акселерометр: 1. - адаптерді түйінге қосыңыз2. - адаптер3 арқылы nunchuck -ты arduino -ге қосыңыз. - аксель сенсорын жоғарыдағы суреттегідей орналастырыңыз

3 -қадам: Жалғастырмас бұрын кейбір қосымша ақпарат

Жұмысқа кіріспес бұрын кейбір қосымша ақпарат
Жұмысқа кіріспес бұрын кейбір қосымша ақпарат
Біз бастамас бұрын кейбір қосымша ақпарат
Біз бастамас бұрын кейбір қосымша ақпарат
Жұмысқа кіріспес бұрын кейбір қосымша ақпарат
Жұмысқа кіріспес бұрын кейбір қосымша ақпарат

Екі сенсордың көмегімен біз бұрышты өлшей аламыз, бірақ екі түрлі техниканы қолдана отырып, бұрышты гиро көмегімен өлшеу үшін сигналды біріктіруіміз керек, бірақ неге біз мұны істеуіміз керек? Гиро бізге бұрыштық жылдамдықты беретіндіктен, бұрышты алудың қарапайым әдісі - бұрыштық жылдамдықты уақытқа көбейту [бұрыш = бұрыш + w * dt] Бұрышты акселерометр көмегімен өлшеу үшін біз әрқайсысындағы ауырлықты сезінуіміз керек. акселерометр осі, бұл нені білдіреді, сенсордың әр бағытында ауырлық үдеуінің проекциясы бізге бұрыш туралы түсінік береді. [angle_accel = arctg (Ay / sqrt (Ax^2 + Az^2))] Ендеше, неге біз бір сенсордың орнына екі сенсорды қолданамыз? Сенсордың екі қасиетін де пайдалану үшін. Егер сіз гироскопиялық деректердің үздіксіз өсуін графикаға қарасаңыз, бұл дрейф деп аталады, ал акселерометрдің деректері аз уақыт ішінде көп өзгереді, ал екі сигналды қалай біріктіруге болады? Біз қосымша сүзгі деп аталатын техниканы қолданамыз. Мен мұның нақты теориясын білмеймін, бірақ ол жақсы жұмыс істейді. Интернетте кейбір ақпарат бар, егер сізге қосымша ақпарат қажет болса, оны google -ге жіберіңіз. Бұл сілтемеде көптеген ақпарат бар және пайдалы болуы мүмкін мұнда HPF + LPF = 1 HPF және LPF мәндерін filter.pdf файлындағы мына сілтемеден табуға болады. «DIY Segway» балаларына рахмет. Тек тестілік мақсатта біз бұл мәндерді HPF = 0,98 және LPF = 0,02 етіп қоямыз.

4 -қадам: код:

Код - бұл мен басқа жобада қолданған кодтан бейімделу. Мүмкін, кейбір айнымалылар пайдаланылмаған шығар, мен кітапхананы https://todbot.com/blog/ сайтынан алынған ақпаратты оқу үшін қолдандым. Код Э. Куртқа рахмет. Бос уақытым болған кезде код туралы түсініктемелер португал тілінде. Мен кодты сериялық желіде осы үлгісі бар кейбір сандар арқылы шығарамын: dt: w: teta: pitch: filter_teta $ time: angular_velocity: gyro_angle: accel_angle: filtered_angle $ Сондықтан сіз бұл мәндерді сериялық терминалда сақтап, график құруға немесе бұрышты басқа нәрселерге қолдана аласыз. Егер сізге код туралы қандай да бір түсініктеме қажет болса, сұрауға болады. сыдырылған Тек ашпаңыз, ашыңыз және оны arduino -ға жүктеңіз.

5 -қадам: Тестілеу және қорытынды

Тестілеу және қорытынды
Тестілеу және қорытынды
Тестілеу және қорытынды
Тестілеу және қорытынды

Жүйені тестілеу үшін мен деректерді Termite деп аталатын бағдарламаның көмегімен сақтадым, содан кейін бұл деректерді excel -де импорттаңыз және менің фильтрімнің қаншалықты жақсы екенін көру үшін графикті салыңыз. Нәтижелер керемет. Әрине, сіз моторды немесе басқа нәрселерді басқару үшін сигналды қолдана аласыз. Кез келген түсініктеме, кез келген күмән, кез келген ақпарат жетіспейді, маған айтыңыз, мен оны түзетемін. Егер сізге ұнаса, бағалаңыз. Баршаңызға рахмет.

Ұсынылған: