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

UWB տեղայնացման փետուր `6 քայլ
UWB տեղայնացման փետուր `6 քայլ

Video: UWB տեղայնացման փետուր `6 քայլ

Video: UWB տեղայնացման փետուր `6 քայլ
Video: Apple AirTag: КАК РАБОТАЕТ UWB? | РАЗБОР 2024, Նոյեմբեր
Anonim
UWB տեղայնացման փետուր
UWB տեղայնացման փետուր

Ultra-WideBand փետուրը ներառում է Decawave DWM1000 մոդուլը և ATSAMD21 ARM Cortex M0- ը Adafruit փետուրի ձև-գործոնի մեջ: DWM1000 մոդուլը IEEE802.15.4-2011 UWB- ի հետ աշխատող անլար մոդուլ է, որն ունակ է ներքին ճշգրիտ դիրքավորման և տվյալների բարձր տեմպերի, ինչը այս տախտակը կատարյալ է դարձնում ռոբոտաշինության նախագծերի համար, որտեղ տեղայնացում է պահանջվում:

Առանձնահատկություններ.

Նախագծի ամբողջական կազմման և թարմացումների համար դիտեք այս նախագիծը իմ կայքում ՝ Prototyping Corner ՝ prototypingcorner.io/projects/uwb-feather

Այս նախագծի աղբյուրի ապարատային և ծրագրային ապահովումը հասանելի է GitHub պահոցից:

Քայլ 1: Սարքավորման ձևավորում

Սարքավորման դիզայն
Սարքավորման դիզայն
Սարքավորման դիզայն
Սարքավորման դիզայն
Սարքավորման դիզայն
Սարքավորման դիզայն

Ինչպես նշվեց ներածության մեջ, UWB փետուրը բաղկացած է ATSAMD21 ARM Cortext M0+ ուղեղի համար և Decawave DWM1000 մոդուլից ՝ ծայրահեղ լայն անլար ցանցի համար ՝ փետուրի ձևի գործոնով: Դիզայնը համեմատաբար պարզ է, որը բաղկացած է 20 BoM- ի տարրերից `երկշերտ PCB- ի վրա: Pinout- ը Adafruit M0 Feather- ի հետ համատեղելի է

LiPo լիցքավորումը վարում է MCP73831 մեկ բջջային, ամբողջությամբ ինտեգրված լիցքավորման կառավարման վերահսկիչը: Մարտկոցի լարումը կարող է վերահսկվել D9- ի վրա, սակայն անհրաժեշտ է մուտք դեպի բոլոր IO- ներ, JP1- ը կարող է կտրվել այս պինն ազատելու համար: 3.3 վոլտ կարգավորումը նախաստորագրված է AP2112K-3.3 ցածր թողման գծային կարգավորիչով ՝ ապահովելով մինչև 600 մԱ:

Pinout- ը լիովին համատեղելի է Adafruit M0 փետուրների գծի հետ `կոդի դյուրատարության համար: DWM1000 IO գծերը միացված են SPI ավտոբուսին և 2, 3 և 4 թվային կապում RST, IRQ & SPI_CS- ի համար (որոնք վերնագրի միջոցով չեն ցուցադրվում): D13- ը նույնպես միացված է ինքնաթիռի LED- ին, ինչպես ստանդարտ է Arduino- ի հետ համատեղելի բազմաթիվ տախտակների մեջ:

Programրագրավորումը կարող է ձևակերպվել SWD վերնագրի միջոցով կամ USB- ի միջոցով, եթե այն բեռնված է համապատասխան բեռնիչով, ինչպիսին է Microsoft- ի uf2-samdx1- ը: Տեսեք որոնվածը ավելին:

Նշում V1.0- ի վերաբերյալ

Այս տախտակի 1-ին տարբերակում USB-C միակցիչի խնդիր կա: Իմ օգտագործած ոտնահետքը չի ներառել այս բաղադրիչի կտրման մոնտաժման մեթոդի համար պահանջվող կտրվածքը:

