Мазмұны:
- 1 -қадам: материалдар тізімі
- 2 -қадам: Лазер мен камера қондырғысын құру
- 3 -қадам: Лазер мен СКД жүргізу
- 4 -қадам: OpenCV көмегімен лазерді анықтау
- 5 -қадам: Диапазонды калибрлеу
- 6 -қадам: Қашықтықты өлшеу
Бейне: Лазер мен камераның көмегімен диапазонды жасау: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Мен қазір келесі көктемде ішкі жұмыстарды жоспарлап отырмын, бірақ ескі үйді алғаннан кейін менде ешқандай үй жоспары жоқ. Мен қабырға мен қабырға арасындағы қашықтықты сызғышпен өлшей бастадым, бірақ ол баяу және қателікке бейім. Мен процесті жеңілдету үшін диапазонды сатып алуды ойладым, бірақ содан кейін мен лазер мен камераның көмегімен өз диапазонын құру туралы ескі мақаланы таптым. Белгілі болғандай, бұл компоненттер менің шеберханамда бар.
Жоба осы мақалаға негізделген:
Жалғыз айырмашылық - мен Raspberry Pi Zero W, СКД және Raspberry Pi Camera модулін қолдана отырып, диапазонды құрамын. Мен лазерді бақылау үшін OpenCV қолданамын.
Сіз технологияны жақсы білесіз және Python мен пәрмен жолын қолдануға ыңғайлы деп ойлаймын. Бұл жобада мен Pi -ді бассыз режимде қолданамын.
Бастайық!
1 -қадам: материалдар тізімі
Бұл жоба үшін сізге қажет:
- 6мм 5мВт арзан лазер
- 220 Ω резистор
- 2N2222A транзисторы немесе оған балама
- a Raspberry Pi Zero W
- a Raspberry Pi камерасы v2
- Nokia 5110 LCD дисплейі немесе оған балама
- бірнеше секіргіш сымдар мен кішкене тақта
Мен 3d принтерімді тәжірибе кезінде маған көмектескен джигельді басып шығару үшін қолдандым. Мен сондай -ақ диапазонға арналған толық қоршауды құру үшін 3d принтерді қолдануды жоспарлап отырмын. Сіз онсыз мүлдем жасай аласыз.
2 -қадам: Лазер мен камера қондырғысын құру
Жүйе камера линзасы мен лазер шығысы арасындағы тұрақты қашықтықты қабылдайды. Сынақтарды жеңілдету үшін мен камераны, лазерді және лазерді басқаратын шағын тізбекті орнатуға болатын қондырғы басып шығардым.
Мен камера модулінің өлшемдерін камераның тіреуін жасау үшін қолдандым. Мен негізінен сандық калибр мен дәл өлшегішті қолдандым. Лазер үшін мен лазердің қозғалмайтынын қамтамасыз ету үшін кішкене арматурасы бар 6 мм тесік жасадым. Мен қондырғының артқы жағында кішкене нан тақтасын бекіту үшін жеткілікті орын сақтауға тырыстым.
Мен Tinkercad-ты құрастыру үшін қолдандым, сіз модельді мына жерден таба аласыз:
Лазерлік линзаның ортасы мен камера линзасының ортасы арасында 3,75 см қашықтық бар.
3 -қадам: Лазер мен СКД жүргізу
Мен Raspberry Pi Zero көмегімен СКД дисплейді басқару үшін https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi оқулығын орындадым. /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
Жарқын лазерлік нүктеге ие болу үшін мен Pi 5В рельсін қолданамын. Ол үшін мен GPIO көмегімен лазерді басқару үшін транзисторды (2N2222a немесе эквиваленті) қолданамын. Транзистордың негізіндегі 220 Ом резистор лазер арқылы жеткілікті ток өткізуге мүмкіндік береді. Мен Pi GPIO -мен жұмыс жасау үшін RPi. GPIO қолданамын. Мен транзистордың негізін GPIO22 түйреуішіне (15 -ші түйреуіш), эмитентті жерге, коллекторды лазерлік диодқа қостым.
Пәрмен жолы арқылы sudo raspi-config көмегімен камера интерфейсін қосуды ұмытпаңыз.
Сіз бұл кодты орнатуды тексеру үшін пайдалана аласыз:
Егер бәрі жақсы болса, сізде фон мен лазерлік нүктені көретін dot-j.webp
Кодта біз камера мен GPIO орнатамыз, содан кейін лазерді қосамыз, суретке түсіреміз және лазерді өшіреміз. Мен Pi бассыз режимде жұмыс істеп жатқандықтан, суреттерді көрсетпес бұрын 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 -қадам: Диапазонды калибрлеу
Түпнұсқа мақалада автор у координаттарын нақты қашықтыққа түрлендіру үшін қажетті параметрлерді алу үшін калибрлеу процедурасын жасаған. Мен қонақ бөлменің үстелін калибрлеуге және ескі крафтқа қолдандым. Әр 10 см сайын мен x және y координаттарын электронды кестеге жаздым: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Барлығы дұрыс жұмыс істеуі үшін мен әр қадамда түсірілген суреттерді тексердім. лазер дұрыс бақыланды. Егер сіз жасыл лазерді қолдансаңыз немесе сіздің лазеріңіз дұрыс бақыланбаса, сізге сәйкес реңкті, қанықтылықты және шекті мәнді реттеу қажет болады.
Өлшеу кезеңі аяқталғаннан кейін параметрлерді нақты есептеуге уақыт келді. Автор сияқты мен сызықтық регрессияны қолдандым; іс жүзінде Google Spreadsheet бұл тапсырманы орындады. Содан кейін мен есептелген қашықтықты есептеу және оны нақты қашықтыққа тексеру үшін сол параметрлерді қайта қолдандым.
Енді қашықтықты өлшеу үшін диапазонды іздеу бағдарламасына параметрлерді енгізу уақыты келді.
6 -қадам: Қашықтықты өлшеу
Кодта: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c HEIGHT, GAIN және OFFSET айнымалыларын калибрлеу өлшемдеріне сәйкес жаңарттым. Мен қашықтықты бағалау үшін бастапқы мақаладағы қашықтық формуласын қолдандым және қашықтықты СКД дисплейі арқылы басып шығардым.
Код алдымен камераны және GPIO -ны орнатады, содан кейін біз өлшемдерді жақсы көру үшін СКД артқы жарығын қосқымыз келеді. СКД кірісі GPIO14 -ке қосылған. Әр 5 секунд сайын біз:
- лазерлік диодты қосыңыз
- суретті есте сақтау
- лазерлік диодты өшіріңіз
- HSV диапазонындағы сүзгілерді қолданып лазерді қадағалаңыз
- түзету мақсатында алынған кескінді дискіге жазыңыз
- y координатасына негізделген қашықтықты есептеңіз
- СКД дисплейіне қашықтықты жазыңыз.
Оқиғалар, менің қолдану жағдайым үшін шаралар өте дәл және дәл, жақсартуға көп мүмкіндік бар. Мысалы, лазерлік нүкте өте нашар сапада және лазер сызығы шын мәнінде орталықтандырылмаған. Сапалы лазер көмегімен калибрлеу қадамдары дәлірек болады. Тіпті камера менің джигуляторымда жақсы орналаспаған, ол төмен қарай қисайып кеткен.
Мен сонымен қатар камераны 90º бұру арқылы диапазонның ажыратымдылығын арттыра аламын және ажыратымдылықты камера қолдайтын максимумға дейін арттыра аламын. Ағымдағы іске асыру кезінде біз 0 -ден 384 пиксель диапазонымен шектелеміз, біз жоғарғы шекті 1640 -қа дейін арттыра аламыз, ағымдағы ажыратымдылықтан 4 есе. Қашықтық одан да дәл болады.
Қосымша ретінде маған жоғарыда айтылған дәлдік жақсартуларымен жұмыс істеу керек және диапазон үшін қоршау салу керек. Қабырғадан қабырғаға өлшеуді жеңілдету үшін қоршау дәл тереңдікте болуы керек.
Жалпы, қазіргі жүйе маған жеткілікті және үй жоспарымды құруға бірнеше доллар үнемдейді!
Ұсынылған:
HC-SR04 ультрадыбыстық диапазонды модулі Arduino көмегімен: 5 қадам
HC-SR04 ультрадыбыстық диапазондық модулі Arduino көмегімен: Эй, не болды, балалар! Akarsh мұнда CETech.Менің бұл жобам біршама қарапайым, бірақ басқа жобалар сияқты қызықты. Бұл жобада біз HC-SR04 ультрадыбыстық қашықтық датчигінің модулін қосамыз. Бұл модуль генератинмен жұмыс істейді
SI4732 / SI4735 бар барлық диапазонды қабылдағыш (FM / RDS, AM және SSB) Arduino көмегімен: 3 қадам
SI4732 / SI4735 бар барлық диапазонды қабылдағыш (FM / RDS, AM және SSB) Arduino көмегімен: Бұл барлық жолақты қабылдағыш жобасы. Ол Si4734 Arduino кітапханасын пайдаланады. Бұл кітапханада 20 -дан астам мысалдар бар. Сіз FM -ді RDS, жергілікті AM (MW) станциясы, SW және әуесқой радиостанциялармен (SSB) тыңдай аласыз. Барлық құжаттар осында
DIY штативі - Антенна арқылы смартфон мен камераның штативін қалай жасауға болады: 8 қадам
DIY штативі | Антеннаның көмегімен смартфон мен камераның штативін қалай жасауға болады: CookQueens үшін бейне түсіруге арналған штатив іздегенде, мен әр 5 футтық штативтің бағасы әр түрлі электронды сауда сайтында өте жоғары диапазоннан басталғанын көрдім. Мен де жеңілдік күтемін, бірақ түсінбедім, содан кейін мен
Ультрадыбыстық диапазонды табу құралы Arduino мен LCD көмегімен: 5 қадам
Ардуино мен СК бар ультрадыбыстық диапазонды табуға арналған оқулық: Көптеген адамдар ультрадыбыстық сенсормен, кейде СКД экранымен Arduino Uno -ны пайдалану туралы нұсқаулықтар құрды. Мен әрқашан таптым, бұл басқа да нұсқаулықтар жиі басталмайтын қадамдарды өткізіп жібереді
Бір реттік камераның қауіпсіздігі мен реттегіші: 3 қадам
Қауіпсіздік және бір реттік камерадан түсіру: бір реттік камерадан таспаны жасау кезінде не істеуге болмайды, мен сізде таспаны жасамас бұрын оны оқыған боларсыз деп үміттенемін, сондықтан сізде күйдіру белгілері болмайды, себебі менде кернеу бұл 600 вольттан жоғары. (ТЕК БІЛІМ МАҚСАТЫНА) *жеңу