Բովանդակություն:

Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ. 10 քայլ (նկարներով)
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ. 10 քայլ (նկարներով)

Video: Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ. 10 քայլ (նկարներով)

Video: Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ. 10 քայլ (նկարներով)
Video: Ստացիոնար ծառայություններ, որոնք տրամադրվում են պետության երաշխավորմամբ 2024, Նոյեմբեր
Anonim
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ
Ստացիոնար ռադիոտեղորոշիչ (LIDAR) զանգված Arduino- ի հետ

Երբ ես կառուցում եմ երկոտանի ռոբոտ, ես միշտ մտածում էի ունենալ ինչ -որ հիանալի սարք, որը կարող է հետևել իմ հակառակորդին և դրանով գրոհային շարժումներ կատարել: Այստեղ արդեն գոյություն ունեն ռադարային/լիդար նախագծերի փաթեթներ: Այնուամենայնիվ, իմ նպատակի համար կան որոշ սահմանափակումներ.

  • Ուլտրաձայնային ալիքների տվիչների մոդուլները բավականին մեծ են: Յուրաքանչյուր ռոբոտ նման կլինի WALL-E- ի:
  • Ներկայիս ռադիոտեղորոշիչ նախագծերը բոլորը ներառում են սենսոր (կամ ուլտրաձայնային ալիքներ, IR, լազերային…) և մեջտեղում սերվո շարժիչ: Շրջակա միջավայրի սկանավորումը պահանջում է, որ սերվոն տեղափոխվի կողք կողքի: Իրերը հետ ու առաջ տեղափոխելը ստեղծում է թափի փոփոխություններ, ինչը վատ է երկկողմանի հավասարակշռության և քայլելու համար:
  • Սկանավորման հաճախականությունը սահմանափակվում է սերվոյի արագությամբ: Հավանաբար, կարող են հասնել միայն մի քանի հերց: Նույնիսկ եթե սկանավորման հաճախականությունը կարող է բարձրացվել ինչ-որ գերծառայողի կողմից, դա կհանգեցնի ծանր թրթռանքի:
  • [Կենտրոնական servo motor - ցուցիչ] դասավորությունը նույնպես սահմանափակում է տեղադրման և դիզայնի դիրքը: Դժվար է նման բան տեղադրել, քան գլուխը: Ինչն իմ երկոտանի տեսքը դարձնում է ամեն անգամ թափահարող գլուխ WALL-E- ի տեսք: Լավ չէ!
  • [Servo-sensor] դասավորությունը կարող է նաև կառուցվել որպես [շարժիչ-տվիչ] ոճ: Սենսորը (կամ տվիչները) անընդհատ պտտվում է շարժիչի առանցքի երկայնքով: Սա կարող է վերացնել թափի շարժումները և ցածր սկան հաճախականության խնդիրները, բայց ոչ իրանի նախագծման սահմանափակումը: Լարերի հետ կապված դժվարությունները նույնպես զգալիորեն կաճեն:

Որոնելուց հետո ST- ի այս փոքրիկ սենսորը VL53L0X- ը ցայտեց աչքերիս մեջ: Պահանջելով «Աշխարհի ամենափոքր» թռիչքի ժամանակի չափման սենսոր ՝ չափսերն ընդամենը 4.4 x 2.4 x 1.0 մմ են: Հատկանշվում է

  • Չիպային IR լազերային թողարկողի և դետեկտորի վրա
  • Մինչև 2 մ հեռավորություն (1.2 մ արագ ռեժիմում)
  • Programրագրավորվող I2C հասցե
  • GPIO ընդհատման ելքային քորոց
  • Աչքի համար անվտանգ

Այս բոլոր հատուկ հատկանիշները միասին թույլ տվեցին ինձ հաղթահարել վերը նշված խնդիրները, եթե VL53L0X սենսորների զանգվածը կարողանա աշխատել: Ի սկզբանե, ես կարծում էի, որ այս ռադարը կոչվելու է պինդ վիճակի ռադար, բայց պարզեցի, որ այս տերմինը օգտագործվում էր այլ բանի համար: Հետևաբար վերնագրում «ստացիոնար» բառը նշանակում է, որ այս ռադիոտեղորոշիչում շարժական մասեր չկան: Բացի այդ, մինչդեռ LIDAR- ը (լույսի հայտնաբերում և ընդգրկում) այս չիպի տեխնիկապես ճիշտ տերմինն է, RADAR- ը այստեղ նշվում է որպես ավելի ընդհանուր տերմին:

Պատճառը, թե ինչու են ծրագրավորվող I2C հասցեն և GPIO ելքային կապը կարևոր այս նախագծի համար, ավելի ուշ բացատրվում է:

Քայլ 1: Գործիքներ և մասեր

Գործիքներ և մասեր
Գործիքներ և մասեր
Գործիքներ և մասեր
Գործիքներ և մասեր

Գործիքներ

Այս նախագծում պահանջվում են հետևյալ գործիքները.

  • Sոդման երկաթ
  • Helpingոդում օգնող ձեռքերը
  • Dupont սեղմիչ գործիք
  • 1,5 մմ վեցանկյուն վարորդ
  • Մետաղական ծածկույթի հեռացման գործիք
  • Մետաղալար կտրիչ
  • Տաք սոսինձ ատրճանակ
  • Պինցետ
  • Խոշորացույց (ձեր հեռախոսի ֆիզիկական կամ հավելվածներ)
  • Հարթ քթի տափակաբերան աքցան

Մասեր

Այս նախագծում օգտագործվում են հետևյալ մասերը.

  • 10x VL53L0X GY-530 ճեղքման տախտակներ
  • Arduino (Uno, Nano, Mega, Zero, Mini,… և այլն)
  • Հացաթուղթ և հացաթխման մետաղալարեր
  • AWG #26 լարեր ՝ տարբեր գույներով
  • AWG #30 մեկ միջուկային մետաղալար
  • 5x Dupont արական միակցիչներ
  • 5x Մեկ կապում Dupont- ի պատյաններ
  • 10x 3D տպագրությամբ փեղկավոր տախտակի պատյաններ
  • 1x 3D տպագիր շրջանաձև շրջանակ
  • 10x M2x10 հարթ գլխով պտուտակներ
  • 10x 0804 LED (Կապույտը վերափոխված է)
  • 10x SOT-23 AO3400 N-Channel MOSFET
  • Փոքր կոնդենսատոր (10 ~ 100uF)

Breakout տախտակ

VL53L0X ջարդման տախտակը, որը ես օգտագործել եմ, GY-530 է: Կան նաև Adafruit և Pololu տարբերակները: Եթե դա իրագործելի է, ես խորհուրդ եմ տալիս օգտագործել Adafruit- ը կամ Pololu- ի արտադրանքը, քանի որ դրանք հիանալի արտադրանք են ստեղծում, հիանալի ձեռնարկներ և հիանալի ծրագրային գրադարաններ: Ես փորձարկեցի Adafruit- ի VL53L0X գրադարանում և օգտագործեցի Pololu- ի VL53L0X գրադարանի փոփոխված տարբերակը:

Dupont միակցիչներ

The dupont միակցիչները օգտագործվում են breadboard- ի համար: Դուք կարող եք օգտագործել ցանկացած այլ տեսակի կապ, որը դուք ունեք:

Պտուտակներ և 3D տպագիր մասեր

M2 պտուտակները, ամրակները և շրջանաձև շրջանակը օգտագործվում են տվիչները շրջանաձև դասավորության մեջ տեղադրելու համար: Դուք կարող եք օգտագործել որևէ այլ մեթոդ, օրինակ ՝ տախտակներ, օրինակելի անտառներ, կավ կամ նույնիսկ տաք սոսինձ դրանք բանկայի վրա:

Քայլ 2. Հացահատիկի խորհուրդը կոտրելը

Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը
Կոտրել Breadout խորհուրդը

Հայտնաբերման կոն

Ես օգտագործել եմ մեկ մոդուլ `հայտնաբերման կոնը գծելու համար: Որպես թիրախ օգտագործելով հիմնականում 3D տպագիր ռոբոտ: Հեռավորությունը ցուցադրվում է լուսադիոդային էկրանին և չափվում է կոպիտ: Չափված տվյալները գրանցվում են Microsoft Excel ֆայլում և օգտագործվում են կորի հարմարեցման գործառույթում: Ամենալավ տեղավորումը բնական լոգարիթմի կորն է ՝ 3 սմ -ից մինչև 100 սմ արդյունավետ հեռավորությամբ:

60 սմ -ով, մեկ սենսորի հայտնաբերման կորը մոտ 22 սմ է: 20 սմ լայնությամբ թիրախով ռադարային զանգվածի համար 10 ~ 15 աստիճանի շրջանաձև տարանջատումը պետք է տա սկանավորման ընդունելի լուծում:

I2C հասցե

Մինչ VL53L0X I2C սարքի հասցեն ծրագրավորվող է, սակայն XSHUT քորոցի ամբողջական վերահսկումը պահանջվում է միկրոհսկիչի կողմից: Դա անելու հաջորդականությունը հետևյալն է.

  1. Էլեկտրաէներգիան կիրառվում է AVDD- ի վրա:
  2. Բոլոր VL53L0X չիպերը բերվում են Hw Standby (վերակայման) վիճակի ՝ իրենց բոլոր XSHUT կապումներն իջեցնելով OWԱՐ:
  3. Յուրաքանչյուր չիպը մեկ -մեկ հանվում է վերականգնման վիճակից: Բեռնաթափումից հետո լռելյայն I2C հասցեն 0x52 է:
  4. Չիպի հասցեն փոխվում է նոր հասցեի I2C հրամանի միջոցով: Օրինակ, 0x52- ը փոխվեց 0x53- ի:
  5. Կրկնեք 3 և 4 քայլերը բոլոր չիպերի համար:

Տեսականորեն, նույն ավտոբուսում 7 բիթ հասցեների տիրույթի համար կարելի է վարել առավելագույնը 126 միավոր: Այնուամենայնիվ, գործնականում ավտոբուսի հզորությունը և միկրոկառավարիչի խորտակման ընթացիկ սահմանափակումը կարող են/պետք է սահմանափակեն սարքի առավելագույն թիվը:

Նոր I2C հասցեն չի պահվում VL53L0X չիպում `անջատման կամ վերակայման դեպքում: Այսպիսով, այս գործընթացը պետք է իրականացվի մեկ անգամ ամեն մի ուժի մեջ մտնելուց հետո: Սա նշանակում է, որ ռադարային զանգվածի յուրաքանչյուր միավորի համար պահանջվում է մեկ թանկարժեք քորոց: Սա չափազանց անբարյացակամ է էլեկտրագծերի և կապի սպառման համար ՝ 10+ կամ 20+ միավոր ունեցող ռադիոտեղորոշիչ գոտու համար:

Ինչպես նշվեց STEP1- ում, բախտավոր է, որ VL53L0X չիպի վրա կա GPIO1 կապ, որն ի սկզբանե օգտագործվում էր ընդհատման համար, կարող է կատարել այդ աշխատանքը:

GPIO-XSHUTN երիցուկի շղթա

GPIO- ի ելքը բեռնման ժամանակ բարձր դիմադրողականության վիճակում է, իսկ ակտիվ արտահոսքը բաց է մինչև ցածր: GPIO և XSHUT կապանքները բարձր են քաշվում դեպի AVDD GY-530 ճեղքման տախտակի վրա, ինչպես առաջարկվում է տվյալների թերթում: Բոլոր VL53L0X չիպերը հուսալիորեն Hw Standby վիճակի մեջ դնելու համար (ցածր XSHUT վարում) մեզ պետք է տրամաբանական NOT gate (inverter) յուրաքանչյուր XSHUT քորոցի համար: Այնուհետեւ մենք միացնում ենք մեկ չիպի GPIO ելքը (Nth չիպը), հոսանքն ի վար չիպի XSHUTN (XSHUT-NOT) (N+1 չիպ):

Միացնելուց հետո GPIO- ի բոլոր կապանքները (անգործուն) քաշվում են դեպի վեր, XSHUT- ի հետագա բոլոր կապումներն իջնում են NOT դարպասով (բացառությամբ այն բռունցքի չիպի, որտեղ նրա XSHUTN կապը միացված է միկրոհսկիչին): I2C հասցեի փոփոխությունը և ստորին հոսքի չիպի XSHUT թողարկումը կատարվում է ծրագրային ապահովման մեջ, մեկ առ մեկ:

Եթե դուք օգտագործում եք տարբեր ճեղքման տախտակներ, դուք պետք է համոզվեք, որ ձգվող դիմադրողները տեղում են, թե ոչ, և կատարեք համապատասխան ճշգրտումներ:

LED- ի ավելացում

Հաջորդ քայլում մի փոքր 0805 SMD LED կավելանա բեկման տախտակին, որը XSHUT պահոցից միացված է հարակից կոնդենսատորի GND տերմինալին: Թեև LED- ն ինքնին չի ազդում մոդուլի աշխատանքի վրա, այն մեզ տալիս է լավ տեսողական ցուցում XSHUT տրամաբանական մակարդակի վրա:

LED- ի շարանը միացնելով քաշվող դիմադրիչով (իմ դեպքում 10k) XSHUT- ի քորոցի վրա կներկայացնի լարման անկում: 3.3 վ բարձր տրամաբանական մակարդակի փոխարեն կարմիր 0805 LED լուսադիոդային լարման անկումը չափվում է 1.6 վ: Չնայած տվյալ լարումը տվյալների թերթիկում ավելի բարձր է, քան տրամաբանական բարձր մակարդակը (1.12 վ), այս կոտրման համար ավելի լավ է կապույտ LED- ը: Կապույտ LED- ի լարման անկումը չափվում է մոտ 2.4 վ, որը ապահով կերպով գտնվում է չիպի տրամաբանական մակարդակից բարձր:

N-MOS Inverter- ի ավելացում (տրամաբանությունը ՉԻ դարպաս)

Մի փոքր SOT-23 N-channel MOSFET- ը կուտակված է մեր կողմից ավելացված LED- ի վրա: Երկու տերմինալ (D, S) պետք է սոսնձել ճեղքման տախտակին, իսկ մնացած տերմինալը (G) միացված է թիվ 26 մետաղալարով ՝ GPIO- ի վերին հոսանքի տախտակին:

SMD բաղադրիչներ ավելացնելու վերաբերյալ նշումներ

SMD- ի բաղադրիչները զոդման համար նախատեսված բեկորային տախտակի վրա հեշտ գործ չէ: Եթե դեռ չեք լսել 0805-ի, SMD- ի, SOT-23- ի մասին, ապա հավանականությունն այն է, որ նախկինում չեք կպցրել այդ փոքրիկ բաղադրամասերը: Այդ փոքրիկ բաղադրամասերը ձեռքով մշակելիս շատ տարածված է, որ.

  • Փոքրիկ բանը պարզապես ընկավ և անհետացավ, ընդմիշտ,
  • Փոքրիկ իրերի փոքրիկ բարձիկները պարզապես մաքրվել են:
  • Փոքրիկ ոտքի փոքրիկ ոտքերը պարզապես կոտրվեցին:
  • Eringոդման անագը պարզապես հավաքվել էր բլբայի մեջ և չէր կարող առանձնացվել:
  • Եւ ավելին…

Եթե դեռ ցանկանում եք պատրաստել այս ռադարը, կարող եք.

  • Փոխեք բաղադրիչները ավելի մեծ փաթեթի, ինչպիսին է DIP ոճը:
  • Ստացեք ավելի շատ բաղադրիչներ, քան պահանջվում են նվազագույնը `պրակտիկայի և սպառման համար:

Քայլ 3: 80ոդում 0805 LED- ը

80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը
80ոդում է 0805 LED- ը

80ոդում է 0805 SMD LED- ը

0805 LED ձեռքով զոդելը, SMD- ի համար չնախատեսված բեկման տախտակի վրա, ամենևին էլ հեշտ գործ չէ: Հետևյալ քայլերն իմ առաջարկությունն են LED- ը միացնելու համար:

  1. Օգտագործեք օգնականի ձեռքը ձեր բռնկման տախտակը պահելու համար:
  2. SMD կոնդենսատորի եզրին և «XSHUT» պահոցին միացրեք մի քանի զոդման մածուկ:
  3. Օգտագործեք եռակցման երկաթը `կոնդենսատորի եզրին լրացուցիչ զոդ տեղադրելու համար:
  4. 0805 LED- ի երկու ծայրերին տեղադրեք զոդման մածուկ:
  5. 80ոդման երկաթով 0805 LED- ի երկու ծայրերին անագ դրեք:
  6. Օգտագործեք պինցետները LED- ն տեղադրելու համար, ինչպես ցույց է տրված լուսանկարում: Կաթոդի ծայրը սովորաբար ունի նշված գիծ: Իմ օրինակում, կաթոդի վերջում կա կանաչ գիծ: Կաթոդի ծայրը դրեք կոնդենսատորի ծայրին:
  7. Պինցետների օգնությամբ լուսադիոդի վրա թեթև ճնշում ավելացրեք դեպի կոնդենսատորը և LED- ը կպցրեք կոնդենսատորի ծայրին ՝ միաժամանակ ջերմություն ավելացնելով կոնդենսատորի ծայրին: Մի սեղմեք LED- ի վրա ուժեղ: Նրա ծածկը կարող է կոտրվել ջերմության և ավելորդ ճնշման տակ: Eringոդումից հետո մի փոքր ճնշում ավելացրեք LED- ի վրա `ստուգելու համար, թե արդյոք LED- ը կպցված է տեղում:
  8. Այժմ կպցրեք LED- ը XSHUT ընկղման պահոցում: Այս քայլը պետք է ավելի հեշտ լինի:

Նշում. Նկարում ցուցադրվող կոնդենսատորի ծայրը այս անջատիչ տախտակի հիմքային տերմինալն է: Իսկ ընկղմվող պահոցը XSHUT- ը ձգվում է դիմադրության միջոցով:

LED- ի փորձարկում

LED- ը պետք է լուսավորվի, երբ ուժը (օրինակ ՝ 5 Վ) կիրառեք և հիմնավորեք բեկման տախտակին:

Քայլ 4. N-Channel MOSFET- ի զոդում

N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում
N-Channel MOSFET- ի զոդում

Sոդում AO3400 N-Channel MOSFET- ը

Այս MOSFET- ը SOT-23 փաթեթում է: Մենք պետք է այն «դնենք» LED- ի վրա և մետաղալար ավելացնենք նաև.

  1. Տեղադրեք եռակցման մածուկ և թիթեղյա երեք տերմինալներ:
  2. Պինցետներով տեղադրեք MOSFET- ը 0805 LED- ի վերևում: S տերմինալը պետք է դիպչի կոնդենսատորի վերևին
  3. S տերմինալը կպցրեք կոնդենսատորի ծայրով, ինչպես ցույց է տրված լուսանկարում:
  4. Կտրեք մի փոքր հատված AWG #30 մեկ միջուկային մետաղալար և հեռացրեք ծածկույթը մոտ 1 սմ:
  5. Օգտագործեք եռակցման երկաթը, որպեսզի ներքևից հալեցնեք զոդումը XSHUT անցքում և վերևից տեղադրեք #30 մետաղալարը, ինչպես ցույց է տրված լուսանկարում:
  6. Լարի վերին ծայրը զոդելով MOSFET D տերմինալին:
  7. Կտրեք լրացուցիչ մետաղալարը:

Նշում. MOSFET S տերմինալը միացված է կոնդենսատորի ծայրին, ինչպես ցույց է տրված նկարում: Այս վերջը ցամաքային տերմինալն է: MOSFET D տերմինալը միացված է XSHUT- ի սկզբնական քորոցին:

G տերմինալը այս պահին միացված չէ: Նրա դիրքը գտնվում է որոշ ձգվող դիմադրություններից վերևում: Համոզվեք, որ դրանց միջև բաց կա (N-MOS և ռեզիստոր) և չի շփվում միմյանց հետ:

Քայլ 5. Սենսորների զանգվածի միացում

Սենսորային զանգվածի միացում
Սենսորային զանգվածի միացում
Սենսորային զանգվածի միացում
Սենսորային զանգվածի միացում
Սենսորային զանգվածի միացում
Սենսորային զանգվածի միացում

Ընդհանուր ավտոբուսային էլեկտրագծեր

Ընդհանուր ավտոբուսը ներառում է.

  • Vcc հզորություն Կարմիր լուսանկարում: Ես օգտագործում եմ arduino nano 5 վ տրամաբանությամբ: Եղքման տախտակն ունի LDO և մակարդակ փոխող: Այսպիսով, անվտանգ է օգտագործել 5 վ որպես Vin:
  • Գետնին Սև լուսանկարում:
  • SDA. Կանաչը լուսանկարում:
  • SCL. Լուսանկարում դեղին է:

Այս չորս տողերը ընդհանուր տողեր են: Կտրեք լարերի համապատասխան երկարությունը և դրանք զուգահեռ կպցրեք սենսորային բոլոր մոդուլներին: Ես օգտագործեցի 20 սմ arduino- ից մինչև առաջին սենսորը, և դրանից հետո յուրաքանչյուրը 5 սմ:

XSHUTN և GPIO լարեր

20 սմ սպիտակ մետաղալարն arduino- ի կառավարման քորոցից է `մինչև առաջին սենսորի XSHUTN քորոցը: Սա կառավարման տող է, որը պահանջվում է առաջին VL53L0X չիպը վերականգնելուց և I2C հասցեն փոխելու համար:

Յուրաքանչյուր մոդուլի միջև 5 սմ սպիտակ մետաղալարը երիցուկի շղթայի կառավարման գիծ է: Վերին հոսքի չիպը (օրինակ, թիվ 3 չիպը) GPIO պահոցը միացված է հոսանքն ի վար (օրինակ, թիվ 4 չիպին) XSHUTN ոտքին (N-Channel MOSFET G տերմինալ):

Carefulգույշ եղեք, որ G տերմինալը չշփվի ներքևի դիմադրության հետ: Բացը կարող եք ավելացնել մեկուսիչ ժապավեն: Սովորաբար VL53L0X չիպով մատակարարվող պաշտպանիչ ծածկը կարող է օգտագործվել այստեղ:

Օգտագործեք ջերմային ատրճանակը `կառավարման լարը կպցնելու համար:

Տաք սոսինձ

Ինչպես տեսնում եք լուսանկարում, սպիտակ կառավարման մետաղալարերի վրա ՝ N-MOS G տերմինալի մոտ, կա տաք սոսինձ: Այս քայլը շատ կարևոր է և բացարձակապես անհրաժեշտ: Լողացող զոդումը ուղղակիորեն SMD բաղադրիչի ոտքին շատ թույլ է: Լարի վրա նույնիսկ փոքր ճնշումը կարող է կոտրել ոտքը: Կատարեք այս քայլը նրբորեն:

LED- ի փորձարկում

Երբ սենսորների զանգվածին ուժ (օրինակ ՝ 3.3v-5v) և հող եք կիրառում, առաջին մոդուլի LED- ն պետք է արձագանքի XSHUTN լարերի տրամաբանական մակարդակին: Եթե XSHUTN- ը միացնում եք տրամաբանական բարձր մակարդակին (օրինակ ՝ 3.3v-5v), LED- ն պետք է անջատված լինի: Եթե XSHUTN մետաղալարը միացնում եք ցածր (գետնին), ապա առաջին մոդուլի LED- ը պետք է միացված լինի:

Հետագա բոլոր մոդուլների համար LED- ը պետք է անջատված լինի:

Այս թեստը անցկացվում է arduino- ին միանալուց առաջ:

Քայլ 6: Սենսորային զանգվածի լրացում

Image
Image
Սենսորային զանգվածի լրացում
Սենսորային զանգվածի լրացում
Սենսորային զանգվածի լրացում
Սենսորային զանգվածի լրացում
Սենսորային զանգվածի լրացում
Սենսորային զանգվածի լրացում

Daisy շղթայի փորձարկում

Այժմ մենք ցանկանում ենք ստուգել, արդյոք I2C հասցեի փոփոխությունը գործում է զանգվածի բոլոր տվիչների համար: Ինչպես նշվեց, առաջին չիպը վերահսկվում է arduino- ի կողմից: Երկրորդ չիպը վերահսկվում է առաջին չիպի կողմից և այլն:

  1. Տեղադրեք հացի տախտակը: 5V և վերգետնյա երկաթուղին ուղղակիորեն միացված են adriano 5V- ից և ցամաքից: Յուրաքանչյուր սենսորի ընթացիկ սպառումը տվյալների թերթում գնահատվում է 19 մ:
  2. Էլեկտրահաղորդման գծի վրա ավելացրեք կոնդենսատոր, որն օգնում է կայունացնել Vin- ը:
  3. Միացրեք Vin- ը և Ground- ը սենսորային զանգվածից դեպի հոսանքի ռելս:
  4. Միացրեք SDA- ն arduino Nano pin A4- ին (կարող է տարբեր լինել այլ միկրոկարգավորիչների դեպքում):
  5. Միացրեք SCL- ն arduino Nano pin A5- ին (կարող է տարբեր լինել այլ միկրոկարգավորիչների դեպքում):
  6. Միացրեք XSHUTN մետաղալարը arduino Nano pin D2- ին: (Սա կարող է փոխվել ուրվագծում):
  7. Գնացեք github https://github.com/FuzzyNoodle/Fuzzy-Radar և ներբեռնեք գրադարանը:
  8. Բացեք «Daisy_Chain_Testing» օրինակը և վերբեռնեք ուրվագիծը:

Եթե ամեն ինչ աշխատում է, ապա պետք է տեսնեք, որ կարգավիճակի LED- ները մեկ առ մեկ լուսավորվեն, ինչպես վերը նշված տեսահոլովակը:

Կարող եք նաև բացել Սերիայի պատուհանը և տեսնել սկզբնավորման առաջընթացը: Արդյունքը կհայտնվի այսպես.

Բացման նավահանգիստ Պորտ բաց Սկսնակ ուրվագիծ: Տեղադրեք 0 չիպը վերակայման ռեժիմի: Բոլոր կարգավիճակի LED- ները պետք է անջատված լինեն: Այժմ կարգավորեք տվիչները: LED- ը պետք է լուսավորվի մեկ առ մեկ: 0 չիպի կազմաձևում - I2C հասցեի վերակայում 83 -ի վրա - սենսորի սկզբնականացում: Չիպ 1 -ի կազմաձևում. 2 չիպի կազմաձևում - I2C հասցեի վերականգնում 85 -ի վրա - սենսորի նախնական գործարկում: Ռադարային զանգվածի կազմաձևումն ավարտված է:

Հավաքեք սեփականատերը և շրջանակը

  1. Gգուշորեն տեղադրեք յուրաքանչյուր GY-530 մոդուլը M2x10 պտուտակով ամրակի վրա: Մի սեղմեք MOSFET- ը և մի քաշեք XSHUTN լարերը:
  2. Տեղադրեք յուրաքանչյուր պահիչ շրջանաձև շրջանակի մեջ: Մասերը կպցնելու համար օգտագործեք տաք սոսինձ:

Կրկին, M2 պտուտակները, ամրակները և շրջանաձև շրջանակը օգտագործվում են տվիչները շրջանաձև դասավորության մեջ տեղադրելու համար: Դուք կարող եք օգտագործել որևէ այլ մեթոդ, օրինակ ՝ տախտակներ, օրինակելի անտառներ, կավ կամ նույնիսկ տաք սոսինձ դրանք բանկայի վրա:

Իմ օգտագործած 3D տպագրված ֆայլերը ներկայացված են ստորև: Շրջանաձև շրջանակն ունի 9 մոդուլ, և յուրաքանչյուրը բաժանված է 10 աստիճանով: Եթե սուր աչք ունեք, նախորդ լուսանկարներում կար 10 մոդուլ: Պատճառը? Ստորև բացատրվում է…

Հեռացրեք պաշտպանիչ ծածկույթը

Եթե դուք սկզբից հետևել եք քայլերին, ապա հիմա լավ ժամանակ է VL53L0X չիպի վրա հեռացնել պաշտպանիչ ծածկը: Իմ նախորդ լուսանկարներում դրանք արդեն հեռացված են, քանի որ այս հրահանգները տեղադրելուց առաջ ես պետք է փորձարկեմ մոդուլները և համոզվեմ, որ հայեցակարգը գործում է:

Պաշտպանական երեսպատման մասին տվյալների թերթիկում նշվում է. VL53L0X չիպի երկու փոքր անցքերը (արտանետիչ և ընդունիչ) խոցելի են աղտոտման համար, ինչպիսիք են փոշին, քսուքը, տաք սոսինձը և այլն…

Աղտոտվելուց հետո միջակայքը կարող է կրճատվել, իսկ ընթերցումները `ակնհայտ քանակությամբ: Իմ փորձարկման մոդուլներից մեկը պատահաբար աղտոտված է սոսնձի կավով, միջակայքը կրճատվում է մինչև 40 սմ, իսկ հեռավորության ընթերցումը սխալմամբ մեծանում է 50%-ով: Այսպիսով, զգույշ եղեք:

Քայլ 7: Տվյալների ստացում

Image
Image
Լազերային հետքեր (ցուցադրում)
Լազերային հետքեր (ցուցադրում)

Օգտագործելով Raw_Data_Serial_Output օրինակը

Այժմ մենք իսկապես սիրում ենք տեսնել մեր սենսորային զանգվածի տվյալները: Արդուինոյի գրադարանում GitHub- ում.

https://github.com/FuzzyNoodle/Fuzzy-Radar

Կա մի օրինակ, որը կոչվում է Raw_Data_Serial_Output: Այս օրինակը ցույց է տալիս տվիչների զանգվածից ստացված տվյալների հումքը: Ելքային արժեքները միլիմետր են:

Սենսորների գործարկվելուց հետո սերիական պատուհանում նման բան պետք է տեսնել, երբ ձեռքդ շարժում ես տվիչների միջով.

Ուղիղ ցուցադրության համար դիմեք տեսահոլովակին:

Օգտագործելով Fuzzy_Radar_Serial_Output օրինակը

Հաջորդ քայլը այս հեռավոր ընթերցումներից օգտակար տվյալների ձեռքբերումն է: Այն, ինչ մենք ցանկանում էինք ՌԱԴԱՐ -ից, թիրախային օբյեկտի հեռավորությունն ու անկյունն են:

  • Հեռավորությունը միլիմետր է ՝ կապված սենսորի մակերեսի հետ: 0 -ի վերադարձը նշանակում է, որ թիրախը հեռու է տիրույթից:
  • Անկյունը աստիճաններով է, հորիզոնական հարթության վրա: Ներկայումս սպասվում է, որ սենսորները հավասարաչափ տարածվում են: 0 աստիճան վերադառնալը նշանակում է, որ թիրախը գտնվում է զանգվածի կենտրոնական դիրքում:

Գրադարանում կիրառվում են զտման որոշ ալգորիթմներ.

  • Աղմուկի հեռացում.

    • Կարճ (նմուշների քանակի առումով) ընթերցումները համարվում են աղմուկ և հանվում են:
    • Միջին արժեքից շատ հեռու ընթերցումները հանվում են:
  • Քաշի անկյունի հաշվարկ (տե՛ս նկարը վերևում)

    • Թիրախային օբյեկտը ենթադրվում է հարթ մակերես
    • Եթե մի քանի սենսորներ հայտնաբերել են օբյեկտը միաժամանակ, յուրաքանչյուր սենսորի համար հաշվարկվում է քաշ:
    • Յուրաքանչյուր սենսորի քաշը հակադարձորեն կապված է նրա հեռավորության հետ:
    • Արդյունքի հրեշտակը հաշվարկվում է յուրաքանչյուր սենսորի կշռված անկյունից:
  • Թիրախի առաջնային ընտրություն.

    • Եթե ընթերցումների մեկից ավելի խումբ կա, մնում է ամենալայն (սենսորային ընթերցման հաշվարկով) խումբը:
    • Օրինակ, եթե երկու ձեռք դնեք սենսորային զանգվածի դիմաց, ավելի շատ սենսորների կողմից հայտնաբերված ձեռքը մնում է:
  • Թիրախի ամենամոտ ընտրությունը.

    • Եթե կան նույն լայնությամբ մեկից ավելի հայտնաբերված խմբեր, ամենամոտ տարածության խումբը մնում է:
    • Օրինակ, եթե երկու ձեռքը դնում եք սենսորային զանգվածի առջև, և հայտնաբերված երկու խումբ ունեն սենսորների նույն թիվը, ապա սենսորին ավելի մոտ խումբը մնում է:

Ելքի հեռավորությունը և անկյունը հարթվում են ցածր անցման ֆիլտրի միջոցով:

Raw_Data_Serial_Output- ում հեռավորության չմշակված ընթերցումները փոխակերպվում են հեռավորության և անկյունի արժեքի: Էսքիզը վերբեռնելուց հետո կարող եք բացել սերիայի պատուհանը ՝ նման արդյունքը տեսնելու համար.

Ոչ մի օբյեկտ չի հայտնաբերվել: Ոչ մի օբյեկտ չի հայտնաբերվել:Ոչ մի օբյեկտ չի հայտնաբերվել: Distance = 0056 Angle = 017 Distance = 0066 Angle = 014 Distance = 0077 Angle = 011 Distance = 0083 Angle = 010 Distance = 0081 Angle = 004 Distance = 0082 Angle = 000 Distance = 0092 Angle = 002 Distance = 0097 Angle = 001 Distance = 0096 անկյուն = 001 Հեռավորություն = 0099 Անկյուն = 000 Հեռավորություն = 0101 Անկյուն = -002 Հեռավորություն = 0092 Անկյուն = -004 Հեռավորություն = 0095 Անկյուն = -007 Հեռավորություն = 0101 Անկյուն = -008 Հեռավորություն = 0112 Անկյուն = -014 Հեռավորություն = 0118 Անկյուն = -017 Distance = 0122 Angle = -019 Distance = 0125 Angle = -019 Distance = 0126 Angle = -020 Distance = 0125 Angle = -022 Distance = 0124 Angle = -024 Distance = 0133 Angle = -027 Distance = 0138 Angle = - 031 Հեռավորություն = 0140 Անկյուն = -033 Հեռավորություն = 0136 Անկյուն = -033 Հեռավորություն = 0125 Անկյուն = -037 Հեռավորություն = 0120 Անկյուն = -038 Հեռավորություն = 0141 Անկյուն = -039 Ոչ մի օբյեկտ չի հայտնաբերվել: Ոչ մի օբյեկտ չի հայտնաբերվել: Ոչ մի օբյեկտ չի հայտնաբերվել:

Այսպիսով, այժմ դուք ունեք ՌԱԴԱՐ (ԼԻԴԱՐ).

  • Ավելի փոքր, քան ուլտրաձայնային տվիչների մոդուլները
  • Շարժվող մասեր չկան
  • Սկանավորում է 40 Հց հաճախականությամբ:
  • Գոտու նման ձևավորված, կարող է տեղադրվել շրջանաձև շրջանակի վրա
  • Օգտագործեք ընդամենը երեք հսկիչ լար, գումարած ուժ և հող:
  • Այն ունի 30 միլիմետրից մինչև 1000 միլիմետր միջակայք:

Հետագա քայլերում մենք ձեզ ցույց կտանք մի քանի հիանալի ցույց:

Քայլ 8: Լազերային հետքեր (ցուցադրում)

Image
Image
Լազերային հետքեր (ցուցադրում)
Լազերային հետքեր (ցուցադրում)

Սա ստացիոնար ռադիոլոկացիոն ռադիոլոկացիոն համակարգի օգտագործման օրինակ է, որը մենք կառուցել ենք նախորդ քայլերից: Այս քայլը մանրամասն գրված չէ, քանի որ սա Radar- ի ցուցադրողն է: Ընդհանուր առմամբ, ցուցադրական այս նախագիծը կառուցելու համար ձեզ հարկավոր են այս լրացուցիչ տարրերը.

  • Երկու սպասարկում
  • Լազերային գրիչ, որը թողարկում է գլուխը
  • MOSFET կամ NPN տրանզիստոր `լազերային գլխի ելքը վերահսկելու համար
  • Սնուցման ծառայությունների աղբյուր: Այն պետք է առանձնացվի միկրոկառավարիչից:

Կոդը կարելի է ներբեռնել այստեղ:

Խնդրում ենք դիտել տրամադրված տեսանյութը:

Քայլ 9: Հայացք Poopeyes- ին (onstուցադրություն)

Image
Image

Ռադարների օգտագործման ցուցադրություն ՝ օբյեկտի գտնվելու վայրը և հեռավորությունը հետևելու համար:

Խորհուրդ ենք տալիս: