Мазмуну:

UWB локалдаштыруу жүнү: 6 кадам
UWB локалдаштыруу жүнү: 6 кадам

Video: UWB локалдаштыруу жүнү: 6 кадам

Video: UWB локалдаштыруу жүнү: 6 кадам
Video: 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 батарея заряддагыч түзүлүшү.

Толук проект жазуу жана жаңыртуу үчүн бул долбоорду менин сайтымдагы Prototyping Cornerде караңыз prototypingcorner.io/projects/uwb-feather

Бул долбоор үчүн булак аппараттык жана программалык камсыздоо GitHub репозиторийинен жеткиликтүү.

1 -кадам: Аппараттык дизайн

Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн

Киришүүдө айтылгандай, UWB Feather мээ үчүн ATSAMD21 ARM Cortext M0+ жана канаттуулардын форма-факторунда, өтө кең диапазондогу зымсыз үчүн Decawave DWM1000 модулунан турат. Дизайн салыштырмалуу жөнөкөй, 2 катмарлуу PCBдеги 20 BoM пунктунан турат. Pinout Adafruit M0 Feather менен шайкеш келет

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

Pinout кодду оңой алып жүрүү үчүн Adafruit M0 жүн сызыгы менен толук шайкеш келет. DWM1000 IO линиялары SPI автобусуна жана RST, IRQ & SPI_CS үчүн 2, 3 & 4 санарип казыктарына туташкан (алар баш аркылуу ачыкталбайт). D13 дагы Arduino менен шайкеш келген көптөгөн такталар арасындагыдай эле, борттогу LEDге туташкан.

Программалоо SWD аталышынын үстүнөн же USB аркылуу Microsoft тарабынан uf2-samdx1 сыяктуу тиешелүү жүктөгүч менен жүктөлсө, алдын ала түзүлүшү мүмкүн. Көбүрөөк маалымат алуу үчүн камтылган программаны караңыз.

V1.0 боюнча эскертүү

Бул тактанын 1-версиясында USB-C туташтыргычы менен көйгөй бар. Мен колдонгон изге бул компоненттин кесүү монтаждоо ыкмасы үчүн керектүү кесүү киргизилген жок.

Version 1.1 бул үчүн оңдоону, ошондой эле аны каалагандар үчүн micro-b коннекторун кошууну камтыйт. Төмөндөгү 1.1 версиясын караңыз.

Материалдар жана жабдыктар версиясынын 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 студиясын жүктөгүчтү күйгүзүү үчүн колдоном. Ал үчүн J-Linkти туташтырып, Atmel студиясын ачыңыз. Андан кийин Tools> Device Programming тандаңыз. Куралдын астынан J-Linkти тандап, Түзмөктү ATSAMD21G18A деп коюңуз, анан Колдонуу баскычын басыңыз.

J-Linkти мамык SWD башына туташтырыңыз жана USB аркылуу же батарея аркылуу кубаттаңыз. Туташкандан кийин, Түзмөктүн Колтамгасынын астындагы Окууну чыкылдатыңыз. Түзмөктүн кол тамгасы жана максаттуу чыңалуу текст кутучалары ошого жараша таралышы керек. Эгерде алар туташууларды текшеришпесе, кайра аракет кылыңыз.

Жүктөгүчтү күйгүзүү үчүн, биз адегенде BOOTPROT сактандыруучусун өчүрүшүбүз керек. Бул үчүн Сактандыргычтар> USER_WORD_0. NVMCTRL_BOOTPROT тандап, 0 Байтка өзгөртүңүз. Өзгөртүүлөрдү жүктөө үчүн Программаны чыкылдатыңыз.

Эми биз Memories> Flash тандап жүктөгүчтү жаркылдата алабыз жана жүктөгүчтүн жайгашкан жерин орното алабыз. Программалоо тандалганга чейин Erase Flashти камсыз кылыңыз жана Программаны чыкылдатыңыз. Эгерде баары ойдогудай болсо, D13 тактасында импульсту баштоо керек.

Эми сиз BOOTPROT сактагычын 8kB жүктөгүчтүн өлчөмүнө орнотушуңуз керек. Бул үчүн Фузиялар> 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 модулун сыноо үчүн, GitHub репозиторийинен DW1000-Anchor мисалын жүктөй аласыз.

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

Теги камтылган программаны башка тактага жүктөө керек болот. Андан кийин натыйжаны сериялык терминалда көрүүгө болот.

6 -кадам: Мындан ары

Мындан ары
Мындан ары

Бул долбоорду андан ары өркүндөтүү жаңы DW1000 китепканасын өнүктүрүүнү камтыйт, V1.1 тактасы бул технологияны колдонгон башка долбоорлорду өзгөртөт. Эгерде кызыкчылык жетиштүү болсо, анда мен бул такталарды өндүрүүнү жана сатууну карап көрөм.

Окуу үчүн рахмат. Төмөндөгү комментарийлерге ар кандай ойлорду же сын -пикирлерди калтырыңыз жана Прототиптөөчү бурчтагы долбоорду текшерүүнү унутпаңыз

Сунушталууда: