Სარჩევი:

UWB ლოკალიზაციის ბუმბული: 6 ნაბიჯი
UWB ლოკალიზაციის ბუმბული: 6 ნაბიჯი

ვიდეო: UWB ლოკალიზაციის ბუმბული: 6 ნაბიჯი

ვიდეო: UWB ლოკალიზაციის ბუმბული: 6 ნაბიჯი
ვიდეო: Apple AirTag: КАК РАБОТАЕТ UWB? | РАЗБОР 2024, ნოემბერი
Anonim
UWB ლოკალიზაციის ბუმბული
UWB ლოკალიზაციის ბუმბული

Ultra-WideBand ბუმბული აერთიანებს Decawave DWM1000 მოდულს და ATSAMD21 ARM Cortex M0 ადაფრუტის ბუმბულის ფორმა-ფაქტორს. DWM1000 მოდული არის IEEE802.15.4-2011 UWB თავსებადი უკაბელო მოდული, რომელსაც შეუძლია ზუსტი შიდა პოზიციონირება და მონაცემთა მაღალი მაჩვენებლები, რაც ამ დაფას სრულყოფილად ხდის რობოტექნიკის პროექტებისთვის, სადაც ლოკალიზაციაა საჭირო.

მახასიათებლები:-Decawave DWM1000 ზუსტი თვალთვალისთვის-ARM Cortex M0 სწრაფი და მძლავრი პროგრამებისთვის-Adafruit Feather თავსებადი ფართო არსებულ ეკოსისტემასთან ინტეგრირებისთვის-SWD ინტერფეისი პროგრამების პროგრამირებისა და გამართვისთვის-USB-C კონექტორი-ინტეგრირებული LiPo ბატარეის დამტენი

სრული პროექტის დასაწერად და განახლებებისთვის ნახეთ ეს პროექტი ჩემს საიტზე Prototyping Corner at prototypingcorner.io/projects/uwb-feather

ამ პროექტის წყაროს აპარატურა და პროგრამული უზრუნველყოფა ხელმისაწვდომია GitHub საცავიდან.

ნაბიჯი 1: აპარატურის დიზაინი

აპარატურის დიზაინი
აპარატურის დიზაინი
აპარატურის დიზაინი
აპარატურის დიზაინი
აპარატურის დიზაინი
აპარატურის დიზაინი

როგორც შესავალში აღვნიშნეთ, UWB ბუმბული შედგება ATSAMD21 ARM Cortext M0+ ტვინისთვის და Decawave DWM1000 მოდულისთვის ულტრა ფართო დიაპაზონის უსადენოდ, ბუმბულის ფორმის ფაქტორში. დიზაინი შედარებით მარტივია, რომელიც შედგება 20 BoM ელემენტისგან 2 ფენის PCB- ზე. Pinout არის Adafruit M0 ბუმბულით თავსებადი

LiPo დატენვას ახორციელებს MCP73831 ერთუჯრედიანი, სრულად ინტეგრირებული მუხტის მართვის კონტროლერი. ბატარეის ძაბვის მონიტორინგი შესაძლებელია D9– ზე, თუმცა საჭიროა წვდომა ყველა IO– ზე, JP1 შეიძლება შემცირდეს ამ პინის გასათავისუფლებლად. 3.3 ვოლტიანი რეგულირება წინასწარ არის შემუშავებული AP2112K-3.3 დაბალი წვეთოვანი ხაზოვანი მარეგულირებლის მიერ, რომელიც უზრუნველყოფს 600mA- მდე.

Pinout სრულად თავსებადია Adafruit M0 ბუმბულის ხაზთან კოდის მოსახერხებლობისათვის. DWM1000 IO ხაზები დაკავშირებულია SPI ავტობუსთან და ციფრულ ქინძისთავებთან 2, 3 და 4 RST, IRQ & SPI_CS პატივისცემით (რომლებიც სათაურის საშუალებით არ არის გამოვლენილი). D13 ასევე უკავშირდება საბორტო LED- ს, როგორც ეს სტანდარტულია Arduino- თან თავსებად მრავალ დაფას შორის.

პროგრამირება შესაძლებელია წინასწარ SWD სათაურზე ან USB- ის საშუალებით, თუ დატვირთულია შესაბამისი ჩამტვირთველით, როგორიცაა uf2-samdx1 Microsoft- ისგან. იხილეთ firmware მეტი.

შენიშვნა V1.0

ამ დაფის 1 ვერსიაზე არის პრობლემა USB-C კონექტორთან. ნაკვალევი, რომელიც მე გამოვიყენე, არ მოიცავდა ამ კომპონენტის ამონაჭრის დამონტაჟების მეთოდისთვის საჭირო ჩახშობას.

ვერსია 1.1 მოიცავს ამის გამოსწორებას, ასევე დამატებას micro-b კონექტორი მათთვის, ვისაც სურს. იხილეთ ვერსია 1.1 განხილვები ქვემოთ.

მასალებისა და აპარატურის ვერსიის 1.1 დიზაინის მოსაზრებებისთვის იხილეთ პროექტის ჩანაწერი.

ნაბიჯი 2: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

მხოლოდ 20 BoM ელემენტი და კომპონენტების უმეტესობა არ არის არანაკლებ 0603 (2x ბროლის კონდენსატორები იყო 0402), ამ დაფის ხელით შეკრება ადვილი იყო. მე მქონდა PCB და solder stencil მიერ წარმოებული JLCPCB მქრქალი შავი ENIG ზედაპირის დასრულებით.

ჯამური ღირებულება 5 დაფაზე (თუმცა 10 -ს არ ჰქონდა ფასის სხვაობა) და შაბლონი იყო 68 აშშ დოლარი, თუმცა აქედან 42 დოლარი გადაზიდვა იყო. პირველად JLCPCB და დაფებიდან შეკვეთა იყო ძალიან მაღალი ხარისხის ლამაზი დასრულებით.

ნაბიჯი 3: Firmware: პროგრამირება Bootloader

პროგრამული უზრუნველყოფა: ჩატვირთვის პროგრამირება
პროგრამული უზრუნველყოფა: ჩატვირთვის პროგრამირება
პროგრამული უზრუნველყოფა: ჩატვირთვის პროგრამირება
პროგრამული უზრუნველყოფა: ჩატვირთვის პროგრამირება
პროგრამული უზრუნველყოფა: ჩატვირთვის პროგრამირება
პროგრამული უზრუნველყოფა: ჩატვირთვის პროგრამირება

Firmware შეიძლება ჩაიტვირთოს SWD კონექტორზე პროგრამისტის გამოყენებით, როგორიცაა J-Link Segger– დან. ზემოთ ნაჩვენებია J-Link EDU Mini. დაფის პროგრამირების დასაწყებად, ჩვენ უნდა ჩავტვირთოთ ჩამტვირთავი და შემდეგ შევქმნათ ჩვენი ინსტრუმენტების ჯაჭვი.

მე გამოვიყენებ Atmel Studio- ს ჩატვირთვის ჩამტვირთავისთვის. ამისათვის შეაერთეთ J-Link და გახსენით Atmel Studio. შემდეგ აირჩიეთ ინსტრუმენტები> მოწყობილობის პროგრამირება. ინსტრუმენტის ქვეშ შეარჩიეთ J-Link და დააყენეთ მოწყობილობა ATSAMD21G18A შემდეგ დააჭირეთ ღილაკს მიმართვა.

შეაერთეთ J-Link ბუმბულის SWD სათაურთან და გამოიყენეთ ენერგია USB- ზე ან ბატარეაზე. დაკავშირების შემდეგ, მოწყობილობის ხელმოწერის ქვეშ დააჭირეთ წაკითხვას. მოწყობილობის ხელმოწერა და სამიზნე ძაბვის ტექსტური ყუთები შესაბამისად უნდა გავრცელდეს. თუ ისინი არ ამოწმებენ კავშირებს და ხელახლა ცდებიან.

ჩამტვირთავი ჩამტვირთავი ჩვენ ჯერ უნდა გამორთოთ BOOTPROT დაუკრავენ. ამისათვის აირჩიეთ Fuses> USER_WORD_0. NVMCTRL_BOOTPROT და შეცვალეთ 0 ბაიტი. დააჭირეთ პროგრამას ცვლილებების ასატვირთად.

ახლა ჩვენ შეგვიძლია ჩავტვირთოთ ჩამტვირთავი Memories> Flash- ის არჩევით და ჩავტვირთოთ ჩამტვირთველის ადგილმდებარეობა. დარწმუნდით Erase Flash პროგრამირების არჩევის წინ და დააწკაპუნეთ პროგრამაზე. თუ ყველაფერი კარგად არის D13 დაფაზე უნდა დაიწყოს პულსი.

ახლა თქვენ უნდა დააყენოთ BOOTPROT დაუკრავენ 8 კბ ჩამტვირთავის ზომას. ამისათვის აირჩიეთ Fuses> USER_WORD_0. NVMCTRL_BOOTPROT და შეცვალეთ 8192 ბაიტი. დააწკაპუნეთ პროგრამაზე, რომ ატვირთოთ ცვლილებები.

ახლა, როდესაც ჩამტვირთავი აანთო D13 უნდა იყოს pulsing და თუ ჩართულია USB- ზე, მასობრივი შესანახი მოწყობილობა უნდა გამოჩნდეს. ეს არის ადგილი, სადაც UF2 ფაილების ატვირთვა შესაძლებელია დაფის დაპროგრამებისთვის.

ნაბიჯი 4: Firmware: Flashing Code With PlatformIO

Firmware: Flashing Code With PlatformIO
Firmware: Flashing Code With PlatformIO
Firmware: Flashing Code With PlatformIO
Firmware: Flashing Code With PlatformIO

Firmware შეიძლება აიტვირთოს UF2 პროტოკოლით ან პირდაპირ SWD ინტერფეისის საშუალებით. აქ ჩვენ ვიყენებთ PlatformIO– ს მისი სიმარტივისა და სიმარტივისთვის. დასაწყებად შექმენით ახალი PIO პროექტი და შეარჩიეთ Adafruit Feather M0 როგორც სამიზნე დაფა. JW Link- ით SWD- ზე ატვირთვისას დააყენეთ upload_protocol platformio.ini– ში, როგორც ეს ნაჩვენებია ქვემოთ.

[env: adafruit_feather_m0] პლატფორმა = atmelsam board = adafruit_feather_m0 frame = arduino upload_protocol = jlink

ახლა თქვენ შეგიძლიათ დაფის დაპროგრამება Arduino ჩარჩოს სიმარტივით.

ნაბიჯი 5: Firmware: Flashing წამყვანმა

Firmware: Flashing წამყვანი
Firmware: Flashing წამყვანი
Firmware: Flashing წამყვანი
Firmware: Flashing წამყვანი

DWM1000 მოდულები შეიძლება კონფიგურირებული იყოს როგორც წამყვანები ან ტეგები. როგორც წესი, წამყვანები ინახება ცნობილ სტატიკურ ადგილებში და ტეგები იყენებენ წამყვანებს მათთან შედარებით პოზიციის მისაღებად. DWM1000 მოდულის შესამოწმებლად შეგიძლიათ ატვირთოთ DW1000-წამყვანის მაგალითი GitHub საცავიდან.

ამ პროგრამის PlatformIO- ს დასაბლოკად, PIO Home- დან, აირჩიეთ Open Project და შემდეგ იპოვეთ DW1000-Anchor საქაღალდის მდებარეობა GitHub საცავში. შემდეგ დააწკაპუნეთ PIO ატვირთვის ღილაკზე და ის ავტომატურად იპოვის თანდართულ გამართვის ზონდს (დარწმუნდით, რომ ის დაკავშირებულია და დაფა იკვებება).

ტეგის firmware უნდა აიტვირთოს სხვა დაფაზე. შემდეგ შედეგი შეიძლება ჩაითვალოს სერიულ ტერმინალში.

ნაბიჯი 6: წინსვლა

შემდგომი
შემდგომი

ამ პროექტის შემდგომი გაუმჯობესება მოიცავს ახალ DW1000 ბიბლიოთეკის განვითარებას, V1.1 დაფა ცვლის სხვა პროექტებს, რომლებიც იყენებენ ამ ფართო ტექნოლოგიას. თუ საკმარისი ინტერესი იქნება, მე განვიხილავ ამ დაფების დამზადებას და გაყიდვას.

Მადლობა წაკითხვისთვის. დატოვეთ ნებისმიერი აზრი ან კრიტიკა ქვემოთ მოცემულ კომენტარებში და დარწმუნდით, რომ გადახედეთ პროექტს პროტოტიპების კუთხეში

გირჩევთ: