Analoq kameranın moruq pi-yə qoşulması. Raspberry Pi istifadə edən video nəzarət serveri. Timelapse videonun yaradılması

Kameranı Raspberry Pi-yə düzgün qoşmaq və terminal pəncərəsi vasitəsilə onunla işləmək və Python proqramlaşdırma dilindən istifadə etmək üsullarına baxaq.
Əlaqədar materiallar:
Kameranı Raspberry-yə qoşarkən aşağıdakıları unutmayın:
  • Kamera statik elektrikdən qorxur, əməliyyat zamanı ona antistatik material vasitəsilə toxunmaq məsləhətdir.
  • kamera 250 mA istehlak edir - orta səviyyəli Malina enerji təchizatı istifadə edərkən, kamera aktiv işləyərkən kameranın qoşulması enerji çatışmazlığına səbəb ola bilər.
  • kamerada mikrofon yoxdur
  • kameranın yuxarı hissəsi kabel çıxışına qarşı tərəfdə yerləşir, lakin təsviri şaquli şəkildə əks etdirmək üçün xüsusi bir əmr var - aşağıda daha ətraflı.

Əlaqə

Kameranı söndürülmüş Raspberry-yə qoşmaq məsləhətdir. Komanda ilə Raspberry-i tez söndürə bilərsiniz
indi sudo bağlanır
CSI papatya zəncir konnektoru HDMI-nin yanında yerləşir: USB-dən fərqli olaraq kameranı bu konnektor vasitəsilə birləşdirməyin üstünlüyü ondan ibarətdir ki, o, CSI interfeysi vasitəsilə məlumat ötürərkən prosessoru rahatlaşdırır.
Rahatlıq üçün kamera fiksasiyası var hazır həllər, məsələn - Akril tutucu.
Raspberry parametrlərində kamera interfeysi aktivləşdirilməlidir:
Kameranı aktivləşdirdikdən sonra (lazım olduqda) Malina yenidən işə salınmalıdır: sudo indi yenidən başladın
Kamera ilə işləmək üçün Raspbian-da artıq lazımi yardım proqramları və əvvəlcədən quraşdırılmış drayverlər var. Ən son versiyalardan istifadə etmək üçün paketləri yeniləyək: sudo apt-get update -y sudo apt-get dist-upgrade -y Hər şey düzgün aparılıbsa, gəlin kameradan test çərçivəsi almağa çalışaq - şəkillər üçün qovluq yaradın, gedin ona və şəkil çəkmək əmrini yerinə yetirin: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
Uğursuzluq halında, əvvəlki addımları yoxlamalı və ya kameradakı və Malinadakı konnektor kontaktlarına zəng etməlisiniz.
Raspbian OS-də kamera ilə işləmək üçün aşağıdakı paketlər əvvəlcədən quraşdırılmışdır:
  • raspivid, raspvidyuv - video çəkmək
  • raspistill, raspiyuv - şəkil çəkmək
Sadalanan kommunal xidmətlər üçün tam bələdçi burada mövcuddur Ingilis dili açıqdır. Raspberry Pi saytı
Bütün kommunal xidmətlər terminaldan işə salınır və istifadəsi olduqca asandır.
"Yuv" ilə bitən adları olan paketlər kodlaşdırma komponentindən istifadə etmir - onlar kamera sensoru tərəfindən alınan "xam" işlənməmiş məlumatları saxlayırlar. Gəlin hər bir paketlə işləməyə baxaq, lakin əvvəlcə bütün paketlər üçün ümumi olan kamera parametrlərinin siyahısı ilə tanış olacağıq, sonra isə konkret arqumentlərə və konkret misallar onların tətbiqləri.

Ümumi parametrlər

Parametr dəyərlərinə baxaq. Qeyd etmək lazımdır ki:
  • Utiliti çağırarkən arqument göstərilmirsə, onun standart dəyəri istifadə olunur.
  • ƏGƏR “İCAZƏ VERİLƏN DƏYƏRLƏR ARALIĞI” SÜTUNU BOŞDURsa, əlavə dəyərlərin ötürülməsinə ehtiyac yoxdur - sadəcə olaraq arqumentin özünü keçmək kifayətdir.
  • Önizləmə yalnız Raspberry-ə qoşulmuş fiziki monitorda göstərilir. Raspberry-ə uzaq iş masası (VNC) vasitəsilə daxil olsanız, ilkin baxış heç bir parametrdə göstərilməyəcək, çünki önizləmə şəkli qalan məlumatların üstündə birbaşa monitora göndərilir.
  • Desktop vasitəsilə videolara baxmaq kimi
Arqument
Təsvir
Etibarlı diapazon
Cari dəyər
-səh
Pəncərə Seçimləri
eni, hündürlüyü, x-koordinatı, y-koordinatı
-f
Tam ekrana baxış
yox
-n
Önizləmə yoxdur
-op
Pəncərə şəffaflığına baxış
0...255
255

Kəskinlik
-100...100
0
-co
Kontrast
-100...100
0
-br
İşıqlandırma
0...100
50
-sa
Doyma
-100...100
0
-ISO
Kamera sensoru həssaslığı
-100...100
0
-vs
Video sabitləşməsi
(yalnız video)
yox
-ev
Ekspozisiya kompensasiyası
-10...10
0
-məs
Ekspozisiya
  • gecə
  • gecə baxışı
  • arxa işıq: obyektin arxasındakı arxa işıq
  • işıqlandırma: işıqlandırma
  • idman: hərəkətdə olan obyekt
  • qar: qarlı mənzərə
  • çimərlik: çimərlik mənzərəsi
  • çox uzun: uzun müddət məruz qalma
  • fixedfps: FPS-i sabit bir dəyərlə məhdudlaşdırın
  • sarsıntıya qarşı: sarsıntıya qarşı
  • atəşfəşanlıq: atəşfəşanlıqla mənzərə
avto
-avv
ağ balans
  • günəş: 5000K...6500K - günəşli
  • bulud:6500K ... 12000K buludlu
  • kölgə: kölgədə
  • volfram: 2500K ... 3500K volfram
  • floresan: 2500K...4500K
  • közərmə: qırmızı-isti metal
  • flaş: flaş ilə
  • Üfüq
avto
-ifx
Müxtəlif effektlər
heç biri, mənfi, solariz, posteriz, lövhə, yazı lövhəsi, eskiz, denoise, qabartma, yağlı boya, lyuk, gpen, pastel, akvarel, film, bulanıqlıq, doyma, rəng dəyişməsi, yuyulmuş, rəng nöqtəsi, rəng balansı, cizgi filmi
heç biri
-cfx
Rəng balansı
0...255:0...255
128:128
-mm
Ekspozisiya ölçülməsi
  • orta: orta
  • nöqtə: nöqtə
  • arxa işıqlandırma: arxa işıqlı şəkli oxuyun
  • matris: matrisin ölçülməsi
orta
-çürümək
Dön
0 ... 359
0
-hf
Üfüqi əks
Yox
-vf
Şaquli əks
Yox
-roi
Sensor ROI
yuxarı sol küncdən koordinatlar və sahənin eni və hündürlüyü
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-ss
Çekim sürəti
mikrosaniyələrdə
6000000
-drc
Dinamik diapazonun sıxılması
off
-st
statistika göstərin
Yox
Sonra, kommunalları ayrıca nəzərdən keçirəcəyik.


raspistill - şəkil çəkmək

Bu yardım proqramı kodlanmış sıxılmış görüntü yaradır və bu hərəkəti yerinə yetirmək üçün raspistill işləyərkən arqument kimi ötürülən kifayət qədər bir neçə parametr var.

Arqumentlər

Arqument
Təsvir
Etibarlı diapazon
Cari dəyər
-w
Genişlik
0...maks
Maks
-h
Hündürlük
0...maks
Maks
-q
Keyfiyyət
0...100
75
-o
Fayl adı
fayla gedən yol
-
-v
Terminala çıxış
Tutma prosesi haqqında məlumat
yox
-t
Fəaliyyətdən əvvəl gecikmə
millisaniyədə
0
-tl
Vaxt fasiləsi
misal: -tl 2000 -o image%04d.jpg
2000 - interval
%04d - 4 rəqəmli rəqəm nümunəsi
-
-e
Format üçün kodlaşdırma
jpg, bmp, gif və png
jpg
-x
EXIF ​​teqlərinin əlavə edilməsi
32 etiketə qədər
-
-r
Kodlanmış Şəklin Meta Məlumatlarında Bayer Massivinin Saxlanması
-

Nümunələr

Raspistill istifadəsinin xüsusi nümunələrinə baxaq:
2 saniyədən sonra standart şəkil çəkin və onu image.jpg faylında (hazırda olduğunuz qovluqda) saxlayın. Çözünürlük standart (maksimum) olacaq raspistill -t 2000 -o image.jpg Eyni şey, lakin 640x480 təsvir ölçüsündə raspistill -o image.jpg -w 640 -h 480 5% aşağı keyfiyyətlə şəkil çəkin və onu image.jpg faylında (hazırda olduğunuz qovluqda) saxlayın. Bu keyfiyyətlə şəkil ölçüsü xeyli kiçik olacaq raspistill -o image.jpg -q 5 PNG formatında kodlanmış şəklin əldə edilməsi və onu image.png faylında saxlamaq raspistill -o image.png –e png iki daxil edilmiş EXIF ​​​​teqləri: Rəssam - Boris, GPS hündürlüyü - 123,5 m raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 Çəkiləcək şəkillərin vaxtaşırı dəstinin yaradılması 10 dəqiqə (600.000 ms) ərzində 10 saniyəlik fasilələrlə və image_num_001_today.jpg, image_num_002_today.jpg və s. adlandırılacaq. Son şəkilin adı latest.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg Enter düyməsini sıxdığınız zaman şəkilləri çəkin, fayllar yan-yana saxlanılacaq və my_pics01.jpg my_pics02 adlandırılacaq. jpg və s. raspistill -t 0 -k -o my_pics%02d.jpg

raspiyuv

Başlatma arqumentləri raspistill (yuxarıya bax) ilə tamamilə eynidir, onlardan yalnız aşağıdakılar Mövcud DEYİL:
-q - keyfiyyət
-e - hədəf şəkil formatının təyin edilməsi
-x - EXIF ​​​​teqləri əlavə edin
-r - Kodlanmış təsvirin Meta məlumatında Bayer massivini saxlayın
Bununla belə, ÖZ arqumenti var
-rgb - RGB888 formatında "xam" xam məlumatların saxlanması (8 bit/kanal)

raspivid - video çəkmək

Parametrləri işə salın

Arqument
Təsvir
Etibarlı diapazon
Cari dəyər
-w
Genişlik
0...maks
1920
-h
Hündürlük
0...maks
1080
-b
Video bitrate
saniyədə bit sayı.
10Mbits/s təyin edilir -b 10000000
-o
Fayl adı
fayla gedən yol
-
-v
Terminala çıxış
Tutma prosesi haqqında məlumat
-t
Fəaliyyətdən əvvəl gecikmə
millisaniyədə
0
-fps
Çərçivə sürəti
Saniyədə kadrların sayı 2...30
-k
Enter düyməsini basaraq qeydi başladın/dayandırın
proses “X” düyməsini basmaqla dayandırılır
-sg
Sabit müddətə malik video seqmentlərinin ayrı-ayrı fayllarda saxlanması
Bir seqmentin və fayl maskasının müddətini təyin edin
-sg 3000 -o video%04d.h264
-wr
Seqmentləşdirmə zamanı faylların maksimum sayını məhdudlaşdırmaq
-sg arqumenti ilə istifadə olunur və əsasən DVR-lərdə olduğu kimi tsiklik yenidən yazmağı həyata keçirir.
Defolt təsvir ölçüsü 1080p (1920x1080)
Konkret misallara baxaq:
5 saniyəlik standart videonun (1920x1080, 30 kadr/san) yazılması və faylda saxlanması video.h264 raspivid -t 5000 -o video.h264 1080p həlli və 3,5 Mbit xüsusi bit sürəti ilə 5 saniyəlik videonun yazılması /s və fayla saxlama video.h264 raspivid -t 5000 -o video.h264 -b 3500000 5 kadr sürətində 5 saniyəlik standart təyinatlı video yazın və video faylına qeyd edin.h264 raspivid -t 5000 -o video.h264 -f 5 Monitor Raspberry-ə HDMI vasitəsilə qoşulubsa, qeydə alınmış videoya omxplayer pleyerindən istifadə etməklə baxmaq olar: sudo apt-get install omxplayer #pleyer hələ quraşdırılmayıbsa omxplayer video.h264 VNC vasitəsilə videoya baxmaq mümkün deyil

Səhv kodları

  • 0 - müvəffəqiyyətlə tamamlama
  • 64 - etibarsız əmr göndərildi (sintaksis xətası)
  • 70 - yardım proqramında və ya kamera ilə əlaqə qurarkən səhv
  • 130 - icra istifadəçi tərəfindən dayandırıldı (Ctrl + C düymələri birləşməsi)

PiCamera Kitabxanası

Bu, Raspberry kamerası ilə işi sadələşdirməyə və avtomatlaşdırmağa imkan verən Python proqramlaşdırma dili üçün kitabxanadır.
Kitabxananın ingilis dilində tam təsviri
Raspbian paylanmasının müasir versiyalarında kitabxana artıq əvvəlcədən quraşdırılıb, bunu Python konsolu vasitəsilə yoxlaya bilərsiniz python3 import picamera Əgər nasazlıq olarsa, exit() əmrini daxil etməklə və ya Ctrl+ düymələrindən istifadə etməklə konsolu tərk etməlisiniz. D düymələri kombinasiyası və sudo apt-get install python3-picamera əmri ilə kitabxananı quraşdırın. Yuxarıda müzakirə olunan terminal əmrlərinə bənzər Python kodundan kamera ilə işləmək. Siz asanlıqla Python konsolunda kameradan standart şəkil əldə edə bilərsiniz: picamera import #kamera kitabxanasını idxal edin kamera = picamera.PiCamera() #kamera obyekti yaradın camera.capture("image.jpg") #kamera şəklinə zəng edin çəkmə üsulu kamera .close() #kamera sessiyasını bağlayın Şəkil cari qovluqda image.jpg faylında saxlanacaq.

İki il əvvəl, ilk dəfə multikopterlər üzərində işləməyə başlayanda kiçik bir düzəltməli oldum. Kvadrokopterin sırf avtonom olması nəzərdə tutulduğundan, bu pultdan tələb olunan tək şey sınaq və quraşdırma zamanı dronu idarə etmək idi.

Prinsipcə, uzaqdan idarəetmə ona tapşırılan bütün vəzifələrin öhdəsindən olduqca uğurla çıxdı . Amma ciddi nöqsanlar da var idi.

  1. Batareyalar korpusa uyğun gəlmədi, ona görə də onları elektrik lenti ilə korpusa yapışdırmalı oldum :)
  2. Parametrlər temperatura çox həssas olduğu ortaya çıxan dörd potensiometrdən istifadə edərək tənzimləndi. Siz içəridə bəzi dəyərlər təyin edirsiniz, çölə çıxırsınız - və onlar artıq fərqlidirlər, üzərək uzaqlaşıblar.
  3. U Arduino Nano, pultda istifadə etdiyim, cəmi 8 analoq giriş var. Dördü potensiometrləri tənzimləməklə məşğul idi. Bir potensiometr qaz kimi xidmət edirdi. Joystikə iki giriş birləşdirildi. Yalnız bir çıxış pulsuz qaldı və konfiqurasiya ediləcək daha çox parametr var idi.
  4. Yeganə joystik ümumiyyətlə pilot deyildi. Qazı potensiometrlə idarə etmək də olduqca əsəbi idi.
  5. Pult heç bir səs çıxarmadı, bu bəzən çox faydalıdır.

Bütün bu çatışmazlıqları aradan qaldırmaq üçün pultu köklü şəkildə yenidən dizayn etmək qərarına gəldim. Həm aparat hissəsi, həm də proqram təminatı. Etmək istədiyim budur:

  • Böyük bir qutu hazırlayın ki, indi istədiyiniz hər şeyi (batareyalar da daxil olmaqla) və sonra istədiyinizi doldura biləsiniz.
  • Potensiometrlərin sayını artırmaqla deyil, birtəhər parametrlərlə problemi həll edin. Üstəlik, pultda parametrləri saxlamaq imkanı əlavə edin.
  • Normal pilot konsollarında olduğu kimi iki joystik hazırlayın. Yaxşı, joystikləri özləri pravoslav qoyun.

Yeni bina

Fikir son dərəcə sadə və effektivdir. Pleksiglasdan və ya digər nazik materialdan iki boşqab kəsdik və onları raflarla bağlayırıq. Korpusun bütün məzmunu yuxarı və ya aşağı lövhəyə yapışdırılır.

İdarəetmə elementləri və menyular

Bir dəstə parametrə nəzarət etmək üçün ya pultda bir dəstə potensiometr yerləşdirmək və ADC əlavə etmək, ya da menyu vasitəsilə bütün parametrləri etmək lazımdır. Artıq dediyim kimi, potensiometrlərlə tənzimləmək həmişə yaxşı fikir deyil, amma siz də ondan imtina etməməlisiniz. Beləliklə, uzaqdan idarəetmə pultunda dörd potensiometr buraxmaq və tam menyu əlavə etmək qərara alındı.

Menyuda hərəkət etmək və parametrləri dəyişdirmək üçün adətən düymələrdən istifadə olunur. Sol, sağ, yuxarı, aşağı. Ancaq düymələr əvəzinə kodlayıcıdan istifadə etmək istədim. Mən bu fikri 3D printer nəzarətçisindən almışam.


Təbii ki, menyunun əlavə edilməsi sayəsində uzaqdan idarəetmə kodu bir neçə dəfə genişlənmişdir. Başlamaq üçün yalnız üç menyu elementi əlavə etdim: "Telemetri", "Parametrlər" və "Parametrləri saxla". Birinci pəncərədə səkkizə qədər müxtəlif göstərici göstərilir. İndiyə qədər mən yalnız üç istifadə edirəm: batareya gücü, kompas və hündürlük.

İkinci pəncərədə altı parametr mövcuddur: X/Y, Z oxları üçün PID nəzarətçi əmsalları və akselerometrin düzəliş bucaqları.

Üçüncü element parametrləri EEPROM-da saxlamağa imkan verir.

Joysticklər

Pilot joystiklərinin seçimi haqqında çox düşünmədim. Elə oldu ki, ilk Turnigy 9XR joystickini kvadrokopter biznesindəki həmkarımdan - tanınmış alex-exe.ru saytının sahibi Aleksandr Vasilievdən aldım. İkincisini birbaşa Hobbyking-dən sifariş etdim.


İlk joystik hər iki koordinatda yayla yüklənmişdi - əyilmə və meydançaya nəzarət etmək üçün. İkinci götürdüyüm eyni idi, ona görə də onu dartma və fırlanmanı idarə etmək üçün joystickə çevirə bildim.

Qidalanma

Köhnə pultda bir dəstə 8 AA batareyası ilə qidalanan sadə LM7805 gərginlik tənzimləyicisindən istifadə etdim. Tənzimləyicinin istiləşməsinə 7 voltun sərf edildiyi olduqca səmərəsiz bir seçimdir. 8 batareya - çünki əlində yalnız belə bir bölmə var idi və LM7805 - çünki o zaman bu seçim mənə ən sadə və ən əsası ən sürətli görünürdü.

İndi daha müdrik davranmağa qərar verdim və LM2596S-də kifayət qədər təsirli bir tənzimləyici quraşdırdım. Və 8 AA batareyası əvəzinə iki LiIon 18650 batareyası üçün bölmə quraşdırdım.


Nəticə

Hər şeyi bir yerə toplayıb bu cihazı əldə etdik. Daxili görünüş.


Amma qapaq bağlı.


Bir potensiometrdəki qapaq və joystiklərdəki qapaqlar yoxdur.

Nəhayət, menyu vasitəsilə parametrlərin necə konfiqurasiya edildiyi haqqında video.


Alt xətt

Pult fiziki olaraq yığılmışdır. İndi mən pult və kvadrokopterin kodunu yekunlaşdırmaq üzərində işləyirəm ki, onları əvvəlki möhkəm dostluğa qaytarsınlar.

Pultun quraşdırılması zamanı çatışmazlıqlar müəyyən edilib. Birincisi, pultun aşağı küncləri sizin əlinizdədir: (Yəqin ki, lövhələri bir az yenidən dizayn edəcəyəm, küncləri hamarlayacağam. İkincisi, gözəl telemetriya displeyi üçün hətta 16x4 displey kifayət etmir - mən qısaltmalıyam. Parametr adlarını iki hərflə.Cihazın növbəti versiyasında mən nöqtəli displey və ya dərhal TFT matrisini quraşdıracağam.


Raspberry Pi tək lövhəli kompüter həqiqətən maraqlı və faydalı şeylər yaratmağa imkan verir: multimedia mərkəzlərindən tutmuş ev avtomatlaşdırma sistemlərinə qədər. Raspberry Pi-yə müxtəlif modulları qoşmaqla siz bu mini-kompüterin funksional imkanlarını xeyli genişləndirə bilərsiniz.



Bu əlavə plaginlərdən biri foto çəkməyə və ya video çəkməyə imkan verən kameradır. Bu gün bazarda Raspberry Pi üçün bir sıra kameralar var və bu yazıda biz onların qısa icmalını verəcəyik.


Ən məşhur altı kameraya nəzər salaq: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi Uyğun Balıqgözü Kamera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir və Raspberry Pi Camera 1.3.



ZeroCam Noir Raspberry Pi Zero və ya Raspberry Pi Zero W üçün kamera moduludur, ona görə də onu Raspberry Pi 3 və ya 2-də istifadə etmək istəyirsinizsə, adapter kabelindən istifadə etməlisiniz. Bu kameranın obyektivində IR filtri yoxdur, bu da onu az işıqlı fotoqrafiya üçün ideal edir. Onun əsas xüsusiyyətlərindən bəziləri bunlardır: 5 meqapiksellik sensor, 2592 × 1944 piksel, 30 FPS-də 1080p (və ya 720p-də 60 FPS, 480p-də 90 FPS), fokus uzunluğu 3,60 mm, üfüqi 53,50 dərəcə, 41x1 dərəcə. kamera ilə lövhə ölçüləri: 60 x 11.4 x 5.1 mm.



Bu ZeroCam-ın balıqgözü versiyasıdır, yəni onun geniş bucaqlı təsviri var. Bu kamera həmçinin Pi Zero və ya Pi Zero W üçün hazırlanmışdır, ona görə də onu başqa Pi paneli ilə istifadə etmək üçün sizə adapter kabeli lazımdır.



Bu, AliExpress, TaoBao, eBay kimi müxtəlif onlayn ticarət platformalarında asanlıqla tapıla bilən Raspberry Pi uyğun balıqgözü kameradır. 175º geniş bucaqlı görünüşü ilə xarakterizə olunur. O, 5 meqapiksel (2592 x 1944 piksel) təsvir ölçüsünə malik Omnivision 5647 sensoruna əsaslanır.



Bu kamera sabit fokuslu 8 meqapiksellik Sony IMX219 təsvir sensoru ilə təchiz olunub, 3280×2464 piksel statik təsvirləri göstərə bilir, 1080p30, 720p60 və 640×480p90 videoları dəstəkləyir. Kamera bütün Raspberry Pi lövhələri ilə uyğun gəlir, lakin onu Pi Zero ilə istifadə etmək istəyirsinizsə, sizə adapter kabeli lazımdır.



Bu kamera Raspberry Pi Camera V2 modulunun bütün xüsusiyyətlərinə malikdir, lakin onun IR filtri yoxdur. Bu o deməkdir ki, o, demək olar ki, qaranlıqda çəkiliş üçün ideal kameradır.



Raspberry Pi Camera 1.3 V2 modulunun sələfidir. O, 5 meqapiksellik OmniVision OV5647 sensoru ilə təchiz edilib.

Raspberry Pi üçün kameraların görünüş sahəsinin və görüntü keyfiyyətinin müqayisəsi

Bu testdə bütün kameralar sınaq təsvirindən 1 metr məsafədə quraşdırılır. Nəticələr aşağıdakı kimidir:











Zoom zamanı Raspberry Pi kameralarının təsvir keyfiyyətinin və rəng göstərilməsinin müqayisəsi











Gecə çəkiliş keyfiyyətinin müqayisəsi

Aşağıdakı nəticələr eyni şeyi edən bir neçə gecə fotoqrafiyasına hazır kameraları göstərir. sınaq şəkli qaranlıqda çox zəif işıqda.







nəticələr

Bütün kameralar bu cür ucuz modullardan gözləniləndən bir qədər yaxşı işləyir. Təəssüf ki, onların arasında hamısı bir yerdə kamera yoxdur və IR kəsmə filtri çıxarılan geniş bucaqlı (balıqgözü) kameralar olmadığı üçün bir razılaşma var. Beləliklə, geniş bucaq istəyirsinizsə, müntəzəm işıqlandırmaya ehtiyacınız olacaq və əksinə, gecələr geniş bucaq çəkə bilməyəcəksiniz.

Yaxşı gün!

Yeni il ərəfəsində bir növ videomüşahidə qurmaq fikrim var idi. Əlimdə lazım olan hər şey var idi:

  • Raspberry Pi Model B tək lövhəli kompüter
  • Veb kamera LOGITECH HD Veb kamerası C270
Oxuduqdan sonra müəllifin fikrini bir az inkişaf etdirmək qərarına gəldim.
Tanışlıq
Beləliklə, əvvəlcə əsas "komponent" ilə tanış olaq:
Raspberry Pi görünüşü:

Xüsusiyyətlər:

  • FPU və Videocore 4 GPU ilə Broadcom BCM2835 700MHz ARM1176JZFS prosessoru
  • GPU Open GL ES 2.0, hardware sürətləndirilmiş OpenVG və 1080p30 H.264 yüksək profilli deşifrəni təmin edir.
  • GPU faktura filtrasiyası və DMA infrastrukturu ilə 1Gpixel/s, 1.5Gtexel/s və ya 24GFLOPS-a qadirdir
  • 512 MB RAM
  • Linux əməliyyat sisteminin bir versiyası ilə işləyən SD kartdan yüklənir
  • 10/100 BaseT Ethernet yuvası
  • HDMI video çıxış yuvası
  • 2 x USB 2.0 yuvası
  • RCA kompozit video çıxış yuvası
  • SD kart yuvası
  • MicroUSB yuvasından enerji alır
  • 3,5 mm audio çıxış yuvası
  • Raspberry Pi HD video kamera konnektoru
  • Ölçü: 85,6 x 53,98 x 17 mm"
pi@hall-pi ~ $ cat /proc/cpuinfo prosessor: 0 model adı: ARMv6 uyğun prosessor rev 7 (v6l) BogoMIPS: 2.00 Xüsusiyyətlər: swp yarım baş barmaq fastmult vfp edsp java tls CPU tətbiqi: 0x41 CPU arxitekturası: 7 CPU variantı : 0x0 CPU hissəsi: 0xb76 CPU revizyonu: 7 Avadanlıq: BCM2708 Reviziya: 000e Seriya: 000000005a82c372

Rəsmi olaraq dəstəklənən paylamaların siyahısını tapa bilərsiniz. Qrafik qabıqsız Raspbian seçdim.

Quraşdırma prosesi olduqca sadədir və tələb etmir Ətraflı Təsviri, buna görə də diqqət yetirməyə dəyər olan əsas faktları sadalayacağam:

  1. Saat qurşağının təyin edilməsi
  2. Kompüter adının təyin edilməsi
  3. SSH girişini aktivləşdirir
  4. Sistem yeniləməsi
Bütün lazımi parametrləri tamamladıqdan sonra başlaya bilərsiniz.
Hazırlıq
Əvvəlcə bütün lazımi paketləri quraşdıraq:
sudo apt-get quraşdırma imagemagick libav-tools libjpeg8-dev təxribatı
Sonra mjpg-streamer-i yükləyin və yığın:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer etmək
Çünki Bütün məlumatları buludda saxlayacağıq, pultla işi quracağıq fayl sistemi WebDAV vasitəsilə:
sudo apt-get quraşdırma davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
İstifadəçi adınızı və şifrənizi hər dəfə daxil etməmək üçün onları fayla əlavə etməlisiniz
/etc/davfs2/secrets
/mnt/dav istifadəçi parolu
İş prosesi
WebDAV-ni quraşdırmaq və şəbəkəyə yayım üçün skripti işə salmaq üçün /etc/rc.local-a əmrlər əlavə edək:
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"
İndi http://:8080/ ünvanına keçməklə kameraya giriş əldə edəcəyik. Yalnız marşrutlaşdırıcıdakı portu yönləndirmək qalır və kameraya yerli şəbəkədən kənarda daxil ola bilərsiniz.
Timelapse videonun yaradılması
Əvvəlcə kameradan görüntü əldə etməliyik. Çünki artıq işğal olunub (şəkil veb-server tərəfindən yayımlanır), onda biz mövcud şəkli veb serverdən almaq fürsətindən istifadə edəcəyik:
curl http://localhost:8080/?action=snapshot > out.jpg
Şəklin üzərinə şəklin tarixini çəkmək istəyiriksə, o zaman convert əmrindən istifadə edə bilərik
timestamp=`stat -c %y out.jpg` çevirmək out.jpg -qara doldurmaq -ağ doldurmaq -nöqtə ölçüsü 15 -çəkmək "mətn 5.15 "$(zaman damgası:0:19)"" out_.jpg
Tam versiyası skript:
#!/bin/bash fayl adı=$(perl -e "çap vaxtı") qovluğun adı=$(tarix --rfc-3339=tarix) curl http://localhost:8080/?action=snapshot > $filename timestamp=` stat -c %y $filename` mkdir /mnt/dav/out/$qovluq adı çevirmək $fayl adı -qara doldurmaq -ağ doldurmaq -nöqtə ölçüsü 15 -çəkmək "mətn 5.15 "$(zaman damğası:0:19)" /mnt /dav /out/$qovluq adı/$filename.jpg rm $fayl adı
Video avconv əmrindən istifadə edərək yığılır:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Video montaj skriptinin tam versiyası:
#!/bin/bash fayl adı=$(tarix --rfc-3339=tarix) i=0 `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` üçün f üçün newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) tamamlandı rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
İndi yalnız Cron planlaşdırıcısında skriptlərin icrasını qeyd etmək qalır:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Nümunə video
Nəticə
Bu yanaşma videolara baxmağa çox vaxt sərf etmək ehtiyacını aradan qaldırmağa kömək edir, həmçinin son məhsulun maya dəyərini azaldır. Tam hüquqlu OS-nin olması sayəsində funksionallığı düzgün istiqamətdə genişləndirmək mümkün olur.

Çünki Bu kompüter videonu kameradan (məsələn, USB kameradan) WiFi vasitəsilə digər cihazlara qəbul etmək, saxlamaq, emal etmək və ötürmək üçün kifayət qədər performansa malikdir. Raspberry PI üçün xüsusi konnektora qoşulan xüsusi kameralar və hər hansı bir şəbəkəyə qoşulan USB kameralar var. USB portu Raspberry PI-də. Çünki USB kameralar, bir qayda olaraq, xüsusi kameralardan (daha pis olsa da) daha ucuzdur, buna görə də növbəti dəfə Raspberry PI ilə USB kameradan istifadə etməyi nəzərdən keçirəcəyik. USB kameradan video çəkmək üçün bir sıra proqramlar var və ya özünüz yaza bilərsiniz, lakin sadəlik üçün əvvəlcə hərəkət proqramından istifadə edərək videonun çəkilməsinə və ötürülməsinə baxaq. Hərəkət proqramını Raspberry PI-də quraşdırmaq üçün əvvəlcə ona Putty proqramı (və ya SSH vasitəsilə əlaqə qurmaq imkanı olan hər hansı digər terminal proqramı) vasitəsilə qoşulmalısınız (bunun necə ediləcəyi barədə məlumat üçün əvvəlki məqaləyə baxın "Raspberry PI 3" WIFI vasitəsilə GPIO-nun qurulması və idarə edilməsi”). Raspberry PI-yə qoşulduqdan sonra əmrlərdən istifadə edərək sistemi yeniləməlisiniz

Sudo apt-get yeniləməsi

Sudo apt-get yeniləməsi

Uğurlu sistem yeniləməsindən sonra əmrlə hərəkət proqramını quraşdırmalısınız

Sudo apt-get quraşdırma hərəkəti

Quraşdırma zamanı sizə “Davam etmək istəyirsiniz?” sualı verilə bilər. bundan sonra "Y" hərfini daxil etməlisiniz. Hərəkət proqramını quraşdırdıqdan sonra konfiqurasiya fayllarında bəzi dəyişikliklər etməlisiniz. Komanda ilə nano redaktorda motion.conf faylını açın

Sudo nano /etc/motion/motion.conf

Sonra

ilə əvəz edilmişdir

Daha sonra dəyişdirmək üçün başqa sətirləri tapacağıq, bunun üçün CTRL+W düymələr kombinasiyasını sıxaraq, “stream_localhost” daxil edin və enter düyməsini basın, bundan sonra tələb olunan sətir tapılmalı, tapılmadıqda, “stream_localhost” dəyişəni ” başqa bir şey adlanır, məsələn, “webcam_localhost” və ya buna bənzər bir şey. Bu dəyişəni olan xətt tapıldıqdan sonra sizə lazımdır

Stream_localhost aktivdir

ilə əvəz edilmişdir

Axın_maxrate 1

Və ilə əvəz edin

Stream_maxrate 100

ilə əvəz edilmişdir

Sonra

Minimum_çərçivə_zamanı 0

ilə əvəz edilmişdir

Minimum_çərçivə_zamanı 1

Sonuncu, kadrların saniyədə bir dəfə çıxması üçün edilir - bu, çox yaxşı görünmür, lakin şəkil birdən dəyişsə, video yox olmayacaq. Hər bir dəyişənin məqsədi şərhlərdə oxuna bilər.
İndi CTRL+O düymələrini basaraq dəyişiklikləri qeyd edin və daxil edin, sonra CTRL+X düymələrini basın və çıxın nano redaktor. İndi başqa bir faylı redaktə edək, bunun üçün əmri daxil edirik

Sudo nano /etc/default/motion

Və xətti dəyişdirin

Start_motion_daemon=yox

Start_motion_daemon=bəli

Sonra CTRL+O düymələrini basaraq dəyişiklikləri yadda saxlayın və daxil edin və sonra CTRL+X düymələrini basın və nano redaktordan çıxın. İndi əmrlə video ötürülməsinə başlaya bilərsiniz (USB kamera portlardan birinə qoşulmalıdır).

Sudo xidmət hərəkəti başlayır

Əmrlə dayandırın

Sudo xidmətinin dayandırılması

Videonu görmək üçün brauzeri açmalı və ünvan çubuğuna Raspberry PI-nin IP ünvanını daxil etməli, sonra iki nöqtə və 8081 (Raspberry PI-nin IP ünvanı: 8081) qoymalı və Enter düyməsini sıxmalısınız, bundan sonra USB kameradan olan video brauzerdə görünməlidir. Bütün bunların necə edildiyini, nəticəni və videoda başqa bir şeyə baxa bilərsiniz:

Bunun kimi sadə şəkildə Raspberry PI-yə qoşulmuş USB kameradan video əldə edə bilərsiniz. Əgər o, daxili WiFi ilə təchiz edilmiş və güc bankı (və ya başqa bir portativ elektrik mənbəyi) ilə təchiz edilmiş Raspberry PI 3-dirsə (məsələn, bu və ya daha ucuzdur, baxmayaraq ki, ucuzdan istifadə etmək tövsiyə edilmir, Raspberry PI. bütün imkanlarından istifadə etmək üçün normal enerji mənbəyinə ehtiyac var, həmçinin Raspberry əməliyyatı zamanı inkişaf edən prosessor və digər mikrosxemlər üçün soyuducu quraşdırmaq çox məqsədəuyğundur, ideal olaraq soyuducu mis olmalı və xüsusi qara boya ilə örtülməlidir), sonra bütün bunlara əsaslanaraq bu, bir növ video nəzarət sistemi, video kamera və ya buna bənzər bir şey edə bilərsiniz.




Üst