1.1 տարբերակը կներառի դրա շտկում, ինչպես նաև միկրո- b միակցիչ ավելացնելով այն ցանկացողների համար: Տես 1.1 տարբերակի նկատառումները ստորև:

Նյութերի և ապարատային տարբերակ 1.1 -ի նախագծման նկատառումների համար տե՛ս ծրագրի գրառումը:

Քայլ 2: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Ընդամենը 20 BoM տարր և բաղադրիչների մեծ մասը 0603 -ից ոչ փոքր չէ (2x բյուրեղյա կոնդենսատորները 0402 էին), այս տախտակի ձեռքով հավաքումը հեշտ էր: Ես ունեի JLCPCB- ի արտադրած PCB և զոդման տրաֆարետ ՝ փայլատ սև գույնով ՝ ENIG մակերևույթի ավարտով:

Ընդհանուր արժեքը 5 տախտակի համար (չնայած որ 10 -ում գների տարբերություն չկար) և տրաֆարետինը կազմում էր 68 ԱՄՆ դոլար, սակայն դրանից 42 դոլարը առաքվում էր: JLCPCB- ից և տախտակներից առաջին անգամ պատվիրելը շատ բարձր որակի էր `գեղեցիկ ավարտով:

Քայլ 3: irmրագրաշարեր. Mingրագրավորում Bootloader- ի համար

Irmրագրաշար. Bootloader- ի ծրագրավորում
Irmրագրաշար. Bootloader- ի ծրագրավորում
Fրագրաշար. Bootloader- ի ծրագրավորում
Fրագրաշար. Bootloader- ի ծրագրավորում
Fրագրաշար. Bootloader- ի ծրագրավորում
Fրագրաշար. Bootloader- ի ծրագրավորում

Firmware- ը կարող է բեռնվել SWD միակցիչի միջոցով ՝ օգտագործելով ծրագրավորող, ինչպիսին է Segger- ի J-Link- ը: Վերևում ցուցադրված է J-Link EDU Mini- ն: Տախտակի ծրագրավորումը սկսելու համար մենք պետք է բեռնենք մեր բեռնախցիկը, այնուհետև ստեղծենք մեր գործիքների շղթան:

Ես կօգտագործեմ Atmel Studio- ն ՝ բեռնիչը բեռնաթափելու համար: Դա անելու համար միացրեք J-Link- ը և բացեք Atmel Studio- ն: Այնուհետեւ ընտրեք Գործիքներ> Սարքի ծրագրավորում: Գործիքի ներքո ընտրեք J-Link- ը և սարքը դրեք ATSAMD21G18A- ի վրա, այնուհետև կտտացրեք Դիմել:

J-Link- ը միացրեք փետուրի SWD վերնագրին և միացրեք էներգիան կամ USB- ով, կամ մարտկոցի միջոցով: Միանալուց հետո, Սարքի ստորագրության ներքո կտտացրեք Կարդալ: Սարքի ստորագրության և նպատակային լարման տեքստային տուփերը պետք է համապատասխանաբար տարածվեն: Եթե նրանք չեն ստուգում կապերը և նորից փորձեն:

Բեռնիչը բեռնաթափելու համար նախ պետք է անջատել BOOTPROT ապահովիչը: Դա անելու համար ընտրեք Ապահովիչներ> USER_WORD_0. NVMCTRL_BOOTPROT և փոխեք 0 բայթ: Կտտացրեք Programրագիրը ՝ փոփոխությունները վերբեռնելու համար:

Այժմ մենք կարող ենք թարթել bootloader- ը `ընտրելով Memories> Flash և սահմանել bootloader- ի գտնվելու վայրը: Programրագրավորումն ընտրելուց առաջ ապահովեք Erase Flash- ը և կտտացրեք Programրագիր: Եթե ամեն ինչ կարգին լինի, տախտակի վրա D13- ը պետք է սկսի զարկերակել:

Այժմ դուք պետք է BOOTPROT ապահովիչը դնեք 8 կԲ բեռնիչ սարքի չափի վրա: Դա անելու համար ընտրեք Ապահովիչներ> USER_WORD_0. NVMCTRL_BOOTPROT և փոխեք 8192 բայթ: Կտտացրեք ծրագիրը ՝ փոփոխությունները վերբեռնելու համար:

Այժմ, երբ բեռնախցիկը բռնկվել է, D13- ը պետք է զարկերակի լինի, և եթե միացված է USB- ին, պետք է հայտնվի զանգվածային պահեստավորման սարք: Այստեղ է, որ UF2 ֆայլերը կարող են վերբեռնվել ՝ տախտակը ծրագրավորելու համար:

Քայլ 4: irmրագրաշար. Flashրամեկուսացման ծածկագիր PlatformIO- ի հետ

Irmրագրաշար. Flashրամեկուսացման ծածկագիր PlatformIO- ի հետ
Irmրագրաշար. Flashրամեկուսացման ծածկագիր PlatformIO- ի հետ
Fրագրակազմ. Flashրամեկուսացման ծածկագիր PlatformIO- ի հետ
Fրագրակազմ. Flashրամեկուսացման ծածկագիր PlatformIO- ի հետ

Firmware- ը կարող է վերբեռնվել UF2 արձանագրության միջոցով կամ անմիջապես SWD ինտերֆեյսի միջոցով: Այստեղ մենք կօգտագործենք PlatformIO- ն իր հեշտության և պարզության համար: Սկսելու համար ստեղծեք PIO- ի նոր նախագիծ և ընտրեք Adafruit Feather M0- ը որպես թիրախային տախտակ: J-Link- ով SWD- ով վերբեռնելիս սահմանեք upload_protocol- ը platformio.ini- ում, ինչպես ցույց է տրված ստորև:

[env: adafruit_feather_m0] հարթակ = atmelsam board = adafruit_feather_m0 շրջանակ = arduino upload_protocol = jlink

Այժմ դուք կարող եք ծրագրավորել տախտակը Arduino շրջանակի պարզությամբ:

Քայլ 5: irmրագրակազմ. Flashրամեկուսացում խարիսխի վրա

Irmրագրակազմ. Flashրամեկուսացման խարիսխ
Irmրագրակազմ. Flashրամեկուսացման խարիսխ
Irmրագրակազմ. Flashրամեկուսացման խարիսխ
Irmրագրակազմ. Flashրամեկուսացման խարիսխ

DWM1000 մոդուլները կարող են կազմաձևվել խարիսխների կամ պիտակների տեսքով: Սովորաբար խարիսխները պահվում են հայտնի ստատիկ վայրերում, և պիտակները օգտագործում են խարիսխներ `դրանց համեմատական դիրքը ստանալու համար: DWM1000 մոդուլը փորձարկելու համար կարող եք վերբեռնել DW1000-Anchor օրինակը GitHub պահոցից:

Այս ծրագիրը PlatformIO- ով լուսավորելու համար PIO Home- ից ընտրեք Open Project, այնուհետև GitHub պահոցում գտեք DW1000-Anchor թղթապանակի գտնվելու վայրը: Այնուհետև կտտացրեք PIO- ի վերբեռնման կոճակին և այն ավտոմատ կերպով կգտնի կցված վրիպազերծման զոնդը (համոզվեք, որ այն միացված է և տախտակը սնուցված է):

Պիտակի որոնվածը պետք է վերբեռնվի մեկ այլ տախտակ: Այնուհետեւ արդյունքը կարելի է դիտել սերիական տերմինալում:

Քայլ 6: Առաջ գնալ

Շարունակելով
Շարունակելով

Այս նախագծի հետագա բարելավումները կներառեն նոր DW1000 գրադարանի մշակում, V1.1 տախտակը փոխում է այս բազմազան տեխնոլոգիան օգտագործող այլ նախագծեր: Եթե կա բավարար հետաքրքրություն, ես կդիտարկեմ այս տախտակների արտադրությունն ու վաճառքը:

Շնորհակալություն կարդալու համար: Թողեք որևէ մտքեր կամ քննադատություններ ստորև բերված մեկնաբանություններում և համոզվեք, որ ծանոթանաք Նախատիպավորման անկյունի նախագծին

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