Мазмұны:
- 1 -қадам: бізге не қажет:
- 2 -қадам: құрылыс…
- 3 -қадам: Жалғастырмас бұрын кейбір қосымша ақпарат
- 4 -қадам: код:
- 5 -қадам: Тестілеу және қорытынды
Бейне: Gyro, акселерометр және Arduino көмегімен бұрыш өлшеу: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:28
Бұл құрылғы ақыр соңында баланстық роботқа айналатын өрескел прототип, бұл тесікшенің екінші бөлігі (акселерометрді оқыңыз және моторды теңгерімді басқарыңыз). Бұл жерде тек гиро бар бөлікті табуға болады, бұл нұсқаулықта біз бұрышты гиро мен акселерометрдің көмегімен өлшейміз, ал сенсорды біріктіру үшін біркелкі сигнал алу үшін техниканы қолданамыз. Техника «қосымша сүзгі» деп аталады
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 -де импорттаңыз және менің фильтрімнің қаншалықты жақсы екенін көру үшін графикті салыңыз. Нәтижелер керемет. Әрине, сіз моторды немесе басқа нәрселерді басқару үшін сигналды қолдана аласыз. Кез келген түсініктеме, кез келген күмән, кез келген ақпарат жетіспейді, маған айтыңыз, мен оны түзетемін. Егер сізге ұнаса, бағалаңыз. Баршаңызға рахмет.
Ұсынылған:
MPU 6050 Gyro, Arduino көмегімен акселерометр байланысы (Atmega328p): 5 қадам
MPU 6050 Gyro, Arduino-мен акселерометр байланысы (Atmega328p): MPU6050 IMU-де үш осьті акселерометр мен 3 осьті гироскоп бар, олар бір микросхемада біріктірілген. X, Y және Z осі. Гироскоптың нәтижелері
HMC5883 және Arduino Nano көмегімен магниттік өрісті өлшеу: 4 қадам
HMC5883 және Arduino Nano көмегімен магниттік өрісті өлшеу: HMC5883-бұл төмен өрісті магнитті сезуге арналған цифрлық компас. Бұл құрылғыда магнит өрісінің кең диапазоны +/- 8 Oe және шығыс жылдамдығы 160 Гц. HMC5883 сенсорында автоматты ажырату белбеу драйверлері, офсетті жою және
CPS120 және Arduino Nano көмегімен қысымды өлшеу: 4 қадам
CPS120 мен Arduino Nano көмегімен қысымды өлшеу: CPS120 - бұл толық компенсацияланған шығысы бар жоғары сапалы және төмен сыйымдылықтағы абсолютті қысым сенсоры. Ол өте аз қуатты тұтынады және қысымды өлшеуге арналған өте шағын микроэлектромеханикалық сенсордан (MEMS) тұрады. Сигма-дельтаға негізделген
STS21 және Arduino Nano көмегімен температураны өлшеу: 4 қадам
STS21 және Arduino Nano көмегімен температураны өлшеу: STS21 сандық температура сенсоры жоғары өнімділікті және кеңістікті үнемдеуге мүмкіндік береді. Ол сандық, I2C форматында калибрленген, сызықты сигналдарды береді. Бұл сенсорды жасау CMOSens технологиясына негізделген, ол жоғары деңгейге жатады
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: 6 қадам
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: Сұлулық бізді қоршап тұрады, бірақ әдетте оны білу үшін біз бақта серуендеуіміз керек. - Біз білетін топ ретінде біз энергияның көп бөлігін компьютерлер мен ұялы телефондардың алдында жұмыс істеуге жұмсаймыз. Сондықтан біз өз денсаулығымызға жиі рұқсат береміз