Turinys:

UWB lokalizacijos plunksna: 6 žingsniai
UWB lokalizacijos plunksna: 6 žingsniai

Video: UWB lokalizacijos plunksna: 6 žingsniai

Video: UWB lokalizacijos plunksna: 6 žingsniai
Video: Apple AirTag: КАК РАБОТАЕТ UWB? | РАЗБОР 2024, Liepa
Anonim
UWB lokalizacijos plunksna
UWB lokalizacijos plunksna

„Ultra-WideBand“plunksnoje yra „Decawave DWM1000“modulis ir „ATSAMD21 ARM Cortex M0“į „Adafruit“plunksnų formą. DWM1000 modulis yra IEEE802.15.4-2011 su UWB suderinamas belaidis modulis, galintis tiksliai nustatyti patalpų padėtį ir didelį duomenų perdavimo greitį, todėl ši plokštė puikiai tinka robotikos projektams, kuriuose reikalinga lokalizacija.

Savybės:-„Decawave DWM1000“tiksliam sekimui-„ARM Cortex M0“-greita ir galinga programa-„Adafruit Feather“suderinamas, kad būtų integruotas su plačia esama ekosistema-SWD sąsaja programavimui ir derinimui-USB-C jungtis-integruotas „LiPo“akumuliatorių įkroviklis

Norėdami gauti visą projekto aprašymą ir atnaujinimus, peržiūrėkite šį projektą mano svetainėje „Prototyping Corner“adresu prototypingcorner.io/projects/uwb-feather

Šiam projektui skirtą techninę ir programinę įrangą galima rasti „GitHub“saugykloje.

1 žingsnis: Aparatūros projektavimas

Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas

Kaip minėta įžangoje, UWB plunksną sudaro „ATSAMD21 ARM Cortext M0+“smegenims ir „Decawave DWM1000“modulį, skirtą itin plataus diapazono belaidžiam ryšiui. Dizainas yra gana paprastas, sudarytas iš 20 BoM elementų ant 2 sluoksnių PCB. „Pinout“suderinamas su „Adafruit M0 Feather“

„LiPo“įkrovimą tvarko vieno langelio visiškai integruotas įkrovimo valdymo valdiklis MCP73831. Akumuliatoriaus įtampą galima stebėti naudojant D9, tačiau norint prieiti prie visų IO, reikia iškirpti JP1, kad būtų atlaisvintas šis kaištis. 3,3 voltų reguliavimą iš anksto suformuoja žemo iškritimo linijinis reguliatorius AP2112K-3.3, užtikrinantis iki 600 mA.

„Pinout“yra visiškai suderinamas su „Adafruit M0“plunksnų linija, kad būtų galima lengvai perkelti kodą. DWM1000 IO linijos yra prijungtos prie SPI magistralės ir 2, 3 ir 4 skaitmeninių kaiščių, skirtų RST, IRQ ir SPI_CS (kurie nėra atskleidžiami per antraštę). D13 taip pat yra prijungtas prie įmontuoto LED, kaip standartas tarp daugelio su „Arduino“suderinamų plokščių.

Programavimas gali būti iš anksto suformuotas per SWD antraštę arba per USB, jei įkeliamas su atitinkamu įkrovos įkrovikliu, pvz., „Microsoft“uf2-samdx1. Daugiau informacijos rasite programinėje įrangoje.

Pastaba apie V1.0

Iškilo problema dėl šios plokštės 1 versijos USB-C jungties. Į mano naudojamą pėdsaką neįtraukta išpjova, reikalinga šio komponento išpjovos montavimo būdui.

Į 1.1 versiją bus įtrauktas šios problemos sprendimas ir pridėta „micro-b“jungtis tiems, kurie to nori. Žr. 1.1 versijos svarstymus.

Medžiagų sąrašo ir techninės įrangos 1.1 versijos projektavimo sumetimus rasite projekto aprašyme.

2 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas

Kadangi tik 20 „BoM“elementų ir dauguma komponentų yra ne mažesni nei 0603 (2x kristaliniai kondensatoriai buvo 0402), šios plokštės surinkimas rankomis buvo lengvas. Aš turėjau matinės juodos spalvos PCB ir litavimo trafaretą, pagamintą JLCPCB, su ENIG paviršiaus apdaila.

Bendra 5 lentų kaina (nors 10 neturėjo kainų skirtumo) ir trafaretas buvo 68 USD, tačiau 42 USD buvo pristatymas. Pirmą kartą užsakant iš JLCPCB ir lentos buvo labai aukštos kokybės ir gražios.

3 veiksmas: programinė įranga: „Bootloader“programavimas

Programinė įranga: „Bootloader“programavimas
Programinė įranga: „Bootloader“programavimas
Programinė įranga: „Bootloader“programavimas
Programinė įranga: „Bootloader“programavimas
Programinė įranga: „Bootloader“programavimas
Programinė įranga: „Bootloader“programavimas

Programinę įrangą galima įkelti per SWD jungtį, naudojant programuotoją, pvz., „Segger“„J-Link“. Aukščiau parodyta „J-Link EDU Mini“. Norėdami pradėti programuoti plokštę, turime įkelti įkrovos tvarkyklę, tada nustatyti įrankių grandinę.

Aš naudoju „Atmel Studio“įkrovos įkrovikliui mirksėti. Norėdami tai padaryti, prijunkite „J-Link“ir atidarykite „Atmel Studio“. Tada pasirinkite Įrankiai> Įrenginio programavimas. Skiltyje Įrankiai pasirinkite „J-Link“ir nustatykite įrenginį į ATSAMD21G18A, tada spustelėkite Taikyti.

Prijunkite „J-Link“prie plunksninės SWD antraštės ir maitinkite per USB arba per akumuliatorių. Prisijungę, skiltyje Įrenginio parašas spustelėkite Skaityti. Įrenginio parašo ir tikslinės įtampos teksto laukeliai turėtų atitinkamai plisti. Jei jie netikrina jungčių ir bando dar kartą.

Norėdami paleisti įkrovos tvarkyklę, pirmiausia turime išjungti „BOOTPROT“saugiklį. Norėdami tai padaryti, pasirinkite Saugikliai> USER_WORD_0. NVMCTRL_BOOTPROT ir pakeiskite į 0 baitų. Norėdami įkelti pakeitimus, spustelėkite „Programa“.

Dabar galime paleisti įkrovos tvarkyklę pasirinkę Atmintys> „Flash“ir nustatyti įkrovos įkėlimo vietą. Prieš pasirinkdami programavimą įsitikinkite, kad ištrinti „Flash“, ir spustelėkite Programuoti. Jei viskas gerai, D13 ant lentos turėtų pradėti pulsuoti.

Dabar turėsite nustatyti „BOOTPROT“saugiklį iki 8 KB įkrovos tvarkyklės dydžio. Norėdami tai padaryti, pasirinkite Saugikliai> USER_WORD_0. NVMCTRL_BOOTPROT ir pakeiskite į 8192 baitus. Norėdami įkelti pakeitimus, spustelėkite programą.

Dabar, kai įkrovos įkroviklis mirksi, D13 turėtų pulsuoti, o jei prijungtas prie USB, turėtų atsirasti masinės atminties įrenginys. Čia galima įkelti UF2 failus, skirtus programuoti plokštę.

4 veiksmas: programinė įranga: mirksi kodas naudojant „PlatformIO“

Firmware: mirksi kodas su „PlatformIO“
Firmware: mirksi kodas su „PlatformIO“
Firmware: mirksi kodas su „PlatformIO“
Firmware: mirksi kodas su „PlatformIO“

Firmware galima įkelti per UF2 protokolą arba tiesiogiai per SWD sąsają. Čia mes naudosime „PlatformIO“dėl jo lengvumo ir paprastumo. Norėdami pradėti, sukurkite naują PIO projektą ir pasirinkite „Adafruit Feather M0“kaip tikslinę lentą. Kai įkeliate per SWD naudodami „J-Link“, nustatykite „upload_protocol“platformio.ini, kaip parodyta žemiau.

[env: adafruit_feather_m0] platforma = atmelsam board = adafruit_feather_m0 Framework = arduino upload_protocol = jlink

Dabar galite užprogramuoti plokštę naudodami „Arduino“sistemos paprastumą.

5 veiksmas: programinė įranga: Inkaro mirksėjimas

Firmware: mirksi inkaras
Firmware: mirksi inkaras
Firmware: mirksi inkaras
Firmware: mirksi inkaras

DWM1000 modulius galima sukonfigūruoti kaip inkarus ar žymes. Paprastai inkarai laikomi žinomose statinėse vietose, o žymos naudoja inkarus, kad gautų santykinę padėtį. Norėdami išbandyti DWM1000 modulį, galite įkelti DW1000-Anchor pavyzdį iš „GitHub“saugyklos.

Norėdami atnaujinti šią programą naudodami „PlatformIO“, „PIO Home“pasirinkite Open Project, tada raskite aplanko DW1000-Anchor vietą „GitHub“saugykloje. Tada spustelėkite PIO įkėlimo mygtuką ir jis automatiškai suras pridėtą derinimo zondą (įsitikinkite, kad jis prijungtas ir plokštė maitinama).

Žymės programinę -aparatinę įrangą reikės įkelti į kitą plokštę. Tada rezultatą galima peržiūrėti serijiniame terminale.

6 žingsnis: Eikite toliau

Eiti toliau
Eiti toliau

Tolesni šio projekto patobulinimai apims naujos DW1000 bibliotekos kūrimą, V1.1 plokštė keičia kitus projektus, kuriuose naudojama ši diapazono technologija. Jei bus pakankamai susidomėjimo, apsvarstysiu galimybę gaminti ir parduoti šias plokštes.

Dėkojame, kad perskaitėte. Palikite bet kokias mintis ar kritiką toliau pateiktose pastabose ir būtinai peržiūrėkite projektą „Prototyping Corner“

Rekomenduojamas: