Სარჩევი:

დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით: 6 ნაბიჯი
დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით: 6 ნაბიჯი

ვიდეო: დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით: 6 ნაბიჯი

ვიდეო: დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით: 6 ნაბიჯი
ვიდეო: 10 Najpotężniejszych czołgów na świecie 2024, ივნისი
Anonim
დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით
დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით

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

პროექტი ემყარება ამ სტატიას:

ერთადერთი განსხვავება ისაა, რომ მე ვაშენებ მანძილმზომს Raspberry Pi Zero W, LCD და Raspberry Pi Camera მოდულის გამოყენებით. ასევე გამოვიყენებ OpenCV ლაზერის თვალყურის დევნებისთვის.

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

Დავიწყოთ!

ნაბიჯი 1: მასალების ჩამონათვალი

ამ პროექტისთვის დაგჭირდებათ:

  • იაფი 6 მმ 5 მგვტ ლაზერი
  • 220 Ω რეზისტორი
  • 2N2222A ტრანზისტორი ან მისი ექვივალენტი
  • Raspberry Pi Zero W
  • Raspberry Pi კამერა v2
  • Nokia 5110 LCD ეკრანი ან ექვივალენტი
  • რამდენიმე მხტუნავი მავთული და პატარა დაფა

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

ნაბიჯი 2: ააშენეთ ლაზერი და კამერა Jig

ლაზერული და კამერის ჯიგის მშენებლობა
ლაზერული და კამერის ჯიგის მშენებლობა
ლაზერული და კამერის ჯიგის შექმნა
ლაზერული და კამერის ჯიგის შექმნა
ლაზერული და კამერის ჯიგის შექმნა
ლაზერული და კამერის ჯიგის შექმნა

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

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

მე გამოვიყენე Tinkercad ასაშენებლად, თქვენ შეგიძლიათ იპოვოთ მოდელი აქ:

3.75 სმ მანძილი ლაზერული ლინზის ცენტრსა და კამერის ობიექტივის ცენტრს შორის.

ნაბიჯი 3: მართეთ ლაზერი და LCD

მართავს ლაზერს და LCD- ს
მართავს ლაზერს და LCD- ს
მართავს ლაზერს და LCD- ს
მართავს ლაზერს და LCD- ს

მე მივყევი ამ სახელმძღვანელოს https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi, რომ მოვახდინო LCD ეკრანი Raspberry Pi Zero– ით. ნაცვლად /boot/config.txt ფაილის რედაქტირებისა, შეგიძლიათ ჩართოთ SPI ინტერფეისი sudo raspi-config ბრძანების ხაზის საშუალებით.

მე ვიყენებ Raspberry Pi Zero– ს უთავო რეჟიმში, უახლესი, თარიღის, Raspbian Stretch– ის გამოყენებით. მე არ დავფარავ ინსტალაციას ამ ინსტრუქციებში, მაგრამ შეგიძლიათ მიყევით ამ სახელმძღვანელოს: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- ბრძანების ხაზი ან ქსელის გამოყენება 97f065af722e

ნათელი ლაზერული წერტილისთვის, მე ვიყენებ Pi- ს 5V სარკინიგზო მაგისტრალს. ამისათვის მე ვიყენებ ტრანზისტორს (2N2222a ან ექვივალენტი) ლაზერის მართვისთვის GPIO– ს გამოყენებით. 220 Ω რეზისტორი ტრანზისტორის ბაზაზე იძლევა საკმარის დენს ლაზერის საშუალებით. მე ვიყენებ RPi. GPIO– ს Pi GPIO– ს მანიპულირებისთვის. ტრანზისტორის ბაზა დავუკავშირე GPIO22 პინს (მე -15 პინი), გამცემი მიწას და კოლექტორი ლაზერულ დიოდს.

არ დაგავიწყდეთ კამერის ინტერფეისის ჩართვა sudo raspi-config ბრძანების ხაზის საშუალებით.

თქვენ შეგიძლიათ გამოიყენოთ ეს კოდი თქვენი დაყენების შესამოწმებლად:

თუ ყველაფერი კარგად წავიდა, თქვენ უნდა გქონდეთ dot-j.webp

კოდში ჩვენ ვაყენებთ კამერას და GPIO- ს, შემდეგ ვააქტიურებთ ლაზერს, ვიღებთ სურათს და ვთიშავთ ლაზერს. ვინაიდან მე Pi– ს ვუშვებ უსაგნო რეჟიმში, მე უნდა გადავაკოპირო სურათები ჩემი Pi– დან ჩემს კომპიუტერში მათ გამოჩენამდე.

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

ნაბიჯი 4: ლაზერის გამოვლენა OpenCV გამოყენებით

პირველ რიგში, ჩვენ უნდა დავაინსტალიროთ OpenCV Pi- ზე. თქვენ ძირითადად გაქვთ ამის გაკეთების სამი გზა. თქვენ შეგიძლიათ დააინსტალიროთ ძველი შეფუთული ვერსია apt. თქვენ შეგიძლიათ შეადგინოთ თქვენთვის სასურველი ვერსია, მაგრამ ამ შემთხვევაში ინსტალაციის დრო შეიძლება გაიზარდოს 15 საათამდე და უმეტესობა ფაქტობრივი შედგენისთვის. ან, ჩემი სასურველი მიდგომა, შეგიძლიათ გამოიყენოთ წინასწარ შედგენილი ვერსია Pi Zero– სთვის, რომელიც მოწოდებულია მესამე მხარის მიერ.

რადგან ის უფრო მარტივი და სწრაფია, მე გამოვიყენე მესამე მხარის პაკეტი. თქვენ შეგიძლიათ იპოვოთ ინსტალაციის ნაბიჯები ამ სტატიაში: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ მე შევეცადე ბევრი სხვა წყარო, მაგრამ მათი პაკეტები არ იყო განახლებული.

ლაზერული მაჩვენებლის თვალყურის დევნებისთვის, მე განვაახლე კოდი https://github.com/bradmontgomery/python-laser-tracker, რომ გამოვიყენო Pi კამერის მოდული USB მოწყობილობის ნაცვლად. შეგიძლიათ პირდაპირ გამოიყენოთ კოდი, თუ არ გაქვთ Pi კამერის მოდული და გსურთ გამოიყენოთ USB კამერა.

თქვენ შეგიძლიათ იპოვოთ სრული კოდი აქ:

ამ კოდის გასაშვებად დაგჭირდებათ პითონის პაკეტების დაყენება: ბალიში და პიკამერა (sudo pip3 დააინსტალირეთ ბალიშის პიქამერი).

ნაბიჯი 5: დიაპაზონის მაძიებლის დაკალიბრება

დიაპაზონის მაძიებლის დაკალიბრება
დიაპაზონის მაძიებლის დაკალიბრება
დიაპაზონის მაძიებლის დაკალიბრება
დიაპაზონის მაძიებლის დაკალიბრება
დიაპაზონის მაძიებლის დაკალიბრება
დიაპაზონის მაძიებლის დაკალიბრება

თავდაპირველ სტატიაში, ავტორმა შეიმუშავა კალიბრაციის პროცედურა, რათა მიიღო საჭირო პარამეტრები y კოორდინატების რეალურ მანძილზე გადასაყვანად. მე გამოვიყენე ჩემი მისაღები მაგიდა კალიბრაციისთვის და ძველი ნამუშევარი. ყოველ 10 სმ -ზე მე აღვნიშნავ x და y კოორდინატებს ცხრილში: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… იმისათვის, რომ ყველაფერი სწორად მუშაობდეს, ყოველ ნაბიჯზე ვამოწმებდი გადაღებულ სურათებს ლაზერი სწორად იქნა მიკვლეული. თუ თქვენ იყენებთ მწვანე ლაზერს ან თუ თქვენი ლაზერი სწორად არ არის თვალყური, თქვენ დაგჭირდებათ პროგრამის ელფერი, გაჯერება და ღირებულების შესაბამისად მორგება.

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

ახლა დროა დისტანცირების პროგრამაში შევიტანოთ პარამეტრები მანძილების გასაზომად.

ნაბიჯი 6: მანძილების გაზომვა

მანძილების გაზომვა
მანძილების გაზომვა

კოდში: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c მე განვაახლე ცვლადები HEIGHT, GAIN და OFFSET კალიბრაციის გაზომვების მიხედვით. ორიგინალ სტატიაში მანძილის ფორმულა გამოვიყენე მანძილის შესაფასებლად და დისტანცია დავბეჭდე LCD ეკრანის გამოყენებით.

კოდი პირველ რიგში დააყენებს კამერას და GPIO- ს, შემდეგ ჩვენ გვსურს LCD შუქის განათება, რომ უკეთ დავინახოთ გაზომვები. LCD შეყვანა ჩართულია GPIO14– ზე. ყოველ 5 წამში, ჩვენ:

  1. ჩართეთ ლაზერული დიოდი
  2. სურათის გადაღება მეხსიერებაში
  3. გამორთეთ ლაზერული დიოდი
  4. აკონტროლეთ ლაზერი HSV დიაპაზონის ფილტრების გამოყენებით
  5. ჩაწერეთ მიღებული სურათი დისკზე გამართვის მიზნით
  6. მანძილის გამოთვლა y კოორდინატზე დაყრდნობით
  7. ჩაწერეთ მანძილი LCD ეკრანზე.

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

ასევე შემიძლია დიაპაზონის გარჩევადობის გაზრდა კამერის ბრუნვით 90º -ით სრულად გამოყენებით და გაფართოება კამერის მაქსიმალურ მხარდაჭერაზე. ახლანდელი განხორციელებით ჩვენ შემოიფარგლება 0 -დან 384 პიქსელის დიაპაზონში, ჩვენ შეგვიძლია გავზარდოთ ზედა ზღვარი 1640 -მდე, 4 -ჯერ მიმდინარე რეზოლუციით. მანძილი კიდევ უფრო ზუსტი იქნება.

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

საერთო ჯამში, არსებული სისტემა ჩემთვის საკმარისია და დაზოგავს ჩემს სახლს, რაც გეგმავს ჩემს სახლს!

გირჩევთ: