Daftar Isi:
- Langkah 1: Desain Perangkat Keras
- Langkah 2: Perakitan
- Langkah 3: Firmware: Memprogram Bootloader
- Langkah 4: Firmware: Kode Flashing Dengan PlatformIO
- Langkah 5: Firmware: Mem-flash Jangkar
- Langkah 6: Melangkah Lebih Jauh
Video: Bulu Lokalisasi UWB: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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
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
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 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 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
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
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:
Sayap Bulu Pertama Saya: Konverter Analog-ke-Digital: 5 Langkah
Sayap Bulu Pertama Saya: Konverter Analog-ke-Digital: Halo, rekan-rekan Pembuat! Pelajaran hari ini adalah tentang sesuatu yang benar-benar istimewa. Perangkat ini adalah BULU PERTAMA SAYA - mengikuti faktor bentuk Adafruit. Ini juga merupakan PCB PERTAMA YANG DIPASANG PERMUKAAN saya! Penggunaan saya yang paling menonjol dari perisai ini adalah di perangkat yang saya gila
WIND - Akselerator Proyek untuk Bulu Adafruit: 9 Langkah (dengan Gambar)
WIND - Akselerator Proyek untuk Adafruit Feather: Saya perlahan mengumpulkan mikrokontroler Adafruit Feather dan papan sensor yang tersedia dari Adafruit. Mereka membuat pembuatan prototipe dan pengujian menjadi sangat mudah, dan saya penggemar berat tata letak papan. Karena saya menemukan diri saya menggunakan
Cara Membuat Syal Bulu Imitasi Bercahaya Berubah Warna: 11 Langkah (dengan Gambar)
Cara Membuat Syal Bulu Imitasi Bercahaya Berubah Warna: Berikut adalah beberapa tips untuk membuat syal bercahaya kabur dengan LED berubah warna, dengan proses yang relatif sederhana yang cocok untuk seseorang dengan pengalaman menjahit atau menyolder yang terbatas. Lensa masing-masing LED RGB ini memiliki warna merah
Robot Bulu RC: 6 Langkah
RC Bristle Robot: Ini adalah jenis robot yang dulunya hanya berupa motor pager pada sikat gigi tetapi sekarang Anda dapat membuatnya remote control hanya dengan beberapa item. Anda tidak perlu tahu APA SAJA tentang robot, atau elektronik untuk membuat proyek ini
Episode 16: Jam Alarm Bulu: 3 Langkah
Episode 16: Jam Alarm Bulu: Apakah Anda lelah harus bangun dengan Buzzer Jam Alarm yang mengganggu itu setiap pagi? Apakah Anda berharap ada cara yang lebih tenang dan lebih lembut untuk bangun? Nah, kami di sini di Stupid Inventions tahu bagaimana Anda merasa! Itulah sebabnya kami mengembangkan Feather Alar