Spisu treści:
- Krok 1: Projektowanie sprzętu
- Krok 2: Montaż
- Krok 3: Oprogramowanie układowe: programowanie bootloadera
- Krok 4: Oprogramowanie układowe: migający kod z PlatformIO
- Krok 5: Oprogramowanie układowe: Flashowanie kotwicy
- Krok 6: Idź dalej
Wideo: Pióro lokalizacji UWB: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Ultra-WideBand Feather zawiera moduł Decawave DWM1000 i ATSAMD21 ARM Cortex M0 w obudowie piórkowej Adafruit. Moduł DWM1000 to moduł bezprzewodowy zgodny ze standardem IEEE802.15.4-2011 UWB, który umożliwia precyzyjne pozycjonowanie w pomieszczeniach i zapewnia wysoką szybkość transmisji danych, dzięki czemu ta płyta jest idealna do projektów robotyki, w których wymagana jest lokalizacja.
Cechy:– Decawave DWM1000 do precyzyjnego śledzenia– ARM Cortex M0 do szybkich i wydajnych aplikacji– Kompatybilny z Adafruit Feather do integracji z szerokim istniejącym ekosystemem– Interfejs SWD do programowania i debugowania aplikacji– Złącze USB-C– Zintegrowana ładowarka akumulatorów LiPo
Aby uzyskać pełny opis projektu i aktualizacje, zobacz ten projekt na mojej stronie Prototyping Corner pod adresem prototypingcorner.io/projects/uwb-feather
Sprzęt i oprogramowanie źródłowe dla tego projektu są dostępne w repozytorium GitHub.
Krok 1: Projektowanie sprzętu
Jak wspomniano we wstępie, UWB Feather składa się z ATSAMD21 ARM Cortext M0+ dla mózgu i modułu Decawave DWM1000 dla ultraszerokopasmowej sieci bezprzewodowej, w obudowie typu feather. Projekt jest stosunkowo prosty i składa się z 20 elementów BoM na dwuwarstwowej płytce drukowanej. Pinout jest kompatybilny z Adafruit M0 Feather
Ładowanie LiPo jest obsługiwane przez jednoogniwowy, w pełni zintegrowany kontroler zarządzania ładowaniem MCP73831. Napięcie akumulatora można monitorować na D9, jednak jeśli wymagany jest dostęp do wszystkich IO, JP1 można odciąć, aby zwolnić ten pin. Regulacja 3,3 V jest realizowana przez liniowy regulator niskiego spadku AP2112K-3.3, zapewniający do 600 mA.
Pinout jest w pełni kompatybilny z linią piór Adafruit M0, co ułatwia przenoszenie kodu. Linie DWM1000 IO są podłączone do magistrali SPI i cyfrowych pinów 2, 3 i 4 odpowiednio dla RST, IRQ i SPI_CS (które nie są widoczne przez nagłówek). D13 jest również podłączony do wbudowanej diody LED, co jest standardem w wielu płytach kompatybilnych z Arduino.
Programowanie można wykonać przez nagłówek SWD lub przez USB, jeśli jest załadowany odpowiednim programem ładującym, takim jak uf2-samdx1 firmy Microsoft. Zobacz oprogramowanie układowe, aby uzyskać więcej.
Uwaga dotycząca wersji 1.0
Wystąpił problem ze złączem USB-C w wersji 1 tej płyty. Użyty przeze mnie ślad nie zawierał wycięcia wymaganego do sposobu montażu wycięcia tego komponentu.
Wersja 1.1 będzie zawierała poprawkę do tego, a także dodanie złącza micro-b dla tych, którzy tego chcą. Zobacz uwagi dotyczące wersji 1.1 poniżej.
Zagadnienia projektowe dotyczące zestawienia komponentów i sprzętu w wersji 1.1 można znaleźć w opisie projektu.
Krok 2: Montaż
Przy zaledwie 20 elementach BoM i większości komponentów nie mniejszych niż 0603 (kondensatory kryształowe 2x to 0402), ręczny montaż tej płyty był łatwy. Miałem płytkę PCB i szablon lutowniczy wyprodukowany przez JLCPCB w matowej czerni z wykończeniem powierzchni ENIG.
Całkowity koszt 5 plansz (chociaż 10 nie miało różnicy w cenie) i szablonu to 68 AUD, z czego 42 USD to koszt wysyłki. Pierwsze zamówienie w JLCPCB i deski były bardzo wysokiej jakości z ładnym wykończeniem.
Krok 3: Oprogramowanie układowe: programowanie bootloadera
Firmware można załadować przez złącze SWD za pomocą programatora, takiego jak J-Link firmy Segger. Powyżej pokazano J-Link EDU Mini. Aby rozpocząć programowanie płytki, musimy załadować nasz bootloader, a następnie skonfigurować nasz łańcuch narzędzi.
Do flashowania bootloadera będę używał Atmel Studio. Aby to zrobić, podłącz J-Link i otwórz Atmel Studio. Następnie wybierz Narzędzia > Programowanie urządzenia. W menu Tool wybierz J-Link i ustaw Device na ATSAMD21G18A, a następnie kliknij Apply.
Podłącz J-Link do nagłówka SWD piórkowego i podłącz zasilanie przez USB lub przez baterię. Po połączeniu, pod Podpisem urządzenia kliknij Czytaj. Pola tekstowe Device Signature i Target Voltage powinny się odpowiednio rozmnażać. Jeśli nie sprawdzają połączeń i spróbuj ponownie.
Aby sflashować bootloader, musimy najpierw wyłączyć bezpiecznik BOOTPROT. Aby to zrobić, wybierz Bezpieczniki > USER_WORD_0. NVMCTRL_BOOTPROT i zmień na 0 bajtów. Kliknij Program, aby przesłać zmiany.
Teraz możemy flashować bootloader wybierając Memories > Flash i ustawiając lokalizację bootloadera. Upewnij się, że opcja Wymaż Flash przed programowaniem jest zaznaczona i kliknij Program. Jeśli wszystko pójdzie dobrze, na tablicy powinno zacząć pulsować D13.
Teraz musisz ustawić bezpiecznik BOOTPROT na rozmiar bootloadera 8kB. Aby to zrobić, wybierz Bezpieczniki > USER_WORD_0. NVMCTRL_BOOTPROT i zmień na 8192 bajtów. Kliknij program, aby przesłać zmiany.
Teraz, gdy bootloader został sflashowany, D13 powinien pulsować i jeśli jest podłączony przez USB, powinno pojawić się urządzenie pamięci masowej. Tutaj można wgrać pliki UF2 do programowania płytki.
Krok 4: Oprogramowanie układowe: migający kod z PlatformIO
Oprogramowanie układowe można wgrać przez protokół UF2 lub bezpośrednio przez interfejs SWD. Tutaj będziemy używać PlatformIO ze względu na łatwość i prostotę. Aby rozpocząć, stwórz nowy projekt PIO i wybierz Adafruit Feather M0 jako płytkę docelową. Podczas przesyłania przez SWD z J-Link ustaw upload_protocol w platformio.ini, jak pokazano poniżej.
[env:adafruit_feather_m0]platforma = tablica atmelsam = adafruit_feather_m0 framework = arduino upload_protocol = jlink
Teraz możesz zaprogramować płytkę z prostotą frameworka Arduino.
Krok 5: Oprogramowanie układowe: Flashowanie kotwicy
Moduły DWM1000 można skonfigurować jako kotwice lub znaczniki. Ogólnie kotwice są przechowywane w znanych lokalizacjach statycznych, a znaczniki używają kotwic, aby uzyskać względem nich pozycję względną. Aby przetestować moduł DWM1000, możesz przesłać przykład DW1000-Anchor z repozytorium GitHub.
Aby sflashować ten program za pomocą PlatformIO, z PIO Home wybierz Open Project, a następnie znajdź lokalizację folderu DW1000-Anchor w repozytorium GitHub. Następnie kliknij przycisk przesyłania PIO, a automagicznie znajdzie podłączoną sondę debugowania (upewnij się, że jest podłączona i płyta jest zasilana).
Oprogramowanie sprzętowe znacznika będzie musiało zostać przesłane na inną płytkę. Następnie wynik można obejrzeć w terminalu szeregowym.
Krok 6: Idź dalej
Dalsze ulepszenia tego projektu obejmą rozwój nowej biblioteki DW1000, tablica V1.1 zmienia inne projekty, które wykorzystują tę technologię. Jeśli będzie wystarczające zainteresowanie, rozważę wyprodukowanie i sprzedaż tych płyt.
Dziękuje za przeczytanie. Zostaw wszelkie przemyślenia lub uwagi krytyczne w komentarzach poniżej i koniecznie sprawdź projekt na Prototyping Corner
Zalecana:
Wyszukiwarka lokalizacji GPS: 5 kroków
Wyszukiwarka lokalizacji GPS: Cześć wszystkim, dziś zobaczmy, jak zrobić lokalizator GPS za pomocą modułu GPS NEO-6m i arduino. Najpierw zobaczmy, co to jest GPS
System lokalizacji pamięci rezystora „Resys”: 7 kroków (ze zdjęciami)
System lokalizacji przechowywania rezystorów „Resys”: Jest to system, który ułatwia znalezienie rezystorów. Wyszukaj żądaną wartość, a odpowiednia szuflada zaświeci się. Ten system można rozszerzyć do żądanej liczby szuflad
Super Simple DIY Spot Spawacz punktowy (Pióro spawalnicze MOT Battery Tab) 10 $: 7 kroków (ze zdjęciami)
Super Simple DIY Spot Welder Pen (MOT Battery Tab Welder Pen) 10 $: Patrzyłem na wszystkie strony internetowe, które sprzedawały długopisy do zgrzewania punktowego i widziałem, jak wiele z nich zostało złożonych. Natknąłem się na zestaw, który był tańszy niż reszta, ale wciąż trochę większy, niż mogłem sobie pozwolić. Wtedy coś zauważyłem. Wszystko, co
Zegar lokalizacji Ktoś mnie kocha: 6 kroków (ze zdjęciami)
Zegar lokalizacji Ktoś mnie kocha: Z bliskimi za granicą lub poza stanem nic nie mówi, że myślę o tobie lepiej niż zawsze wiem, która jest dla nich godzina! Moi emerytowani teściowie przygotowywali się do służby na misji kościelnej w Berlinie w Niemczech, a moja żona wymyśliła g
Pióro polaryzacji: 3 kroki (ze zdjęciami)
Polarity Pen: Polarity Pen Tester - Uproszczony Jest to bardzo prosty tester polaryzacji do testów systemów samochodowych, a także do stołu elektronicznego. Układ jest bardzo prosty, podobnie jak jego obsługa. Żółta dioda LED pokazuje, czy pióro jest podłączone do sieci