Բովանդակություն:
- Քայլ 1. Ինչու՞ օգտագործել իներցիոն չափման միավոր:
- Քայլ 2. Ինչպե՞ս օգտագործել BNO055- ը 2D տեղայնացման համար:
- Քայլ 3: Hardware Point of Vue
- Քայլ 4: Ինչպե՞ս է այն աշխատում:
- Քայլ 5: Archարտարապետություն և ծրագրակազմ
- Քայլ 6: Ի՞նչ սովորեցի:
Video: Իներցիոն չափման միավորի օգտագործման միջոց?: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Համատեքստ
Ես զվարճանքի համար կառուցում եմ ռոբոտ, որը ցանկանում եմ ինքնուրույն տեղաշարժվել տան ներսում:
Դա երկար աշխատանք է, և ես քայլ առ քայլ անում եմ:
Ես արդեն հրապարակել եմ 2 ուսանելի նյութ այդ թեմայով.
- մեկը ՝ անիվի կոդավորիչ պատրաստելու մասին
- մեկը wifi կապի մասին
Իմ տնային անիվի կոդավորիչի օգնությամբ իմ ռոբոտը շարժվում է 2 DC շարժիչով:
Ես այժմ բարելավում եմ շարժվող հսկողությունը և որոշ ժամանակ անցկացրել եմ գիրոսկոպի, արագացուցիչի և IMU- ի հետ: Ես հաճույքով կկիսվեի այս փորձով:
Ուզու՞մ եք ավելին իմանալ տեղայնացման մասին: Ահա մի հոդված, թե ինչպես կարելի է համատեղել արհեստական ինտելեկտն ու ուլտրաձայնը ՝ ռոբոտին տեղայնացնելու համար
Քայլ 1. Ինչու՞ օգտագործել իներցիոն չափման միավոր:
Ուրեմն ինչու ես օգտագործեցի IMU:
Առաջին պատճառն այն էր, որ եթե անիվի կոդավորիչը բավականաչափ ճշգրիտ է ուղիղ շարժումը վերահսկելու համար, նույնիսկ թյունինգից հետո ես չկարողացա +- 5 աստիճանից ցածր պտույտի ճշգրտություն ստանալ, և դա բավարար չէ:
Այսպիսով, ես փորձեցի 2 տարբեր սենսորներ: Նախ ես օգտագործում եմ մագնիսաչափ (LSM303D): Սկզբունքը պարզ էր. Ռոտացիայից առաջ ստացեք հյուսիսային կողմնորոշում, հաշվարկեք թիրախը և կարգավորեք քայլը մինչև նպատակին հասնելը: Դա մի փոքր ավելի լավ էր, քան կոդավորողը, բայց չափազանց ցրված: Դրանից հետո ես փորձեցի օգտագործել գիրոսկոպ (L3GD20): Սկզբունքը պարզապես սենսորից տրամադրվող պտտման արագության ինտեգրումն էր ՝ պտույտը հաշվարկելու համար: Եվ դա լավ աշխատեց: Ես կարողացա վերահսկել պտույտը +- 1 աստիճանի դեպքում:
Այնուամենայնիվ, ես հետաքրքրված էի ինչ -որ IMU փորձելու համար: Ես ընտրում եմ BNO055 բաղադրիչը: Որոշ ժամանակ ծախսեցի այս IMU- ն հասկանալու և փորձարկելու համար: Վերջում որոշեցի ընտրել այս տվիչը հետևյալ պատճառներով
- Ես կարող եմ վերահսկել պտույտը, ինչպես նաև L3GD20- ով
- Ես կարող եմ հայտնաբերել մի փոքր պտույտ ուղիղ շարժվելիս
- Ռոբոտի տեղայնացման համար ես պետք է հյուսիսային կողմնորոշում ստանամ, և BNO055- ի կողմնացույցի չափագրումը շատ պարզ է
Քայլ 2. Ինչպե՞ս օգտագործել BNO055- ը 2D տեղայնացման համար:
BNO055 IMU- ն Bosch 9 առանցքի խելացի սենսոր է, որը կարող է ապահովել բացարձակ կողմնորոշում:
Տվյալների թերթիկը տրամադրում է ամբողջական փաստաթղթավորում: Դա բարձր տեխնոլոգիական բաղադրիչ է, դա բավականին բարդ ապրանք է, և ես մի քանի ժամ անցկացրել եմ `սովորելու, թե ինչպես է այն աշխատում և փորձել դրա օգտագործման տարբեր եղանակներ:
Կարծում եմ, որ օգտակար կլինի կիսվել այս փորձով:
Նախ օգտագործեցի Adafruit գրադարանը, որը լավ գործիք է տալիս սենսորը չափաբերելու և հայտնաբերելու համար:
Վերջում և բազմաթիվ փորձարկումներից հետո որոշեցի
- օգտագործեք Adafruit գրադարանը միայն չափագրումը խնայելու համար
- օգտագործել BNO055- ի բոլոր հնարավոր ռեժիմներից 3 -ը (NDOF, IMU, Compss)
- նվիրել Arduino Nano- ին BNO055 չափումների հիման վրա տեղայնացման հաշվարկման համար
Քայլ 3: Hardware Point of Vue
BNO055- ը I2C բաղադրիչ է: Այսպիսով, հաղորդակցության համար անհրաժեշտ է էներգիայի մատակարարում, SDA և SCL:
Պարզապես հոգ տանել Vdd լարման մասին `ըստ գնված ապրանքի: Bosch չիպը աշխատում է միջակայքում `2.4V- ից 3.6V, և դուք կարող եք գտնել 3.3v և 5v բաղադրիչ:
Nano- ի և BNO055- ի միացման համար դժվարություններ չկան:
- BNO055- ը սնուցվում է Nano- ով
- SDA & SCL- ը միացված են 2 x 2k քաշվող դիմադրիչներով:
- 3 LED միացված Նանոյին ախտորոշման համար (ռեզիստորներով)
- 2 միակցիչ, որոնք օգտագործվում են բեռնաթափումից հետո ռեժիմը սահմանելու համար
- 1 միակցիչ դեպի BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 միակցիչ դեպի Robot/Mega (+9V, Gnd, sda, Scl, Pin11, Pin12)
Մի փոքր զոդում և վերջ:
Քայլ 4: Ինչպե՞ս է այն աշխատում:
Հաղորդակցության տեսանկյունից
- Նանոն I2C ավտոբուսի վարպետն է
- Robot/Mega- ն և BNO055- ը I2C ստրուկներ են
- Նանոն մշտապես կարդում է BNO055 գրանցամատյանները
- Ռոբոտը/Մեգան բարձրացնում է թվային ազդանշան ՝ բառը Նանոյից պահանջելու համար
Vue հաշվարկի կետից. Nano- ն BNO055- ի հետ համատեղ մատուցում է
- Կողմնացույցի վերնագիր (օգտագործվում է տեղայնացման համար)
- Հարաբերական վերնագիր (օգտագործվում է պտույտները վերահսկելու համար)
- Բացարձակ վերնագիր և դիրք (օգտագործվում է շարժումները վերահսկելու համար)
Գործունեության տեսանկյունից `Nano:
- կառավարում է BNO055 տրամաչափումը
- կառավարում է BNO055 պարամետրերն ու հրամանները
Nano & BNO055 ենթահամակարգը.
- յուրաքանչյուր ռոբոտի անիվների համար բացարձակ վերնագիր և տեղայնացում (մասշտաբի գործոնով)
- ռոբոտի ռոտացիայի ժամանակ հաշվարկել հարաբերական վերնագիրը
Քայլ 5: Archարտարապետություն և ծրագրակազմ
Հիմնական ծրագրակազմը աշխատում է Arduino Nano- ի վրա:
- Archարտարապետությունը հիմնված է I2C հաղորդակցության վրա:
- Ես որոշեցի նվիրել Նանոյին այն բանի շնորհիվ, որ ռոբոտին աշխատող Atmega- ն բավականին արդեն բեռնված էր, և այս ճարտարապետությունը դարձնում է ամենահեշտը այլուր օգտագործելը:
- Նանոն կարդում է BNO055 գրանցամատյանները, հաշվարկում և պահում է վերնագիրն ու տեղայնացումը սեփական գրանցամատյաններում:
- Arduino Atmega- ն, որն աշխատում է ռոբոտի ծածկագրով, անիվներ է փոխանցում տեղեկատվություն Nano- ին և կարդում է վերնագրերը և տեղայնացումը Nano գրանցամատյաններում:
Այնտեղ ենթաթեմայի (Նանո) ծածկագիրը հասանելի է այստեղ ՝ GitHub- ում
Adafruit calibration գործիք, եթե այստեղ GitHub- ում (չափագրումը կպահվի eeproom- ում)
Քայլ 6: Ի՞նչ սովորեցի:
I2C- ի վերաբերյալ
Սկզբում ես փորձեցի երկու վարպետ (Arduino) և 1 ստրուկ (սենսոր) ունենալ նույն ավտոբուսում, բայց վերջում հնարավոր է և ամենահեշտը `միայն Nano- ն որպես վարպետ և օգտագործել 2 Arduinos- ի GPIO կապը` «խորհրդանիշ պահանջելու» համար:.
Ինչ վերաբերում է BNO055- ին 2D կողմնորոշման համար
Կարող եմ կենտրոնանալ վազքի 3 տարբեր ռեժիմների վրա ՝ NDOF (միավորել գիրոսկոպ, արագացուցիչ և կողմնացույցներ), երբ ռոբոտը անգործության է մատնված, IMU (միավորել գիրոսկոպ, արագացուցիչ), երբ ռոբոտը շարժվում է և կողմնացույց տեղայնացման փուլում: Այս ռեժիմների միջև անցումը հեշտ և արագ է:
Կոդի չափը նվազեցնելու և բախումը հայտնաբերելու համար BNO055 ընդհատումը օգտագործելու հնարավորությունը պահպանելու համար ես նախընտրում եմ չօգտագործել Adafruit գրադարանը և դա անել ինքնուրույն:
Խորհուրդ ենք տալիս:
2018 10 -րդ սերնդի Honda Civic USB Mod Kenwood ղեկավարի միավորի համար. 5 քայլ
2018 թ. 10 -րդ սերնդի Honda Civic USB Mod Kenwood Head Unit- ի համար. Այս դեպքում ես փոփոխեցի իմ Civic- ի USB պորտի բացումը `ընդունելու այն, ինչ գնել եմ Amazon- ից, որպեսզի կարողանամ այն միացնել Kenwood- ի իմ լրացուցիչ շուկային (DMX9706S): Այն գտնվում է նույն անցքում և դրա ավարտին կարող է տևել 30 րոպե կամ ավելի
Timeամանակի չափում (ժապավենի չափման ժամացույց) `5 քայլ (նկարներով)
Meամանակի չափում (ժապավենի չափման ժամացույց). Այս նախագծի համար մենք (Ալեքս Ֆիլ և Աննա Լինթոն) վերցրեցինք ամենօրյա չափիչ գործիք և այն վերածեցինք ժամացույցի: Սկզբնական պլանը եղած ժապավենի շարժիչի մոտորիզացումն էր: Դա պատրաստելով ՝ մենք որոշեցինք, որ ավելի հեշտ կլինի ստեղծել մեր սեփական կեղևը, որի հետ միասին
Arduino ջերմաստիճանի և խոնավության չափման համակարգ - Տեխնիկ eո. 3 քայլ
Arduino ջերմաստիճանի և խոնավության չափման համակարգ | Տեխնիկ eո. Arduino- ի հետ երկու անիմաստ խաղեր կառուցելուց և խաղալով ժամանակս վատնելուց հետո ես ցանկացա օգտակար բան ստեղծել Arduino- ի հետ: Ես առաջ եկա բույսերի համար ջերմաստիճանի եւ օդի խոնավության չափման համակարգի մասին: Նախագիծը փոքր -ինչ դարձնելու համար
Ինչպես կիթառի խողովակի ուժեղացուցիչը վերածել նախապատրաստման/աղավաղման միավորի (բեռնախցիկով) ՝ 6 քայլ
Ինչպես կիթառի խողովակի ուժեղացուցիչը վերածել նախապատրաստման/խեղաթյուրման միավորի (բեռնախցիկով). Բարև բոլորին !!! Սա իմ առաջին հրահանգներն են, ես ձեզ կբացատրեմ, թե ինչպես կարելի է մի փոքրիկ Tube կիթառի ուժեղացուցիչը վերածել նախամեկուսիչ միավորի/ոտնակի, բեռնախցիկով; Ես ֆրանսիացի եմ, և իմ անգլերենը սահմանափակ է, այնպես որ, եթե ես ինչ -որ սխալներ թույլ տվեցի, ներիր ինձ !! :) ՉԵՄ ECԱՆԿԱՆՈՄ
Radioամացույցի ռադիոյի բարելավում - Bluetooth միավորի տեղադրում. 6 քայլ
Radioամացույցի ռադիոյի արդիականացում-Bluetooth միավորի տեղադրում. Այս փոփոխության մեջ կա երկու մաս, մեկը ՝ գործող ժամացույցի ռադիոն, իսկ մյուսը `« Ինտեգրված Bluetooth Hands-free MP3 Decoder Board ZTV-M01BT Shell & Հեռակառավարում " որը կարիք կունենա լրացուցիչ աուդիո ուժեղացուցիչի: Clամացույցը