Kazalo:

UWB pero za lokalizacijo: 6 korakov
UWB pero za lokalizacijo: 6 korakov

Video: UWB pero za lokalizacijo: 6 korakov

Video: UWB pero za lokalizacijo: 6 korakov
Video: Что такое UWB и причем тут AirTag от Apple 2024, November
Anonim
UWB lokalizacijsko pero
UWB lokalizacijsko pero

Ultra-WideBand Feather vključuje modul Decawave DWM1000 in ATSAMD21 ARM Cortex M0 v faktorju perja Adafruit. Modul DWM1000 je brezžični modul, združljiv s standardom IEEE802.15.4-2011 UWB, ki omogoča natančno pozicioniranje v zaprtih prostorih in visoke hitrosti prenosa podatkov, zato je ta plošča kot nalašč za projekte robotike, kjer je potrebna lokalizacija.

Značilnosti:-Decawave DWM1000 za natančno sledenje-ARM Cortex M0 za hitre in zmogljive aplikacije-Adafruit Feather združljiv za integracijo s širokim obstoječim ekosistemom-SWD vmesnik za programiranje in odpravljanje napak-USB-C priključek-Vgrajen polnilec LiPo baterij

Za celoten zapis in posodobitve projekta si oglejte ta projekt na mojem spletnem mestu Prototyping Corner na prototypingcorner.io/projects/uwb-feather

Izvorna strojna in programska oprema za ta projekt je na voljo v skladišču GitHub.

1. korak: Oblikovanje strojne opreme

Oblikovanje strojne opreme
Oblikovanje strojne opreme
Oblikovanje strojne opreme
Oblikovanje strojne opreme
Oblikovanje strojne opreme
Oblikovanje strojne opreme

Kot je bilo omenjeno v uvodu, je UWB Feather sestavljen iz ATSAMD21 ARM Cortext M0+ za možgane in modula Decawave DWM1000 za brezžično širokopasovno povezavo v faktorju perja. Zasnova je razmeroma preprosta, sestavljena iz 20 elementov BoM na 2-slojni PCB. Pinout je združljiv z Adafruit M0 Feather

Polnjenje LiPo upravlja enocelični, popolnoma integriran krmilnik za upravljanje polnjenja MCP73831. Napetost akumulatorja je mogoče spremljati na D9, vendar je potreben dostop do vseh vhodov / izhodov, zato lahko JP1 odrežete, da sprostite ta zatič. 3.3-voltno regulacijo izvaja linearni regulator nizkega izpada AP2112K-3.3, ki zagotavlja do 600 mA.

Pinout je popolnoma združljiv s linijo perja Adafruit M0 za enostavno prenašanje kode. IO linije DWM1000 so priključene na vodilo SPI in digitalne zatiče 2, 3 in 4 za RST, IRQ in SPI_CS (ki niso izpostavljeni preko glave). D13 je povezan tudi z vgrajeno LED diodo, kar je standard med mnogimi ploščami, združljivimi z Arduino.

Programiranje se lahko izvede prek glave SWD ali prek USB-ja, če je naložen z ustreznim zagonskim nalagalnikom, kot je uf2-samdx1 iz Microsofta. Za več informacij si oglejte vdelano programsko opremo.

Opomba za V1.0

Pri različici 1 te plošče je prišlo do težave s priključkom USB-C. Odtis, ki sem ga uporabil, ni vključeval izreza, ki je potreben za način pritrditve izreza te komponente.

Različica 1.1 bo vsebovala popravek za to in dodala priključek micro-b za tiste, ki si ga želijo. Glej spodaj razmisleke o različici 1.1.

Za načrte glede materialov in strojne opreme različice 1.1 glej opis projekta.

2. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Ker je bilo le 20 elementov BoM in večina komponent najmanj 0603 (2x kristalni kondenzatorji so bili 0402), je bila ročna montaža te plošče enostavna. Imel sem PCB in šablono za spajkanje proizvajalca JLCPCB v mat črni barvi s površino ENIG.

Skupni stroški 5 plošč (čeprav 10 ni imelo razlike v ceni) in šablone so bili 68 USD, vendar je 42 USD od tega pošiljanje. Prvič naročila pri JLCPCB in plošče so bile zelo kakovostne z lepim zaključkom.

3. korak: Vdelana programska oprema: Programiranje zagonskega nalagalnika

Vdelana programska oprema: Programiranje zagonskega nalagalnika
Vdelana programska oprema: Programiranje zagonskega nalagalnika
Vdelana programska oprema: Programiranje zagonskega nalagalnika
Vdelana programska oprema: Programiranje zagonskega nalagalnika
Vdelana programska oprema: Programiranje zagonskega nalagalnika
Vdelana programska oprema: Programiranje zagonskega nalagalnika

Vdelano programsko opremo lahko naložite prek priključka SWD s programerjem, kot je J-Link iz Seggerja. Zgoraj je prikazan J-Link EDU Mini. Za začetek programiranja plošče moramo naložiti zagonski program in nato nastaviti verigo orodij.

Za utripanje zagonskega nalagalnika bom uporabil Atmel Studio. Če želite to narediti, priključite J-Link in odprite Atmel Studio. Nato izberite Orodja> Programiranje naprav. V orodju izberite J-Link in nastavite napravo na ATSAMD21G18A, nato kliknite Uporabi.

Priključite J-Link na glavo s perjem SWD in napajajte prek USB-ja ali preko baterije. Ko ste povezani, pod Podpis naprave kliknite Preberi. Besedilni polji Device Signature in Target Voltage se morata ustrezno širiti. Če ne preverijo povezav in poskusite znova.

Za utripanje zagonskega nalagalnika moramo najprej onemogočiti varovalko BOOTPROT. Če želite to narediti, izberite Varovalke> USER_WORD_0. NVMCTRL_BOOTPROT in spremenite v 0 bajtov. Kliknite Program, da naložite spremembe.

Zdaj lahko zagonski nalagalnik utripamo tako, da izberemo Spomini> Flash in nastavimo lokacijo zagonskega nalagalnika. Pred izbiro programiranja se prepričajte, da je izbrisano Flash, in kliknite Program. Če je vse v redu, mora D13 na plošči začeti utripati.

Zdaj morate varovalko BOOTPROT nastaviti na velikost zagonskega nalagalnika 8kB. Če želite to narediti, izberite Varovalke> USER_WORD_0. NVMCTRL_BOOTPROT in spremenite v 8192 bajtov. Kliknite program, da naložite spremembe.

Zdaj, ko je zagonski nalagalnik utripal, bi moral D13 utripati in če bi bil priključen preko USB -ja, bi se morala prikazati naprava za množično shranjevanje. Tukaj lahko naložite datoteke UF2 za programiranje plošče.

4. korak: Vdelana programska oprema: Utripajoča koda s platformo PlatformIO

Vdelana programska oprema: Utripajoča koda s PlatformIO
Vdelana programska oprema: Utripajoča koda s PlatformIO
Vdelana programska oprema: Utripajoča koda s PlatformIO
Vdelana programska oprema: Utripajoča koda s PlatformIO

Vdelano programsko opremo lahko naložite prek protokola UF2 ali neposredno prek vmesnika SWD. Tukaj bomo za preprostost in preprostost uporabljali PlatformIO. Za začetek ustvarite nov projekt PIO in za ciljno ploščo izberite Adafruit Feather M0. Pri nalaganju prek SWD z J-Link nastavite upload_protocol v platformio.ini, kot je prikazano spodaj.

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

Zdaj lahko ploščo programirate s preprostostjo okvira Arduino.

5. korak: Vdelana programska oprema: utripanje sidra

Vdelana programska oprema: utripanje sidra
Vdelana programska oprema: utripanje sidra
Vdelana programska oprema: utripanje sidra
Vdelana programska oprema: utripanje sidra

Module DWM1000 lahko konfigurirate kot sidra ali oznake. Sidra se običajno hranijo na znanih statičnih lokacijah, oznake pa uporabljajo sidra, da dosežejo njihov relativni položaj. Če želite preizkusiti modul DWM1000, lahko naložite primer DW1000-Anchor iz skladišča GitHub.

Če želite ta program utripati s platformo PlatformIO, v PIO Home izberite Odpri projekt in poiščite lokacijo mape DW1000-Anchor v skladišču GitHub. Nato kliknite gumb za prenos PIO in samodejno bo našel priloženo sondo za odpravljanje napak (zagotovite, da je povezana in da je plošča napajana).

Vdelano programsko opremo oznak bo treba naložiti na drugo ploščo. Nato si lahko rezultat ogledate v serijskem terminalu.

6. korak: Pojdite dlje

Gremo še dlje
Gremo še dlje

Nadaljnje izboljšave tega projekta bodo vključevale razvoj nove knjižnice DW1000, plošča V1.1 pa spreminja druge projekte, ki uporabljajo to obsežno tehnologijo. Če bo dovolj zanimanja, bom razmislil o izdelavi in prodaji teh plošč.

Hvala za branje. V komentarjih spodaj pustite vse misli ali kritike in si oglejte projekt na Kotičku za izdelavo prototipov

Priporočena: