Съдържание:
- Стъпка 1: Дизайн на хардуера
- Стъпка 2: Монтаж
- Стъпка 3: Фърмуер: Програмиране на Bootloader
- Стъпка 4: Фърмуер: Мигащ код с PlatformIO
- Стъпка 5: Фърмуер: Премигване на котвата
- Стъпка 6: Отидете по -нататък
Видео: Перо за локализация на UWB: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
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 батерии
За пълното писане и актуализации на проекта вижте този проект на моя сайт Prototyping Corner на prototypingcorner.io/projects/uwb-feather
Изходният хардуер и софтуер за този проект са достъпни от хранилището на GitHub.
Стъпка 1: Дизайн на хардуера
Както бе споменато във въведението, UWB Feather се състои от ATSAMD21 ARM Cortext M0+ за мозъка и модул Decawave DWM1000 за свръхшироколентовата безжична връзка във формата на пера. Дизайнът е сравнително прост, състоящ се от 20 елемента BoM на 2-слойна печатна платка. Pinout е съвместим с Adafruit M0 Feather
Зареждането с LiPo се управлява от едноклетъчния, напълно интегриран контролер за управление на зареждането MCP73831. Напрежението на батерията може да се следи на D9, но ако е необходим достъп до всички IO, JP1 може да бъде изрязан, за да се освободи този щифт. 3.3-волтовото регулиране се формира от линейния регулатор AP2112K-3.3 с ниско отпадане, осигуряващ до 600mA.
Pinout е напълно съвместим с перата Adafruit M0 за лесна преносимост на кода. Входно -изходните линии DWM1000 са свързани към шината SPI и цифрови пинове 2, 3 и 4 за RST, IRQ и SPI_CS съответно (които не се излагат през заглавката). D13 също е свързан към вградения светодиод, както е стандартен сред много съвместими с Arduino платки.
Програмирането може да се извърши предварително чрез SWD заглавка или чрез USB, ако е заредено със съответния буутлоудър като uf2-samdx1 от Microsoft. Вижте фърмуера за повече.
Бележка за V1.0
Има проблем с конектора USB-C на версия 1 на тази платка. Отпечатъкът, който използвах, не включваше изреза, необходим за метода на монтаж на изрезката на този компонент.
Версия 1.1 ще включва поправка за това, както и добавяне на micro-b конектор за тези, които го искат. Вижте съображенията за версия 1.1 по -долу.
За съображения относно дизайна на проекта за материали и хардуер версия 1.1 вижте описанието на проекта.
Стъпка 2: Монтаж
Само с 20 артикула BoM и повечето компоненти са не по -малки от 0603 (2x кристалните кондензатори бяха 0402), ръчното сглобяване на тази платка беше лесно. Имах печатната платка и шаблона за спойка, произведен от JLCPCB в матово черно с ENIG повърхностно покритие.
Общите разходи за 5 дъски (макар че 10 нямаха разлика в цената) и шаблона бяха $ 68 AUD, но 42 $ от това бяха изпратени. При първото поръчване от JLCPCB и дъските бяха с много високо качество с хубав завършек.
Стъпка 3: Фърмуер: Програмиране на Bootloader
Фърмуерът може да се зареди през SWD конектора с помощта на програмист като J-Link от Segger. По-горе е показан J-Link EDU Mini. За да започнем да програмираме дъската, трябва да заредим нашия буутлоудър и след това да настроим нашата верига от инструменти.
Ще използвам Atmel Studio за мигане на буутлоудъра. За да направите това, включете J-Link и отворете Atmel Studio. След това изберете Инструменти> Програмиране на устройства. Под Инструмент изберете J-Link и настройте Устройството на ATSAMD21G18A, след което щракнете върху Приложи.
Свържете J-Link към SWER заглавката с пера и подайте захранване или през USB, или чрез батерията. След като се свържете, под Подпис на устройство щракнете върху Прочети. Текстовите полета „Подпис на устройството“и „Целево напрежение“трябва да се разпространяват съответно. Ако не проверят връзките и опитайте отново.
За да премигнем буутлоудъра, първо трябва да деактивираме предпазителя BOOTPROT. За да направите това, изберете Предпазители> USER_WORD_0. NVMCTRL_BOOTPROT и променете на 0 байта. Щракнете върху Програма, за да качите промените.
Сега можем да мигаме буутлоудъра, като избираме Memories> Flash и задаваме местоположението на bootloader. Уверете се, че Erase Flash е избран преди програмиране и щракнете върху Програма. Ако всичко върви добре, D13 на платката трябва да започне да пулсира.
Сега ще трябва да настроите предпазителя BOOTPROT на размера на зареждащото устройство 8kB. За да направите това, изберете Предпазители> USER_WORD_0. NVMCTRL_BOOTPROT и променете на 8192 байта. Щракнете върху програма, за да качите промените.
Сега, когато зареждащият буут е мигащ, D13 трябва да пулсира и ако е включен през USB, трябва да се появи устройство за масово съхранение. Тук могат да се качват UF2 файлове за програмиране на платката.
Стъпка 4: Фърмуер: Мигащ код с PlatformIO
Фърмуерът може да бъде качен по протокола UF2 или директно чрез SWD интерфейса. Тук ще използваме PlatformIO за неговата лекота и простота. За да започнете, създайте нов PIO проект и изберете Adafruit Feather M0 за целевата дъска. Когато качвате през SWD с J-Link, задайте upload_protocol в platformio.ini, както е показано по-долу.
[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, след което намерете местоположението на папката DW1000-Anchor в хранилището на GitHub. След това щракнете върху бутона за качване на PIO и той автоматично ще намери приложената сонда за отстраняване на грешки (уверете се, че е свързана и платката е захранена).
Фърмуерът на маркера ще трябва да бъде качен на друга дъска. Тогава резултатът може да се види в сериен терминал.
Стъпка 6: Отидете по -нататък
По -нататъшните подобрения на този проект ще включват разработване на нова библиотека DW1000, платката V1.1 променя други проекти, които използват тази технология. Ако има достатъчен интерес, ще обмисля производството и продажбата на тези дъски.
Благодаря за четенето. Оставете всякакви мисли или критики в коментарите по -долу и не забравяйте да разгледате проекта на ъгъла за прототипиране
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Звукова локализация на манекенска глава с Kinect: 9 стъпки (със снимки)
Локализираща звука глава на манекен с Kinect: Запознайте се с Маргарет, тестова манекен за система за следене на умората на водача. Наскоро тя се оттегли от задълженията си и намери пътя си до офис пространството ни и оттогава привлече вниманието на онези, които смятат, че е „страховита“. В интерес на справедливостта аз
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра