Pretakamo video iz spletne kamere, povezane z Raspberry Pi. Raspberry Pi. Povezovanje in delo s kamero CSI Kako priključiti analogno kamero na raspberry pi

Kratka navodila za priključitev in uporabo strojne kamere za Raspberry Pi Upoštevajte, da lahko kamero poškoduje statična elektrika. Preden odstranite kamero, je priporočljivo, da se dotaknete ozemljenega predmeta (na primer radiatorja), da odstranite naboj. Kamera je na ploščo povezana s pomočjo gibljivega kabla. Priključek za kabel se nahaja med vrati Ethernet in HDMI. Objektiv kamere je lahko prekrit s prozorno zaščitno folijo, ki jo morate pred uporabo odstraniti.

Omogoči podporo za kamero v Raspbianu

Zaženite Raspberry Pi in se prijavite (privzeto uporabniško ime je pi, geslo - malina). V terminalu zaženite ukaze za posodobitev distribucije Raspbian na najnovejšo različico: sudo apt-get posodobitev

nadgradnja sudo apt-get

Programska oprema kamere

raspivid konzolna aplikacija za snemanje videa s kamere.

raspistill Aplikacije za prejemanje slik iz parametrov kamere -o ali –output podaja ime izhodne datoteke -t ali –časovna omejitev trajanja snemanja videa (privzeto 5 sekund) -d ali –demo snemanje v predstavitvenem načinu funkcije. Uporabljeni bodo vsi možni učinki

Primeri: raspistill -o slika.jpg- zajem slike v formatu .jpg

raspivid -o video.h264- zajem 5 sekundnega videa v formatu h264

raspivid -o video.h264 -t 10000- zajem 10 sekundnega videa v formatu h264

raspivid -o video.h264 -t 10000 -d- zajem 10-sekundnega videa v formatu h264 v demo načinu

Vse možne parametre za aplikacije raspivid in raspistill si lahko ogledate na naslednji način: raspivid | manj, raspistill | manj

S kazalcem se premikajte po seznamu ali vnesite "q" za izhod. Podrobne opise parametrov za programsko opremo kamere lahko najdete

Pretakanje videa po omrežju

Za prenos videa zaženite ukaz na Raspberry Pi

razpivid -t 999999 -o - | nc 5001

Če želite gledati video na odjemalcu, morate namestiti mplayer in netcat ter ju zagnati na naslednji način: nc -l -p 5001 | mplayer -fps 31 -cache 1024 za Linux


Računalnik z eno ploščo Raspberry Pi vam omogoča ustvarjanje res zanimivih in uporabnih stvari: od multimedijskih centrov do sistemov za avtomatizacijo doma. S priklopom različnih modulov na Raspberry Pi lahko znatno razširite funkcionalnost tega miniračunalnika.



Eden od teh dodatnih vtičnikov je kamera, ki omogoča fotografiranje ali snemanje videoposnetkov. Danes je na trgu kar nekaj kamer za Raspberry Pi in v tem članku bomo podali kratek pregled le-teh.


Poglejmo si šest najbolj priljubljenih kamer: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi Compatible Fisheye Camera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir in Raspberry Pi Camera 1.3.



ZeroCam Noir je modul kamere za Raspberry Pi Zero ali Raspberry Pi Zero W, tako da, če ga želite uporabiti v Raspberry Pi 3 ali 2, boste morali uporabiti adapterski kabel. Ta fotoaparat nima IR filtra na objektivu, zaradi česar je idealen za fotografiranje pri šibki svetlobi. Tukaj je nekaj njegovih glavnih značilnosti: senzor s 5 milijoni slikovnih pik, 2592 × 1944 slikovnih pik, 1080p pri 30 FPS (ali 60 FPS pri 720p, 90 FPS pri 480p), goriščna razdalja 3,60 mm, 53,50 stopinj vodoravno, 41,41 stopinj navpično, pribl. dimenzije plošče s kamero: 60 x 11,4 x 5,1 mm.



To je različica ZeroCam z ribjim očesom, kar pomeni, da ima širokokotno sliko. Ta kamera je narejena tudi za Pi Zero ali Pi Zero W, tako da za uporabo z drugo ploščo Pi potrebujete adapterski kabel.



To je kamera ribje oko, združljiva z Raspberry Pi, ki jo je mogoče zlahka najti na različnih spletnih trgovalnih platformah, kot so AliExpress, TaoBao, eBay. Odlikuje ga širokokotni pogled 175º. Temelji na senzorju Omnivision 5647 z ločljivostjo 5 milijonov pik (2592 x 1944 pik).



Ta kamera je opremljena s slikovnim senzorjem Sony IMX219 z 8 milijoni slikovnih pik s fiksno goriščno lečo, ki lahko prikazuje 3280×2464 slikovnih pik statične slike, podpira videoposnetke 1080p30, 720p60 in 640×480p90. Kamera je združljiva z vsemi ploščami Raspberry Pi, če pa jo želite uporabljati s Pi Zero, potrebujete adapterski kabel.



Ta kamera ima vse funkcije modula Raspberry Pi Camera V2, vendar nima IR filtra. To pomeni, da je skoraj idealna kamera za fotografiranje v temi.



Raspberry Pi Camera 1.3 je predhodnik modula V2. Opremljen je s senzorjem OmniVision OV5647 s 5 milijoni slikovnih pik.

Primerjava vidnega polja in kakovosti slike kamer za Raspberry Pi

Pri tem testu so vse kamere nameščene na razdalji 1 metra od testne slike. Rezultati so naslednji:











Primerjava kakovosti slike in barvne reprodukcije kamer Raspberry Pi pri povečavi











Primerjava kakovosti fotografiranja ponoči

Spodnji rezultati prikazujejo učinkovitost več nočnih kamer, ki zajemajo isto testno sliko pri zelo šibki svetlobi v temi.







zaključki

Vse kamere delujejo nekoliko bolje, kot se pričakuje od tako poceni modulov. Na žalost med njimi ni kamere vse-v-enem in obstaja kompromis, saj se zdi, da ni nobene širokokotne (ribje oko) kamere z odstranjenim IR-filtrom. Torej, če želite širok kot, boste potrebovali redno osvetlitev, in obratno, ponoči verjetno ne boste dobili širokokotnih posnetkov.

Med zanimivimi dodatki k Raspberry Pi je modul video kamere, namenjen povezovanju z vodilom CSI s pomočjo trakastega kabla.

Sama plošča kamere je majhna. Meri le 25 x 20 x 9 mm, tehta le 3 grame in je opremljen s 15 cm dolgim ​​trakastim kablom.


Senzor kamere je 5 MP, ima lečo s fiksnim fokusom in omogoča fotografiranje v ločljivosti 2592x1944. Podpora za video: 1080p 30 sličic na sekundo (fps), 720p pri 60 fps in ločljivost 640x480 pri do 90 fps. Popolna podpora za kamero je bila dodana sistemu Raspbian OS, ki ga je treba posodobiti.

Recite "chee-ee-iz" za Wheezy

Pred nadaljevanjem potrebujete internetno povezavo. Modul kamere zahteva, da je Raspian OS posodobljen na najnovejšo različico, da je mogoče namestiti potrebne gonilnike in orodja.

Če to ni problem, lahko opremo namestimo mi.

Upoštevajte, da lahko statični naboj poškoduje fotoaparat. Preden s fotoaparata odstranite sivo antistatično vrečko, se prepričajte, da ste se naelektrili z dotikom ozemljenega predmeta (kot je radiator ali vodovodna cev).

Za kamero je namensko vodilo tračni priključek, ki je najbližje vratom Ethernet. Ima zasnovo z ničelno vstavitveno silo (ZIF): za sprostitev nosilca morate le zategniti obe stranski sponi.

Uvodni trak morate položiti od roba povezave blizu vrat Ethernet do konca napajalnega priključka Pi. Držite kvadratni trak na mestu in premaknite jezičke narazen, da zaklenete trak na mestu. Na fotografiji upoštevajte, da je gibljivi kabel vstavljen s srebrnimi kontakti proti vratima HDMI:


Povežite vse z Raspberry Pi in zaženite s kartice SD, izberite namestitev osnovnega OS Raspbian "Wheezy", nato znova zaženite. Privzeto uporabniško ime in geslo sta "pi" oziroma "raspberry".

Najprej moramo posodobiti OS, za to odprite terminal in vnesite naslednja dva ukaza ter za vsakim pritisnite tipko return. Za dokončanje lahko traja kar nekaj minut, zato boste morda želeli vzeti skodelico čaja.

sudo apt-get posodobitev

sudo apt-get upgrade -y

Zdaj moramo uporabiti orodje za uravnavanje Raspberry Pi, da preverimo dodelitev pomnilnika GPE, ker potrebujemo vsaj 128 kot medpomnilnik za vse video podatke, ki bodo spraženi v pomnilnik. To dejansko aktivira vodilo kamere. Vnesite v terminal:

sudo raspi-config

Najprej izberite "Advanced > Memory_split" - mora biti že nastavljeno na 128, če pa ni, naredite spremembe. Zdi se, da sistem kamer dobro deluje tudi pri 16, vendar je priporočljivo 128.

Končno je na voljo možnost podpore kamere Enable/Disable Camera (vklop/izklop kamere), izberite Enable (omogoči):



Izberite Finish (done) in nato Reboot za ponovni zagon:


Streljanje z Raspberry Pi

Obstajata dve orodji ukazne vrstice za dostop do modula kamere – to sta raspivid in raspistill .

Kamera ponuja dober izbor grafičnih učinkov in splošnih nastavitev kamere, ki jih je mogoče uporabiti v živo, tako za fotografije kot za video. Spremenite lahko načine ravnovesja beline, ostrenje, vrsto fotografije, osvetlitev, raven ISO in podatke EXIF ​​​​.

Spodaj so primeri ukazov iz terminala in kaj bodo storili, privzeti čas zajemanja je 5 sekund, uporabite možnost -t, da določite daljše obdobje v milisekundah, tako da -t 20000 pomeni "za 20 sekund".

Video

Prikaz petih sekund v demo načinu:raspivid -d

Prikaže 10 s video v demo načinu: raspivid -o video.h264 -t 10000 -d

Prikaz predogleda 640x480: raspivid -p 0,0,640,480

Posnemite 20 sekund videa v formatu h264: raspivid -t 20000 -o video.h264

Uporaba možnosti slike v ukazu raspivid

Sintaksa: RaspiVid[opcije]

Pomoč: Informacije za pomoč
. Privzeto 1920
. Privzeto 1080
-b, - bitna hitrost: Določena bitna hitrost. Uporabite bite na sekundo (na primer, 10 Mbits/s bi bilo -b 10000000 )
-o , - izhod: Izhodna datoteka (za pisanje v stdout uporabite "-o - ")

-t , - časovna omejitev: Čas (v ms) za fotografiranje in izklop. Če ni določeno, nastavite na 5 sekund

-fps - hitrost sličic: Nastavite hitrost sličic na sekundo za snemanje
-e , - penc: Prikaži predogled slik *po* kodiranju (prikaži artefakte stiskanja)

<"x,y,w,h">

Fotografija

Zajemite sliko v formatu JPEG: raspistill -о image.jpg

Naredi fotografijo 640x480: raspistill -o image.jpg -w 640 -h 480

Ustvarite JPEG zmanjšane kakovosti: raspistill -o image.jpg -q 5

Uporaba možnosti slike v ukazu RaspiStill

Sintaksa: RaspiStill [možnosti]

Možnosti ukaza slike

Pomoč: Informacije za pomoč
-w, -width: nastavite širino slike
-h, - višina: podana višina slike
-q , - kakovost: Nastavite kakovost JPEG<0 до 100>
-r , - raw: metapodatkom JPEG doda neobdelane bayerjeve podatke
-o , - izhod: Izhodna datoteka (za pisanje v stdout uporabite "-o -"). Če ni navedeno, datoteka ni shranjena
-v , - verbose: Natisni podrobno med izvajanjem
-t , - časovna omejitev: čas (v ms) za fotografiranje in izklop (če ni navedeno, nastavite na 5 sekund)
-th , - thumb: Nastavi parametre sličice (x:y:kakovost)
-d, - demo: Zaženi demo način (pregled številnih parametrov kamere, brez zajema)
-e , - kodiranje: kodiranje, uporabljeno za izhodno datoteko (JPG, BMP, GIF, PNG)
-x, - exif: oznaka EXIF ​​​​za uporabo pri zajemih (oblika kot "ključ=vrednost")
-tl , - časovni zamik: način intervalnega fotografiranja. Fotografira se vsak gospa

Predogled možnosti ukaza

P, - predogled: možnosti predogleda okna<"x,y,w,h">
-f , - celozaslonski: celozaslonski način gledanja
-n , - brez predogleda: Ne prikaži okna za predogled

Dodatne možnosti ukazov za video in sliko

Sh , - ostrina: Nastavi ostrino slike (-100 do +100)
-co , - kontrast: nastavite kontrast slike (-100 do +100)
-br , - svetlost: nastavite svetlost slike (0 do 100)
-sa , - nasičenost: nastavite nasičenost slike (-100 do +100)
-ISO , -ISO: Določen ISO za zajem
-vs , - vstab: Omogoči stabilizacijo videa
-ev , -ev: Nastavite kompenzacijo osvetlitve
-ex , - izpostavljenost: nastavite način osvetlitve
-awb, -awb: Nastavi način AWB
-ifx, -imxfx: Nastavi učinek slike
-cfx , - colfx: Nastavi barvni učinek (U:V)
-mm , - merjenje: nastavite način merjenja osvetlitve
-rot , - vrtenje: Zasukaj sliko (0-359)
-hf , - hflip: Vodoravni obračanje
-vf , - vflip: Navpično obračanje

Privzeta mapa za shranjevanje slik je »/home/pi«, tako da če morate samo predvajati shranjeni video, je lažje zagnati GUI s startxom, odpreti »Upravitelja datotek« in uporabiti »LXTerminal« za ukaze kamere.

Kako pretakati video iz Raspberry Pi

Za gledanje kanala na Linuxu

Namestite zahtevano programsko opremo tako, da na terminalu zaženete naslednji ukaz:

Dober dan!

Na silvestrovo se mi je porodila ideja, da bi zgradil nekakšen video nadzor. Vse kar sem potreboval sem imel pri roki:

  • Računalnik z eno ploščo Raspberry Pi Model B
  • Spletna kamera LOGITECH HD Webcam C270
Po branju sem se odločil malo razviti avtorjevo idejo.
poznanstvo
Torej, najprej se seznanimo z glavno "komponento":
Videz Raspberry Pi:

Značilnosti:

  • Broadcom BCM2835 700MHz ARM1176JZFS procesor s FPU in Videocore 4 GPE
  • GPE zagotavlja Open GL ES 2.0, strojno pospešen OpenVG in 1080p30 H.264 dekodiranje visokega profila
  • GPE zmore 1Gpixel/s, 1,5Gtexel/s ali 24GFLOPS s filtriranjem tekstur in infrastrukturo DMA
  • 512 MB RAM
  • Zažene se s kartice SD in uporablja različico operacijskega sistema Linux
  • 10/100 BaseT Ethernet vtičnica
  • HDMI video izhodna vtičnica
  • 2 x USB 2.0 vtičnice
  • RCA kompozitna video izhodna vtičnica
  • vtičnica za kartico SD
  • Napaja se iz vtičnice microUSB
  • 3,5 mm avdio izhodni priključek
  • Priključek za video kamero Raspberry Pi HD
  • Velikost: 85,6 x 53,98 x 17 mm"
pi@hall-pi ~ $ cat /proc/cpuinfo procesor: 0 ime modela: procesor, združljiv z ARMv6, rev 7 (v6l) BogoMIPS: 2.00 Lastnosti: swp half thumb fastmult vfp edsp java tls CPU implementer: 0x41 CPE arhitektura: 7 CPE različica : 0x0 CPU del: 0xb76 CPE revizija: 7 Strojna oprema: BCM2708 Revizija: 000e Serijska številka: 000000005a82c372

Seznam uradno podprtih distribucij lahko najdete. Izbral sem Raspbian brez grafične lupine.

Postopek namestitve je precej preprost in ne potrebuje podrobnega opisa, zato bom naštel glavna dejstva, na katera je vredno biti pozoren:

  1. Nastavitev časovnega pasu
  2. Nastavitev imena računalnika
  3. Omogočanje dostopa SSH
  4. Posodobitev sistema
Ko opravite vse potrebne nastavitve, lahko začnete.
Priprava
Najprej namestimo vse potrebne pakete:
sudo apt-get namestite imagemagick libav-tools libjpeg8-dev subversion
Nato prenesite in sestavite mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Ker Vse podatke bomo shranili v oblak, vzpostavili bomo delo z oddaljenim datotečnim sistemom preko WebDAV:
sudo apt-get namestite davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
Da ne boste vsakič vpisovali svojega uporabniškega imena in gesla, ju morate dodati v datoteko
/etc/davfs2/secrets
/mnt/dav uporabniško geslo
Delovni proces
Dodajmo ukaze v /etc/rc.local za namestitev WebDAV in zagon skripta za oddajanje v omrežje:
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"
Zdaj, ko gremo na http://:8080/, bomo dobili dostop do kamere. Ostane le še posredovanje vrat na usmerjevalniku in lahko dostopate do kamere izven lokalnega omrežja.
Ustvarjanje video posnetka s časovnim zamikom
Najprej moramo pridobiti sliko iz kamere. Ker je že zasedena (sliko oddaja spletni strežnik), potem bomo izkoristili možnost prejema trenutne slike s spletnega strežnika:
curl http://localhost:8080/?action=snapshot > out.jpg
Če želimo na sliko narisati datum fotografije, potem lahko uporabimo ukaz convert
timestamp=`stat -c %y out.jpg` convert out.jpg -fill black -fill white -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" out_.jpg
Polna različica skripta:
#!/bin/bash filename=$(perl -e "print time") foldername=$(date --rfc-3339=date) curl http://localhost:8080/?action=snapshot > $filename timestamp=` stat -c %y $filename` mkdir /mnt/dav/out/$foldername convert $filename -fill black -fill white -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" /mnt /dav /out/$imemape/$imedatoteke.jpg rm $imedatoteke
Video se sestavi z ukazom avconv:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Polna različica skripta za sestavljanje videa:
#!/bin/bash ime datoteke=$(datum --rfc-3339=datum) i=0 za f v `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) done rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
Zdaj ostane le še registracija izvajanja skriptov v razporejevalniku Cron:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Primer videa
Zaključek
Ta pristop pomaga odpraviti potrebo po porabi veliko časa za gledanje videoposnetkov in tudi zmanjša stroške končnega izdelka. Zahvaljujoč prisotnosti polnega OS je mogoče razširiti funkcionalnost v pravo smer.

Eden najbolj priljubljenih projektov Raspberry Pi je ustvarjanje strežnika za video nadzor z možnostjo oddajanja v internet. Mnogi ljudje uporabljajo te sisteme kot varnostne sisteme (vključno z mano), vendar obstajajo tudi druge uporabe. Če se vam zdi kaj zanimivega, lahko o tem napišete v komentarjih. Projekt, kot je ta, bi stal okoli £60-£70, vendar sem uporabil nekaj dodatnih komponent, ki sem jih imel naokoli (in na koncu niso stali nič). V svojem projektu sem uporabil spletno kamero Logitech Quickcam.

Kaj potrebujemo:

  • Raspberry Pi
  • SD kartica 8 GB ali več
  • Spletna kamera
  • Dostop do interneta z uporabo Ethernet ali WiFi adapterja
  • USB zvezdišče z zunanjim napajanjem
  • Tipkovnica
  • Miška (za nastavitve WiFi)

Torej, začnimo z namestitvijo najnovejše različice Debiana "Wheezy" na kartico SD, ki jo lahko. Za namestitev slike na računalnik z operacijskim sistemom Windows lahko uporabite pripomoček, za računalnike Mac pa ta program. (Več o namestitvi slik)

Ko je kopiranje slike končano, vstavite kartico SD v Raspberry Pi. Priključimo omrežni kabel ali brezžični adapter, pa tudi tipkovnico. Nazadnje ne pozabite priključiti zvezdišča USB in ga napajati.

Po vklopu Raspberry Pi s pomočjo pripomočka nastavite časovni pas glede na vašo lokacijo raspi-config.

Upoštevajte, da morate za prijavo v sveže nameščen sistem uporabiti svoje uporabniško ime pi z geslom malina.

Če uporabljate omrežno povezavo WiFi:

Če želite konfigurirati brezžični vmesnik in se povezati z WiFi z grafičnim vmesnikom, morate vnesti ukaz:

Po tem lahko nastavite brezžično povezavo. Ko končate, kliknite z miško v spodnjem levem kotu zaslona in izberite Odjava da se vrnete v ukazno vrstico.

Zdaj je čas za posodobitev sistema. V ukazno vrstico vnesite:

Sudo apt-get posodobitev sudo apt-get nadgradnja

in počakajte na dokončanje. Zdaj morate namestiti Motion - programsko opremo, ki bo predvajala video s pomočjo vgrajenega spletnega strežnika. Če želite to narediti, vnesite:

Sudo apt-get install motion

in čakaj. Ko je namestitev končana, spletno kamero povežite z napajanimi vrati USB na zvezdišču.

Zdaj morate spremeniti konfiguracijsko datoteko programa Motion. Če želite to narediti, zaženite ukaz:

Sudo nano /etc/motion/motion.conf

Odpre se urejevalnik s konfiguracijsko datoteko, ki jo lahko spremenite. Najpomembnejši so ti parametri:

Daemon = OFF (pravilno na ON - ta parameter je nekje na začetku datoteke) webcam_localhost = ON (pravilno na OFF - ta parameter je nekje na koncu datoteke)

Pritisnite Ctrl + X za shranjevanje, nato 'y' za potrditev operacije in na koncu Enter za določitev imena datoteke.

Zdaj lahko zaženete strežnik Motion:

Zagon gibanja storitve Sudo

Počakajte približno 60 sekund, nato pa v brskalnik vnesite naslov IP Raspberry Pi. Najboljša izbira brskalnika je najnovejša različica Firefoxa.

Naslov je videti takole: 192.168.X.X:8081

Za ogled slike se prepričajte, da so vrata 8081 navedena na koncu vrstice. Za dostop do nastavitev uporabite vrata 8080 namesto 8081.

Vrata 8081 – video Port 8080 – konfiguracijski spletni vmesnik

Upoštevajte, da boste do kamere lahko dostopali samo znotraj lokalnega omrežja. Ne boste se mogli povezati z domačim video strežnikom z druge lokacije. Če se želite povezati od zunaj, na domačem usmerjevalniku nastavite preusmeritev dohodne povezave.

čestitke! Pravkar ste nastavili svoj strežnik CCTV na vašem Raspberry Pi! Želim vam uspeh in vas prosimo, da delite ta članek!

Opomba: če video strežnik namesto slike prikazuje siv pravokotnik, v terminal vnesite ukaz ls /dev/video, da določite ime video naprave. Privzeto je /etc/motion/motion.conf nastavljen na video0. Če ima vaša spletna kamera drugačno ime, popravite konfiguracijsko datoteko in znova zaženite Motion.

Pozor! Vse, kar je opisano v tem članku, ponovite na lastno odgovornost in tveganje! Ne odgovarjam za morebitne posledice. Ta članek je samo vodnik.