Мазмұны:

UWB локализациясы: 6 қадам
UWB локализациясы: 6 қадам

Бейне: UWB локализациясы: 6 қадам

Бейне: UWB локализациясы: 6 қадам
Бейне: Apple AirTag: КАК РАБОТАЕТ UWB? | РАЗБОР 2024, Шілде
Anonim
UWB локализациясы
UWB локализациясы

Ultra-WideBand Feather Decawave DWM1000 модулін және ATSAMD21 ARM Cortex M0-ды Adafruit қауырсын форм-факторына қосады. DWM1000 модулі-бұл IEEE802.15.4-2011 UWB үйлесімді сымсыз модуль, ол үй ішіндегі дәл орналасуды және жоғары деректерді жіберуді қамтамасыз етеді, бұл тақтаны локализация қажет болатын робототехника жобалары үшін тамаша етеді.

Ерекшеліктер:-дәл бақылауға арналған Decawave DWM1000-жылдам және қуатты қосымшалар үшін ARM Cortex M0-кең қолданыстағы экожүйемен үйлесімді Adafruit Feather-бағдарламалауға және жөндеуге арналған SWD интерфейсі-USB-C қосқышы-интеграцияланған LiPo батарея зарядтаушысы.

Жобаның толық жазылуы мен жаңартылуы үшін бұл жобаны prototypingcorner.io/projects/uwb-feather мекенжайындағы менің прототиптеу бұрышынан қараңыз.

Бұл жобаның бастапқы жабдықтары мен бағдарламалық қамтамасыз етулері GitHub репозиторийінде қол жетімді.

1 -қадам: Жабдықтың дизайны

Жабдықтардың дизайны
Жабдықтардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны
Аппараттық құралдардың дизайны

Кіріспеде айтылғандай, UWB Feather миға арналған ATSAMD21 ARM Cortext M0+ және мамық формалы фактордағы ультра кең жолақты сымсыз байланыс үшін Decawave DWM1000 модулінен тұрады. Дизайн салыстырмалы түрде қарапайым, екі қабатты ПХД-де 20 BoM элементтерінен тұрады. Pinout Adafruit M0 Feather үйлесімді

LiPo зарядтауды MCP73831 бір ұялы, толық интеграцияланған зарядты басқару контроллері басқарады. Батарея кернеуін D9 -де бақылауға болады, бірақ барлық IO -ға қол жеткізу қажет, бұл түйреуішті босату үшін JP1 -ді кесуге болады. 3,3 вольтты реттеу 600 мА дейін қамтамасыз ететін AP2112K-3.3 төмен түсетін сызықтық реттегішпен алдын ала жасалған.

Pinout кодты оңай тасымалдау үшін Adafruit M0 қауырсын желісімен толық үйлесімді. DWM1000 IO желілері SPI шинасына және RST, IRQ & SPI_CS үшін 2, 3 және 4 цифрлық түйреуіштеріне қосылады (олар тақырып арқылы көрсетілмейді). D13 сонымен қатар Arduino үйлесімді көптеген тақталардағыдай стандартты жарықдиодты шамға қосылады.

Егер Microsoft корпорациясынан uf2-samdx1 сияқты сәйкес жүктеуші жүктелген болса, бағдарламалауды SWD тақырыбы бойынша немесе USB арқылы алдын ала жасауға болады. Қосымша ақпарат алу үшін микробағдарламаны қараңыз.

V1.0 туралы ескерту

Бұл тақтаның 1-нұсқасындағы USB-C қосқышында ақау бар. Мен қолданған ізде осы компоненттің қиып алу әдісіне қажетті кесу жоқ.

1.1 нұсқасында бұл үшін түзету, сондай-ақ қалайтындар үшін micro-b қосқышы қосылады. Төмендегі 1.1 нұсқасын қарастырыңыз.

Bill of Materials and Hardware Version 1.1 нұсқасы үшін жобалауға қатысты мәселелер қарастырылады.

2 -қадам: құрастыру

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

БМ -нің тек 20 элементі мен компоненттерінің көпшілігі 0603 (2х кристалды конденсаторлар 0402 болды) кіші болмайтындықтан, бұл тақтаны қолмен жинау оңай болды. Менде ENIG беткі қабаты бар күңгірт қара түсті JLCPCB шығарған ПХД мен дәнекерлік трафарет болды.

5 тақтаға (10 -да баға айырмашылығы жоқ) және трафареттің жалпы құны 68 AUD болды, бірақ оның 42 доллары жеткізілім болды. JLCPCB мен тақталарға бірінші рет тапсырыс беру өте сапалы және өте жақсы аяқталды.

3 -қадам: микробағдарлама: жүктеушіні бағдарламалау

Микробағдарлама: жүктеушіні бағдарламалау
Микробағдарлама: жүктеушіні бағдарламалау
Микробағдарлама: жүктеушіні бағдарламалау
Микробағдарлама: жүктеушіні бағдарламалау
Микробағдарлама: жүктеушіні бағдарламалау
Микробағдарлама: жүктеушіні бағдарламалау

Микробағдарламаны SWD қосқышы арқылы Segger-ден J-Link сияқты бағдарламашының көмегімен жүктеуге болады. Жоғарыда J-Link EDU Mini көрсетілген. Тақтаны бағдарламалауды бастау үшін бізге жүктеушіні жүктеу керек, содан кейін құралдар тізбегін орнату керек.

Мен жүктеушіні жыпылықтау үшін Atmel Studio қолданамын. Ол үшін J-Link қосыңыз және Atmel Studio ашыңыз. Содан кейін Құралдар> Құрылғыны бағдарламалау таңдаңыз. Құрал астында J-сілтемесін таңдап, құрылғыны ATSAMD21G18A күйіне орнатыңыз, содан кейін Қолдану түймесін басыңыз.

J-сілтемесін SWD қауырсынды қосқышына қосыңыз және USB арқылы немесе батарея арқылы қосыңыз. Қосылғаннан кейін, Құрылғы қолтаңбасының астындағы Оқу түймесін басыңыз. Құрылғының қолтаңбасы мен мақсатты кернеудің мәтіндік жолақтары сәйкес таралуы керек. Егер олар қосылымдарды тексермесе және қайталап көріңіз.

Жүктеушіні жарқылдау үшін алдымен BOOTPROT сақтандырғышын өшіру керек. Ол үшін сақтандырғыштар> USER_WORD_0. NVMCTRL_BOOTPROT тармағын таңдап, 0 байтқа өзгертіңіз. Өзгертулерді жүктеу үшін Бағдарлама түймешігін басыңыз.

Енді біз Memories> Flash таңдау арқылы жүктеушіні жыпылықтай аламыз және жүктеушінің орналасуын орнатамыз. Бағдарламалау таңдалғанға дейін Erase Flash өшірулі екеніне көз жеткізіңіз және Бағдарлама түймешігін басыңыз. Егер бәрі жақсы болса, D13 тақтасында импульс басталуы керек.

Енді сізге BOOTPROT сақтандырғышын 8 кБ жүктеуші өлшеміне орнату қажет. Ол үшін сақтандырғыштар> USER_WORD_0. NVMCTRL_BOOTPROT тармағын таңдап, 8192 байтқа өзгертіңіз. Өзгертулерді жүктеу үшін бағдарламаны басыңыз.

Енді жүктеуші жүктелген кезде D13 пульсациялануы керек, ал егер USB арқылы қосылған болса, онда жинақтау құрылғысы пайда болуы керек. Бұл жерде тақтаны бағдарламалау үшін UF2 файлдарын жүктеуге болады.

4 -қадам: микробағдарлама: PlatformIO көмегімен жыпылықтайтын код

Микробағдарлама: PlatformIO көмегімен жыпылықтайтын код
Микробағдарлама: PlatformIO көмегімен жыпылықтайтын код
Микробағдарлама: PlatformIO көмегімен жыпылықтайтын код
Микробағдарлама: PlatformIO көмегімен жыпылықтайтын код

Микробағдарламаны UF2 протоколы бойынша немесе тікелей SWD интерфейсі арқылы жүктеуге болады. Мұнда біз PlatformIO -ды оның қарапайымдылығы мен қарапайымдылығы үшін қолданатын боламыз. Жұмысты бастау үшін жаңа PIO жобасын жасаңыз және мақсатты тақта ретінде Adafruit Feather M0 таңдаңыз. J-Link көмегімен SWD арқылы жүктеу кезінде platformio.ini-де upload_protocol төменде көрсетілгендей орнатыңыз.

[env: adafruit_feather_m0] платформа = atmelsam board = adafruit_feather_m0 framework = arduino upload_protocol = jlink

Енді сіз тақтаны Arduino құрылымының қарапайымдылығымен бағдарламалай аласыз.

5 -қадам: микробағдарлама: якорьдің жыпылықтауы

Микробағдарлама: якорьдің жыпылықтауы
Микробағдарлама: якорьдің жыпылықтауы
Микробағдарлама: якорьдің жыпылықтауы
Микробағдарлама: якорьдің жыпылықтауы

DWM1000 модульдері якорь немесе тегтер ретінде конфигурациялануы мүмкін. Әдетте якорь белгілі статикалық жерлерде сақталады және тегтер оларға қатысты орынды алу үшін якорьді қолданады. DWM1000 модулін тексеру үшін сіз DW1000-Anchor мысалын GitHub репозиторийінен жүктей аласыз.

Бұл бағдарламаны PlatformIO-мен жыпылықтау үшін, PIO Home-дан Open Project таңдаңыз, содан кейін GitHub репозиторийінде DW1000-Anchor қалтасының орнын табыңыз. Содан кейін PIO жүктеу түймесін басыңыз, сонда ол автоматты түрде бекітілген жөндеуді табады (оның қосылғанына және тақтаға қосылғанына көз жеткізіңіз).

Тег микробағдарламасы басқа тақтаға жүктелуі керек. Содан кейін нәтижені сериялық терминалда көруге болады.

6 -қадам: әрі қарай жүру

Әрі қарай жүру
Әрі қарай жүру

Бұл жобаны одан әрі жетілдіру жаңа DW1000 кітапханасын әзірлеуді қамтиды, V1.1 тақтасы осы технологияны қолданатын басқа жобаларды өзгертеді. Егер қызығушылық жеткілікті болса, мен бұл тақталарды өндіру мен сатуды қарастырамын.

Оқығаныңыз үшін рахмет. Төмендегі түсініктемелерде кез келген ойлар мен сындарды қалдырыңыз және прототиптік бұрыш бойынша жобаны міндетті түрде тексеріңіз

Ұсынылған: