Სარჩევი:
- ნაბიჯი 1: მასალების ჩამონათვალი
- ნაბიჯი 2: ააშენეთ ლაზერი და კამერა Jig
- ნაბიჯი 3: მართეთ ლაზერი და LCD
- ნაბიჯი 4: ლაზერის გამოვლენა OpenCV გამოყენებით
- ნაბიჯი 5: დიაპაზონის მაძიებლის დაკალიბრება
- ნაბიჯი 6: მანძილების გაზომვა
ვიდეო: დიაპაზონის მაძიებელი ლაზერისა და კამერის გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ამჟამად ვგეგმავ ინტერიერის მუშაობას მომავალი გაზაფხულისთვის, მაგრამ როგორც კი შევიძინე ძველი სახლი, მე არ მაქვს სახლის გეგმა. დავიწყე გაზომვა კედლიდან კედლამდე მანძილის გამოყენებით, მაგრამ ის ნელია და შეცდომებისკენ მიდრეკილი. მე ვიფიქრე დიაპაზონის ყიდვის შესახებ პროცესის გასაადვილებლად, მაგრამ შემდეგ ვიპოვე ძველი სტატია ლაზერისა და კამერის გამოყენებით საკუთარი დიაპაზონის მაშენებლის შესახებ. როგორც ირკვევა, მე მაქვს ეს კომპონენტები ჩემს სახელოსნოში.
პროექტი ემყარება ამ სტატიას:
ერთადერთი განსხვავება ისაა, რომ მე ვაშენებ მანძილმზომს 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
მე მივყევი ამ სახელმძღვანელოს 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 წამში, ჩვენ:
- ჩართეთ ლაზერული დიოდი
- სურათის გადაღება მეხსიერებაში
- გამორთეთ ლაზერული დიოდი
- აკონტროლეთ ლაზერი HSV დიაპაზონის ფილტრების გამოყენებით
- ჩაწერეთ მიღებული სურათი დისკზე გამართვის მიზნით
- მანძილის გამოთვლა y კოორდინატზე დაყრდნობით
- ჩაწერეთ მანძილი LCD ეკრანზე.
მიუხედავად იმისა, რომ ღონისძიებები ძალიან ზუსტი და ზუსტია საკმარისად ჩემი გამოყენების შემთხვევისთვის, ბევრი ადგილი აქვს გასაუმჯობესებლად. მაგალითად, ლაზერული წერტილი არის ძალიან ცუდი ხარისხის და ლაზერული ხაზი ნამდვილად არ არის ორიენტირებული. უკეთესი ხარისხის ლაზერით, დაკალიბრების საფეხურები უფრო ზუსტი იქნება. კამერაც კი ნამდვილად არ არის კარგად განლაგებული ჩემს ჯაგში, ის იხრება ბოლოში.
ასევე შემიძლია დიაპაზონის გარჩევადობის გაზრდა კამერის ბრუნვით 90º -ით სრულად გამოყენებით და გაფართოება კამერის მაქსიმალურ მხარდაჭერაზე. ახლანდელი განხორციელებით ჩვენ შემოიფარგლება 0 -დან 384 პიქსელის დიაპაზონში, ჩვენ შეგვიძლია გავზარდოთ ზედა ზღვარი 1640 -მდე, 4 -ჯერ მიმდინარე რეზოლუციით. მანძილი კიდევ უფრო ზუსტი იქნება.
შემდგომი მუშაობისას, მე მომიწევს ვიმუშაო ზემოთ ნახსენები სიზუსტის გაუმჯობესებაზე და შევქმნა დანართი დიაპაზონის მაძიებლისთვის. დანართი უნდა იყოს ზუსტი სიღრმე კედლის კედლის გაზომვის გასაადვილებლად.
საერთო ჯამში, არსებული სისტემა ჩემთვის საკმარისია და დაზოგავს ჩემს სახლს, რაც გეგმავს ჩემს სახლს!
გირჩევთ:
Arduino UNO OLED ულტრაბგერითი დიაპაზონის მაძიებელი და ვიზუინო: 7 ნაბიჯი
Arduino UNO OLED ულტრაბგერითი დიაპაზონის მაძიებელი და ვიზუინო: ამ გაკვეთილში ჩვენ გამოვიყენებთ Arduino UNO, OLED Lcd, ულტრაბგერითი დიაპაზონის მონახულების მოდულს და Visuino- ს ულტრაბგერითი დიაპაზონის საჩვენებლად Lcd- ზე და ზღვრული დისტანციის დადგენას წითელი LED- ით. უყურეთ სადემონსტრაციო ვიდეოს
წვრილმანი დიაპაზონის მაძიებელი არდუინოსთან ერთად: 6 ნაბიჯი
წვრილმანი დიაპაზონის მაძიებელი არდუინოსთან ერთად: ამ სტატიაში მე გაჩვენებთ, თუ როგორ შეგიძლიათ გააკეთოთ დიაპაზონის მაძიებელი არდუინოს გამოყენებით
ულტრაბგერითი დიაპაზონის მაძიებელი სახელმძღვანელო არდუინოთი და LCD– ით: 5 ნაბიჯი
ულტრაბგერითი დიაპაზონის მაძიებელი სახელმძღვანელო Arduino და LCD– ით: ბევრმა ადამიანმა შექმნა ინსტრუქცია, თუ როგორ გამოიყენოთ Arduino Uno ულტრაბგერითი სენსორით და, ზოგჯერ, ასევე LCD ეკრანით. მე ყოველთვის ვხვდებოდი, რომ ეს სხვა ინსტრუქციები ხშირად გამოტოვებენ ისეთ ნაბიჯებს, რომელთა დაწყებაც არ არის აშკარა
ულტრაბგერითი სენსორის დიაპაზონის მაძიებელი: 5 ნაბიჯი
ულტრაბგერითი სენსორული დიაპაზონის მაძიებელი: შესავალი: ულტრაბგერითი დიაპაზონის მაძიებელი არდუინოს გამოყენებით. ულტრაბგერითი დიაპაზონის მაძიებელი არის მარტივი მეთოდი, რომ გამოვთვალოთ მანძილი დაბრკოლებიდან მანძილიდან ყოველგვარი ფიზიკური კონტაქტის გარეშე. იგი იყენებს ულტრაბგერითი დისტანციის სენსორს, რომელიც იყენებს ხმის იმპულსებს
ულტრაბგერითი დიაპაზონის მაძიებელი კარებით: 7 ნაბიჯი (სურათებით)
ულტრაბგერითი დიაპაზონის მაძიებელი კარებით: ულტრაბგერითი დიაპაზონის მაძიებელი აღმოაჩენს თუ არა რაიმე მის გზაზე მაღალი სიხშირის ხმის ტალღის გამოსხივებით. ამ სახელმძღვანელოს ყურადღება გამახვილდება იმაზე, თუ როგორ შეუძლიათ კარები და ულტრაბგერითი დიაპაზონის მკვლევარები ერთად იმუშაონ, კონკრეტულად როგორ შეიძლება მათი გამოყენება იმის დასადგენად, როდესაც