Talaan ng mga Nilalaman:

UWB Localization Feather: 6 na Hakbang
UWB Localization Feather: 6 na Hakbang

Video: UWB Localization Feather: 6 na Hakbang

Video: UWB Localization Feather: 6 na Hakbang
Video: Estimote Beacons with UWB can now automatically create floor plans 2024, Hulyo
Anonim
Balahibo ng Lokalisasyon ng UWB
Balahibo ng Lokalisasyon ng UWB

Ang Ultra-WideBand Feather ay isinasama ang module ng Decawave DWM1000 at isang ATSAMD21 ARM Cortex M0 sa form na kadahilanan ng feather ng Adafruit. Ang module ng DWM1000 ay isang IEEE802.15.4-2011 UWB na sumusunod na wireless module na may kakayahang eksaktong posisyon sa panloob na pagpoposisyon at mataas na mga rate ng data, na ginagawang perpekto ang board na ito para sa mga proyekto ng robotics kung saan kinakailangan ang lokalisasyon.

Mga Tampok: - Decawave DWM1000 para sa katumpakan na pagsubaybay- ARM Cortex M0 para sa mabilis at malakas na mga aplikasyon– Adafruit Feather na katugmang upang isama sa isang malawak na mayroon nang ecosystem– SWD interface para sa mga programa sa pag-program at pag-debug - Konektor ng USB-C - Intergrated LiPo na charger ng baterya

Para sa buong pagsulat ng proyekto at mga pag-update tingnan ang proyektong ito sa aking site na Prototyping Corner sa prototypingcorner.io/projects/uwb-feather

Ang pinagmulang hardware at software para sa proyektong ito ay magagamit mula sa GitHub Repository.

Hakbang 1: Disenyo ng Hardware

Disenyo ng Hardware
Disenyo ng Hardware
Disenyo ng Hardware
Disenyo ng Hardware
Disenyo ng Hardware
Disenyo ng Hardware

Tulad ng nabanggit sa pagpapakilala, ang UWB Feather ay binubuo ng isang ATSAMD21 ARM Cortext M0 + para sa talino at isang Decawave DWM1000 module para sa ultra-wide band wireless, sa feather form-factor. Ang disenyo ay medyo simple na binubuo ng 20 mga item ng BoM sa isang 2-layer PCB. Ang pinout ay tugma ang Adafruit M0 Feather

Ang pagsingil ng LiPo ay pinangangasiwaan ng solong-cell ng MCP73831, ganap na isinama na kontrol sa pamamahala ng pagsingil. Ang boltahe ng baterya ay maaaring subaybayan sa D9, subalit ang pag-access sa lahat ng IO ay kinakailangan, maaaring maputol ang JP1 upang palayain ang pin na ito. Ang pagsasaayos ng 3.3 volt ay inayos ng AP2112K-3.3 mababang dropout linear regulator, na nagbibigay ng hanggang sa 600mA.

Ang pinout ay ganap na katugma sa linya ng feather ng Adafruit M0 para sa madaling paglilipat ng code. Ang mga linya ng DWM1000 IO ay konektado sa SPI bus at digital pin 2, 3 & 4 para sa RST, IRQ & SPI_CS nang may paggalang (na hindi nakalantad sa pamamagitan ng header). Ang D13 ay konektado din sa onboard LED, tulad ng pamantayan sa maraming mga board na katugmang Arduino.

Ang programa ay maaaring i-preform sa SWD header o sa pamamagitan ng USB kung na-load sa isang kaukulang bootloader tulad ng uf2-samdx1 mula sa Microsoft. Tingnan ang firmware para sa higit pa.

Tandaan sa V1.0

Mayroong isang isyu sa konektor ng USB-C sa bersyon 1 ng board na ito. Ang footprint na ginamit ko ay hindi kasama ang cutout na kinakailangan para sa cutout mounting na pamamaraan ng sangkap na ito.

Ang bersyon 1.1 ay magsasama ng isang pag-aayos para dito pati na rin ang pagdaragdag ng isang micro-b na konektor para sa mga nais ito. Tingnan ang mga pagsasaalang-alang sa bersyon 1.1 sa ibaba.

Para sa Bill of Materials and Hardware Version 1.1 mga pagsasaalang-alang sa disenyo tingnan ang pagsulat ng proyekto.

Hakbang 2: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Sa pamamagitan lamang ng 20 mga item ng BoM at karamihan sa mga bahagi ay hindi mas maliit sa 0603 (ang 2x kristal na capacitor ay 0402), ang pagpupulong ng kamay ng board na ito ay madali. Mayroon akong PCB at solder stencil na ginawa ng JLCPCB sa matte black na may ENIG ibabaw na natapos.

Kabuuang gastos para sa 5 board (bagaman ang 10 ay walang pagkakaiba sa presyo) at ang stencil ay $ 68 AUD, subalit ang $ 42 sa pagpapadala. Ang unang pagkakataon sa pag-order mula sa JLCPCB at mga board ay may napakataas na kalidad na may magandang tapusin.

Hakbang 3: Firmware: Programming ang Bootloader

Firmware: Programming ang Bootloader
Firmware: Programming ang Bootloader
Firmware: Programming ang Bootloader
Firmware: Programming ang Bootloader
Firmware: Programming ang Bootloader
Firmware: Programming ang Bootloader

Ang firmware ay maaaring mai-load sa pamamagitan ng konektor ng SWD gamit ang isang programmer tulad ng J-Link mula sa Segger. Ipinapakita sa itaas ay ang J-Link EDU Mini. Upang simulang i-program ang board, kailangan naming i-load ang aming bootloader pagkatapos ay i-set up ang aming chain ng tool.

Gagamitin ko ang Atmel Studio para sa pag-flash ng bootloader. Upang magawa ito, isaksak ang J-Link at buksan ang Atmel Studio. Pagkatapos ay piliin ang Mga Tool> Programming ng Device. Sa ilalim ng Tool piliin ang J-Link at itakda ang Device sa ATSAMD21G18A pagkatapos ay i-click ang Ilapat.

Ikonekta ang J-Link sa feather SWD header at maglapat ng kapangyarihan alinman sa USB o sa pamamagitan ng baterya. Kapag nakakonekta, sa ilalim ng Pirma ng Device i-click ang Basahin. Ang mga kahon ng teksto ng Lagda ng Device at Target na Boltahe ay dapat na palaganapin nang naaayon. Kung hindi nila susuriin ang mga koneksyon at subukang muli.

Upang mai-flash ang bootloader kailangan muna naming huwag paganahin ang BOOTPROT fuse. Upang gawin ito piliin ang Mga piyus> USER_WORD_0. NVMCTRL_BOOTPROT at baguhin sa 0 Bytes. I-click ang Program upang mai-upload ang mga pagbabago.

Ngayon ay maaari nating i-flash ang bootloader sa pamamagitan ng pagpili ng Mga Alaala> Flash at itakda ang lokasyon ng bootloader. Tiyaking Burahin ang Flash bago mapili ang programa at i-click ang Program. Kung maayos ang lahat D13 sa pisara ay dapat magsimulang mag-pulso.

Ngayon ay kakailanganin mong itakda ang BOOTPROT fuse sa laki ng 8kB bootloader. Upang gawin ito piliin ang Mga piyus> USER_WORD_0. NVMCTRL_BOOTPROT at baguhin sa 8192 Bytes. Mag-click sa programa upang mai-upload ang mga pagbabago.

Ngayon na ang bootloader ay na-flash ang D13 ay dapat na pulsing at kung naka-plug in sa paglipas ng USB, dapat lumitaw ang isang mass storage device. Dito maaaring mai-upload ang mga file na UF2 para sa pagprograma sa board.

Hakbang 4: Firmware: Flashing Code Sa PlatformIO

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

Maaaring mai-upload ang firmware gamit ang UF2 protocol o direkta sa pamamagitan ng interface ng SWD. Dito ay gagamitin namin ang PlatformIO para sa kadalian at pagiging simple nito. Upang makapagsimula lumikha ng isang bagong proyekto ng PIO at piliin ang Adafruit Feather M0 bilang target board. Kapag ang pag-upload sa SWD gamit ang isang J-Link ay itinakda ang upload_protocol sa platformio.ini tulad ng ipinakita sa ibaba.

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

Ngayon ay maaari mo nang mai-program ang board gamit ang pagiging simple ng balangkas ng Arduino.

Hakbang 5: Firmware: Flashing the Anchor

Firmware: Flashing the Anchor
Firmware: Flashing the Anchor
Firmware: Flashing the Anchor
Firmware: Flashing the Anchor

Ang mga module ng DWM1000 ay maaaring mai-configure upang maging mga anchor o mga tag. Pangkalahatan ang mga anchor ay itinatago sa mga kilalang static na lokasyon at ang mga tag ay gumagamit ng mga angkla upang makakuha ng isang kamag-anak na posisyon sa kanila. Upang subukan ang module ng DWM1000 maaari mong i-upload ang halimbawa ng DW1000-Anchor mula sa GitHub repository.

Upang mai-flash ang program na ito sa PlatformIO, mula sa PIO Home, piliin ang Buksan ang Proyekto pagkatapos ay hanapin ang lokasyon ng folder na DW1000-Anchor sa repository ng GitHub. Pagkatapos i-click ang pindutan ng pag-upload ng PIO at awtomatiko nitong hahanapin ang naka-attach na probe ng debug (tiyaking nakakonekta ito at pinapagana ang board).

Kailangang mai-upload ang firmware ng tag sa ibang board. Pagkatapos ang resulta ay maaaring matingnan sa isang serial terminal.

Hakbang 6: Pupunta Pa

Pupunta pa sa Malayo
Pupunta pa sa Malayo

Ang karagdagang mga pagpapabuti sa proyektong ito ay isasama ang pag-unlad sa isang bagong silid-aklatan ng DW1000, binabago ng V1.1 board ang iba pang mga proyekto na gumagamit ng sumasaklaw na teknolohiyang ito. Kung may sapat na interes isasaalang-alang ko ang paggawa at pagbebenta ng mga board na ito.

Salamat sa pagbabasa. Iwanan ang anumang mga saloobin o pagpuna sa mga komento sa ibaba at tiyaking suriin ang proyekto sa Prototyping Corner

Inirerekumendang: