Мазмуну:

Лазерди жана камераны колдонуу менен диапазонду түзүү: 6 кадам
Лазерди жана камераны колдонуу менен диапазонду түзүү: 6 кадам

Video: Лазерди жана камераны колдонуу менен диапазонду түзүү: 6 кадам

Video: Лазерди жана камераны колдонуу менен диапазонду түзүү: 6 кадам
Video: Айымдар үчүн презерватив кандай болот🤔? Видеообзор 2024, Июнь
Anonim
Камера менен лазердин жардамы менен диапазонду түзүү
Камера менен лазердин жардамы менен диапазонду түзүү

Мен азыр эмки жазга ички иштерди пландап жатам, бирок жаңы эле эски үйгө ээ болгондон кийин үйдүн планы жок. Мен сызгычтын жардамы менен дубалдан дубалга чейинки аралыкты ченей баштадым, бирок ал жай жана ката кетирет. Мен процессти жеңилдетүү үчүн диапазонду сатып алууну ойлодум, бирок кийин лазерди жана камераны колдонуу менен өз диапазонун түзүү жөнүндө эски макаланы таптым. Көрсө, менин цехте ошол компоненттер бар.

Долбоор бул макалага негизделген:

Бир гана айырмасы, мен Raspberry Pi Zero W, ЖК жана Raspberry Pi Camera модулун колдонуп диапазонду курам. Мен лазерди көзөмөлдөө үчүн OpenCVди да колдоном.

Мен сизди техниканы жакшы билет деп ойлойм жана Python менен буйрук сабын колдонууга ыңгайлуусуз деп ойлойм. Бул долбоордо мен башсыз режимде Pi колдонуп жатам.

Баштайлы!

1 -кадам: Материалдардын тизмеси

Бул долбоор үчүн сизге керек болот:

  • арзан 6мм 5мВт лазер
  • 220 Ω каршылык
  • 2N2222A транзистору же эквиваленти
  • a Raspberry Pi Zero W
  • а Raspberry Pi камерасы v2
  • Nokia 5110 LCD дисплейи же эквиваленти
  • кээ бир секирүүчү зымдар жана кичинекей нан

Мен 3d принтеримди колдонуп, эксперименттер учурунда мага жардам берген джигди басып чыгардым. Мен ошондой эле диапазонду табуучу үчүн толук корпус куруу үчүн 3d принтерди колдонууну пландап жатам. Сиз ансыз деле кыла аласыз.

2 -кадам: Лазердик жана камералык джигти куруу

Лазердик жана камералык джигти куруу
Лазердик жана камералык джигти куруу
Лазердик жана камералык джигти куруу
Лазердик жана камералык джигти куруу
Лазердик жана камералык джигти куруу
Лазердик жана камералык джигти куруу

Система камеранын линзасы менен лазердин чыгышынын ортосунда белгиленген аралыкты болжолдойт. Сыноолорду жеңилдетүү үчүн мен камераны, лазерди жана лазердин кичинекей айдоо схемасын орното ала турган джигерди басып чыгардым.

Мен камера модулунун өлчөмдөрүн камерага орнотуу үчүн колдондум. Мен негизинен өлчөө үчүн санарип калибрди жана тактык сызгычты колдондум. Лазер үчүн мен лазердин кыймылдабашын камсыз кылуу үчүн бир аз күчөтүлгөн 6 мм тешикти түздүм. Жигитин арт жагына кичинекей нан тактасын орнотууга жетиштүү орун сактоого аракет кылдым.

Мен куруу үчүн Tinkercad колдонгом, моделин бул жерден таба аласыз:

Лазер линзасынын борбору менен камеранын линзасынын ортосу ортосунда 3,75 см аралык бар.

3 -кадам: Лазерди жана ЖКны айдоо

Лазерди жана ЖКны айдоо
Лазерди жана ЖКны айдоо
Лазерди жана ЖКны айдоо
Лазерди жана ЖКны айдоо

Мен бул окуу куралын ээрчидим https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi Raspberry Pi Zero менен ЖК дисплейди айдаш үчүн. /Boot/config.txt файлын түзөтүүнүн ордуна, буйрук сабы аркылуу sudo raspi-config аркылуу SPI интерфейсин иштете аласыз.

Мен Raspberry Pi Zero'ду башсыз режимде Raspbian Stretchти эң акыркы колдонуп жатам. Мен бул Нускамада орнотууну камтыбайм, бирок сиз бул көрсөтмөнү аткарсаңыз болот: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- буйрук сабы-же-колдонуу-тармагын-97f065af722e

Жаркыраган лазер чекитине ээ болуу үчүн, мен Пинин 5В темир жолун колдонуп жатам. Бул үчүн мен GPIO аркылуу лазерди айдаш үчүн транзисторду (2N2222a же эквиваленти) колдоном. Транзистордун базасындагы 220 Ω резистор лазер аркылуу жетиштүү токту өткөрөт. Мен Pi GPIO менен иштөө үчүн RPi. GPIO колдонуп жатам. Мен транзистордун базасын GPIO22 пинине (15 -пин), эмитентти жерге, коллекторду лазер диодуна туташтырдым.

Буйрук сабы аркылуу sudo raspi-config аркылуу камера интерфейсин иштетүүнү унутпаңыз.

Бул кодду орнотууңузду текшерүү үчүн колдоно аласыз:

Эгерде баары ойдогудай болсо, анда сизде dot-j.webp

Коддо биз камераны жана GPIO орнотобуз, андан кийин лазерди иштетебиз, сүрөттү тартып алабыз жана лазерди өчүрөбүз. Мен Пиди башсыз режимде иштетип жаткандыктан, сүрөттөрдү көрсөтүүдөн мурун компьютериме Piден көчүрүүм керек.

Бул жерде сиздин жабдык конфигурацияланууга тийиш.

4 -кадам: OpenCV аркылуу лазерди аныктоо

Биринчиден, биз PiCге OpenCV орнотушубуз керек. Сизде муну кылуунун үч жолу бар. Сиз apt менен эски пакеттелген версиясын орното аласыз. Сиз каалаган версияны түзө аласыз, бирок бул учурда орнотуу убактысы 15 саатка чейин созулушу мүмкүн жана анын көбү чыныгы компиляция үчүн. Же, менин артыкчылыктуу мамилем, сиз үчүнчү тарап тарабынан берилген Pi Zero үчүн алдын ала түзүлгөн версиясын колдоно аласыз.

Бул жөнөкөй жана ылдамыраак болгондуктан үчүнчү жактын пакетин колдондум. Орнотуу кадамдарын бул макаладан таба аласыз: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Мен башка көптөгөн булактарды сынап көрдүм, бирок алардын пакеттери жаңыртылган эмес.

Лазердик көрсөткүчтү көзөмөлдөө үчүн мен USB түзмөгүнүн ордуна Pi камера модулун колдонуу үчүн https://github.com/bradmontgomery/python-laser-tracker кодун жаңырттым. Эгерде сизде Pi камера модулу жок болсо жана USB камерасын колдонууну кааласаңыз, кодду түз колдоно аласыз.

Толук кодду бул жерден таба аласыз:

Бул кодду иштетүү үчүн Python пакеттерин орнотушуңуз керек: жаздык жана пикамера (sudo pip3 жаздык пикамерасын орнотуу).

5 -кадам: Диапазонду калибрлөө

Диапазонду табуунун калибрлөөсү
Диапазонду табуунун калибрлөөсү
Диапазонду табуунун калибрлөөсү
Диапазонду табуунун калибрлөөсү
Диапазонду табуунун калибрлөөсү
Диапазонду табуунун калибрлөөсү

Түпнуска макалада автор y координаттарын чыныгы аралыкка айландыруу үчүн керектүү параметрлерди алуу үчүн калибрлөө процедурасын иштеп чыккан. Калибрлөө үчүн эски столумду жана эски крафтты колдондум. Ар бир 10 см сайын мен x жана y координаттарын электрондук жадыбалга белгилеп койдум: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Бардыгы туура иштешин камсыз кылуу үчүн, ар бир кадам сайын, тартылган сүрөттөрдү текшерип көрдүм. лазер туура байкалган. Эгерде сиз жашыл лазерди колдонсоңуз же лазериңиз туура байкалбаса, ошого жараша программанын өңүн, каныктыгын жана баалуулук чегин тууралашыңыз керек болот.

Өлчөө фазасы бүткөндөн кийин, параметрлерди иш жүзүндө эсептөө убактысы келди. Автор сыяктуу эле мен сызыктуу регрессияны колдондум; чынында Google Spreadsheet мен үчүн бул ишти жасады. Мен андан кийин болжолдуу аралыкты эсептеп, аны чыныгы аралыкка карата текшерүү үчүн ошол параметрлерди кайра колдондум.

Азыр аралыкты өлчөө үчүн параметрлерди диапазондогу программага киргизүү убактысы келди.

6 -кадам: аралыктарды өлчөө

Аралыктарды өлчөө
Аралыктарды өлчөө

Коддо: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c HEIGHT, GAIN жана OFFSET өзгөрмөлөрүн калибрлөө өлчөөлөрүнө ылайык жаңырттым. Мен аралыкты баалоо үчүн баштапкы макалада расстояние формуласын колдондум жана LCD дисплейдин жардамы менен аралыкты басып чыгардым.

Код алгач камераны жана GPIOду орнотот, андан кийин өлчөөлөрдү жакшы көрүү үчүн ЖКнын жарыгын күйгүзгүбүз келет. ЖК киргизүү GPIO14ке туташтырылган. Ар бир 5 секунд сайын:

  1. лазер диодун иштетүү
  2. эстутумга сүрөттү тартуу
  3. лазер диодун өчүрүү
  4. HSV диапазонундагы чыпкаларды колдонуп лазерди көзөмөлдөңүз
  5. мүчүлүштүктөрдү оңдоо үчүн пайда болгон сүрөттү дискке жазыңыз
  6. у координатасынын негизинде аралыкты эсептөө
  7. LCD дисплейине аралыкты жазыңыз.

Окуя, бирок иш -чаралар менин ишим үчүн жетишерлик так жана так, жакшыртууга көп мүмкүнчүлүктөр бар. Мисалы, лазер чекити абдан начар жана лазер линиясы чынында борборлоштурулган эмес. Жакшыраак сапаттагы лазер менен калибрлөө кадамдары так болот. Ал тургай, камера чындыгында менин джигимде жакшы жайгашкан эмес, ал түбүнө эңкейип турат.

Мен ошондой эле камераны 90º айландыруу менен диапазондун чечимин көбөйтө алам жана камера колдогон максимумга чейин чыгарам. Учурдагы ишке ашыруу менен биз 0дон 384 пикселге чейин чектелгенбиз, биз жогорку чекти 1640ка чейин көбөйтө алмакпыз, азыркы чечилиштен 4 эсе. Аралык дагы ого бетер так болот.

Кийинки катары, мен жогоруда айткан тактыкты өркүндөтүүнүн үстүндө иштөөм жана диапазон үчүн корпус курушум керек болот. Дубалдан дубалга ченөөнү жеңилдетүү үчүн корпус так тереңдикте болушу керек.

Жалпысынан алганда, азыркы система мага жетиштүү жана үй планымды түзүүдө мага бир аз акчаны сактап калат!

Сунушталууда: