Isi kandungan:

Bulu Penyetempatan UWB: 6 Langkah
Bulu Penyetempatan UWB: 6 Langkah

Video: Bulu Penyetempatan UWB: 6 Langkah

Video: Bulu Penyetempatan UWB: 6 Langkah
Video: Лучший бюджетный робот-пылесос - Xiaomi mi robot vacuum-mop, обзор, отзыв, тест работы. 2024, Julai
Anonim
Bulu Penyetempatan UWB
Bulu Penyetempatan UWB

Ultra-WideBand Feather menggabungkan modul Decawave DWM1000 dan ATSAMD21 ARM Cortex M0 ke dalam bentuk-bentuk bulu Adafruit. Modul DWM1000 adalah modul tanpa wayar yang sesuai dengan IEEE802.15.4-2011 UWB yang mampu menentukan kedudukan dalaman yang tepat dan kadar data yang tinggi, menjadikan papan ini sesuai untuk projek robotik di mana penyetempatan diperlukan.

Ciri-ciri: - Decawave DWM1000 untuk pelacakan ketepatan - ARM Cortex M0 untuk aplikasi pantas & kuat - Adafruit Feather serasi untuk disatukan dengan ekosistem yang sedia ada - antara muka SWD untuk aplikasi pengaturcaraan dan debugging - Penyambung USB-C - Pengecas bateri LiPo yang terintegrasi

Untuk menulis dan mengemas kini projek sepenuhnya, lihat projek ini di laman web saya Prototyping Corner di prototypingcorner.io/projects/uwb-feather

Perkakasan dan perisian sumber untuk projek ini boleh didapati dari GitHub Repository.

Langkah 1: Reka Bentuk Perkakasan

Reka Bentuk Perkakasan
Reka Bentuk Perkakasan
Reka Bentuk Perkakasan
Reka Bentuk Perkakasan
Reka Bentuk Perkakasan
Reka Bentuk Perkakasan

Seperti disebutkan dalam pengenalan, UWB Feather terdiri dari ATSAMD21 ARM Cortext M0 + untuk otak dan modul Decawave DWM1000 untuk jalur lebar tanpa wayar, dalam bentuk faktor bulu. Reka bentuknya agak sederhana yang terdiri daripada 20 item BoM pada PCB 2 lapisan. Pinout serasi dengan Adafruit M0 Feather

Pengecasan LiPo dikendalikan oleh MCP73831 sel tunggal, pengawal pengurusan caj bersepadu sepenuhnya. Voltan bateri dapat dipantau pada D9, namun akses ke semua IO diperlukan, JP1 dapat dipotong untuk membebaskan pin ini. Peraturan 3.3 volt telah dipratentukan oleh pengatur linier rendah AP2112K-3.3, menyediakan hingga 600mA.

Pinout sepenuhnya sesuai dengan garis bulu Adafruit M0 untuk mudah dibawa kod. Garis DWM1000 IO disambungkan ke bas SPI dan pin digital 2, 3 & 4 untuk RST, IRQ & SPI_CS secara terhormat (yang tidak terdedah melalui tajuk). D13 juga disambungkan ke LED onboard, seperti biasa di antara banyak papan serasi Arduino.

Pengaturcaraan boleh dipratentukan di atas SWD header atau melalui USB jika dimuat dengan bootloader yang sesuai seperti uf2-samdx1 dari Microsoft. Lihat firmware untuk lebih banyak lagi.

Catatan pada V1.0

Terdapat masalah dengan penyambung USB-C pada versi 1 papan ini. Jejak kaki yang saya gunakan tidak termasuk potongan yang diperlukan untuk kaedah pemasangan potongan komponen ini.

Versi 1.1 akan merangkumi penyelesaian untuk ini serta menambah penyambung mikro-b bagi mereka yang menginginkannya. Lihat pertimbangan versi 1.1 di bawah.

Untuk pertimbangan reka bentuk Rang Undang-Undang Bahan dan Perkakasan Versi 1.1 lihat penulisan projek.

Langkah 2: Perhimpunan

perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan

Dengan hanya 20 item BoM dan kebanyakan komponen tidak lebih kecil daripada 0603 (kapasitor kristal 2x adalah 0402), pemasangan tangan papan ini mudah. Saya mempunyai stensil PCB dan solder yang dihasilkan oleh JLCPCB dalam warna hitam matte dengan kemasan permukaan ENIG.

Jumlah kos untuk 5 papan (walaupun 10 tidak mempunyai perbezaan harga) dan stensil adalah $ 68 AUD, namun $ 42 daripadanya adalah penghantaran. Pesanan kali pertama dari JLCPCB dan papan berkualiti tinggi dengan kemasan yang bagus.

Langkah 3: Firmware: Memprogram Bootloader

Firmware: Memprogram Bootloader
Firmware: Memprogram Bootloader
Firmware: Memprogram Bootloader
Firmware: Memprogram Bootloader
Firmware: Memprogram Bootloader
Firmware: Memprogram Bootloader

Firmware boleh dimuat melalui penyambung SWD menggunakan pengaturcara seperti J-Link dari Segger. Yang ditunjukkan di atas ialah J-Link EDU Mini. Untuk memulakan pengaturcaraan papan, kita perlu memuatkan pemuat but kita kemudian menyiapkan rantai alat kita.

Saya akan menggunakan Atmel Studio untuk mem-flash bootloader. Untuk melakukannya, pasangkan J-Link dan buka Atmel Studio. Kemudian pilih Alat> Pengaturcaraan Peranti. Di bawah Alat pilih J-Link dan tetapkan Peranti ke ATSAMD21G18A kemudian klik Terapkan.

Sambungkan J-Link ke header SWD bulu dan gunakan kuasa sama ada melalui USB atau melalui bateri. Setelah disambungkan, di bawah Tandatangan Peranti klik Baca. Kotak teks Tandatangan Peranti dan Voltan Sasaran harus disebarkan dengan sewajarnya. Sekiranya mereka tidak memeriksa sambungan dan cuba lagi.

Untuk mem-flash bootloader, pertama-tama kita perlu mematikan sekering BOOTPROT. Untuk melakukan ini, pilih Fius> USER_WORD_0. NVMCTRL_BOOTPROT dan ubah menjadi 0 Byte. Klik Program untuk memuat naik perubahan.

Sekarang kita dapat mem-flash bootloader dengan memilih Memories> Flash dan menetapkan lokasi bootloader. Pastikan Erase Flash sebelum pengaturcaraan dipilih dan klik Program. Sekiranya semuanya berjalan lancar D13 di papan mesti mula berdenyut.

Sekarang anda perlu menetapkan sekering BOOTPROT ke saiz pemuat but 8kB. Untuk melakukan ini, pilih Fius> USER_WORD_0. NVMCTRL_BOOTPROT dan ubah menjadi 8192 Byte. Klik program untuk memuat naik perubahan.

Sekarang bahawa bootloader telah dinyalakan D13 seharusnya berdenyut dan jika terpasang melalui USB, peranti simpanan besar-besaran akan muncul. Di sinilah fail UF2 dapat dimuat untuk memprogram papan tulis.

Langkah 4: Firmware: Flashing Code With PlatformIO

Firmware: Flashing Code Dengan PlatformIO
Firmware: Flashing Code Dengan PlatformIO
Firmware: Flashing Code Dengan PlatformIO
Firmware: Flashing Code Dengan PlatformIO

Firmware boleh dimuat naik melalui protokol UF2 atau secara langsung melalui antara muka SWD. Di sini kita akan menggunakan PlatformIO untuk kemudahan dan kesederhanaannya. Untuk memulakan, buat projek PIO baru dan pilih Adafruit Feather M0 sebagai papan sasaran. Semasa memuat naik melalui SWD dengan J-Link tetapkan upload_protocol di platformio.ini seperti yang ditunjukkan di bawah.

[env: adafruit_feather_m0] platform = papan atmelsam = rangka kerja adafruit_feather_m0 = arduino upload_protocol = jlink

Sekarang anda boleh memprogram papan dengan kesederhanaan kerangka kerja Arduino.

Langkah 5: Perisian firmware: Mengemaskan Anchor

Firmware: Mengemaskan Anchor
Firmware: Mengemaskan Anchor
Firmware: Mengemaskan Anchor
Firmware: Mengemaskan Anchor

Modul DWM1000 dapat dikonfigurasikan menjadi anchor atau tag. Umumnya sauh disimpan di lokasi statik yang diketahui dan tag menggunakan sauh untuk mendapatkan kedudukan relatif terhadapnya. Untuk menguji modul DWM1000, anda boleh memuat naik contoh DW1000-Anchor dari repositori GitHub.

Untuk flash program ini dengan PlatformIO, dari PIO Home, pilih Open Project kemudian cari lokasi folder DW1000-Anchor di repositori GitHub. Kemudian klik butang muat naik PIO dan secara automatik ia akan menemui probug debug yang dilampirkan (pastikan ia disambungkan dan papan dihidupkan).

Firmware tag mesti dimuat naik ke papan lain. Kemudian hasilnya dapat dilihat di terminal bersiri.

Langkah 6: Melangkah Lebih Lanjut

Melangkah Lebih Lanjut
Melangkah Lebih Lanjut

Penambahbaikan lebih lanjut untuk projek ini akan merangkumi pengembangan pada perpustakaan DW1000 baru, papan V1.1 mengubah projek lain yang menggunakan teknologi ini. Sekiranya terdapat minat yang mencukupi, saya akan mempertimbangkan untuk membuat dan menjual papan ini.

Terima kasih untuk membaca. Tinggalkan sebarang pemikiran atau kritikan dalam komen di bawah dan pastikan untuk melihat projek di Prototyping Corner

Disyorkan: