Lokalizační peří UWB: 6 kroků
Lokalizační peří UWB: 6 kroků
Anonim
Lokalizační peří UWB
Lokalizační peří UWB

Ultra-WideBand Feather obsahuje modul Decawave DWM1000 a ATSAMD21 ARM Cortex M0 do tvarového faktoru peří Adafruit. Modul DWM1000 je bezdrátový modul kompatibilní se standardem IEEE802.15.4-2011 UWB, který umožňuje přesné polohování v interiéru a vysoké přenosové rychlosti, takže je tato deska ideální pro robotické projekty, kde je vyžadována lokalizace.

Vlastnosti:-Decawave DWM1000 pro přesné sledování-ARM Cortex M0 pro rychlé a výkonné aplikace-Adafruit Feather kompatibilní pro integraci s širokým stávajícím ekosystémem-SWD rozhraní pro programování a ladění aplikací-USB-C konektor-Integrovaná LiPo nabíječka baterií

Úplný zápis a aktualizace projektu naleznete v tomto projektu na mém webu Prototyping Corner na adrese prototypingcorner.io/projects/uwb-feather

Zdrojový hardware a software pro tento projekt je k dispozici v úložišti GitHub.

Krok 1: Hardware design

Hardware design
Hardware design
Hardware design
Hardware design
Hardware design
Hardware design

Jak již bylo zmíněno v úvodu, UWB Feather se skládá z ATSAMD21 ARM Cortext M0+ pro mozek a modulu Decawave DWM1000 pro ultra-širokopásmové bezdrátové připojení ve tvaru peří. Design je poměrně jednoduchý a skládá se z 20 položek BoM na 2vrstvé desce plošných spojů. Pinout je kompatibilní s Adafruit M0 Feather

O nabíjení LiPo se stará jednobunkový, plně integrovaný řadič správy nabíjení MCP73831. Napětí baterie lze monitorovat na D9, je však vyžadován přístup ke všem IO, JP1 lze pro uvolnění tohoto pinu rozříznout. Regulace 3,3 voltů je předváděna lineárním regulátorem AP2112K-3.3 s nízkým výpadkem a poskytuje až 600mA.

Pinout je plně kompatibilní s řadou peří Adafruit M0 pro snadnou přenositelnost kódu. IO linky DWM1000 jsou připojeny na sběrnici SPI a digitální piny 2, 3 a 4 pro RST, IRQ a SPI_CS respektive (které nejsou vystaveny přes záhlaví). D13 je také připojen k integrované LED, což je standardní u mnoha desek kompatibilních s Arduino.

Programování lze předem provést přes záhlaví SWD nebo přes USB, pokud je načteno odpovídajícím zavaděčem, jako je uf2-samdx1 od společnosti Microsoft. Více viz firmware.

Poznámka k V1.0

Ve verzi 1 této desky je problém s konektorem USB-C. Stopa, kterou jsem použil, neobsahovala výřez požadovaný pro způsob montáže výřezu této součásti.

Verze 1.1 bude obsahovat opravu tohoto problému a také přidání konektoru micro-b pro ty, kteří ho chtějí. Viz úvahy verze 1.1 níže.

Aspekty návrhu kusovníku a hardwaru verze 1.1 viz zápis projektu.

Krok 2: Sestavení

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

S pouhými 20 položkami BoM a většinou komponentů, které nebyly menší než 0603 (2 x krystalový kondenzátor byl 0402), byla ruční montáž této desky snadná. Desku plošných spojů a pájky jsem nechal vyrobit od JLCPCB v matné černé barvě s povrchovou úpravou ENIG.

Celkové náklady na 5 desek (ačkoli 10 nemělo žádný cenový rozdíl) a šablonu činily 68 AUD, nicméně 42 USD z toho byla doprava. První objednávka z JLCPCB a desky byly velmi kvalitní s pěkným povrchem.

Krok 3: Firmware: Programování zavaděče

Firmware: Programování zavaděče
Firmware: Programování zavaděče
Firmware: Programování bootloaderu
Firmware: Programování bootloaderu
Firmware: Programování zavaděče
Firmware: Programování zavaděče

Firmware lze načíst přes konektor SWD pomocí programátoru, jako je J-Link od společnosti Segger. Nahoře je zobrazen J-Link EDU Mini. Abychom mohli začít programovat desku, musíme načíst náš zavaděč a poté nastavit řetěz nástrojů.

Ke flashování bootloaderu použiji Atmel Studio. Chcete-li to provést, připojte J-Link a otevřete Atmel Studio. Poté vyberte Nástroje> Programování zařízení. V části Nástroj vyberte J-Link a nastavte Zařízení na ATSAMD21G18A, poté klikněte na Použít.

Připojte J-Link k hlavičce SWD a připojte napájení přes USB nebo přes baterii. Po připojení v části Podpis zařízení klikněte na Číst. Podle toho by se měla šířit textová pole Podpis zařízení a Cílové napětí. Pokud nezkontrolují připojení a zkuste to znovu.

Abychom mohli spustit zavaděč, musíme nejprve deaktivovat pojistku BOOTPROT. Chcete -li to provést, vyberte Pojistky> USER_WORD_0. NVMCTRL_BOOTPROT a změňte na 0 bytů. Kliknutím na Program nahrajte změny.

Nyní můžeme spustit bootloader vybráním Memories> Flash a nastavit umístění bootloaderu. Před výběrem programování zajistěte Vymazat Flash a klikněte na Program. Pokud vše půjde dobře, D13 na desce by měla začít pulzovat.

Nyní budete muset nastavit pojistku BOOTPROT na velikost bootloaderu 8 kB. Chcete -li to provést, vyberte Pojistky> USER_WORD_0. NVMCTRL_BOOTPROT a změňte na 8192 bajtů. Kliknutím na program odešlete změny.

Nyní, když byl spuštěn zavaděč, D13 by měl pulzovat a pokud je připojen přes USB, mělo by se objevit velkokapacitní zařízení. Zde je možné nahrávat soubory UF2 pro programování desky.

Krok 4: Firmware: Flashing Code With PlatformIO

Firmware: Flashing Code With PlatformIO
Firmware: Flashing Code With PlatformIO
Firmware: Flashing Code With PlatformIO
Firmware: Flashing Code With PlatformIO

Firmware lze nahrát přes protokol UF2 nebo přímo přes rozhraní SWD. Zde použijeme PlatformIO pro jeho snadnost a jednoduchost. Chcete -li začít, vytvořte nový projekt PIO a jako cílovou desku vyberte Adafruit Feather M0. Při nahrávání přes SWD pomocí J-Link nastavte upload_protocol na platformio.ini, jak je znázorněno níže.

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

Nyní můžete desku programovat s jednoduchostí rámce Arduino.

Krok 5: Firmware: Blikající kotva

Firmware: Flashing the Anchor
Firmware: Flashing the Anchor
Firmware: Blikající kotva
Firmware: Blikající kotva

Moduly DWM1000 lze konfigurovat jako kotvy nebo tagy. Obecně jsou kotvy drženy na známých statických místech a tagy pomocí kotev k nim získávají relativní polohu. Chcete-li otestovat modul DWM1000, můžete nahrát příklad DW1000-Anchor z úložiště GitHub.

Chcete-li tento program flashovat pomocí PlatformIO, z PIO Home vyberte Otevřít projekt a poté najděte umístění složky DW1000-Anchor v úložišti GitHub. Poté klikněte na tlačítko PIO upload a automaticky vyhledá připojenou ladicí sondu (ujistěte se, že je připojena a deska je napájena).

Firmware značky bude nutné nahrát na jinou desku. Výsledek je pak možné zobrazit v sériovém terminálu.

Krok 6: Jít dále

Jít dále
Jít dále

Další vylepšení tohoto projektu bude zahrnovat vývoj nové knihovny DW1000, deska V1.1 mění další projekty, které využívají tuto rozsáhlou technologii. Pokud bude dostatečný zájem, zvážím výrobu a prodej těchto desek.

Děkuji za přečtení. Jakékoli myšlenky nebo kritiky zanechte v níže uvedených komentářích a nezapomeňte se podívat na projekt na Prototyping Corner