İçindekiler:

UWB Yerelleştirme Geçişi: 6 Adım
UWB Yerelleştirme Geçişi: 6 Adım

Video: UWB Yerelleştirme Geçişi: 6 Adım

Video: UWB Yerelleştirme Geçişi: 6 Adım
Video: UWB Forklift Yaya Yakınlık Uyarısı,Forklift Uyarı Sistemi,Forklift Kazalarını Durdurun,Tedarikçi 2024, Kasım
Anonim
UWB Yerelleştirme Tüy
UWB Yerelleştirme Tüy

Ultra-WideBand Feather, Decawave DWM1000 modülünü ve bir ATSAMD21 ARM Cortex M0'ı Adafruit tüy form faktörüne dahil eder. DWM1000 modülü, hassas iç mekan konumlandırma ve yüksek veri hızlarına sahip IEEE802.15.4-2011 UWB uyumlu bir kablosuz modüldür ve bu kartı yerelleştirmenin gerekli olduğu robotik projeler için mükemmel hale getirir.

Özellikler:– Hassas izleme için Decawave DWM1000– Hızlı ve güçlü uygulamalar için ARM Cortex M0– Mevcut geniş bir ekosistemle entegrasyon için Adafruit Feather uyumlu– Programlama ve hata ayıklama uygulamaları için SWD arabirimi– USB-C konektör– Entegre LiPo pil şarj cihazı

Tam proje yazımı ve güncellemeler için bu projeyi sitemdeki Prototyping Corner'da prototypingcorner.io/projects/uwb-feather'da görüntüleyin

Bu proje için kaynak donanım ve yazılım GitHub Deposu'ndan edinilebilir.

Adım 1: Donanım Tasarımı

Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı

Girişte belirtildiği gibi, UWB Feather, beyinler için bir ATSAMD21 ARM Cortext M0+ ve tüy form faktöründe ultra geniş bant kablosuz için bir Decawave DWM1000 modülünden oluşur. 2 katmanlı bir PCB üzerinde 20 BoM öğesinden oluşan tasarım nispeten basittir. Pinout, Adafruit M0 Feather uyumludur

LiPo şarjı, MCP73831 tek hücreli, tam entegre şarj yönetimi denetleyicisi tarafından gerçekleştirilir. Akü voltajı D9'da izlenebilir, ancak tüm IO'ya erişim gereklidir, bu pimi serbest bırakmak için JP1 kesilebilir. 3,3 volt düzenleme, AP2112K-3.3 düşük çıkışlı lineer regülatör tarafından önceden oluşturulur ve 600mA'ya kadar sağlar.

Pinout, kolay kod taşınabilirliği için Adafruit M0 tüy hattı ile tamamen uyumludur. DWM1000 IO hatları, sırasıyla RST, IRQ ve SPI_CS için SPI veri yoluna ve dijital pinler 2, 3 ve 4'e bağlanır (bunlar başlık aracılığıyla gösterilmez). D13, Arduino uyumlu birçok kartta standart olduğu gibi yerleşik LED'e de bağlanır.

Programlama, Microsoft'tan uf2-samdx1 gibi ilgili bir önyükleyici ile yüklenmişse, SWD başlığı üzerinden veya USB üzerinden önceden oluşturulabilir. Daha fazlası için bellenime bakın.

V1.0 ile ilgili not

Bu kartın 1. sürümündeki USB-C konektörüyle ilgili bir sorun var. Kullandığım ayak izi, bu bileşenin oyuk montaj yöntemi için gerekli olan oyukları içermiyordu.

Sürüm 1.1, bunun için bir düzeltmenin yanı sıra, isteyenler için bir mikro-b konektörü içerecektir. Aşağıdaki sürüm 1.1 ile ilgili hususlara bakın.

Malzeme Listesi ve Donanım Sürümü 1.1 tasarım konuları için proje yazılarına bakın.

2. Adım: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Yalnızca 20 BoM öğesi ve çoğu bileşenin 0603'ten küçük olmaması (2x kristal kapasitörler 0402 idi) ile bu kartın elle montajı kolaydı. JLCPCB tarafından ENIG yüzey kaplamalı mat siyahta üretilen PCB ve lehim şablonuna sahiptim.

5 pano (10'u arasında fiyat farkı olmamasına rağmen) ve şablon için toplam maliyet 68 AUD'ydi, ancak bunun 42 doları nakliyeydi. JLCPCB'den ilk kez sipariş verildi ve panolar güzel bir kaplama ile çok yüksek kalitede idi.

Adım 3: Bellenim: Önyükleyiciyi Programlama

Bellenim: Önyükleyiciyi Programlama
Bellenim: Önyükleyiciyi Programlama
Bellenim: Önyükleyiciyi Programlama
Bellenim: Önyükleyiciyi Programlama
Bellenim: Önyükleyiciyi Programlama
Bellenim: Önyükleyiciyi Programlama

Bellenim, Segger'den J-Link gibi bir programlayıcı kullanılarak SWD konektörü üzerinden yüklenebilir. Yukarıda gösterilen J-Link EDU Mini'dir. Kartı programlamaya başlamak için önyükleyicimizi yüklememiz ve ardından alet zincirimizi kurmamız gerekiyor.

Önyükleyiciyi flaş etmek için Atmel Studio kullanacağım. Bunu yapmak için J-Link'i takın ve Atmel Studio'yu açın. Ardından Araçlar > Cihaz Programlama'yı seçin. Araç altında J-Link'i seçin ve Aygıtı ATSAMD21G18A olarak ayarlayın ve ardından Uygula'ya tıklayın.

J-Link'i tüy SWD başlığına bağlayın ve USB veya pil üzerinden güç uygulayın. Bağlandıktan sonra, Cihaz İmzası altında Oku'ya tıklayın. Cihaz İmzası ve Hedef Voltaj metin kutuları buna göre yayılmalıdır. Bağlantıları kontrol etmezlerse ve tekrar deneyin.

Önyükleyiciyi flaş etmek için önce BOOTPROT sigortasını devre dışı bırakmamız gerekiyor. Bunu yapmak için Sigortalar > USER_WORD_0. NVMCTRL_BOOTPROT öğesini seçin ve 0 Bayt olarak değiştirin. Değişiklikleri yüklemek için Program'a tıklayın.

Artık Memories > Flash'ı seçerek bootloader'ı flashlayabilir ve bootloader'ın konumunu ayarlayabiliriz. Programlamadan önce Erase Flash'ın seçili olduğundan emin olun ve Program'a tıklayın. Her şey yolunda giderse, tahtadaki D13 nabız atmaya başlamalıdır.

Şimdi BOOTPROT sigortasını 8kB önyükleyici boyutuna ayarlamanız gerekecek. Bunu yapmak için Sigortalar > USER_WORD_0. NVMCTRL_BOOTPROT öğesini seçin ve 8192 Bayt olarak değiştirin. Değişiklikleri yüklemek için programı tıklayın.

Artık önyükleyici yanıp söndüğüne göre, D13 atıyor olmalı ve USB üzerinden takılıysa, bir yığın depolama aygıtı görünmelidir. Burası, kartı programlamak için UF2 dosyalarının yüklenebileceği yerdir.

Adım 4: Bellenim: PlatformIO ile Yanıp Sönen Kod

Bellenim: PlatformIO ile Yanıp Sönen Kod
Bellenim: PlatformIO ile Yanıp Sönen Kod
Bellenim: PlatformIO ile Yanıp Sönen Kod
Bellenim: PlatformIO ile Yanıp Sönen Kod

Bellenim, UF2 protokolü üzerinden veya doğrudan SWD arabirimi aracılığıyla yüklenebilir. Burada, kolaylığı ve basitliği için PlatformIO'yu kullanacağız. Başlamak için yeni bir PIO projesi oluşturun ve hedef tahtası olarak Adafruit Feather M0'ı seçin. Bir J-Link ile SWD üzerinden yükleme yaparken, platformio.ini'de upload_protocol'u aşağıda gösterildiği gibi ayarlayın.

[env:adafruit_feather_m0]platform = atmelsam panosu = adafruit_feather_m0 çerçevesi = arduino upload_protocol = jlink

Artık kartı Arduino çerçevesinin sadeliği ile programlayabilirsiniz.

Adım 5: Bellenim: Çapanın Yanıp Sönmesi

Bellenim: Çapanın Yanıp Sönmesi
Bellenim: Çapanın Yanıp Sönmesi
Bellenim: Çapanın Yanıp Sönmesi
Bellenim: Çapanın Yanıp Sönmesi

DWM1000 modülleri, ankraj veya etiket olacak şekilde yapılandırılabilir. Genellikle çapalar bilinen statik konumlarda tutulur ve etiketler onlara göreli bir konum elde etmek için çapaları kullanır. DWM1000 modülünü test etmek için GitHub deposundan DW1000-Anchor örneğini yükleyebilirsiniz.

Bu programı PlatformIO ile flaş etmek için, PIO Home'dan Open Project'i seçin ve ardından GitHub deposunda DW1000-Anchor klasörünün konumunu bulun. Ardından, PIO yükleme düğmesine tıklayın ve ekli hata ayıklama probunu otomatik olarak bulacaktır (bağlı olduğundan ve panoya güç verildiğinden emin olun).

Etiket üretici yazılımının başka bir panoya yüklenmesi gerekecektir. Daha sonra sonuç bir seri terminalde görüntülenebilir.

Adım 6: Daha İleri Gitmek

daha ileri gitmek
daha ileri gitmek

Bu projeye yönelik daha fazla iyileştirme, yeni bir DW1000 kitaplığı geliştirmeyi içerecek, V1.1 kartı, bu değişen teknolojiyi kullanan diğer projeleri değiştirecek. Yeterli ilgi olursa bu panoları üretip satmayı düşüneceğim.

Okuduğunuz için teşekkürler. Aşağıdaki yorumlarda herhangi bir düşünce veya eleştiri bırakın ve Prototipleme Köşesindeki projeyi kontrol ettiğinizden emin olun.

Önerilen: