Sadržaj:

Perje za lokalizaciju UWB -a: 6 koraka
Perje za lokalizaciju UWB -a: 6 koraka

Video: Perje za lokalizaciju UWB -a: 6 koraka

Video: Perje za lokalizaciju UWB -a: 6 koraka
Video: Кровать Carolina 2024, Juli
Anonim
UWB lokalizacijsko pero
UWB lokalizacijsko pero

Ultra-WideBand pero sadrži Decawave DWM1000 modul i ATSAMD21 ARM Cortex M0 u Adafruit perju. Modul DWM1000 je bežični modul kompatibilan sa IEEE802.15.4-2011 UWB sposoban za precizno pozicioniranje u zatvorenim prostorima i velike brzine prijenosa podataka, što ovu ploču čini savršenom za projekte robotike gdje je potrebna lokalizacija.

Značajke:-Decawave DWM1000 za precizno praćenje-ARM Cortex M0 za brze i moćne aplikacije-Adafruit Feather kompatibilan za integraciju sa širokim postojećim ekosustavom-SWD sučelje za programiranje i otklanjanje pogrešaka-USB-C konektor-Integrirani LiPo punjač baterija

Za kompletno pisanje i ažuriranje projekta pogledajte ovaj projekt na mojoj web stranici Prototyping Corner na prototypingcorner.io/projects/uwb-feather

Izvorni hardver i softver za ovaj projekat dostupni su iz GitHub spremišta.

Korak 1: Dizajn hardvera

Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera
Dizajn hardvera

Kao što je spomenuto u uvodu, UWB pero se sastoji od ATSAMD21 ARM Cortext M0+ za mozak i Decawave DWM1000 modula za ultraširokopojasnu bežičnu vezu, u obliku perja. Dizajn je relativno jednostavan i sastoji se od 20 BoM predmeta na 2-slojnoj PCB-u. Ispis je kompatibilan sa Adafruit M0 perjem

LiPo punjenjem upravlja MCP73831 jednoćelijski, potpuno integrirani kontroler za upravljanje punjenjem. Napon baterije može se nadzirati na D9, međutim ako je potreban pristup svim IO, JP1 se može presjeći kako bi se oslobodio ovaj pin. Regulaciju od 3,3 volti izvodi linearni regulator niskog ispadanja AP2112K-3,3, pružajući do 600 mA.

Pinout je potpuno kompatibilan s linijom perja Adafruit M0 za lakše prenošenje koda. IW linije DWM1000 spojene su na SPI sabirnicu i digitalne pinove 2, 3 i 4 za RST, IRQ i SPI_CS (koji nisu izloženi putem zaglavlja). D13 je također spojen na ugrađenu LED diodu, što je standard među mnogim pločama kompatibilnim s Arduinom.

Programiranje se može izvesti preko SWD zaglavlja ili putem USB-a ako je učitano s odgovarajućim pokretačkim programom, poput uf2-samdx1 iz Microsofta. Za više informacija pogledajte firmver.

Napomena o V1.0

Postoji problem s USB-C konektorom na verziji 1 ove ploče. Otisak koji sam koristio nije uključivao izrez potreban za način montaže izreza ove komponente.

Verzija 1.1 će uključivati popravak za ovo, kao i dodavanje micro-b konektora za one koji to žele. U nastavku pogledajte razmatranja verzije 1.1.

Za detalje o dizajnu Predloga materijala i hardvera Verzije 1.1 pogledajte opis projekta.

Korak 2: Montaža

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

Sa samo 20 BoM predmeta i većina komponenti nije manja od 0603 (2x kristalni kondenzatori su bili 0402), ručno sastavljanje ove ploče bilo je jednostavno. Imao sam PCB i matricu za lemljenje proizvođača JLCPCB u mat crnoj boji sa ENIG površinskom obradom.

Ukupni trošak za 5 ploča (iako 10 nije imalo razliku u cijeni) i šablon iznosio je 68 USD, ali 42 USD od toga je bilo isporučeno. Prvi put naručivanje od JLCPCB -a i ploče su bile vrlo visoke kvalitete s lijepom završnom obradom.

Korak 3: Firmware: Programiranje pokretačkog programa

Firmware: Programiranje Bootloader -a
Firmware: Programiranje Bootloader -a
Firmware: Programiranje Bootloader -a
Firmware: Programiranje Bootloader -a
Firmware: Programiranje Bootloader -a
Firmware: Programiranje Bootloader -a

Firmware se može učitati preko SWD konektora pomoću programatora kao što je J-Link iz Seggera. Gore je prikazan J-Link EDU Mini. Da bismo započeli programiranje ploče, moramo učitati naš pokretački program i postaviti naš lanac alata.

Koristit ću Atmel Studio za prebacivanje pokretačkog programa. Da biste to učinili, uključite J-Link i otvorite Atmel Studio. Zatim odaberite Alati> Programiranje uređaja. Pod Alatkom odaberite J-Link i postavite Uređaj na ATSAMD21G18A, a zatim kliknite Primijeni.

Spojite J-Link na SWD zaglavlje s perjem i uključite napajanje preko USB-a ili putem baterije. Kada se povežete, u odjeljku Potpis uređaja kliknite Pročitaj. Okviri za potpis uređaja i napona cilja trebali bi se širiti u skladu s tim. Ako ne provjere veze i pokušajte ponovo.

Za bljeskalicu pokretačkog programa prvo moramo onemogućiti BOOTPROT osigurač. Da biste to učinili, odaberite Osigurači> USER_WORD_0. NVMCTRL_BOOTPROT i promijenite u 0 bajtova. Kliknite Program za učitavanje promjena.

Sada možemo pokrenuti bootloader odabirom Memories> Flash i postaviti lokaciju pokretačkog programa. Provjerite Erase Flash prije odabira programiranja i kliknite Program. Ako sve prođe u redu, D13 na ploči bi trebao početi pulsirati.

Sada ćete morati postaviti BOOTPROT osigurač na veličinu pokretačkog programa 8kB. Da biste to učinili, odaberite Osigurači> USER_WORD_0. NVMCTRL_BOOTPROT i promijenite na 8192 bajta. Kliknite na program da biste učitali promjene.

Sada kada je pokretački program učitavan D13 bi trebao pulsirati i ako je priključen preko USB -a, trebao bi se pojaviti uređaj za masovnu pohranu. Ovdje se mogu učitati UF2 datoteke za programiranje ploče.

Korak 4: Firmware: Flashing Code sa PlatformIO

Firmware: Trepćući kod sa PlatformIO
Firmware: Trepćući kod sa PlatformIO
Firmware: Trepćući kod sa PlatformIO
Firmware: Trepćući kod sa PlatformIO

Firmware se može učitati putem UF2 protokola ili direktno putem SWD sučelja. Ovdje ćemo koristiti PlatformIO zbog njegove lakoće i jednostavnosti. Za početak kreirajte novi PIO projekt i odaberite Adafruit Feather M0 kao ciljnu ploču. Prilikom učitavanja preko SWD-a sa J-Link-om postavite upload_protocol na platformio.ini kao što je prikazano ispod.

[env: adafruit_feather_m0] platforma = atmelsam ploča = adafruit_feather_m0 framework = arduino upload_protocol = jlink

Sada možete programirati ploču s jednostavnošću Arduino okvira.

Korak 5: Firmware: Bljeskanje sidra

Firmware: Bljeskanje sidra
Firmware: Bljeskanje sidra
Firmware: Bljeskanje sidra
Firmware: Bljeskanje sidra

Moduli DWM1000 mogu se konfigurirati kao sidra ili oznake. Sidra se općenito drže na poznatim statičkim lokacijama, a oznake koriste sidra kako bi im postavile relativan položaj. Za testiranje DWM1000 modula možete prenijeti primjer DW1000-Anchor iz spremišta GitHub.

Za fleširanje ovog programa sa PlatformIO, iz PIO Home, odaberite Otvori projekt, a zatim pronađite lokaciju mape DW1000-Anchor u spremištu GitHub. Zatim kliknite gumb PIO upload i automatski će pronaći priloženu sondu za otklanjanje grešaka (provjerite je li spojena i ploča je napajana).

Firmver oznaka morat će se prenijeti na drugu ploču. Tada se rezultat može vidjeti na serijskom terminalu.

Korak 6: Idite dalje

Idemo dalje
Idemo dalje

Daljnja poboljšanja ovog projekta uključivat će razvoj nove biblioteke DW1000, ploča V1.1 mijenja druge projekte koji koriste ovu široku tehnologiju. Ako postoji dovoljno interesa, razmislit ću o proizvodnji i prodaji ovih ploča.

Hvala na čitanju. Ostavite sve misli ili kritike u komentarima ispod i svakako pogledajte projekt na Prototyping Corner -u

Preporučuje se: