სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად: 10 ნაბიჯი (სურათებით)
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად: 10 ნაბიჯი (სურათებით)
Anonim
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად
სტაციონარული რადარის (LIDAR) მასივი არდუინოსთან ერთად

როდესაც ვაშენებ ორფეხა რობოტს, მე ყოველთვის ვფიქრობდი რაიმე მაგარი გაჯეტის ქონაზე, რომელსაც შეეძლო დაეტოვებინა ჩემი მოწინააღმდეგე და შეტევითი მოძრაობები შეექმნა. რადარის/ლიდარის პროექტების მტევანი აქ უკვე არსებობს. თუმცა, ჩემი მიზნებისათვის არსებობს გარკვეული შეზღუდვები:

  • ულტრაბგერითი ტალღის სენსორის მოდულები საკმაოდ დიდია. ყველა რობოტი WALL-E- ს ჰგავს.
  • მიმდინარე სარადარო პროექტები მოიცავს სენსორს (ან ულტრაბგერითი ტალღები, IR, ლაზერი, …) და სერვო ძრავას შუაში. გარემოს სკანირება მოითხოვს, რომ სერვო გადავიდეს გვერდზე. ნივთების წინ და უკან გადატანა ქმნის იმპულსურ ცვლილებებს, რაც ცუდია ორმხრივი ბალანსისა და სიარულისთვის.
  • სკანირების სიხშირე შეზღუდულია სერვო სიჩქარით. მხოლოდ რამდენიმე ჰერცის მიღწევაა შესაძლებელი, ალბათ. მაშინაც კი, თუ სკანირების სიხშირე შეიძლება გაიზარდოს რაიმე სუპერ სერვოით, ეს გამოიწვევს ძლიერ ვიბრაციას.
  • [ცენტრალური servo motor - სენსორი] მოწყობა ასევე ზღუდავს პოზიციას სამონტაჟო და დიზაინი. ძნელია ისეთი რამის დამონტაჟება, როგორც თავი. რაც ჩემს ორფერადს ჰგავს შერყევის საგანი WALL-E ყოველ ჯერზე. არა მაგარი!
  • [Servo-sensor] მოწყობა ასევე შეიძლება აშენდეს როგორც [motor-sensor] სტილი. სენსორი (ან სენსორები) მუდმივად ბრუნავს ძრავის ღერძის გასწვრივ. ეს შეიძლება აღმოფხვრას იმპულსური გადახრები და დაბალი სკანირების სიხშირის პრობლემები, მაგრამ არა ტორსის დიზაინის შეზღუდვა. გაყვანილობის სირთულე ასევე მნიშვნელოვნად გაიზრდება.

ძებნის შემდეგ, ეს პატარა სენსორი VL53L0X ST– დან მომხვდა თვალში. "მსოფლიოში ყველაზე პატარა" ფრენის დროის სენსორის მოთხოვნით, განზომილება არის მხოლოდ 4.4 x 2.4 x 1.0 მმ. გამორჩეული

  • ჩიპზე IR ლაზერული გამცემი და დეტექტორი
  • დიაპაზონი 2 მ -მდე (1.2 მ სწრაფი რეჟიმი)
  • პროგრამირებადი I2C მისამართი
  • GPIO შეწყვეტის გამომავალი პინი
  • თვალისთვის უსაფრთხო

ყველა ამ განსაკუთრებულმა მახასიათებელმა ერთად მომცა საშუალება გადავლახო ზემოაღნიშნული პრობლემები, თუკი VL53L0X სენსორების მასივს შეეძლო მუშაობა. თავიდან მეგონა, რომ ამ რადარს ეწოდებოდა მყარი რადარი, მაგრამ აღმოვაჩინე, რომ ეს ტერმინი სხვა რამისთვის იყო გამოყენებული. ამრიგად, სათაურში "სტაციონარული" სიტყვა ნიშნავს, რომ ამ სარადარო მოწყობილობაში მოძრავი ნაწილები არ არის. ასევე, სანამ LIDAR (სინათლის გამოვლენა და დიაპაზონი) არის ტექნიკურად სწორი ტერმინი ამ ჩიპისთვის, RADAR აქ მოხსენიებულია როგორც უფრო ზოგადი ტერმინი.

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

ნაბიჯი 1: ინსტრუმენტები და ნაწილები

ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები

ინსტრუმენტები

ამ პროექტში საჭიროა შემდეგი ინსტრუმენტები:

  • გასაყიდი რკინა
  • დამხმარე ხელების შეკრება
  • Dupont crimp ინსტრუმენტი
  • 1.5 მმ ექვსკუთხა დრაივერი
  • მავთულის საფარის მოცილების ინსტრუმენტი
  • მავთულის საჭრელი
  • ცხელი წებოს იარაღი
  • პინცეტი
  • გამადიდებელი (ფიზიკური ან პროგრამები თქვენს ტელეფონში)
  • ბრტყელი ცხვირის საყრდენი

ნაწილები

ამ პროექტში გამოიყენება შემდეგი ნაწილები:

  • 10x VL53L0X GY-530 გარღვევის დაფები
  • არდუინო (უნო, ნანო, მეგა, ნული, მინი, … და ა.შ.)
  • პურის დაფა და რამდენიმე პურის დაფის მავთული
  • AWG #26 მავთულები სხვადასხვა ფერის
  • AWG #30 ერთ ბირთვიანი მავთული
  • 5x Dupont მამრობითი კონექტორი
  • 5x ერთჯერადი პინ დიუპონის გარსაცმები
  • 10x 3D ნაბეჭდი გარღვევის დაფის დამჭერები
  • 1x 3D ბეჭდვით წრიული ჩარჩო
  • 10x M2x10 ბრტყელი თავით ხრახნები
  • 10x 0804 LED (ცისფერი რეკომენდირებულია)
  • 10x SOT-23 AO3400 N-Channel MOSFET
  • პატარა კონდენსატორი (10 ~ 100uF)

გარღვევის დაფა

VL53L0X გარღვევის დაფა, რომელიც მე გამოვიყენე არის GY-530. ასევე არსებობს Adafruit ვერსია და Pololu ვერსია. თუ შესაძლებელია, მე გირჩევთ გამოიყენოთ ადაფრუტი ან პოლოუს პროდუქტი, რადგან ისინი ქმნიან დიდ პროდუქტებს, დიდ გაკვეთილებს და პროგრამულ ბიბლიოთეკებს. მე გავტესტე ადაფრუტის VL53L0X ბიბლიოთეკა და გამოვიყენე Pololu- ს VL53L0X ბიბლიოთეკის შეცვლილი ვერსია.

დუპონტის კონექტორები

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

ხრახნები და 3D ნაბეჭდი ნაწილები

M2 ხრახნები, დამჭერები და წრიული ჩარჩო გამოიყენება სენსორების წრიული განლაგებისთვის. თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა მეთოდი, როგორიცაა ბარათის დაფები, მოდელის ხეები, თიხა, ან თუნდაც ცხელი წებო მათ ქილაზე.

ნაბიჯი 2: პურის დაფის გარჩევა

Breadout დაფის გარჩევა
Breadout დაფის გარჩევა
Breadout დაფის გარჩევა
Breadout დაფის გარჩევა
Breadout დაფის გარჩევა
Breadout დაფის გარჩევა
Breadout დაფის გარჩევა
Breadout დაფის გარჩევა

გამოვლენის კონუსი

მე გამოვიყენე ერთი მოდული გამოვლენის კონუსის დასახატად. სამიზნედ ძირითადად 3D დაბეჭდილი რობოტის გამოყენება. მანძილი ნაჩვენებია led ეკრანზე და იზომება უხეშად. გაზომილი მონაცემები ჩაწერილია Microsoft Excel ფაილში და გამოიყენება მრუდის მორგების ფუნქცია. საუკეთესო მორგება არის ბუნებრივი ლოგარითმის მრუდი, ეფექტური მანძილი 3 სმ -დან დაახლოებით 100 სმ -მდე.

60 სმ -ზე, ერთი სენსორის გამოვლენის მრუდი დაახლოებით 22 სმ -ია. 20 სმ სიგანის სამიზნეებით, რადარის მასივის წრიული გამოყოფა 10 ~ 15 გრადუსით უნდა იძლევა დასაშვებ სკანირების გარჩევადობას.

I2C მისამართი

მიუხედავად იმისა, რომ VL53L0X I2C მოწყობილობის მისამართი არის პროგრამირებადი, საჭიროა მიკროკონტროლის მიერ XSHUT პინის სრული კონტროლი. ამის თანმიმდევრობა ასეთია:

  1. ძალა გამოიყენება AVDD– ზე.
  2. ყველა VL53L0X ჩიპი მიყვანილია Hw ლოდინის (გადატვირთვის) მდგომარეობაში, მათი ყველა XSHUT ქინძისთავების დაბალ დონეზე მიყვანით.
  3. თითოეული ჩიპი ამოღებულია გადატვირთვის მდგომარეობიდან ერთდროულად. ჩატვირთვის შემდეგ ნაგულისხმევი I2C მისამართია 0x52.
  4. ჩიპის მისამართი იცვლება ახალ მისამართზე I2C ბრძანების საშუალებით. მაგალითად, 0x52 შეიცვალა 0x53.
  5. გაიმეორეთ ნაბიჯი 3 და 4 ყველა ჩიპისთვის.

თეორიულად, მაქსიმუმ 126 ერთეული შეიძლება იმოძრაოს იმავე ავტობუსში 7 ბიტიანი მისამართების დიაპაზონისთვის. თუმცა, პრაქტიკულად, მიკროკონტროლერის ავტობუსის ტევადობა და ჩაძირვის დენის შეზღუდვა შეიძლება/უნდა ზღუდავდეს მოწყობილობის მაქსიმალურ რაოდენობას.

ახალი I2C მისამართი არ ინახება VL53L0X ჩიპში გათიშვის ან გადატვირთვის წინააღმდეგ. ამრიგად, ეს პროცესი უნდა განხორციელდეს ყოველ ჯერზე გაძლიერებისთანავე. ეს ნიშნავს, რომ რადარის მასივის ყველა ერთეულისთვის საჭიროა ერთი ძვირფასი პინი. ეს არის ძალიან არამეგობრული გაყვანილობისა და ქინძისთავების მოხმარებისთვის, რადარის ქამრისთვის 10+ ან 20+ ერთეულით.

როგორც STEP1- შია ნახსენები, გაუმართლა, რომ VL53L0X ჩიპზე არის GPIO1 პინი, რომელიც თავდაპირველად გამოიყენებოდა შეწყვეტის მიზნით, შეუძლია შეასრულოს სამუშაო.

GPIO-XSHUTN გვირილის ჯაჭვი

GPIO გამომავალი მაღალი წინაღობის მდგომარეობაშია ჩატვირთვისას და ღია დრენაჟი დაბალამდე დაბალია. GPIO და XSHUT ქინძისთავები მაღალია AVDD– მდე GY-530 გარღვევის დაფაზე, როგორც ეს რეკომენდირებულია მონაცემთა ცხრილში. ყველა VL53L0X ჩიპის საიმედოდ დასაყენებლად Hw ლოდინის მდგომარეობაში (დაბალი სიჩქარით მოძრაობს XSHUT), ჩვენ გვჭირდება ლოგიკური NOT gate (ინვერტორი) თითოეული XSHUT პინისთვის. შემდეგ ჩვენ ვუკავშირდებით ერთი ჩიპის GPIO გამოშვებას (Nth ჩიპი), ქვედა ჩიპის XSHUTN (XSHUT-NOT) (N+1 ჩიპი).

ჩართვისთანავე ყველა GPIO ქინძისთავები (არააქტიური) ამოღებულია მაღლა, ყველა მომდევნო XSHUT ქინძისთავები დაბალია NOT კარიბჭით (გარდა იმ მუშტის ჩიპისა, სადაც მისი XSHUTN პინი დაკავშირებულია მიკროკონტროლერთან). I2C მისამართის შეცვლა და ქვედა ჩიპის XSHUT გამოშვება ხდება პროგრამულად, სათითაოდ.

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

LED- ის დამატება

მომდევნო ეტაპზე, მცირე 0805 SMD LED დაემატება გარღვევის დაფას, რომელიც დაკავშირებულია XSHUT ბალიშიდან მიმდებარე კონდენსატორის GND ტერმინალთან. მიუხედავად იმისა, რომ LED თავად არ ახდენს გავლენას მოდულის მუშაობაზე, ის გვაძლევს კარგ ვიზუალურ მითითებას XSHUT ლოგიკურ დონეზე.

LED- ის სერიული დაკიდება რეზისტორთან (ჩემს შემთხვევაში 10k) XSHUT პინზე შემოიღებს ძაბვის ვარდნას. 3.3 ვ მაღალი ლოგიკური დონის ნაცვლად, წითელი 0805 შუქდიოდური ელექტრული ძაბვის ვარდნა იზომება 1.6 ვ. მიუხედავად იმისა, რომ ეს ძაბვა უფრო მაღალია, ვიდრე მაღალი ლოგიკური დონე (1.12v) მონაცემთა ცხრილში, ლურჯი LED უკეთესია ამ გატეხვისთვის. ლურჯი LED- ის ძაბვის ვარდნა განისაზღვრება დაახლოებით 2.4 ვ, რაც უსაფრთხოდ აღემატება ჩიპის ლოგიკურ დონეს.

N-MOS ინვერტორის დამატება (ლოგიკა არ არის კარიბჭე)

პატარა SOT-23 N არხის MOSFET არის დაწყობილი ჩვენს მიერ დამატებულ LED- ზე. ორი ტერმინალი (D, S) უნდა იყოს შეკრული ბრეაკოუტ დაფაზე, ხოლო დანარჩენი ტერმინალი (G) დაკავშირებულია დიამეტრის გამგეობის GPIO პინთან #26 მავთულის გამოყენებით.

შენიშვნები SMD კომპონენტების დამატების შესახებ

SMD კომპონენტების შედუღება გარღვევის დაფაზე, რომელიც არ არის განკუთვნილი, არ არის ადვილი ამოცანა. თუ ჯერ არ გსმენიათ 0805, SMD, SOT-23– ის შესახებ, დიდი შანსია, რომ თქვენ ჯერ არ გაკვალოთ ეს პატარა კომპონენტები. იმ პატარა კომპონენტების ხელით დამუშავებისას ძალიან ხშირია, რომ:

  • პატარა რამ უბრალოდ გადმოვარდა და გაქრა, სამუდამოდ,
  • პაწაწინა ბალიშები პატარა ნივთზე, უბრალოდ ამოიოხრა.
  • წვრილფეხა ფეხები პატარა ნივთზე უბრალოდ გატეხილია.
  • Soldering კალის უბრალოდ შეიკრიბა blob და ვერ გამოეყო.
  • Და მეტი…

თუ თქვენ ჯერ კიდევ გსურთ ამ რადარის შექმნა, შეგიძლიათ:

  • შეცვალეთ კომპონენტები უფრო დიდ პაკეტში, როგორიცაა DIP სტილი.
  • მიიღეთ მეტი კომპონენტი, ვიდრე საჭიროა მინიმალური, პრაქტიკისათვის და მოხმარებისთვის.

ნაბიჯი 3: შედუღება 0805 LED

შედუღება 0805 LED
შედუღება 0805 LED
შედუღება 0805 LED
შედუღება 0805 LED
შედუღება 0805 LED
შედუღება 0805 LED
შედუღება 0805 LED
შედუღება 0805 LED

შედუღება 0805 SMD LED

0805 LED– ის ხელით შედუღება, SMD– სთვის განკუთვნილი ბრეაკოუტ დაფაზე, სულაც არ არის ადვილი ამოცანა. შემდეგი ნაბიჯები არის ჩემი რეკომენდაცია შედუღების LED.

  1. გამოიყენეთ დამხმარე ხელი, რომ დაიჭიროთ თქვენი გარღვევის დაფა.
  2. SMD კონდენსატორის კიდეზე და "XSHUT" ბალიშზე მოათავსეთ შესადუღებელი პასტა.
  3. გამოიყენეთ გამაგრილებელი რკინა კონდენსატორის ზღვარზე დამატებითი გამაგრების დასაყენებლად.
  4. განათავსეთ რამდენიმე soldering პასტა 0805 LED- ის ორივე ბოლოზე.
  5. გამოიყენეთ გამაგრილებელი უთო, რომ დადეთ ცოტაოდენი თუნუქი 0805 LED- ის ორივე ბოლოზე.
  6. გამოიყენეთ პინცეტი, რათა განათავსოთ LED როგორც ნაჩვენებია ფოტოში. კათოდის ბოლოს ჩვეულებრივ აქვს მონიშნული ხაზი. ჩემს მაგალითში, კათოდის ბოლოზე არის მწვანე ხაზი. მოათავსეთ კათოდის ბოლო კონდენსატორის ბოლომდე.
  7. გამოიყენეთ პინცეტი, რომ დაამატოთ მსუბუქი წნევა LED- ზე კონდენსატორისკენ, და მიამაგრეთ LED კონდენსატორის ბოლომდე, ამავე დროს დაამატეთ სითბო კონდენსატორის ბოლოში. ძლიერად არ დააჭიროთ LED- ს. მისი საფარი შეიძლება გატეხოს სითბოს და ზედმეტი წნევის ქვეშ. შედუღების შემდეგ, დაამატეთ მსუბუქი ზეწოლა LED- ზე გვერდით, რათა შეამოწმოთ, არის თუ არა LED განათებული ადგილზე.
  8. ახლა შემაერთეთ LED შუქი XSHUT დიპლომატიური ბალიშზე. ეს ნაბიჯი უფრო ადვილი უნდა იყოს.

შენიშვნა: კონდენსატორის დასასრული, რომელიც ნაჩვენებია სურათზე, არის მიწის ტერმინალი ამ გარღვევის დაფაზე. და დიპლომატიური ბალიში XSHUT ამოღებულია რეზისტორის მიერ.

LED- ის ტესტირება

LED უნდა ანათებდეს, როდესაც დენს (მაგ. 5V) იყენებთ და დაფარავთ დამრტყმელ დაფაზე.

ნაბიჯი 4: N- არხის MOSFET- ის შედუღება

N- არხის MOSFET- ის შედუღება
N- არხის MOSFET- ის შედუღება
N-Channel MOSFET- ის შედუღება
N-Channel MOSFET- ის შედუღება
N-Channel MOSFET- ის შედუღება
N-Channel MOSFET- ის შედუღება
N- არხის MOSFET- ის შედუღება
N- არხის MOSFET- ის შედუღება

შედუღება AO3400 N-Channel MOSFET

ეს MOSFET არის SOT-23 პაკეტში. ჩვენ გვჭირდება "დავალაგოთ" იგი LED- ზე და დავამატოთ მავთულიც:

  1. განათავსეთ რამდენიმე soldering პასტა და კალის სამივე ტერმინალი.
  2. გამოიყენეთ პინცეტი, რომ მოათავსოთ MOSFET 0805 LED- ის თავზე. S ტერმინალი უნდა შეეხოს კონდენსატორის ზედა ნაწილს
  3. Solder S ტერმინალი კონდენსატორის ბოლოში, როგორც ნაჩვენებია ფოტოში.
  4. გაჭერით მცირე ზომის AWG #30 ერთი ბირთვიანი მავთული და ამოიღეთ საფარი დაახლოებით 1 სმ.
  5. გამოიყენეთ გამაგრილებელი რკინა, რომ გაადნოთ გამდნარი XSHUT ხვრელში ქვემოდან და ჩასვით #30 მავთული ზემოდან, როგორც ეს ნაჩვენებია ფოტოში.
  6. მავთულის ზედა ნაწილის შედუღება MOSFET D ტერმინალზე.
  7. გათიშეთ დამატებითი მავთული.

შენიშვნა: MOSFET S ტერმინალი დაკავშირებულია კონდენსატორის ბოლოთან, როგორც ეს ნაჩვენებია სურათზე. ეს დასასრული არის სახმელეთო ტერმინალი. MOSFET D ტერმინალი დაკავშირებულია ორიგინალ XSHUT პინთან.

G ტერმინალი ამჟამად არ არის დაკავშირებული. მისი პოზიცია ოდნავ მაღლა დგას რეზისტენტებზე. დარწმუნდით, რომ მათ შორის არის უფსკრული (N-MOS და რეზისტორი) და არ შეეხოთ ერთმანეთს.

ნაბიჯი 5: სენსორული მასივის გაყვანილობა

სენსორული მასივის გაყვანილობა
სენსორული მასივის გაყვანილობა
სენსორული მასივის გაყვანილობა
სენსორული მასივის გაყვანილობა
სენსორული მასივის გაყვანილობა
სენსორული მასივის გაყვანილობა

საერთო ავტობუსის გაყვანილობა

საერთო ავტობუსი მოიცავს:

  • Vcc ძალა. ფოტოში წითელი. მე ვიყენებ arduino nano– ს 5 ვ ლოგიკით. გარღვევის დაფას აქვს LDO და დონის შემცვლელი. ასე რომ, უსაფრთხოა გამოიყენოთ 5 ვ როგორც Vin.
  • გრუნტი. შავი ფოტოზე.
  • SDA. მწვანე ფოტოზე.
  • SCL. ყვითელი ფოტოზე.

ეს ოთხი ხაზი საერთო ხაზებია. გაჭერით შესაბამისი სიგრძის მავთულები და შეაერთეთ ისინი პარალელურად, ყველა სენსორულ მოდულზე. მე გამოვიყენე 20 სმ არდუინოდან პირველ სენსორამდე და ყოველივე ამის შემდეგ 5 სმ.

XSHUTN და GPIO გაყვანილობა

20 სმ თეთრი მავთული არის არდუინოს საკონტროლო პინიდან, პირველი სენსორის XSHUTN პინამდე. ეს არის საკონტროლო ხაზი, რომელიც საჭიროა პირველი VL53L0X ჩიპის გადატვირთვისაგან და I2C მისამართის შესაცვლელად.

თითოეულ მოდულს შორის 5 სმ თეთრი მავთული არის გვირილის ჯაჭვის კონტროლის ხაზი. ზემო დინების ჩიპი (მაგალითად, ჩიპი #3) GPIO ბალიში, დაკავშირებულია ქვემო დინებაში (მაგალითად, ჩიპი #4) XSHUTN ფეხი (N-Channel MOSFET G ტერმინალი).

ფრთხილად იყავით, რომ არ დაამყაროთ G ტერმინალი რეზისტორთან ქვემოთ. თქვენ შეგიძლიათ დაამატოთ საიზოლაციო ლენტი შუალედში. აქ შეიძლება გამოყენებულ იქნას დაცვის ლაინერი, რომელიც ჩვეულებრივ მიეწოდება VL53L0X ჩიპს.

გამოიყენეთ სითბოს იარაღი საკონტროლო მავთულის დასაჭერად.

ცხელი წებო

როგორც ფოტოზე ხედავთ, თეთრი კონტროლის მავთულზე, N-MOS G ტერმინალის მახლობლად არის ცხელი წებო. ეს ნაბიჯი არის ძალიან მნიშვნელოვანი და აბსოლუტურად აუცილებელი. მცურავი შედუღება პირდაპირ SMD კომპონენტის ფეხიზე ძალიან სუსტია. მავთულზე მცირე ზეწოლამაც კი შეიძლება ფეხი დაარღვიოს. გააკეთეთ ეს ნაბიჯი ნაზად.

LED- ის ტესტირება

როდესაც თქვენ იყენებთ სიმძლავრეს (მაგ. 3.3v-5v) და მიწას სენსორების მასივზე, LED პირველ მოდულზე უნდა პასუხობდეს XSHUTN მავთულის ლოგიკურ დონეს. თუ თქვენ დაუკავშირდებით XSHUTN ლოგიკას მაღალ (მაგ. 3.3v-5v), LED უნდა იყოს გამორთული. თუ თქვენ დაუკავშირდებით XSHUTN მავთულს დაბალ (ადგილზე), პირველი მოდულის LED უნდა იყოს ჩართული.

ყველა მომდევნო მოდულისთვის, LED უნდა იყოს გამორთული.

ეს ტესტი ტარდება არდუინოსთან დაკავშირებამდე.

ნაბიჯი 6: სენსორული მასივის დასრულება

Image
Image
სენსორული მასივის დასრულება
სენსორული მასივის დასრულება
სენსორული მასივის დასრულება
სენსორული მასივის დასრულება
სენსორული მასივის დასრულება
სენსორული მასივის დასრულება

დეიზის ჯაჭვის ტესტირება

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

  1. დააყენეთ პურის დაფა. 5V და სახმელეთო რკინიგზა პირდაპირ კავშირშია ადრიანო 5V და მიწასთან. თითოეული სენსორის ამჟამინდელი მოხმარება შეფასებულია 19ma მონაცემთა ცხრილში.
  2. დაამატეთ კონდენსატორი დენის რკინიგზაზე, რაც ხელს შეუწყობს ვინის სტაბილიზაციას.
  3. შეაერთეთ Vin და Ground სენსორული მასივიდან ელექტროგადამცემი ხაზთან.
  4. შეაერთეთ SDA arduino Nano pin A4– სთან (შეიძლება განსხვავებული იყოს სხვა მიკროკონტროლერებისთვის).
  5. შეაერთეთ SCL arduino Nano pin A5– სთან (შეიძლება განსხვავებული იყოს სხვა მიკროკონტროლერებისთვის).
  6. შეაერთეთ XSHUTN მავთული arduino Nano pin D2– თან. (ეს შეიძლება შეიცვალოს ესკიზში).
  7. გადადით github– ზე https://github.com/FuzzyNoodle/Fuzzy-Radar და ჩამოტვირთეთ ბიბლიოთეკა.
  8. გახსენით "Daisy_Chain_Testing" მაგალითი და ატვირთეთ ესკიზი.

თუ ყველაფერი მუშაობს, თქვენ უნდა ნახოთ სტატუსის LED- ები სათითაოდ ანათებს, მსგავსი ვიდეო კლიპის მსგავსი.

თქვენ ასევე შეგიძლიათ გახსნათ სერიული ფანჯარა და ნახოთ ინიციალიზაციის პროგრესი. გამომავალი გამოჩნდება ასე:

პორტის გახსნა პორტი გახსნის დაწყებული ესკიზი. ჩიპი 0 დააყენეთ გადატვირთვის რეჟიმში. ყველა სტატუსის LED უნდა იყოს გამორთული. ახლა სენსორების კონფიგურაცია. LED უნდა აანთოს სათითაოდ. კონფიგურაცია ჩიპი 0 - გადატვირთეთ I2C მისამართი 83 - ინიციალიზაცია სენსორი. კონფიგურაცია ჩიპი 1 - გადატვირთეთ I2C მისამართი 84 - ინიციალიზაცია სენსორი. ჩიპის კონფიგურაცია 2 - I2C მისამართის 85 -ზე გადატანა - სენსორის ინიციალიზაცია. რადარის მასივის კონფიგურაცია დასრულებულია.

შეიკრიბეთ მფლობელი და ჩარჩო

  1. ფრთხილად მოათავსეთ თითოეული GY-530 მოდული დამჭერზე M2x10 ხრახნით. არ დააჭიროთ MOSFET- ს და არ გაიყვანოთ XSHUTN მავთულები.
  2. მოათავსეთ თითოეული დამჭერი წრიულ ჩარჩოში. გამოიყენეთ ცხელი წებო ნაწილების დასაკავშირებლად.

ისევ და ისევ, M2 ხრახნები, დამჭერები და წრიული ჩარჩო გამოიყენება სენსორების წრიული განლაგებისთვის. თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა მეთოდი, როგორიცაა ბარათის დაფები, მოდელის ხეები, თიხა, ან თუნდაც ცხელი წებო მათ ქილაზე.

3D დაბეჭდილი ფაილები, რომლებიც მე გამოვიყენე, მოცემულია ქვემოთ. წრიულ ჩარჩოს აქვს 9 მოდული და თითოეული გამოყოფილია 10 გრადუსით. თუ თქვენ გაქვთ მკვეთრი თვალი, წინა ფოტოებში იყო 10 მოდული. Მიზეზი? ქვემოთ განმარტებულია…

ამოიღეთ დამცავი ლაინერი

თუ თავიდანვე მიჰყევით ნაბიჯებს, ახლა კარგი დროა ამოიღოთ დამცავი ლაინერი VL53L0X ჩიპზე. ჩემს წინა ფოტოებზე, ისინი უკვე ამოღებულია, რადგან მოდულების გამოსაცდელად უნდა ვიმოძრაო და დავრწმუნდე, რომ კონცეფცია მუშაობს ამ ინსტრუქციის გამოქვეყნებამდე.

დამცავი ლაინერის შესახებ, მონაცემთა ფურცელში ნათქვამია: "ის მომხმარებელმა უნდა ამოიღოს საფარის შუშის დამონტაჟებამდე". ორი პატარა ხვრელი (გამცემი და მიმღები) VL53L0X ჩიპზე დაუცველია დაბინძურებისგან, როგორიცაა მტვერი, ცხიმი, ცხელი წებო და ა.

დაბინძურებისთანავე, დიაპაზონი შეიძლება შემცირდეს და კითხვები შეიძლება აშკარა რაოდენობით შემცირდეს. ჩემი ერთ -ერთი სატესტო მოდული შემთხვევით დაბინძურებულია წებოვანი თიხით, დიაპაზონი მცირდება 40 სმ -მდე, ხოლო დისტანციის კითხვა შეცდომით იზრდება 50%-ით. ასე რომ, ფრთხილად იყავით!

ნაბიჯი 7: მონაცემების მიღება

Image
Image
ლაზერული ტრეკერი (დემონსტრაცია)
ლაზერული ტრეკერი (დემონსტრაცია)

Raw_Data_Serial_Output მაგალითის გამოყენებით

ახლა ჩვენ ნამდვილად მოგვწონს მონაცემების ნახვა ჩვენი სენსორული მასივიდან. არდუინოს ბიბლიოთეკაში GitHub– ზე:

https://github.com/FuzzyNoodle/Fuzzy-Radar

არსებობს მაგალითი სახელწოდებით Raw_Data_Serial_Output. ეს მაგალითი აჩვენებს სენსორული მასივიდან ნედლი მონაცემების გამომუშავებას. გამომავალი მნიშვნელობები არის მილიმეტრებში.

მას შემდეგ, რაც სენსორები ინიციალიზებულია, უნდა ნახოთ მსგავსი რამ სერიულ ფანჯარაში, როდესაც სენსორებს ხელს აწვებით:

იხილეთ ვიდეოკლიპი ცოცხალი დემონსტრაციისთვის.

Fuzzy_Radar_Serial_Output მაგალითის გამოყენებით

შემდეგი ნაბიჯი არის სასარგებლო მონაცემების მიღება ამ დისტანციური კითხვებიდან. რადარისგან გვსურს სამიზნე ობიექტის მანძილი და კუთხე.

  • მანძილი არის მილიმეტრებში, რაც დაკავშირებულია სენსორის ზედაპირთან. 0 დაბრუნება ნიშნავს, რომ სამიზნე არ არის დიაპაზონში.
  • კუთხე არის გრადუსი, ჰორიზონტალურ სიბრტყეზე. კოდი, რომელიც ამჟამად მოსალოდნელია, სენსორები თანაბრად არის დაშორებული. 0 გრადუსის დაბრუნება ნიშნავს, რომ სამიზნე არის მასივის ცენტრალურ პოზიციაზე.

ზოგიერთი ფილტრაციის ალგორითმი გამოიყენება ბიბლიოთეკაში:

  • ხმაურის მოცილება:

    • ხანმოკლე (ნიმუშის რაოდენობის თვალსაზრისით) კითხვა ითვლება ხმაურად და მოიხსნება.
    • წაშლილები, რომლებიც საშუალო მნიშვნელობისგან შორს არის, ამოღებულია.
  • წონის კუთხის გაანგარიშება (იხ. ილუსტრაცია ზემოთ)

    • სამიზნე ობიექტი ითვლება ბრტყელ ზედაპირზე
    • თუ რამოდენიმე სენსორმა აღმოაჩინა ობიექტი ერთდროულად, წონა გამოითვლება თითოეული სენსორისთვის.
    • თითოეული სენსორის წონა უკუკავშირშია მის მანძილზე.
    • შედეგი ანგელოზი გამოითვლება თითოეული სენსორის შეწონილი კუთხიდან.
  • სამიზნეების ძირითადი შერჩევა:

    • თუ კითხვის ერთზე მეტი ჯგუფია, რჩება ყველაზე ფართო (სენსორების კითხვის მეტი რიცხვით) ჯგუფი.
    • მაგალითად, თუ სენსორული მასივის წინ დააყენებთ ორ ხელს, მეტი სენსორის მიერ გამოვლენილი ხელი რჩება.
  • სამიზნეების უახლოესი შერჩევა:

    • თუ არსებობს ერთზე მეტი აღმოჩენილი ჯგუფი იგივე სიგანით, ჯგუფი უახლოეს მანძილზე რჩება.
    • მაგალითად, თუ თქვენ სენსორული მასივის წინ დააყენებთ ორ ხელს და ორ გამოვლენილ ჯგუფს აქვს ერთი და იგივე სენსორი, სენსორთან უფრო ახლოს ჯგუფი რჩება.

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

Raw_Data_Serial_Output- ში ნედლი მანძილის კითხვა გადაიქცევა მანძილისა და კუთხის მნიშვნელობად. ესკიზის ატვირთვის შემდეგ შეგიძლიათ გახსნათ სერიული ფანჯარა, რომ ნახოთ მსგავსი შედეგი:

ობიექტი არ არის გამოვლენილი. ობიექტი არ არის გამოვლენილი.ობიექტი არ არის აღმოჩენილი. მანძილი = 0056 კუთხე = 017 მანძილი = 0066 კუთხე = 014 მანძილი = 0077 კუთხე = 011 მანძილი = 0083 კუთხე = 010 მანძილი = 0081 კუთხე = 004 მანძილი = 0082 კუთხე = 000 მანძილი = 0092 კუთხე = 002 მანძილი = 0097 კუთხე = 001 მანძილი = 0096 კუთხე = 001 მანძილი = 0099 კუთხე = 000 მანძილი = 0101 კუთხე = -002 მანძილი = 0092 კუთხე = -004 მანძილი = 0095 კუთხე = -007 მანძილი = 0101 კუთხე = -008 მანძილი = 0112 კუთხე = -014 მანძილი = 0118 კუთხე = -017 მანძილი = 0122 კუთხე = -019 მანძილი = 0125 კუთხე = -019 მანძილი = 0126 კუთხე = -020 მანძილი = 0125 კუთხე = -022 მანძილი = 0124 კუთხე = -024 მანძილი = 0133 კუთხე = -027 მანძილი = 0138 კუთხე = - 031 მანძილი = 0140 კუთხე = -033 მანძილი = 0136 კუთხე = -033 მანძილი = 0125 კუთხე = -037 მანძილი = 0120 კუთხე = -038 მანძილი = 0141 კუთხე = -039 ობიექტი არ არის გამოვლენილი. ობიექტი არ არის აღმოჩენილი. ობიექტი არ არის აღმოჩენილი.

ახლა თქვენ გაქვთ რადარი (LIDAR):

  • უფრო მცირე ვიდრე ულტრაბგერითი სენსორის მოდულები
  • მოძრავი ნაწილები არ არის
  • სკანირება 40 ჰერცზე.
  • ჩამოყალიბებულია ქამრის მსგავსად, შეიძლება დამონტაჟდეს წრიულ ჩარჩოზე
  • გამოიყენეთ მხოლოდ სამი საკონტროლო მავთული, დამატებული დენი და მიწა.
  • აქვს დიაპაზონი 30 მილიმეტრიდან დაახლოებით 1000 მილიმეტრამდე.

შემდეგ ნაბიჯებში ჩვენ გაჩვენებთ რამდენიმე მაგარ დემონსტრაციას!

ნაბიჯი 8: ლაზერული ტრეკერი (დემონსტრაცია)

Image
Image
ლაზერული ტრეკერი (დემონსტრაცია)
ლაზერული ტრეკერი (დემონსტრაცია)

ეს არის სტაციონალური რადარის გამოყენების ერთი მაგალითი, რომელიც ჩვენ ავაშენეთ წინა საფეხურებიდან. ეს ნაბიჯი დეტალურად არ არის დაწერილი, რადგან ეს არის რადარის დემონსტრირება. ზოგადად, თქვენ გჭირდებათ ეს დამატებითი ნივთები ამ სადემონსტრაციო პროექტის შესაქმნელად:

  • ორი სერვისი
  • ლაზერული კალამი ასხივებს თავს
  • MOSFET ან NPN ტრანზისტორი ლაზერული თავის გამოსასვლელის გასაკონტროლებლად
  • დენის წყარო სერვისებისთვის. ის უნდა იყოს გამოყოფილი მიკროკონტროლერისგან.

კოდის ჩამოტვირთვა შესაძლებელია აქ.

გთხოვთ იხილოთ ვიდეო.

ნაბიჯი 9: Poopeyes– ის მზერა (დემონსტრაცია)

Image
Image

რადარის გამოყენების დემონსტრირება ობიექტის ადგილმდებარეობისა და მანძილის დასადგენად.

გირჩევთ: