Аналогтық камераны таңқурай pi-ге қосу. Raspberry Pi көмегімен бейнебақылау сервері. Таймлапс бейнесін жасау

Камераны Raspberry Pi-ге дұрыс қосу және онымен терминал терезесі арқылы және Python бағдарламалау тілін пайдалану арқылы жұмыс істеу әдістерін қарастырайық.
Қатысты материалдар:
Камераны таңқурайға қосқан кезде мынаны есте сақтаңыз:
  • Камера статикалық электр тогынан қорқады, оны жұмыс кезінде антистатикалық материал арқылы ұстаған жөн.
  • камера 250 мА тұтынады - орташа Malina қуат көзін пайдаланған кезде камераны қосу камера белсенді жұмыс істеп тұрғанда қуат жетіспеушілігін тудыруы мүмкін.
  • камерада микрофон жоқ
  • камераның үстіңгі жағы кабель шығысына қарама-қарсы жағында орналасқан, бірақ кескінді тігінен көрсету үшін арнайы пәрмен бар - төменде бұл туралы толығырақ.

Байланыс

Камераны өшірілген таңқурайға қосқан жөн. Таңқурай пәрменімен жылдам өшіруге болады
sudo қазір жабылады
CSI тізбекті қосқышы HDMI жанында орналасқан: Камераны осы қосқыш арқылы қосудың артықшылығы, USB-ден айырмашылығы, ол CSI интерфейсі арқылы деректерді тасымалдау кезінде процессорды босатады.
Камераны бекітуді жеңілдету үшін бар дайын шешімдер, мысалы - Акрил ұстағышы.
Камера интерфейсі Raspberry параметрлерінде іске қосылуы керек:
Камераны іске қосқаннан кейін (қажет болса), Малина қайта жүктелуі керек: sudo қазір қайта жүктеледі
Камерамен жұмыс істеу үшін Raspbian-да алдын ала орнатылған қажетті утилиталар мен драйверлер бар. Ең соңғы нұсқаларды пайдалану үшін пакеттерді жаңартайық: sudo apt-get update -y sudo apt-get dist-upgrade -y Егер бәрі дұрыс орындалса, камерадан сынақ жақтауын алуға тырысайық - фотосуреттер үшін қалта жасаңыз, өтіңіз. оған және суретке түсіру пәрменін орындаңыз: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
Сәтсіз болған жағдайда, алдыңғы қадамдарды тексеру керек немесе камерадағы және Малинадағы қосқыш контактілеріне қоңырау шалу керек.
Raspbian операциялық жүйесінде камерамен жұмыс істеуге арналған келесі пакеттер алдын ала орнатылған:
  • raspivid, raspvidyuv - бейне түсіру
  • raspistill, raspiyuv - суретке түсіру
Көрсетілген утилиталарға арналған толық нұсқаулық мына жерден қол жетімді Ағылшын тіліқосулы өшірулі. Raspberry Pi веб-сайты
Барлық утилиталар терминалдан іске қосылады және оларды пайдалану өте оңай.
Аты «юв» әрпімен аяқталатын пакеттер кодтау компонентін пайдаланбайды - олар камера сенсоры қабылдаған «шикі» өңделмеген ақпаратты сақтайды. Әрбір пакетпен жұмыс істеуді қарастырайық, бірақ алдымен біз барлық пакеттерге ортақ камера параметрлерінің тізімімен танысамыз, содан кейін нақты дәлелдерді және нақты мысалдаролардың қосымшалары.

Жалпы параметрлер

Параметр мәндерін қарастырайық. Айта кету керек:
  • Егер қызметтік бағдарламаны шақыру кезінде аргумент көрсетілмесе, оның әдепкі мәні пайдаланылады.
  • ЕГЕР «РҰҚСАТ ЕТІЛГЕН МӘНДЕР АРҚЫМЫ» БАҒАНЫ БОС БОЛСА, онда қосымша мәндерді берудің қажеті жоқ - дәлелдің өзін беру жеткілікті.
  • Алдын ала қарау тек Raspberry-ге қосылған физикалық мониторда көрсетіледі. Raspberry қолданбасына қашықтағы жұмыс үстелі (VNC) арқылы кірсеңіз, алдын ала қарау кескіні қалған ақпараттың үстіндегі мониторға тікелей жіберілетіндіктен, алдын ала қарау ешбір параметрлерде көрсетілмейді.
  • Жұмыс үстелі арқылы бейнелерді көруге ұқсас
Аргумент
Сипаттама
Жарамды ауқым
Әдепкі мән

Алдын ала қарау терезесінің параметрлері
ені, биіктігі, х-координатасы, у-координаты

Толық экранды алдын ала қарау
жоқ
-n
Алдын ала қарау жоқ
-оп
Терезе мөлдірлігін алдын ала қарау
0...255
255

Айқындық
-100...100
0
-ко
Контраст
-100...100
0
-бр
Жарықтандыру
0...100
50
-са
Қанықтылық
-100...100
0
-ISO
Камера сенсорының сезімталдығы
-100...100
0
-қарсы
Бейне тұрақтандыру
(тек бейне)
жоқ
-ев
Экспозиция компенсациясы
-10...10
0
-мыс
Экспозиция
  • түн
  • түнгі қарау
  • артқы жарық: нысанның артындағы артқы жарық
  • жарықтандыру: жарықтандыру
  • спорт: қозғалыстағы зат
  • қар: қарлы пейзаж
  • жағажай: жағажай пейзажы
  • өте ұзақ: ұзақ экспозиция
  • fixedfps: FPS-ті тіркелген мәнге шектеңіз
  • шайқауға қарсы: шайқауға қарсы
  • отшашу: отшашу бар пейзаж
автоматты
-ауб
Ақ баланс
  • күн: 5000K...6500K - шуақты
  • бұлт:6500K ... 12000K бұлтты
  • көлеңке: көлеңкеде
  • вольфрам: 2500К ... 3500К вольфрам
  • флуоресцентті: 2500K...4500K
  • қыздыру: қызыл-ыстық металл
  • жарқыл: жарқылмен
  • көкжиек
автоматты
-ifx
Әртүрлі эффектілер
жоқ, негатив, соляризация, постер, ақ тақта, тақта, эскиз, деноиз, бедер, майлы бояу, люк, gpen, пастел, акварель, фильм, бұлыңғырлық, қанықтылық, түстерді ауыстыру, жуу, түс нүктесі, түс балансы, мультфильм
жоқ
-cfx
Түс балансы
0...255:0...255
128:128
-мм
Экспозицияны өлшеу
  • орташа: орташа
  • нүкте: нүкте
  • артқы жарық: артқы жарықтандырылған кескінді оқу
  • матрицалық: матрицаны өлшеу
орташа
-шірік
Бұрылыс
0 ... 359
0
-hf
Көлденең шағылысу
Жоқ
-vf
Тік шағылысу
Жоқ
-roi
Сенсордың ROI
жоғарғы сол жақ бұрыштан координаттар және аумақтың ені мен биіктігі
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-сс
Ысырма жылдамдығы
микросекундтарда
6000000
-drc
Динамикалық ауқымды қысу
өшірулі
-ст
статистиканы көрсету
Жоқ
Әрі қарай, біз утилиталарды бөлек қарастырамыз.


raspistill - фотоға түсіру

Бұл утилита кодталған қысылған кескінді жасайды және бұл әрекетті орындау үшін raspistill іске қосылған кезде дәлел ретінде берілген бірнеше параметрлер бар.

Аргументтер

Аргумент
Сипаттама
Жарамды ауқым
Әдепкі мән
-w
Ені
0...макс
Макс
-сағ
Биіктігі
0...макс
Макс

Сапасы
0...100
75

Файл атауы
файлға апаратын жол
-
-v
Терминалға шығару
Түсіру процесі туралы ақпарат
жоқ

Әрекет алдында кешіктіру
миллисекундтарда
0
-тл
Уақыт аралығы
мысал: -tl 2000 -o image%04d.jpg
2000 - интервал
% 04d - 4 таңбалы сан үлгісі
-

Пішімдеу үшін кодтау
jpg, bmp, gif және png
jpg
-x
EXIF тегтерін қосу
32 тегке дейін
-

Кодталған кескіннің метадеректерінде Bayer массивін сақтау
-

Мысалдар

Raspistill қолданудың нақты мысалдарын қарастырайық:
2 секундтан кейін стандартты суретті түсіріп, оны image.jpg файлына сақтаңыз (қазіргі қалтада). Ажыратымдылық стандартты (максималды) болады raspistill -t 2000 -o image.jpg Дәл солай, бірақ 640x480 ажыратымдылықта raspistill -o image.jpg -w 640 -h 480 Суретті 5% төмендетілген сапасымен түсіріңіз және оны image.jpg файлына сақтаңыз (қазіргі қалтада). Бұл сапамен кескін өлшемі айтарлықтай кішірейеді raspistill -o image.jpg -q 5 PNG пішімінде кодталған кескінді алу және оны image.png файлына сақтау raspistill -o image.png –e png стандартты кескінді алу екі ендірілген EXIF ​​​​тегтері: Суретші - Борис, GPS биіктігі - 123,5 м raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 Түсірілетін кескіндердің уақыт аралығы жинағын жасау 10 секунд аралықпен 10 минут бойы (600 000 мс) және image_num_001_today.jpg, image_num_002_today.jpg және т.б деп аталады. Соңғы суретке latest.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg деп аталады. Enter пернесін басқанда кескіндерді түсіріңіз, файлдар қатар сақталады және my_pics01.jpg my_pics02 деп аталады. jpg т.б. raspistill -t 0 -k -o my_pics%02d.jpg

распиюв

Іске қосу аргументтері raspistill (жоғарыдан қараңыз) аргументтерімен дәл бірдей, олардың ішінде тек келесілері ҚОЛЖЕТІМІ ЖОҚ:
-q - сапа
-e - мақсатты кескін пішімін көрсету
-x - EXIF ​​​​тегтерін қосыңыз
-r - Кодталған кескіннің Мета деректерінде Bayer массивін сақтаңыз
Дегенмен, ӨЗ дәлелі бар
-rgb - RGB888 пішімінде «шикі» өңделмеген деректерді сақтау (8 бит/арна)

raspivid - бейне түсіру

Параметрлерді іске қосу

Аргумент
Сипаттама
Жарамды ауқым
Әдепкі мән
-w
Ені
0...макс
1920
-сағ
Биіктігі
0...макс
1080

Бейне бит жылдамдығы
секундына бит саны.
10Мбит/с орнатылған -b 10000000

Файл атауы
файлға апаратын жол
-
-v
Терминалға шығару
Түсіру процесі туралы ақпарат

Әрекет алдында кешіктіру
миллисекундтарда
0
-fps
Кадр жиілігі
Секундына кадр саны 2...30

Enter пернесін басу арқылы жазуды бастау/тоқтату
процесс «X» түймесін басу арқылы үзіледі.
-сг
Белгіленген ұзақтығы бар бейне сегменттерін бөлек файлдарға сақтау
Бір сегмент пен файл маскасының ұзақтығын орнатыңыз
-sg 3000 -o бейне%04d.h264
-wr
Сегменттеу кезінде файлдардың максималды санын шектеу
-sg аргументімен пайдаланылады және DVR құрылғыларындағыдай циклдік қайта жазуды жүзеге асырады
Әдепкі ажыратымдылық 1080p (1920x1080)
Нақты мысалдарды қарастырайық:
5 секундтық стандартты бейнені жазу (1920x1080, 30 кадр/сек) және файлға сақтау video.h264 raspivid -t 5000 -o video.h264 Ажыратымдылығы 1080p және нақты бит жылдамдығы 3,5 Мбит болатын 5 секундтық бейнені жазу /s және video.h264 raspivid -t 5000 -o video.h264 -b файлына сақтау 3500000 5 кадр/с кадр жиілігінде стандартты анықтамалық бейненің 5 секундын жазып, video.h264 raspivid -t 5000 -o video.h264 -f файлына сақтаңыз. 5 Монитор Raspberry-ге HDMI арқылы қосылған болса, жазылған бейнені omxplayer ойнатқышы арқылы көруге болады: sudo apt-get install omxplayer #егер ойнатқыш әлі орнатылмаған болса omxplayer video.h264 Бейнені қарау VNC арқылы қолжетімді емес.

Қате кодтары

  • 0 - сәтті аяқтау
  • 64 - жарамсыз пәрмен жіберілді (синтаксистік қате)
  • 70 - қызметтік бағдарламада немесе камерамен байланысу кезінде қате
  • 130 - орындауды пайдаланушы үзді (Ctrl + C пернелер тіркесімі)

PiCamera кітапханасы

Бұл Raspberry камерасымен жұмысты жеңілдетуге және автоматтандыруға мүмкіндік беретін Python бағдарламалау тіліне арналған кітапхана.
Кітапхананың ағылшын тіліндегі толық сипаттамасы
Raspbian дистрибутивінің заманауи нұсқаларында кітапхана алдын ала орнатылған, оны Python консолі арқылы тексеруге болады python3 импорттық пикамера Ақаулық болған жағдайда exit() пәрменін енгізу немесе Ctrl + пернесін пайдалану арқылы консольден шығу керек. D пернелер тіркесімі және кітапхананы sudo apt-get install python3-picamera пәрменімен орнатыңыз Python кодындағы камерамен жоғарыда талқыланған терминал командаларына ұқсас жұмыс. Камерадан стандартты кескінді тікелей Python консолінде оңай алуға болады: picamera импорттау #камера кітапханасын импорттау camera = picamera.PiCamera() #камера нысанын жасау camera.capture("image.jpg") #камера кескінін шақыру түсіру әдісі камера .close() #камера сеансын жабу Кескін ағымдағы қалтадағы image.jpg файлына сақталады.

Екі жыл бұрын, мен алғаш рет мультикоптермен жұмыс істей бастағанда, мен кішкентайын жасауға тура келді. Квадрокоптер таза автономды болу үшін жасалғандықтан, бұл қашықтан басқару пультінен талап етілетін нәрсе сынақ және орнату кезінде дронды басқару болды.

Негізінде, қашықтан басқару құралы оған жүктелген барлық тапсырмаларды сәтті орындады . Бірақ елеулі кемшіліктер де болды.

  1. Батареялар корпусқа сәйкес келмеді, сондықтан мен оларды корпусқа электр таспасымен жабыстыруға тура келді :)
  2. Параметрлер төрт потенциометрдің көмегімен реттелді, олар температураға өте сезімтал болып шықты. Сіз кейбір құндылықтарды үй ішінде орнатасыз, сыртқа шығыңыз - және олар қазірдің өзінде басқаша, олар қалқып кетті.
  3. У Arduino Nano, оны мен қашықтан басқару пультінде пайдаландым, тек 8 аналогтық кіріс бар. Төртеуі потенциометрлерді баптаумен айналысты. Бір потенциометр газ қызметін атқарды. Джойстикке екі кіріс қосылды. Тек бір шығу бос қалды және конфигурацияланатын көптеген параметрлер болды.
  4. Жалғыз джойстик ұшқыш емес еді. Дроссельді потенциометрмен басқару да өте көңілсіз болды.
  5. Ал қашықтан басқару пульті дыбыстар шығармады, бұл кейде өте пайдалы.

Барлық осы кемшіліктерді жою үшін мен қашықтан басқару құралын түбегейлі қайта құруды шештім. Аппараттық бөлік те, бағдарламалық құрал да. Міне, мен не істегім келді:

  • Оған қазір қалағанның бәрін (батареяларды қоса) және кейін қалағаныңызды салу үшін үлкен қорап жасаңыз.
  • Потенциометрлердің санын көбейту арқылы емес, қандай да бір жолмен мәселені параметрлермен шешіңіз. Сонымен қатар, қашықтан басқару пультіндегі параметрлерді сақтау мүмкіндігін қосыңыз.
  • Қалыпты пилоттық консольдердегі сияқты екі джойстик жасаңыз. Ал, джойстиктердің өздерін православие қойыңыз.

Жаңа ғимарат

Идея өте қарапайым және тиімді. Біз плексигласс немесе басқа жұқа материалдан екі пластинаны кесіп алып, оларды тіректермен байланыстырамыз. Корпустың барлық мазмұны жоғарғы немесе төменгі тақтаға бекітіледі.

Басқару элементтері және мәзірлер

Параметрлер тобын басқару үшін қашықтан басқару пультіне бірнеше потенциометрлер қойып, ADC қосу керек немесе мәзір арқылы барлық параметрлерді жасау керек. Жоғарыда айтқанымдай, потенциометрлермен реттеу әрқашан жақсы идея емес, бірақ сіз одан бас тартпауыңыз керек. Осылайша, қашықтан басқару пультінде төрт потенциометрді қалдырып, толық мәзірді қосу туралы шешім қабылданды.

Мәзірде шарлау және параметрлерді өзгерту үшін әдетте түймелер пайдаланылады. Солға, оңға, жоғары, төмен. Бірақ мен түймелердің орнына кодтағышты пайдаланғым келді. Мен бұл идеяны 3D принтер контроллерінен алдым.


Әрине, мәзірдің қосылуына байланысты қашықтан басқару коды бірнеше есе кеңейді. Бастау үшін мен мәзірдің үш элементін ғана қостым: «Телеметрия», «Параметрлер» және «Параметрлерді сақтау». Бірінші терезеде сегізге дейін әртүрлі индикаторлар көрсетіледі. Әзірге мен тек үшеуін қолданамын: батарея қуаты, компас және биіктік.

Екінші терезеде алты параметр қолжетімді: X/Y, Z осьтері үшін PID контроллерінің коэффициенттері және акселерометрді түзету бұрыштары.

Үшінші тармақ параметрлерді EEPROM-да сақтауға мүмкіндік береді.

Джойстиктер

Мен пилоттық джойстиктерді таңдау туралы көп ойламадым. Мен бірінші Turnigy 9XR джойстикін квадрокоптер бизнесіндегі әріптесімнен - ​​Александр Васильевтен, әйгілі alex-exe.ru сайтының иесінен алдым. Мен екіншісіне тікелей Hobbyking-тен тапсырыс бердім.


Бірінші джойстик екі координатта серіппелі болды - иілу мен қадамды басқару үшін. Мен алған екіншісі бірдей болды, сондықтан мен оны тарту мен айналуды басқару үшін джойстикке айналдыра аламын.

Тамақтану

Ескі қашықтан басқару құралында мен қарапайым LM7805 кернеу реттегішін қолдандым, ол 8 AA батареяларымен қоректенеді. Реттегішті жылытуға 7 вольт жұмсалған өте тиімсіз опция. 8 аккумулятор - өйткені қолында мұндай бөлім ғана болды, ал LM7805 - өйткені ол кезде бұл опция маған ең қарапайым, ең бастысы, ең жылдам болып көрінді.

Енді мен ақылдырақ әрекет етуді шештім және LM2596S-де өте тиімді реттегіш орнаттым. Ал 8 AA батареясының орнына мен екі LiIon 18650 батареясына арналған бөлікті орнаттым.


Нәтиже

Барлығын біріктіріп, біз бұл құрылғыны алдық. Ішкі көрініс.


Бірақ қақпағы жабық.


Бір потенциометрдегі қақпақ және джойстиктердегі қақпақтар жоқ.

Соңында, мәзір арқылы параметрлерді қалай конфигурациялау туралы бейне.


Төменгі сызық

Қашықтан басқару құралы физикалық түрде жинақталған. Қазір мен қашықтан басқару пульті мен квадрокоптердің бұрынғы берік достығына қайтару үшін кодын әзірлеу үстіндемін.

Пультті орнату барысында кемшіліктер анықталды. Біріншіден, қашықтан басқару пультінің төменгі бұрыштары сіздің қолыңызда: (Мен пластиналардың дизайнын сәл өзгертіп, бұрыштарын тегістейтін шығармын. Екіншіден, әдемі телеметриялық дисплей үшін тіпті 16x4 дисплей жеткіліксіз - мен қысқартуға тура келеді. Параметр атауларын екі әріпке дейін. Құрылғының келесі нұсқасында нүктелік дисплейді немесе бірден TFT матрицасын орнатамын.


Raspberry Pi бір тақталы компьютері шынымен қызықты және пайдалы нәрселерді жасауға мүмкіндік береді: мультимедиялық орталықтардан бастап үйді автоматтандыру жүйелеріне дейін. Raspberry Pi-ге әртүрлі модульдерді қосу арқылы сіз осы шағын компьютердің функционалдығын айтарлықтай кеңейте аласыз.



Осы қосымша плагиндердің бірі фотосуретке немесе бейне түсіруге мүмкіндік беретін камера. Бүгінгі күні нарықта Raspberry Pi үшін бірқатар камералар бар және осы мақалада біз оларға қысқаша шолу жасаймыз.


Ең танымал алты камераны қарастырайық: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi үйлесімді балық көзі камерасы, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir және Raspberry Pi Camera 1.3.



ZeroCam Noir - Raspberry Pi Zero немесе Raspberry Pi Zero W камера модулі, сондықтан оны Raspberry Pi 3 немесе 2-де пайдаланғыңыз келсе, адаптер кабелін пайдалану қажет болады. Бұл камераның объективінде IR сүзгісі жоқ, бұл оны аз жарықта суретке түсіру үшін өте қолайлы етеді. Оның кейбір негізгі сипаттамалары мыналар: 5 мегапиксельді сенсор, 2592 × 1944 пиксель, 30 FPS кезінде 1080p (немесе 720p кезінде 60 FPS, 480p кезінде 90 FPS), фокус қашықтығы 3,60 мм, 53,50 градус көлденең, 4144 градус. камерасы бар тақтаның өлшемдері: 60 x 11,4 x 5,1 мм.



Бұл ZeroCam-тің балық көзі нұсқасы, яғни оның кең бұрышты кескіні бар. Бұл камера сонымен қатар Pi Zero немесе Pi Zero W үшін жасалған, сондықтан оны басқа Pi панелімен пайдалану үшін адаптер кабелі қажет.



Бұл AliExpress, TaoBao, eBay сияқты әртүрлі онлайн сауда платформаларында оңай табуға болатын Raspberry Pi үйлесімді балық көзі камерасы. Ол 175º кең бұрышты көрініспен сипатталады. Ол 5 мегапиксельді (2592 x 1944 пиксель) рұқсаты бар Omnivision 5647 сенсорына негізделген.



Бұл камера 3280×2464 пиксельдік статикалық кескіндерді көрсетуге қабілетті, бекітілген фокустық линзасы бар 8 мегапиксельді Sony IMX219 кескін сенсорымен жабдықталған, ол 1080p30, 720p60 және 640×480p90 бейнелерді қолдайды. Камера барлық Raspberry Pi тақталарымен үйлесімді, бірақ оны Pi Zero көмегімен пайдаланғыңыз келсе, адаптер кабелі қажет.



Бұл камерада Raspberry Pi Camera V2 модулінің барлық мүмкіндіктері бар, бірақ оның IR сүзгісі жоқ. Бұл оның қараңғыда түсіру үшін тамаша камера дерлік екенін білдіреді.



Raspberry Pi Camera 1.3 - V2 модулінің предшественнигі. Ол 5 мегапиксельді OmniVision OV5647 сенсорымен жабдықталған.

Raspberry Pi үшін камералардың көру өрісі мен кескін сапасын салыстыру

Бұл сынақта барлық камералар сынақ кескінінен 1 метр қашықтықта орнатылады. Нәтижелері келесідей:











Масштабтау кезінде Raspberry Pi камераларының кескін сапасы мен түс көрсетуін салыстыру











Түнде түсіру сапасын салыстыру

Төмендегі нәтижелер бірдей нәрсені жасайтын түнгі фотосуретке дайын бірнеше камераларды көрсетеді: сынақ суретіқараңғыда өте аз жарықта.







қорытындылар

Барлық камералар осындай арзан модульдерден күткеннен сәл жақсырақ жұмыс істейді. Өкінішке орай, олардың арасында барлығы бірде-бір камера жоқ және IR кесу сүзгісі алынып тасталған кең бұрышты (балық көзі) камералар жоқ сияқты. Сондықтан кең бұрышты қаласаңыз, сізге тұрақты жарықтандыру қажет болады, ал керісінше, түнде кең бұрышты түсіру екіталай.

Қайырлы күн!

Жаңа жыл қарсаңында маған бейнебақылау қондырғысын салу идеясы келді. Менің қолымда қажеттінің бәрі болды:

  • Raspberry Pi Model B бір борттық компьютер
  • Веб-камера LOGITECH HD веб-камера C270
Оқып болғаннан кейін мен автордың идеясын аздап дамытуды шештім.
Танысу
Сонымен, алдымен негізгі «компонентпен» танысайық:
Raspberry Pi көрінісі:

Сипаттамалары:

  • FPU және Videocore 4 графикалық процессоры бар Broadcom BCM2835 700 МГц ARM1176JZFS процессоры
  • GPU Open GL ES 2.0, аппараттық жеделдетілген OpenVG және 1080p30 H.264 жоғары профильді декодтауды қамтамасыз етеді.
  • GPU 1Gpixel/s, 1.5Gtexel/s немесе 24GFLOPS текстураны сүзу және DMA инфрақұрылымымен қамтамасыз етеді.
  • 512 МБ жедел жады
  • Linux операциялық жүйесінің нұсқасын іске қосатын SD картасынан жүктеледі
  • 10/100 BaseT Ethernet ұясы
  • HDMI бейне шығыс ұясы
  • 2 x USB 2.0 ұясы
  • RCA композиттік бейне шығыс ұясы
  • SD картасы ұясы
  • MicroUSB ұясынан қуат алады
  • 3,5 мм аудио шығыс ұясы
  • Raspberry Pi HD бейнекамера қосқышы
  • Өлшемі: 85,6 x 53,98 x 17 мм"
pi@hall-pi ~ $ cat /proc/cpuinfo процессоры: 0 үлгі атауы: ARMv6-үйлесімді процессор rev 7 (v6l) BogoMIPS: 2.00 Мүмкіндіктер: swp half thumb fastmult vfp edsp java tls CPU орындаушысы: 0x41 CPU архитектурасы: 7 CPU нұсқасы : 0x0 CPU бөлігі: 0xb76 CPU нұсқасы: 7 Жабдық: BCM2708 Түзету: 000e Сериялық: 000000005a82c372

Ресми түрде қолдау көрсетілетін дистрибутивтердің тізімін табуға болады. Мен графикалық қабықсыз Raspbian нұсқасын таңдадым.

Орнату процесі өте қарапайым және қажет емес егжей-тегжейлі сипаттама, сондықтан мен назар аударуға тұрарлық негізгі фактілерді тізімдеймін:

  1. Уақыт белдеуін орнату
  2. Компьютер атауын орнату
  3. SSH қатынасын қосу
  4. Жүйені жаңарту
Барлық қажетті параметрлерді орындағаннан кейін сіз бастай аласыз.
Дайындық
Алдымен барлық қажетті пакеттерді орнатамыз:
sudo apt-get орнату imagemagick libav-tools libjpeg8-dev субверсиясы
Содан кейін mjpg-streamer жүктеп алыңыз және жинаңыз:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer жасау
Өйткені Біз барлық деректерді бұлтта сақтаймыз, қашықтан басқару құралымен жұмысты реттейміз файлдық жүйе WebDAV арқылы:
sudo apt-get орнату davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
Пайдаланушы аты мен құпия сөзді әр уақытта енгізбеу үшін оларды файлға қосу керек
/etc/davfs2/secrets
/mnt/dav пайдаланушы құпия сөзі
Жұмыс процесі
WebDAV орнату және желіге тарату үшін сценарийді іске қосу үшін /etc/rc.local пәрмендерін қосамыз:
mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi cd /home/pi/mjpg-streamer && ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
Енді http://:8080/ мекенжайына өту арқылы біз камераға қол жеткіземіз. Маршрутизатордағы портты бағыттау ғана қалады және сіз жергілікті желіден тыс камераға қол жеткізе аласыз.
Таймлапс бейнесін жасау
Ең алдымен камерадан сурет алуымыз керек. Өйткені ол әлдеқашан жұмыс істеп тұр (сурет веб-сервер арқылы таратылады), содан кейін біз веб-серверден ағымдағы кескінді алу мүмкіндігін пайдаланамыз:
curl http://localhost:8080/?action=snapshot > out.jpg
Егер суретке фотосуреттің күнін салғымыз келсе, онда біз түрлендіру командасын пайдалана аламыз
timetamp=`stat -c %y out.jpg` түрлендіру out.jpg -қара толтыру -ақ түсті толтыру -нүкте өлшемі 15 -"мәтін 5.15 "$(уақыт белгісі:0:19)"" сызу_.jpg
Толық нұсқасценарий:
#!/bin/bash файл аты=$(perl -e "басып шығару уақыты") қалта аты=$(күн --rfc-3339=күн) curl http://localhost:8080/?action=snapshot > $filename timetamp=` stat -c %y $filename` mkdir /mnt/dav/out/$қалта атауын түрлендіру $файл атауы -қара толтыру -ақ түсті толтыру -нүкте өлшемі 15 - "мәтін 5.15 "$(уақыт белгісі:0:19)"" /mnt /dav салу /out/$foldername/$filename.jpg rm $filename
Бейне avconv командасы арқылы жиналады:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Бейне құрастыру сценарийінің толық нұсқасы:
#!/bin/bash файл аты=$(дата --rfc-3339=күн) i=0 f үшін `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` істеу newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) орындалды rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
Енді Cron жоспарлаушысында сценарийлердің орындалуын тіркеу ғана қалады:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Мысал бейне
Қорытынды
Бұл тәсіл бейнелерді көруге көп уақыт жұмсау қажеттілігін жоюға көмектеседі, сонымен қатар түпкілікті өнімнің құнын төмендетеді. Толыққанды ОЖ болуының арқасында функционалдылықты дұрыс бағытта кеңейту мүмкін болады.

Өйткені Бұл компьютерде Wi-Fi арқылы камерадан (мысалы, USB камерасынан) бейнені қабылдау, сақтау, өңдеу және басқа құрылғыларға жіберу үшін жеткілікті өнімділік бар. Raspberry PI үшін арнайы қосқышқа қосылатын арнайы камералар және кез келген құрылғыға қосылатын USB камералары бар. USB порты Raspberry PI жүйесінде. Өйткені USB камералары, әдетте, арнайы камераларға қарағанда әлдеқайда арзан (нашар болса да), сондықтан келесіде Raspberry PI бар USB камерасын пайдалануды қарастырамыз. USB камерасынан бейне түсіруге арналған бірнеше бағдарламалар бар немесе сіз өзіңіз жаза аласыз, бірақ қарапайым болу үшін алдымен қозғалыс бағдарламасын пайдаланып бейне түсіру және беруді қарастырайық. Қозғалыс бағдарламасын Raspberry PI жүйесіне орнату үшін алдымен оған Putty бағдарламасы (немесе SSH арқылы байланысу мүмкіндігі бар кез келген басқа терминалдық бағдарлама) арқылы қосылу керек (мұны қалай жасау керектігі туралы ақпаратты алдыңғы «Raspberry PI 3» мақаласынан қараңыз. WIFI арқылы GPIO орнату және басқару») . Raspberry PI-ге қосылғаннан кейін пәрмендерді пайдаланып жүйені жаңарту керек

Sudo apt-get жаңартуы

Sudo apt-get жаңартуы

Жүйені сәтті жаңартудан кейін пәрменмен қозғалыс бағдарламасын орнату керек

Sudo apt-get орнату қозғалысы

Орнату кезінде сізге «Жалғастыруды қалайсыз ба?» Деген сұрақ қойылуы мүмкін. содан кейін сіз «Y» әрпін енгізуіңіз керек. Қозғалыс бағдарламасын орнатқаннан кейін конфигурация файлдарына кейбір өзгерістер енгізу қажет болады. motion.conf файлын нано редакторында пәрмен арқылы ашыңыз

Sudo nano /etc/motion/motion.conf

Содан кейін

ауыстырылды

Әрі қарай, біз өзгертетін басқа жолдарды табамыз, ол үшін CTRL+W пернелер тіркесімін басыңыз, «stream_localhost» енгізіңіз және enter пернесін басыңыз, содан кейін қажетті жолды табу керек, егер ол табылмаса, «stream_localhost» айнымалысы ” басқа нәрсе деп аталады, мысалы, “webcam_localhost” немесе сол сияқты нәрсе. Осы айнымалысы бар жол табылғаннан кейін сізге қажет

Stream_localhost қосулы

ауыстырылды

Ағын_макс. 1

Және ауыстырыңыз

Ағын_макс. 100

ауыстырылды

Содан кейін

Минималды_кадр_уақыты 0

ауыстырылды

Минималды_кадр_уақыты 1

Соңғысы кадрлар секундына бір рет шығатындай етіп жасалады - бұл өте жақсы көрінбейді, бірақ кескін кенеттен өзгерсе, бейне жоғалып кетпейді. Әрбір айнымалының мақсатын түсініктемелерде оқуға болады.
Енді CTRL+O пернелерін басу арқылы өзгертулерді сақтаңыз және енгізіңіз, содан кейін CTRL+X пернелерін басыңыз және шығыңыз нано редактор. Енді басқа файлды өңдейміз, ол үшін команданы енгіземіз

Sudo nano /etc/default/motion

Және сызықты ауыстырыңыз

Start_motion_daemon=жоқ

Start_motion_daemon=иә

Содан кейін CTRL+O пернелер тіркесімін басу арқылы өзгертулерді сақтаңыз және енгізіңіз, содан кейін CTRL+X пернелерін басыңыз және наноредактордан шығыңыз. Енді пәрмен арқылы бейне тасымалдауды бастауға болады (USB камерасы порттардың біріне қосылуы керек).

Sudo қызметі қозғалысының басталуы

Командамен тоқтаңыз

Sudo қызметінің қозғалысын тоқтату

Бейнені көру үшін браузерді ашып, мекен-жай жолына Raspberry PI IP-мекен-жайын енгізу керек, содан кейін қос нүкте мен 8081 (Raspberry PI IP мекенжайы: 8081) қойып, enter пернесін басыңыз, содан кейін USB камерасындағы бейне браузерде пайда болуы керек. Мұның бәрі қалай жасалғанын, нәтижені және бейнеде тағы бір нәрсені көре аласыз:

Бұл сияқты қарапайым түрдеБейнені Raspberry PI жүйесіне қосылған USB камерасынан алуға болады. Егер бұл кірістірілген WiFi бар және қуат банкімен (немесе басқа портативті электр көзінен) жұмыс істейтін Raspberry PI 3 болса (мысалы, бұл немесе арзанырақ, бірақ арзанын пайдалану ұсынылмайды, Raspberry PI оның барлық мүмкіндіктерін пайдалану үшін қалыпты қуат көзі қажет, сонымен қатар Raspberry жұмысы кезінде пайда болатын процессорға және басқа микросұлбаларға арналған радиаторды орнату өте орынды, ең дұрысы радиатор мыс болуы және арнайы қара бояумен қапталған болуы керек), содан кейін барлығына негізделген. бұл бейнебақылау жүйесінің қандай да бір түрін, бейне камераны немесе ұқсас нәрсені жасай аласыз.




Жоғарғы