Cuprins:
- Pasul 1: Proiectare hardware
- Pasul 2: Asamblare
- Pasul 3: Firmware: Programarea Bootloader-ului
- Pasul 4: Firmware: Cod intermitent cu PlatformIO
- Pasul 5: Firmware: intermitentul ancorei
- Pasul 6: Mergeți mai departe
Video: Pene de localizare UWB: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Ultra-WideBand Feather încorporează modulul Decawave DWM1000 și un ATSAMD21 ARM Cortex M0 în factorul de formă de pene Adafruit. Modulul DWM1000 este un modul wireless IEEE802.15.4-2011 compatibil UWB capabil de poziționare de precizie în interior și rate de date ridicate, făcând această placă perfectă pentru proiecte de robotică în care este necesară localizarea.
Caracteristici: - Decawave DWM1000 pentru urmărirea precisă - ARM Cortex M0 pentru aplicații rapide și puternice - Adafruit Feather compatibil pentru a se integra cu un ecosistem larg existent - Interfață SWD pentru aplicații de programare și depanare - Conector USB-C - Încărcător de baterie LiPo integrat
Pentru redactarea și actualizările complete ale proiectului vizualizați acest proiect pe site-ul meu Colț de prototipuri la prototypingcorner.io/projects/uwb-feather
Hardware și software sursă pentru acest proiect sunt disponibile din GitHub Repository.
Pasul 1: Proiectare hardware
Așa cum s-a menționat în introducere, UWB Feather constă dintr-un ATSAMD21 ARM Cortext M0 + pentru creier și un modul Decawave DWM1000 pentru banda ultra-largă fără fir, în factorul de formă penă. Designul este relativ simplu constând din 20 de elemente BoM pe un PCB cu 2 straturi. Pinout este compatibil cu Adafruit M0 Feather
Încărcarea LiPo este gestionată de un controler de gestionare a încărcării cu o singură celulă MCP73831. Tensiunea bateriei poate fi monitorizată pe D9, cu toate acestea este necesar accesul la toate IO, JP1 poate fi tăiat pentru a elibera acest pin. Reglarea de 3,3 volți este preformată de regulatorul liniar AP2112K-3.3 cu scădere redusă, oferind până la 600mA.
Pinout este pe deplin compatibil cu linia de pene Adafruit M0 pentru o portabilitate ușoară a codului. Liniile DWM1000 IO sunt conectate la magistrala SPI și pinii digitali 2, 3 și 4 pentru RST, IRQ și SPI_CS respectiv (care nu sunt expuși prin header). D13 este, de asemenea, conectat la LED-ul de la bord, așa cum este standard printre multe plăci compatibile Arduino.
Programarea poate fi preformată prin antetul SWD sau prin USB dacă este încărcată cu un bootloader corespunzător, cum ar fi uf2-samdx1 de la Microsoft. Consultați firmware-ul pentru mai multe.
Notă despre V1.0
Există o problemă cu conectorul USB-C pe versiunea 1 a acestei plăci. Amprenta pe care am folosit-o nu a inclus decupajul necesar pentru metoda de montare a decupajului acestei componente.
Versiunea 1.1 va include o soluție pentru acest lucru, precum și adăugarea unui conector micro-b pentru cei care îl doresc. A se vedea considerațiile versiunii 1.1 de mai jos.
Pentru considerente de proiectare privind lista de materiale și hardware versiunea 1.1, consultați scrierea proiectului.
Pasul 2: Asamblare
Cu doar 20 de articole BoM și majoritatea componentelor fiind nu mai mici de 0603 (condensatoarele de cristal 2x erau 0402), asamblarea manuală a acestei plăci a fost ușoară. Am avut șablonul PCB și lipit fabricat de JLCPCB în negru mat cu finisaj de suprafață ENIG.
Costul total pentru 5 plăci (deși 10 nu aveau nicio diferență de preț) și șablonul a fost de 68 USD AUD, cu toate acestea 42 de dolari din aceștia au fost expediați. Comanda pentru prima dată de la JLCPCB și plăci a fost de foarte bună calitate, cu finisaje frumoase.
Pasul 3: Firmware: Programarea Bootloader-ului
Firmware-ul poate fi încărcat peste conectorul SWD folosind un programator precum J-Link de la Segger. Arătat mai sus este J-Link EDU Mini. Pentru a începe programarea plăcii, trebuie să încărcăm bootloader-ul nostru, apoi să configurăm lanțul nostru de instrumente.
Voi folosi Atmel Studio pentru flash-ul bootloader-ului. Pentru aceasta, conectați J-Link și deschideți Atmel Studio. Apoi selectați Instrumente> Programare dispozitiv. Sub Instrument, selectați J-Link și setați dispozitivul la ATSAMD21G18A, apoi faceți clic pe Aplicare.
Conectați J-Link la antetul SWD cu pene și alimentați fie prin USB, fie prin baterie. Odată conectat, sub Semnătura dispozitivului, faceți clic pe Citire. Casetele de text Semnătura dispozitivului și Tensiunea țintă ar trebui să se propage corespunzător. Dacă nu verifică conexiunile și încearcă din nou.
Pentru a bloca bootloader-ul trebuie mai întâi să dezactivăm siguranța BOOTPROT. Pentru aceasta, selectați Siguranțe> USER_WORD_0. NVMCTRL_BOOTPROT și treceți la 0 octeți. Faceți clic pe Program pentru a încărca modificările.
Acum putem bloca bootloader-ul selectând Memories> Flash și setați locația bootloader-ului. Asigurați-vă că Ștergeți Flash înainte de selectarea programării și faceți clic pe Program. Dacă totul merge bine, D13 pe tablă ar trebui să înceapă să pulseze.
Acum va trebui să setați siguranța BOOTPROT la dimensiunea încărcătorului de boot de 8 KB. Pentru aceasta, selectați Siguranțe> USER_WORD_0. NVMCTRL_BOOTPROT și treceți la 8192 octeți. Faceți clic pe program pentru a încărca modificările.
Acum, când bootloader-ul a fost aprins, D13 ar trebui să fie pulsat și dacă este conectat prin USB, ar trebui să apară un dispozitiv de stocare în masă. Aici pot fi încărcate fișiere UF2 pentru programarea plăcii.
Pasul 4: Firmware: Cod intermitent cu PlatformIO
Firmware-ul poate fi încărcat prin protocolul UF2 sau direct prin interfața SWD. Aici vom folosi PlatformIO pentru ușurința și simplitatea sa. Pentru a începe, creați un nou proiect PIO și selectați Adafruit Feather M0 ca tablă țintă. Când încărcați peste SWD cu un J-Link, setați upload_protocol în platformio.ini așa cum se arată mai jos.
[env: adafruit_feather_m0] platform = atmelsam board = adafruit_feather_m0 framework = arduino upload_protocol = jlink
Acum puteți programa placa cu simplitatea cadrului Arduino.
Pasul 5: Firmware: intermitentul ancorei
Modulele DWM1000 pot fi configurate pentru a fi ancore sau etichete. În general, ancorele sunt păstrate în locații statice cunoscute, iar etichetele folosesc ancore pentru a obține o poziție relativă față de acestea. Pentru a testa modulul DWM1000 puteți încărca exemplul DW1000-Anchor din depozitul GitHub.
Pentru a bloca acest program cu PlatformIO, din PIO Home, selectați Open Project, apoi găsiți locația folderului DW1000-Anchor în depozitul GitHub. Apoi faceți clic pe butonul de încărcare PIO și va găsi automat sonda de depanare atașată (asigurați-vă că este conectată și placa este alimentată).
Firmware-ul etichetei va trebui încărcat pe o altă placă. Apoi, rezultatul poate fi vizualizat într-un terminal serial.
Pasul 6: Mergeți mai departe
Alte îmbunătățiri aduse acestui proiect vor include dezvoltarea unei noi biblioteci DW1000, placa V1.1 schimbă alte proiecte care utilizează această tehnologie. Dacă există suficient interes, voi lua în considerare producerea și vânzarea acestor plăci.
Mulțumesc pentru lectură. Lăsați orice gânduri sau critici în comentariile de mai jos și asigurați-vă că verificați proiectul din Prototyping Corner
Recomandat:
Ceas de localizare „Weasley” cu 4 mâini: 11 pași (cu imagini)
Ceas de localizare „Weasley” cu 4 mâini: Așadar, cu un Raspberry Pi care se lovea de ceva vreme, am vrut să găsesc un proiect frumos care să-mi permită să-l folosesc cel mai bine. Am dat peste acest minunat Instructable Build Your Own Weasley Location Clock de ppeters0502 și m-am gândit că
Sistem de localizare a rezistorului "Resys": 7 pași (cu imagini)
Sistem de localizare a rezistenței de stocare „Resys”: Acesta este un sistem care face mai ușoară găsirea rezistențelor dvs. Căutați la valoarea dorită și sertarul potrivit se aprinde. Acest sistem poate fi extins la numărul dorit de sertare
Faceți un site de localizare a unei cafenele: 9 pași
Creați un site de localizare a unei cafenele: în acest instructiv vă voi arăta cum să creați un site web simplu care să afișeze cafenelele din apropierea dvs., utilizând Google Maps, HTML și CSS
Prima mea aripă de pene: Convertor analog-digital: 5 pași
Prima mea aripă de pene: Convertor analog-digital: Bună ziua, colegii mei producători! Instrucțiunile de astăzi sunt despre ceva cu adevărat special. Acest dispozitiv este PRIMUL MEU FEATHERWING - urmând factorul de formă al Adafruit. Este, de asemenea, PRIMUL MEU PCB montat pe suprafață! Cea mai proeminentă utilizare a acestui scut este într-un dispozitiv pe care îl supăr
WIND - Accelerator de proiect pentru pene Adafruit: 9 pași (cu imagini)
WIND - Accelerator de proiect pentru Adafruit Feather: Am colectat încet diferitele microcontrolere și plăci de senzori Adafruit Feather disponibile de la Adafruit. Fac prototiparea și testarea foarte ușor și sunt un mare fan al aspectului plăcii. De când m-am găsit în noi