Daftar Isi:

Bulu Lokalisasi UWB: 6 Langkah
Bulu Lokalisasi UWB: 6 Langkah

Video: Bulu Lokalisasi UWB: 6 Langkah

Video: Bulu Lokalisasi UWB: 6 Langkah
Video: DULINAN KACHUK RA BETAH DELEP NE TRAH KENTHOON MENAK LO 2024, Juli
Anonim
Bulu Lokalisasi UWB
Bulu Lokalisasi UWB

Ultra-WideBand Feather menggabungkan modul Decawave DWM1000 dan ATSAMD21 ARM Cortex M0 ke dalam faktor bentuk bulu Adafruit. Modul DWM1000 adalah modul nirkabel yang sesuai dengan IEEE802.15.4-2011 UWB yang mampu memposisikan dalam ruangan dengan presisi dan kecepatan data yang tinggi, menjadikan papan ini sempurna untuk proyek robotika yang memerlukan pelokalan.

Fitur:– Decawave DWM1000 untuk pelacakan presisi– ARM Cortex M0 untuk aplikasi yang cepat & kuat– Adafruit Feather kompatibel untuk diintegrasikan dengan ekosistem luas yang ada– Antarmuka SWD untuk pemrograman dan aplikasi debugging– Konektor USB-C– Pengisi daya baterai LiPo terintegrasi

Untuk penulisan dan pembaruan proyek lengkap, lihat proyek ini di situs saya Prototyping Corner di prototypingcorner.io/projects/uwb-feather

Perangkat keras dan perangkat lunak sumber untuk proyek ini tersedia dari Repositori GitHub.

Langkah 1: Desain Perangkat Keras

Desain Perangkat Keras
Desain Perangkat Keras
Desain Perangkat Keras
Desain Perangkat Keras
Desain Perangkat Keras
Desain Perangkat Keras

Seperti disebutkan dalam pendahuluan, UWB Feather terdiri dari ATSAMD21 ARM Cortext M0+ untuk otak dan modul Decawave DWM1000 untuk nirkabel pita ultra lebar, dalam faktor bentuk bulu. Desainnya relatif sederhana terdiri dari 20 item BoM pada PCB 2 lapis. Pinout kompatibel dengan Adafruit M0 Feather

Pengisian daya LiPo ditangani oleh pengontrol manajemen pengisian daya terintegrasi penuh MCP73831 sel tunggal. Tegangan baterai dapat dipantau pada D9, namun akses ke semua IO diperlukan, JP1 dapat dipotong untuk membebaskan pin ini. Regulasi 3,3 volt dibentuk sebelumnya oleh regulator linier putus sekolah rendah AP2112K-3.3, menyediakan hingga 600mA.

Pinout sepenuhnya kompatibel dengan garis bulu Adafruit M0 untuk portabilitas kode yang mudah. Jalur DWM1000 IO terhubung ke bus SPI dan pin digital 2, 3 & 4 untuk masing-masing RST, IRQ & SPI_CS (yang tidak diekspos melalui header). D13 juga terhubung ke LED onboard, seperti standar di antara banyak papan yang kompatibel dengan Arduino.

Pemrograman dapat dibentuk sebelumnya melalui header SWD atau melalui USB jika dimuat dengan bootloader yang sesuai seperti uf2-samdx1 dari Microsoft. Lihat firmware untuk lebih lanjut.

Catatan tentang V1.0

Ada masalah dengan konektor USB-C pada versi 1 board ini. Jejak yang saya gunakan tidak termasuk potongan yang diperlukan untuk metode pemasangan potongan komponen ini.

Versi 1.1 akan menyertakan perbaikan untuk ini serta menambahkan konektor mikro-b bagi mereka yang menginginkannya. Lihat pertimbangan versi 1.1 di bawah.

Untuk pertimbangan desain Bill of Materials and Hardware Versi 1.1, lihat penulisan proyek.

Langkah 2: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Dengan hanya 20 item BoM dan sebagian besar komponen tidak lebih kecil dari 0603 (kapasitor kristal 2x adalah 0402), perakitan manual papan ini mudah dilakukan. Saya memiliki stensil PCB dan solder yang diproduksi oleh JLCPCB dalam warna hitam matte dengan permukaan akhir ENIG.

Total biaya untuk 5 papan (walaupun 10 tidak memiliki perbedaan harga) dan stensil adalah $68 AUD, namun $42 dari itu adalah biaya pengiriman. Pertama kali memesan dari JLCPCB dan papan berkualitas sangat tinggi dengan hasil akhir 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 dapat dimuat melalui konektor SWD menggunakan programmer seperti J-Link dari Segger. Tampil di atas adalah J-Link EDU Mini. Untuk mulai memprogram papan, kita perlu memuat bootloader kita kemudian mengatur rantai alat kita.

Saya akan menggunakan Atmel Studio untuk mem-flash bootloader. Untuk melakukannya, colokkan J-Link dan buka Atmel Studio. Kemudian pilih Alat > Pemrograman Perangkat. Di bawah Alat pilih J-Link dan atur Perangkat ke ATSAMD21G18A lalu klik Terapkan.

Hubungkan J-Link ke header SWD bulu dan berikan daya melalui USB atau melalui baterai. Setelah terhubung, di bawah Tanda Tangan Perangkat klik Baca. Kotak teks Tanda Tangan Perangkat dan Tegangan Target harus menyebar sesuai. Jika mereka tidak memeriksa koneksi dan coba lagi.

Untuk mem-flash bootloader, pertama-tama kita harus menonaktifkan sekering BOOPROT. Untuk melakukan ini pilih Sekering > USER_WORD_0. NVMCTRL_BOOTPROT dan ubah ke 0 Bytes. Klik Program untuk mengunggah perubahan.

Sekarang kita dapat mem-flash bootloader dengan memilih Memories > Flash dan mengatur lokasi bootloader. Pastikan Hapus Flash sebelum pemrograman dipilih dan klik Program. Jika semuanya berjalan dengan baik D13 di papan harus mulai berdenyut.

Sekarang Anda harus mengatur sekering BOOTPROT ke ukuran bootloader 8kB. Untuk melakukan ini pilih Sekering > USER_WORD_0. NVMCTRL_BOOTPROT dan ubah ke 8192 Bytes. Klik program untuk mengunggah perubahan.

Sekarang bootloader telah di-flash, D13 seharusnya berdenyut dan jika dicolokkan melalui USB, perangkat penyimpanan massal akan muncul. Di sinilah file UF2 dapat diunggah untuk memprogram papan.

Langkah 4: Firmware: Kode Flashing Dengan PlatformIO

Firmware: Kode Flashing Dengan PlatformIO
Firmware: Kode Flashing Dengan PlatformIO
Firmware: Kode Flashing Dengan PlatformIO
Firmware: Kode Flashing Dengan PlatformIO

Firmware dapat diunggah melalui protokol UF2 atau langsung melalui antarmuka SWD. Di sini kita akan menggunakan PlatformIO untuk kemudahan dan kesederhanaannya. Untuk memulai, buat proyek PIO baru dan pilih Adafruit Feather M0 sebagai papan target. Saat mengunggah melalui SWD dengan J-Link, atur upload_protocol di platformio.ini seperti yang ditunjukkan di bawah ini.

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

Sekarang Anda dapat memprogram papan dengan kesederhanaan kerangka Arduino.

Langkah 5: Firmware: Mem-flash Jangkar

Firmware: Mem-flash Jangkar
Firmware: Mem-flash Jangkar
Firmware: Mem-flash Jangkar
Firmware: Mem-flash Jangkar

Modul DWM1000 dapat dikonfigurasi untuk menjadi jangkar atau tag. Umumnya jangkar disimpan di lokasi statis yang diketahui dan tag menggunakan jangkar untuk mendapatkan posisi relatif terhadapnya. Untuk menguji modul DWM1000, Anda dapat mengunggah contoh DW1000-Anchor dari repositori GitHub.

Untuk mem-flash program ini dengan PlatformIO, dari PIO Home, pilih Open Project lalu temukan lokasi folder DW1000-Anchor di repositori GitHub. Kemudian klik tombol unggah PIO dan secara otomatis akan menemukan probe debug yang terpasang (pastikan terhubung dan papan diberi daya).

Firmware tag perlu diunggah ke papan lain. Kemudian hasilnya dapat dilihat di terminal serial.

Langkah 6: Melangkah Lebih Jauh

Melangkah Lebih Jauh
Melangkah Lebih Jauh

Perbaikan lebih lanjut untuk proyek ini akan mencakup pengembangan perpustakaan DW1000 baru, papan V1.1 mengubah proyek lain yang memanfaatkan teknologi mulai ini. Jika ada minat yang cukup, saya akan mempertimbangkan untuk membuat dan menjual papan ini.

Terima kasih sudah membaca. Tinggalkan pemikiran atau kritik di komentar di bawah dan pastikan untuk memeriksa proyek di Prototyping Corner

Direkomendasikan: