Mundarija:

Lazer va kamera yordamida diapazonni aniqlash: 6 qadam
Lazer va kamera yordamida diapazonni aniqlash: 6 qadam

Video: Lazer va kamera yordamida diapazonni aniqlash: 6 qadam

Video: Lazer va kamera yordamida diapazonni aniqlash: 6 qadam
Video: Telefonning qalbaki qurilmalarini aniqlash uchun 6 ta foydali maslahat 2024, Iyun
Anonim
Lazer va kamera yordamida masofa o'lchagichni yaratish
Lazer va kamera yordamida masofa o'lchagichni yaratish

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

Lazer va kamera qurilmasini yaratish
Lazer va kamera qurilmasini yaratish
Lazer va kamera qurilmasini yaratish
Lazer va kamera qurilmasini yaratish
Lazer va kamera qurilmasini yaratish
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

LCD va lazer haydash
LCD va lazer haydash
LCD va lazer haydash
LCD va lazer haydash

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

Diapazon qidiruvchisini kalibrlash
Diapazon qidiruvchisini kalibrlash
Range Finderni kalibrlash
Range Finderni kalibrlash
Range Finderni kalibrlash
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

Masofalarni o'lchash
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:

  1. lazer diodini yoqing
  2. tasvirni xotiraga yozib oling
  3. lazer diodini o'chiring
  4. HSV diapazonli filtrlar yordamida lazerni kuzatish
  5. disk raskadrovka maqsadida olingan tasvirni diskka yozing
  6. y koordinatasiga asoslangan masofani hisoblang
  7. 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: