Sisukord:

UWB lokaliseerimise sulg: 6 sammu
UWB lokaliseerimise sulg: 6 sammu

Video: UWB lokaliseerimise sulg: 6 sammu

Video: UWB lokaliseerimise sulg: 6 sammu
Video: Объясняем iPv6 - НАСТОЯЩИЙ интернет | РАЗБОР 2024, Juuli
Anonim
UWB lokaliseerimise sulg
UWB lokaliseerimise sulg

Ultra-WideBand Feather sisaldab Decawave DWM1000 moodulit ja ATSAMD21 ARM Cortex M0 Adafruit sulgede vormi. DWM1000 moodul on IEEE802.15.4-2011 UWB-ühilduv traadita moodul, mis on võimeline täpselt positsioneerima siseruumides ja andmesidekiirus on kõrge, mistõttu on see plaat ideaalne robootikaprojektide jaoks, kus on vaja lokaliseerimist.

Omadused:-Decawave DWM1000 täpseks jälgimiseks-ARM Cortex M0 kiirete ja võimsate rakenduste jaoks-Adafruit Feather ühilduv laia olemasoleva ökosüsteemiga-SWD liides rakenduste programmeerimiseks ja silumiseks-USB-C pistik-integreeritud LiPo akulaadija

Projekti täieliku kirjutamise ja värskenduste vaatamiseks vaadake seda projekti minu saidil Prototyping Corner aadressil prototypingcorner.io/projects/uwb-feather

Selle projekti lähteriistvara ja tarkvara on saadaval GitHubi hoidlast.

Samm: riistvara disain

Riistvara disain
Riistvara disain
Riistvara disain
Riistvara disain
Riistvara disain
Riistvara disain

Nagu sissejuhatuses mainitud, koosneb UWB Feather ATSAMD21 ARM Cortext M0+ aju jaoks ja Decawave DWM1000 moodul ülikõrge lairiba traadita ühenduse jaoks. Disain on suhteliselt lihtne ja koosneb kahest kihist PCB-l 20 BoM-elemendist. Pinout ühildub Adafruit M0 Feather'iga

LiPo laadimist haldab MCP73831 üheelemendiline, täielikult integreeritud laadimiskontroller. Aku pinget saab jälgida D9 -l, kuid juurdepääs kõikidele IO -dele on vajalik, JP1 saab selle tihvti vabastamiseks lõigata. 3,3-voldine regulatsioon on ette valmistatud AP2112K-3.3 madala väljalangemisega lineaarse regulaatoriga, pakkudes kuni 600 mA.

Pinout ühildub täies ulatuses Adafruit M0 sulgedega, et hõlbustada koodi teisaldamist. DWM1000 IO liinid on ühendatud SPI siiniga ja digitaalsete kontaktidega 2, 3 ja 4 RST, IRQ & SPI_CS jaoks (mis ei ole päise kaudu nähtavad). D13 on ühendatud ka sisseehitatud LED-iga, nagu on paljude Arduino-ühilduvate tahvlite standardvarustus.

Programmeerimist saab eelnevalt vormistada SWD päise või USB kaudu, kui see on laaditud vastava alglaaduriga, näiteks Microsofti uf2-samdx1. Lisateavet leiate püsivarast.

Märkus V1.0 kohta

Selle plaadi versioonis 1 on probleem USB-C pistikuga. Minu kasutatav jalajälg ei sisaldanud selle komponendi väljalõike paigaldusmeetodi jaoks vajalikku väljalõiget.

Versioon 1.1 sisaldab selle parandust ja lisab soovijatele mikro-b-pistiku. Vaadake allpool versiooni 1.1 kaalutlusi.

Materjalide ja riistvara versiooni 1.1 projekteerimise kaalutlused leiate projekti kirjeldusest.

2. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Kuna ainult 20 BoM -elementi ja enamik komponente ei olnud väiksemad kui 0603 (2x kristallkondensaatorid olid 0402), oli selle plaadi käsitsi kokkupanek lihtne. Mul oli JLCPCB poolt toodetud trükkplaat ja joote šabloon matt -musta värviga, ENIG pinnaviimistlusega.

5 tahvli (kuigi 10 hinnavahe puudus) ja šablooni kogumaksumus oli 68 AUD, kuid 42 dollarit sellest oli saatmine. Esmakordne tellimine JLCPCB -st ja lauad olid väga kvaliteetsed ja kena viimistlusega.

Samm: püsivara: alglaaduri programmeerimine

Püsivara: alglaaduri programmeerimine
Püsivara: alglaaduri programmeerimine
Püsivara: alglaaduri programmeerimine
Püsivara: alglaaduri programmeerimine
Püsivara: alglaaduri programmeerimine
Püsivara: alglaaduri programmeerimine

Püsivara saab laadida SWD-pistiku kaudu, kasutades programmeerijat, nagu Segger J-Link. Ülaltoodud on J-Link EDU Mini. Tahvli programmeerimise alustamiseks peame laadima alglaaduri ja seadistama tööriistaketi.

Kasutan alglaaduri vilkumiseks Atmel Stuudiot. Selleks ühendage J-Link ja avage Atmel Studio. Seejärel valige Tools> Device Programming. Valige jaotises Tööriist J-Link ja seadke seade ATSAMD21G18A, seejärel klõpsake nuppu Rakenda.

Ühendage J-Link sulgede SWD päisega ja lülitage toide kas USB kaudu või aku kaudu. Kui olete ühenduse loonud, klõpsake jaotises Seadme allkiri nuppu Loe. Seadme allkirja ja sihtpinge tekstikastid peaksid vastavalt levima. Kui nad ühendusi ei kontrolli ja proovige uuesti.

Alglaaduri välgutamiseks peame esmalt keelama BOOTPROT kaitsme. Selleks valige Kaitsmed> USER_WORD_0. NVMCTRL_BOOTPROT ja muutke väärtuseks 0 baiti. Muudatuste üleslaadimiseks klõpsake nuppu Programm.

Nüüd saame alglaadurit välgutada, valides Mälestused> Välk ja määrates alglaaduri asukoha. Veenduge, et enne programmeerimist on valitud Erase Flash ja seejärel klõpsake nuppu Program. Kui kõik läheb hästi, peaks D13 plaadil pulseerima hakkama.

Nüüd peate BOOTPROTi kaitsme seadistama alglaaduri suuruseks 8 kB. Selleks valige Kaitsmed> USER_WORD_0. NVMCTRL_BOOTPROT ja muutke väärtuseks 8192 baiti. Muudatuste üleslaadimiseks klõpsake programmi.

Nüüd, kui alglaadur on vilkunud, peaks D13 pulseerima ja kui see on USB kaudu ühendatud, peaks ilmuma massmäluseade. Siit saab tahvli programmeerimiseks üles laadida UF2 -faile.

Samm 4: püsivara: vilkuv kood PlatformIO -ga

Püsivara: vilkuv kood PlatformIO -ga
Püsivara: vilkuv kood PlatformIO -ga
Püsivara: vilkuv kood PlatformIO -ga
Püsivara: vilkuv kood PlatformIO -ga

Püsivara saab üles laadida UF2 protokolli kaudu või otse SWD liidese kaudu. Siin kasutame PlatformIO -d selle lihtsuse ja lihtsuse tõttu. Alustamiseks looge uus PIO projekt ja valige sihtlauaks Adafruit Feather M0. JD-lingi kaudu SWD kaudu üleslaadimisel seadke üleslaadimisprotokoll saidil platformio.ini, nagu allpool näidatud.

[env: adafruit_feather_m0] platvorm = atmelsam board = adafruit_feather_m0 Framework = arduino upload_protocol = jlink

Nüüd saate plaati programmeerida Arduino raamistiku lihtsusega.

Samm: püsivara: ankru vilkumine

Püsivara: ankru vilkumine
Püsivara: ankru vilkumine
Püsivara: ankru vilkumine
Püsivara: ankru vilkumine

DWM1000 mooduleid saab konfigureerida ankruteks või siltideks. Üldjuhul hoitakse ankruid teadaolevates staatilistes kohtades ja sildid kasutavad ankruid, et saada neile suhteline asukoht. DWM1000 mooduli testimiseks saate GitHubi hoidlast üles laadida DW1000-Ankru näite.

Selle programmi välgutamiseks PlatformIO abil valige PIO Home'ist Open Project ja seejärel leidke GitHubi hoidlast kausta DW1000-Anchor asukoht. Seejärel klõpsake PIO üleslaadimise nuppu ja see leiab automaatselt lisatud silumisanduri (veenduge, et see on ühendatud ja plaadil on toide).

Märgendi püsivara tuleb üles laadida teisele tahvlile. Seejärel saab tulemust vaadata jadaterminalis.

6. samm: minge kaugemale

Edasi minnes
Edasi minnes

Selle projekti edasised täiustused hõlmavad uue DW1000 raamatukogu arendamist, V1.1 plaat muudab teisi projekte, mis kasutavad seda ulatuslikku tehnoloogiat. Piisava huvi korral kaalun nende plaatide tootmist ja müümist.

Täname lugemise eest. Jätke kõik mõtted või kriitika allpool olevatesse kommentaaridesse ja vaadake kindlasti prototüüpimisnurga projekti

Soovitan: