Агуулгын хүснэгт:
- Алхам 1: Тоног төхөөрөмжийн дизайн
- Алхам 2: угсрах
- Алхам 3: Firmware: Ачаалагчийг програмчлах
- Алхам 4: Firmware: PlatformIO -той код анивчдаг
- Алхам 5: Firmware: Зангууг анивчих
- Алхам 6: Цаашаа явах
Видео: UWB -ийн нутагшуулах өд: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
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 дээрх Prototyping Corner сайтаас үзээрэй.
Энэхүү төслийн эх техник хангамж, програм хангамжийг GitHub репозитороос авах боломжтой.
Алхам 1: Тоног төхөөрөмжийн дизайн
Танилцуулгад дурдсанчлан, UWB Feather нь тархинд зориулсан ATSAMD21 ARM Cortext M0+ ба хэт өргөн зурвасын утасгүй холболтод зориулагдсан Decawave DWM1000 модулиас бүрддэг. Загвар нь харьцангуй энгийн бөгөөд 2 давхар ПХБ-ийн 20 ширхэг Монголбанкнаас бүрдэнэ. Pinout нь Adafruit M0 Feather -тэй нийцдэг
LiPo цэнэглэлтийг цэнэгийн удирдлагын бүрэн нэгдсэн MCP73831 хянагч удирддаг. Батерейны хүчдэлийг D9 дээр хянах боломжтой боловч бүх IO руу нэвтрэх шаардлагатай бол энэ зүүг суллахын тулд JP1 -ийг багасгаж болно. 3.3 вольтын зохицуулалтыг 600 мА хүртэл хангах AP2112K-3.3 бага уналтын шугаман зохицуулагчаар урьдчилан боловсруулсан болно.
Pinout нь кодыг хялбархан зөөвөрлөх Adafruit M0 өдтэй бүрэн нийцдэг. DWM1000 IO шугамууд нь RST, IRQ & SPI_CS -ийн SPI автобус, дижитал тээглүүр 2, 3, 4 -тэй холбогддог (толгойгоор дамждаггүй). D13 нь Arduino-тэй нийцтэй олон самбаруудын нэгэн адил самбар дээрх LED-тэй холбогддог.
Microsoft-аас uf2-samdx1 гэх мэт харгалзах ачаалагчийг ачаалсан тохиолдолд програмчлалыг SWD толгой дээр эсвэл USB-ээр урьдчилан хийх боломжтой. Дэлгэрэнгүй мэдээллийг firmware -с үзнэ үү.
V1.0 дээрх тэмдэглэл
Энэхүү самбарын 1-р хувилбар дээр USB-C холбогчтой холбоотой асуудал гардаг. Миний ашигласан хөлийн мөрөнд энэ бүрэлдэхүүн хэсгийн хайчлах бэхэлгээний аргад шаардлагатай хайчлалт ороогүй болно.
1.1 хувилбар нь үүнийг засахаас гадна үүнийг хүсч буй хүмүүст зориулсан micro-b холбогчийг оруулах болно. 1.1 хувилбарын анхаарлыг доороос үзнэ үү.
Билл Бэлтгэл ба Тоног Төхөөрөмжийн Хувилбар 1.1 хувилбарын хувьд дизайны онцлогийг харгалзан төслийн бичвэрийг үзнэ үү.
Алхам 2: угсрах
Зөвхөн 20 БМ -ийн эд анги, ихэнх бүрэлдэхүүн хэсгүүд нь 0603 -аас багагүй (2х болор конденсатор нь 0402 байсан) энэ хавтанг гараар угсрах нь хялбар байсан. Би ENLC гадаргуутай, царцсан хар өнгийн JLCPCB үйлдвэрлэсэн ПХБ ба гагнуурын стенилтэй байсан.
5 самбар (10 нь үнийн зөрүүгүй байсан) болон стенилийн нийт өртөг 68 AUD байсан боловч үүний 42 доллар нь хүргэлт байв. JLCPCB болон самбараас анх удаа захиалга өгөх нь маш өндөр чанартай, гоёмсог өнгөлгөөтэй байв.
Алхам 3: Firmware: Ачаалагчийг програмчлах
Segger-ийн J-Link гэх мэт програмист ашиглан програмыг SWD холбогч дээр ачаалж болно. J-Link EDU Mini-ийг дээр харуулав. Самбарыг програмчилж эхлэхийн тулд бид ачаалагчаа ачаалж, багажны сүлжээгээ тохируулах хэрэгтэй.
Би ачаалагчийг асаахын тулд Atmel Studio ашиглах болно. Үүнийг хийхийн тулд J-Link-ийг холбоод Atmel Studio-г нээнэ үү. Дараа нь Tools> Device Programming -ийг сонгоно уу. Хэрэгсэл дотроос J-Link-ийг сонгоод Device-ийг ATSAMD21G18A гэж тохируулаад Apply дээр дарна уу.
J-Link-ийг өдний SWD толгой руу холбож, USB-ээр эсвэл батерейгаар дамжуулан хүчийг ашиглаарай. Холбогдсоны дараа Төхөөрөмжийн гарын үсгийн доор Унших дээр дарна уу. Төхөөрөмжийн гарын үсэг болон зорилтот хүчдэлийн текст хайрцгийг зохих ёсоор түгээх ёстой. Хэрэв тэд холболтоо шалгаагүй бол дахин оролдоно уу.
Ачаалагчийг асаахын тулд бид эхлээд BOOTPROT гал хамгаалагчийг идэвхгүй болгох хэрэгтэй. Үүнийг хийхийн тулд Fuses> USER_WORD_0. NVMCTRL_BOOTPROT -ийг сонгоод 0 байт болгон өөрчилнө үү. Өөрчлөлтийг оруулахын тулд Програм дээр дарна уу.
Одоо бид Memories> Flash -ийг сонгоод bootloader -ийг асааж, ачаалагчийн байршлыг тохируулж болно. Програмыг сонгохын өмнө Erase Flash -ийг шалгаад Програм дээр дарна уу. Хэрэв бүх зүйл сайн бол D13 самбар дээр импульс хийж эхлэх ёстой.
Одоо та BOOTPROT гал хамгаалагчийг 8 кБ ачаалагч ачаалагчийн хэмжээгээр тохируулах хэрэгтэй болно. Үүнийг хийхийн тулд Fuses> USER_WORD_0. NVMCTRL_BOOTPROT -ийг сонгоод 8192 байт болгон өөрчилнө үү. Өөрчлөлтийг оруулахын тулд програмыг дарна уу.
Ачаалагч дуудагдсаны дараа D13 нь импульс байх ёстой бөгөөд хэрэв USB -ээр холбогдсон бол их хэмжээний хадгалах төхөөрөмж гарч ирэх ёстой. Энд UF2 файлуудыг самбарыг програмчлах зорилгоор байршуулж болно.
Алхам 4: Firmware: PlatformIO -той код анивчдаг
Firmware -ийг UF2 протоколоор эсвэл шууд SWD интерфэйсээр дамжуулан байршуулж болно. Энд бид PlatformIO -ийг хялбар, энгийн байдлаар ашиглах болно. Эхлэхийн тулд шинэ PIO төсөл үүсгэж, зорилтот самбар болгон Adafruit Feather M0 -ийг сонгоно уу. JW Link ашиглан SWD-ээр байршуулахдаа platformio.ini-д upload_protocol-ийг доор үзүүлсэн шиг тохируулна уу.
[env: adafruit_feather_m0] платформ = atmelsam board = adafruit_feather_m0 framework = arduino upload_protocol = jlink
Одоо та самбарыг Arduino хүрээний энгийн байдлаар програмчилж болно.
Алхам 5: Firmware: Зангууг анивчих
DWM1000 модулийг зангуу эсвэл шошго хэлбэрээр тохируулж болно. Ихэвчлэн зангуу нь мэдэгдэж буй статик байршилд хадгалагддаг бөгөөд хаягууд нь харьцангуй байрлалыг олж авахын тулд зангуу ашигладаг. DWM1000 модулийг туршихын тулд та DW1000-Anchor-ийн жишээг GitHub репозитороос байршуулж болно.
Энэ програмыг PlatformIO-ээр асаахын тулд PIO Home-ээс Нээлттэй төслийг сонгоод GitHub репозитороос DW1000-Anchor фолдерын байршлыг олоорой. Дараа нь PIO байршуулах товчлуур дээр дарвал энэ нь хавсаргасан дибаг хийх датчикийг автоматаар олох болно (холбогдсон, самбар асаалттай байгаа эсэхийг шалгаарай).
Шошгоны програмыг өөр самбар дээр байршуулах шаардлагатай болно. Дараа нь үр дүнг цуваа терминал дээр үзэх боломжтой.
Алхам 6: Цаашаа явах
Энэхүү төслийн цаашдын сайжруулалтууд нь шинэ DW1000 номын сангийн хөгжүүлэлтийг багтаана, V1.1 самбар нь энэхүү өргөн хүрээний технологийг ашигладаг бусад төслүүдийг өөрчилнө. Хэрэв хангалттай сонирхол байгаа бол би эдгээр хавтанг үйлдвэрлэх, борлуулах талаар бодож үзэх болно.
Уншсанд баярлалаа. Доорх сэтгэгдлүүд дээр ямар нэгэн бодол, шүүмжлэлийг үлдээж, загварчлах булангийн төслийг заавал үзээрэй
Зөвлөмж болгож буй:
Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт): Сайн байна уу! Энэхүү зааварчилгаа нь миний мотоциклийн дуулга дээр суурилуулах зориулалттай HUD (Heads-Up Display) платформыг хэрхэн бүтээж, бүтээсэн тухай түүх юм. Үүнийг " газрын зураг " уралдааны хүрээнд бичсэн болно. Харамсалтай нь би үүнийг бүрэн дуусгаж чадаагүй
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
Гурван чанга яригч хэлхээ -- Алхам алхмаар зааварчилгаа: 3 алхам
Гурван чанга яригч хэлхээ || Алхам алхмаар зааварчилгаа: Чанга яригч хэлхээ нь хүрээлэн буй орчноос хүлээн авсан аудио дохиог бэхжүүлж, чанга яригч үйлдвэрлэдэг газраас чанга яригч руу илгээдэг
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно