Mundarija:
- 1 -qadam: materiallar ro'yxati
- 2 -qadam: Lazer va kamera qurilmasini yaratish
- 3 -qadam: Lazer va LCD displeyni boshqarish
- 4 -qadam: OpenCV yordamida lazerni aniqlash
- 5 -qadam: Range Finderni kalibrlash
- 6 -qadam: masofalarni o'lchash
Video: Lazer va kamera yordamida diapazonni aniqlash: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Hozir men kelgusi bahor uchun ichki ishlarni rejalashtiryapman, lekin eski uyni sotib olganimdan keyin uy rejam yo'q. Men o'lchagich yordamida devordan devorgacha bo'lgan masofani o'lchay boshladim, lekin u sekin va xatolarga moyil. Men jarayonni engillashtirish uchun masofa o'lchagichni sotib olishni o'yladim, lekin keyin men lazer va kamera yordamida o'z masofa o'lchagichini yaratish haqida eski maqolani topdim. Ma'lum bo'lishicha, menda bu komponentlar ustaxonamda bor.
Loyiha ushbu maqolaga asoslangan:
Yagona farq shundaki, men Raspberry Pi Zero W, LCD va Raspberry Pi Camera moduli yordamida masofa o'lchagichni quraman. Men lazerni kuzatish uchun OpenCV -dan ham foydalanaman.
O'ylaymanki, siz texnologiyani yaxshi bilasiz va Python va buyruq satridan qulay foydalanasiz. Ushbu loyihada men Pi -ni boshsiz rejimda ishlataman.
Boshlaylik!
1 -qadam: materiallar ro'yxati
Ushbu loyiha uchun sizga kerak bo'ladi:
- arzon 6 mm 5 mVtli lazer
- 220 Ω qarshilik
- 2N2222A tranzistor yoki unga teng keladigan narsa
- a Raspberry Pi Zero W
- a Raspberry Pi kamera v2
- Nokia 5110 LCD displeyi yoki unga tenglashtirilgan
- bir nechta o'tish simlari va kichik non paneli
Tajribalar paytida menga yordam bergan jigni chop etish uchun 3d printerimdan foydalandim. Men 3D printerdan diapazon topuvchisi uchun to'liq korpus qurishni ham rejalashtiryapman. Siz umuman qila olasiz.
2 -qadam: Lazer va kamera qurilmasini yaratish
Tizim kamera linzalari va lazer chiqishi o'rtasida aniq masofani oladi. Sinovlarni engillashtirish uchun men kamerani, lazerni va lazer uchun kichik haydash sxemasini o'rnatadigan moslamani chop etdim.
Kamera uchun moslamani qurish uchun men kamera modulining o'lchamlarini ishlatardim. O'lchovlarni amalga oshirish uchun asosan raqamli kaliper va aniq o'lchagichdan foydalanardim. Lazer uchun men lazer harakatlanmasligini ta'minlash uchun ozgina mustahkamlangan 6 mmli teshikni yaratdim. Jigarning orqa tomoniga kichkina non taxtasi qo'yish uchun etarli joy ajratishga harakat qildim.
Men qurilish uchun Tinkercad-dan foydalanganman, modelni bu erda topishingiz mumkin:
Lazer linzalari markazi bilan kamera linzalari markazi o'rtasida 3,75 sm masofa bor.
3 -qadam: Lazer va LCD displeyni boshqarish
Men Raspberry Pi Zero bilan LCD displeyni haydash uchun https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi qo'llanmasiga amal qildim. /Boot/config.txt faylini tahrir qilish o'rniga, buyruq satri orqali sudo raspi-config yordamida SPI interfeysini yoqishingiz mumkin.
Men Raspberry Pi Zero -ni boshsiz rejimda, eng yangi Raspbian Stretch yordamida ishlataman. Men bu yo'riqnomada o'rnatishni qamrab olmayman, lekin siz ushbu qo'llanmani bajarishingiz mumkin: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- buyruq satri yoki tarmoqdan foydalanish-97f065af722e
Yorqin lazerli nuqta bo'lishi uchun men Pi ning 5V rayidan foydalanayapman. Buning uchun men GPIO yordamida lazerni haydash uchun tranzistorni (2N2222a yoki unga teng) ishlataman. Transistor tagidagi 220 Ω rezistor lazer orqali etarli oqim o'tkazadi. Men Pi GPIO -ni boshqarish uchun RPi. GPIO -dan foydalanayapman. Men tranzistorning asosini GPIO22 piniga (15 -pin), emitentni erga va kollektorni lazer diodiga uladim.
Buyruq satri orqali sudo raspi-config yordamida kamera interfeysini yoqishni unutmang.
O'rnatishni tekshirish uchun siz ushbu koddan foydalanishingiz mumkin:
Agar hamma narsa yaxshi bo'lsa, sizda dot-j.webp
Kodda biz kamera va GPIO -ni o'rnatamiz, keyin lazerni yoqamiz, tasvirni olamiz va lazerni o'chirib qo'yamiz. Men Pi -ni boshsiz rejimda ishlayotganda, rasmlarni ko'rsatishdan oldin kompyuterimga Pi -dan nusxalashim kerak.
Bu vaqtda sizning qurilmangiz sozlanishi kerak.
4 -qadam: OpenCV yordamida lazerni aniqlash
Birinchidan, biz PiC -ga OpenCV -ni o'rnatishimiz kerak. Sizda buni amalga oshirishning uchta usuli bor. Siz eski paketli versiyani apt bilan o'rnatishingiz mumkin. Siz xohlagan versiyani kompilyatsiya qilishingiz mumkin, lekin bu holda o'rnatish vaqti 15 soatgacha cho'zilishi mumkin va uning ko'p qismi haqiqiy kompilyatsiya uchun. Yoki men tanlagan yondashuv, siz uchinchi shaxs tomonidan taqdim etilgan Pi Zero uchun oldindan tuzilgan versiyadan foydalanishingiz mumkin.
Bu sodda va tezroq bo'lgani uchun men uchinchi tomon paketidan foydalandim. O'rnatish bosqichlarini ushbu maqoladan topishingiz mumkin: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Men boshqa ko'plab manbalarni sinab ko'rdim, lekin ularning paketlari yangilanmagan.
Lazer ko'rsatgichini kuzatish uchun men USB qurilmasi o'rniga Pi kamera modulidan foydalanish uchun https://github.com/bradmontgomery/python-laser-tracker kodini yangiladim. Agar sizda Pi kamera moduli bo'lmasa va USB kameradan foydalanmoqchi bo'lsangiz, siz to'g'ridan -to'g'ri koddan foydalanishingiz mumkin.
To'liq kodni bu erda topishingiz mumkin:
Ushbu kodni ishga tushirish uchun siz Python paketlarini o'rnatishingiz kerak bo'ladi: yostiq va pikamera (sudo pip3 yostiq pikamera o'rnatish).
5 -qadam: Range Finderni kalibrlash
Asl maqolada, muallif y koordinatalarini haqiqiy masofaga aylantirish uchun kerakli parametrlarni olish uchun kalibrlash tartibini ishlab chiqdi. Men yashash xonasidagi stoldan kalibrlash va eski kraft parchasini ishlatardim. Har 10 sm yoki undan ko'p vaqt ichida x va y koordinatalarini elektron jadvalga yozib qo'ydim: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Hamma narsa to'g'ri ishlashini ta'minlash uchun har bir qadamda olingan rasmlarni tekshirib ko'rdim. lazer to'g'ri kuzatilgan. Agar siz yashil lazerdan foydalansangiz yoki sizning lazeringiz to'g'ri kuzatilmasa, dasturning rangini, to'yinganligini va qiymat chegarasini mos ravishda sozlashingiz kerak bo'ladi.
O'lchov bosqichi tugagandan so'ng, parametrlarni amalda hisoblash vaqti keldi. Muallif kabi men ham chiziqli regressiyadan foydalandim; aslida Google Spreadsheet men uchun bu ishni qildi. Keyin men taxmin qilingan masofani hisoblash va haqiqiy masofani tekshirish uchun ushbu parametrlarni qayta ishlatdim.
Endi masofani o'lchash uchun parametrlarni diapazonni aniqlash dasturiga kiritish vaqti keldi.
6 -qadam: masofalarni o'lchash
Kodda: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c HEIGHT, GAIN va OFFSET parametrlarini kalibrlash o'lchovlariga muvofiq yangiladim. Men masofani taxmin qilish uchun asl maqoladagi masofa formulasidan foydalanganman va LCD displey yordamida masofani bosib chiqarganman.
Kod birinchi navbatda kamera va GPIO -ni o'rnatadi, keyin biz o'lchovlarni yaxshiroq ko'rish uchun LCD orqa nuri yoritilishini xohlaymiz. LCD kirish GPIO14 ga ulangan. Har 5 soniyada biz quyidagilarni bajaramiz:
- lazer diodini yoqing
- tasvirni xotiraga yozib oling
- lazer diodini o'chiring
- HSV diapazonli filtrlar yordamida lazerni kuzatish
- disk raskadrovka maqsadida olingan tasvirni diskka yozing
- y koordinatasiga asoslangan masofani hisoblang
- LCD displeyga masofani yozing.
Voqea bo'lsa -da, chora -tadbirlar mening ishim uchun etarlicha aniq va aniq bo'lsa -da, yaxshilanish uchun juda ko'p joy bor. Masalan, lazer nuqtasi juda sifatsiz va lazer chizig'i haqiqatan ham markazlashtirilmagan. Yaxshi sifatli lazer yordamida kalibrlash bosqichlari aniqroq bo'ladi. Hatto kamera ham mening dastgohimda yaxshi joylashmagan, u pastga egilgan.
Men, shuningdek, kamerani 90º ga aylantirish orqali o'lchagichning aniqligini oshirishim mumkin va piksellar sonini kamera qo'llab -quvvatlaydigan maksimal darajaga ko'tarishim mumkin. Joriy dastur bilan biz 0 dan 384 pikselgacha bo'lgan diapazon bilan chegaralanamiz, biz yuqori chegarani 1640 ga, joriy piksellar sonidan 4 barobarga oshirishimiz mumkin. Masofa yanada aniqroq bo'ladi.
Kuzatuv sifatida men yuqorida aytib o'tilgan aniqliklarni takomillashtirish ustida ishlashim va masofa o'lchagich uchun korpus qurishim kerak bo'ladi. Devordan devorga o'lchashni osonlashtirish uchun korpus aniq chuqurlikda bo'lishi kerak.
Umuman olganda, hozirgi tizim menga kifoya qiladi va menga uy rejasini tuzishda bir necha dollar tejaydi!
Tavsiya:
Sensorsiz eshik qo'ng'irog'ini qanday qilish kerak, tana haroratini aniqlash, GY-906, 433MHz Arduino yordamida: 3 qadam
Sensorsiz eshik qo'ng'irog'ini qanday qilish kerak, tana haroratini aniqlash, GY-906, 433MHz Arduino yordamida: Bugun biz sensorli bo'lmagan eshik qo'ng'irog'ini qilamiz, u sizning tana haroratini aniqlaydi. Hozirgi vaziyatda, kimdir tepganda, kimningdir tana harorati me'yordan yuqori ekanligini bilish juda muhim
ESP32-CAM kartasi yordamida yuzni aniqlash bilan IP-kamera: 5 qadam
ESP32-CAM kartasidan foydalangan holda yuzni aniqlash bilan IP-kamera: Bu xabar boshqalardan farq qiladi va biz hayratlanarli darajada arzon (9 dollardan kam) va ishlatish uchun qulay ESP32-CAM kartasini ko'rib chiqamiz. Biz oddiy IP -kamerani yaratamiz, uni 2 -dan foydalanib jonli video uzatish uchun ishlatish mumkin
Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam
Yuzni aniqlash va aniqlash | OpenCV Python va Arduino yordamida Arduino Face ID: yuzni aniqlash AKA yuz identifikatori hozirgi vaqtda mobil telefonlarning eng muhim xususiyatlaridan biridir. Shunday qilib, menda "Arduino loyihasi uchun yuz identifikatori bo'lishi mumkinmi?" Degan savol bor edi. va javob ha … Mening sayohatim quyidagicha boshlandi: 1 -qadam: Bizga kirish
Arduino lazer harakatini aniqlash: 5 qadam
Harakat sezgichi Arduino Laser: QAYD: Ushbu loyiha kelajakdagi loyihalarda barcha qismlari qayta ishlatilishi uchun yaratilgan. Natijada, yakuniy mahsulot, agar siz yopishtiruvchi, lehim va hokazo kabi doimiy materiallardan foydalansangiz, barqaror emas. Ogohlantirish: qilmang
Vizual ob'ektni kamera yordamida aniqlash (TfCD): 15 qadam (rasmlar bilan)
Vizual ob'ektlarni kamera yordamida aniqlash (TfCD): his -tuyg'ularni, odamlarning yuzini yoki oddiy narsalarni taniy oladigan kognitiv xizmatlar hozircha rivojlanishning dastlabki bosqichida, lekin mashinani o'rganish bilan bu texnologiya tobora rivojlanib bormoqda. Biz bu sehrdan ko'proq narsani kutishimiz mumkin