Analogisen kameran liittäminen Raspberry pi -laitteeseen. Videovalvontapalvelin Raspberry Pi:llä. Luodaan timelapse-videota

Katsotaanpa menetelmiä kameran liittämiseksi oikein Raspberry Pi:hen ja sen kanssa työskentelyyn pääteikkunan kautta ja Python-ohjelmointikielellä.
Aiheeseen liittyvät materiaalit:
Kun liität kameran Raspberry-laitteeseen, muista seuraavat asiat:
  • Kamera pelkää staattista sähköä, joten sitä kannattaa koskettaa käytön aikana antistaattisen materiaalin läpi
  • kamera kuluttaa 250 mA - käytettäessä keskinkertaista Malina-virtalähdettä, kameran kytkeminen voi aiheuttaa virranpuutetta, kun kamera toimii aktiivisesti
  • kamerassa ei ole mikrofonia
  • kameran yläosa sijaitsee kaapelin ulostuloa vastakkaisella puolella, mutta siinä on erityinen komento heijastamaan kuvaa pystysuunnassa - lisää siitä alla.

Yhteys

Kamera kannattaa liittää pois päältä kytkettyyn Raspberry-laitteeseen. Voit sammuttaa Raspberryn nopeasti komennolla
sudo sammutettu nyt
CSI-ketjuliitin sijaitsee HDMI:n vieressä: Kameran liittämisen etuna tämän liittimen kautta, toisin kuin USB:n kautta, on se, että se kuormittaa prosessoria siirrettäessä tietoja CSI-liitännän kautta.
Kameran kiinnittämisen helpottamiseksi on valmiita ratkaisuja esimerkiksi - Akryylipidike.
Kameran käyttöliittymä on aktivoitava Raspberryn asetuksista:
Kun kamera on aktivoitu (tarvittaessa), Malina on käynnistettävä uudelleen: sudo reboot now
Raspbianissa on valmiiksi asennettuna tarvittavat apuohjelmat ja ohjaimet, jotta se voi toimia kameran kanssa. Päivitetään paketit käyttämään uusimpia versioita: sudo apt-get update -y sudo apt-get dist-upgrade -y Jos kaikki on tehty oikein, yritetään saada testikehys kamerasta - luo kansio valokuville, mene siihen ja suorita kuvankaappauskomento: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
Vian sattuessa tarkista edelliset vaiheet tai soita kameran ja Malinan liittimiin.
Raspbian-käyttöjärjestelmässä on esiasennettu seuraavat paketit kameran kanssa työskentelemistä varten:
  • raspivid, raspvidyuv - videokaappaus
  • raspistill, raspiyuv - valokuvaaminen
Täydellinen opas lueteltuihin apuohjelmiin on saatavilla osoitteessa Englannin kieli on pois päältä. Raspberry Pi -verkkosivusto
Kaikki apuohjelmat käynnistetään terminaalista ja ovat melko helppokäyttöisiä.
Paketit, joiden nimet päättyvät "yuv", eivät käytä koodauskomponenttia - ne tallentavat kameran anturin vastaanottaman "raa'an" käsittelemättömän tiedon. Tarkastellaan työskentelyä kunkin paketin kanssa, mutta ensin tutustumme kaikille paketeille yhteisten kameraparametrien luetteloon ja sitten tarkastelemme tiettyjä argumentteja ja konkreettisia esimerkkejä heidän sovelluksiaan.

Yleiset parametrit

Katsotaanpa parametrien arvoja. On syytä huomata, että:
  • Jos argumenttia ei määritetä apuohjelmaa kutsuttaessa, käytetään sen oletusarvoa.
  • JOS SARAKE ”SALLITUT ARVOT ALUE” ON TYHJÄ, lisäarvoja ei tarvitse välittää - pelkkä argumentin välittäminen riittää.
  • Esikatselu näkyy vain Raspberry-laitteeseen yhdistetyllä fyysisellä näytöllä. Jos käytät Raspberryä etätyöpöydän (VNC) kautta, esikatselua ei näytetä millään asetuksella, koska esikatselukuva lähetetään suoraan näyttöön muun tiedon päällä.
  • Samanlainen kuin videoiden katsominen työpöydän kautta
Perustelu
Kuvaus
Kelvollinen alue
Oletusarvo
-s
Esikatseluikkunan asetukset
leveys, korkeus, x-koordinaatti, y-koordinaatti
-f
Koko näytön esikatselu
ei
-n
Ei esikatselua
-op
Esikatsele ikkunan läpinäkyvyyttä
0...255
255
-sh
Terävyys
-100...100
0
-co
Kontrasti
-100...100
0
-br
Valaistus
0...100
50
-sa
Kylläisyys
-100...100
0
-ISO
Kameran anturin herkkyys
-100...100
0
- vs
Videon stabilointi
(vain video)
ei
-ev
Valotuksen korjaus
-10...10
0
-esim
Näyttely
  • yön esikatselu
  • taustavalo: taustavalo kohteen takana
  • kohdevalo: kohdevalaistus
  • urheilu: esine liikkeessä
  • lumi: luminen maisema
  • ranta: rantamaisema
  • erittäin pitkä: pitkä altistus
  • kiinteä fps: rajoittaa FPS kiinteään arvoon
  • anti-shake: anti-shake
  • ilotulitus: maisema ilotulituksella
auto
-awb
valkotasapaino
  • aurinko: 5000K...6500K - aurinkoinen
  • pilvi: 6500K ... 12000K pilvistä
  • varjossa: varjossa
  • volframi: 2500K ... 3500K volframi
  • fluoresoiva: 2500K...4500K
  • hehkulamppu: kuuma metalli
  • salama: salamalla
  • horisontti
auto
-ifx
Erilaisia ​​tehosteita
ei mitään, negatiivinen, solarise, posterise, valkotaulu, liitutaulu, luonnos, melu, kohokuviointi, öljymaali, luukku, gpen, pastelli, akvarelli, filmi, sumeus, kylläisyys, värinvaihto, huuhtoutuminen, väripiste, väritasapaino, sarjakuva
ei mitään
-cfx
Väritasapaino
0...255:0...255
128:128
-mm
Valotusmittaus
  • keskiarvo: keskimääräinen
  • paikka: piste
  • taustavalaistu: lue taustavalaistu kuva
  • matriisi: matriisimittaus
keskiverto
- mätää
Vuoro
0 ... 359
0
-hf
Vaakasuora heijastus
Ei
-vf
Pystysuuntainen heijastus
Ei
-roi
Anturin ROI
koordinaatit vasemmasta yläkulmasta sekä alueen leveys ja korkeus
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-ss
Suljinnopeus
mikrosekunneissa
6000000
-drc
Dynaamisen alueen pakkaus
vinossa
-st
näyttää tilastoja
Ei
Seuraavaksi tarkastelemme apuohjelmia erikseen.


raspistill - valokuvankaappaus

Tämä apuohjelma tuottaa koodatun pakatun kuvan, ja tämän toiminnon suorittamiseksi on useita parametreja, jotka välitetään argumenteiksi, kun raspistill suoritetaan.

Argumentit

Perustelu
Kuvaus
Kelvollinen alue
Oletusarvo
-w
Leveys
0...max
Max
-h
Korkeus
0...max
Max
-q
Laatu
0...100
75
-o
Tiedoston nimi
tiedoston polku
-
-v
Lähtö terminaaliin
Tietoja talteenottoprosessista
ei
-t
Viive ennen toimintaa
millisekunneissa
0
-tl
Aikaviive
esimerkki: -tl 2000 -o image%04d.jpg
2000 - väli
%04d - 4-numeroinen numerokuvio
-
-e
Koodaus muotoon
jpg, bmp, gif ja png
jpg
-x
EXIF-tunnisteiden lisääminen
jopa 32 tunnistetta
-
-r
Bayer-taulukon tallentaminen koodatun kuvan metatietoihin
-

Esimerkkejä

Katsotaanpa konkreettisia esimerkkejä raspistillin käytöstä:
Ota vakiokuva 2 sekunnin kuluttua ja tallenna se image.jpg-tiedostoon (kansioon, jossa olet tällä hetkellä). Resoluutio on vakio (maksimi) raspistill -t 2000 -o image.jpg Sama asia, mutta resoluutiolla 640x480 raspistill -o image.jpg -w 640 -h 480 Ota kuva 5 % heikentyneellä laadulla ja tallenna se tiedostoon image.jpg (kansioon, jossa olet tällä hetkellä). Tällä laadulla kuvan koko on huomattavasti pienempi raspistill -o image.jpg -q 5 PNG-muotoon koodatun kuvan hankkiminen ja sen tallentaminen tiedostoon image.png raspistill -o image.png –e png Vakiokuvan saaminen koodalla kaksi upotettua EXIF-tunnistetta: Artist - Boris, GPS-korkeus - 123,5 m raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 Ajastetun kuvasarjan luominen otetuista kuvista 10 sekunnin välein 10 minuutin ajan (600 000 ms) ja niitä kutsutaan nimellä image_num_001_today.jpg, image_num_002_today.jpg ja niin edelleen. Lopullisen kuvan nimi tulee olemaan latest.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg Ota kuvia painamalla Enter, tiedostot tallennetaan vierekkäin ja nimetään my_pics01.jpg my_pics02. jpg jne. raspistill -t 0 -k -o my_pics%02d.jpg

raspiyuv

Käynnistysargumentit ovat täsmälleen samat kuin raspistill-argumentit (katso yllä), joista vain seuraavat EIVÄT OLE SAATAVILLA:
-q - laatu
-e - kohdekuvamuodon määrittäminen
-x - Lisää EXIF-tunnisteet
-r - Tallenna Bayer-taulukko koodatun kuvan metatietoihin
On kuitenkin olemassa OMA argumentti
-rgb - "raa'an" raakadatan tallentaminen RGB888-muodossa (8 bittiä/kanava)

raspivid - videokaappaus

Käynnistä parametrit

Perustelu
Kuvaus
Kelvollinen alue
Oletusarvo
-w
Leveys
0...max
1920
-h
Korkeus
0...max
1080
-b
Videon digitaalinen laatu
bittien määrä sekunnissa.
10 Mbit/s on asetettu -b 10000000
-o
Tiedoston nimi
tiedoston polku
-
-v
Lähtö terminaaliin
Tietoja talteenottoprosessista
-t
Viive ennen toimintaa
millisekunneissa
0
-fps
Ruudunpäivitysnopeus
Kuvien määrä sekunnissa 2...30
-k
Aloita/pysäytä tallennus painamalla Enter
prosessi keskeytetään painamalla "X"
-sg
Kiinteäkestoisten videosegmenttien tallentaminen erillisiin tiedostoihin
Aseta yhden segmentin ja tiedostomaskin kesto
-sg 3000 -o video%04d.h264
-wr
Tiedostojen enimmäismäärän rajoittaminen segmentoinnin aikana
Käytetään argumentin -sg kanssa ja käytännössä toteuttaa syklisen uudelleenkirjoituksen kuten DVR:issä
Oletusresoluutio on 1080p (1920x1080)
Katsotaanpa konkreettisia esimerkkejä:
Viiden sekunnin vakiovideon (1920x1080, 30 kuvaa/s) tallentaminen ja tallentaminen tiedostoon video.h264 raspivid -t 5000 -o video.h264 Viiden sekunnin videon tallentaminen resoluutiolla 1080p ja ominaisbittinopeudella 3,5 Mbits /s ja tallentaminen tiedostoon video.h264 raspivid -t 5000 -o video.h264 -b 3500000 Nauhoita 5 sekuntia vakiotarkkuutta videota 5 fps:n kuvanopeudella ja tallenna tiedostoon video.h264 raspivid -t 5000 -o video.h264 -f 5 Jos näyttö on liitetty Raspberryen HDMI:n kautta, tallennettua videota voi katsella omxplayer-soittimella: sudo apt-get install omxplayer #jos soitinta ei ole vielä asennettu omxplayer video.h264 Videon katselu ei ole käytettävissä VNC:n kautta

Virhekoodit

  • 0 - onnistunut suorittaminen
  • 64 - virheellinen komento lähetetty (syntaksivirhe)
  • 70 - virhe apuohjelmassa tai kommunikoitaessa kameran kanssa
  • 130 - käyttäjä keskeytti suorituksen (näppäinyhdistelmä Ctrl + C)

PiCamera kirjasto

Tämä on Python-ohjelmointikielen kirjasto, jonka avulla voit yksinkertaistaa ja automatisoida työtä Raspberry-kameran kanssa
Kirjaston täydellinen kuvaus englanniksi
Nykyaikaisissa Raspbian-jakelun versioissa kirjasto on jo esiasennettu, voit tarkistaa tämän Python-konsolin kautta python3 import picamera Vian sattuessa sinun on poistuttava konsolista kirjoittamalla exit()-komento tai käyttämällä Ctrl + D-näppäinyhdistelmä ja asenna kirjasto komennolla sudo apt-get install python3-picamera Työskentely kameran kanssa Python-koodista, joka on samanlainen kuin edellä käsitellyt päätekomennot. Voit helposti saada vakiokuvan kamerasta suoraan Python-konsolissa: tuo picamera #tuo kamerakirjasto kamera = picamera.PiCamera() #luo kameraobjekti camera.capture("image.jpg") #soita kameran kuva kaappausmenetelmä kamera .close() #sulje kameraistunto Kuva tallennetaan nykyisen kansion image.jpg-tiedostoon.

Kaksi vuotta sitten, kun aloin työskennellä multikoptereiden parissa, minun piti tehdä pieni. Koska nelikopteri oli tarkoitettu täysin autonomiseksi, tältä kaukosäätimeltä vaadittiin vain ohjaamaan dronea testauksen ja asennuksen aikana.

Periaatteessa kaukosäädin selviytyi kaikista sille osoitetuista tehtävistä melko menestyksekkäästi . Mutta siinä oli myös vakavia puutteita.

  1. Akut eivät mahtuneet koteloon, joten jouduin teipaamaan ne koteloon sähköteipillä :)
  2. Parametrit säädettiin neljällä potentiometrillä, jotka osoittautuivat erittäin herkäksi lämpötilalle. Asetat joitain arvoja sisätiloihin, mene ulos - ja ne ovat jo erilaisia, ne ovat kelluneet pois.
  3. U Arduino Nano, jota käytin kaukosäätimessä, on vain 8 analogista tuloa. Neljä oli virityspotentiometrien varassa. Yksi potentiometri toimi kaasuna. Ohjaussauvaan oli kytketty kaksi tuloa. Vain yksi lähtö jäi vapaaksi, ja konfiguroitavia parametreja oli paljon enemmän.
  4. Ainoa ohjaussauva ei ollut lainkaan pilottiohjain. Kaasun säätäminen potentiometrillä oli myös melko turhauttavaa.
  5. Ja kaukosäätimestä ei kuulunut mitään ääntä, mikä on joskus erittäin hyödyllistä.

Kaikkien näiden puutteiden poistamiseksi päätin suunnitella kaukosäätimen radikaalisti uudelleen. Sekä laitteisto- että ohjelmistoosa. Tässä on mitä halusin tehdä:

  • Tee suuri kotelo, jotta voit laittaa siihen kaiken mitä haluat nyt (mukaan lukien paristot) ja mitä haluat myöhemmin.
  • Ratkaise ongelma jotenkin asetuksilla, ei lisäämällä potentiometrien määrää. Lisäksi voit lisätä parametrien tallentamisen kaukosäätimeen.
  • Tee kaksi ohjaussauvaa, kuten tavallisissa pilottikonsoleissa. No, laita ohjaussauvat itse ortodoksiksi.

Uusi rakennus

Idea on erittäin yksinkertainen ja toimiva. Leikkaamme pleksilasista tai muusta ohuesta materiaalista kaksi levyä ja yhdistämme ne telineisiin. Kotelon koko sisältö on kiinnitetty joko ylä- tai alalevyyn.

Säätimet ja valikot

Joukon parametrien ohjaamiseksi sinun on joko asetettava joukko potentiometrejä kaukosäätimeen ja lisättävä ADC tai tehtävä kaikki asetukset valikon kautta. Kuten jo sanoin, potentiometreillä säätäminen ei ole aina hyvä idea, mutta siitäkään ei pidä luopua. Joten päätettiin jättää neljä potentiometriä kaukosäätimeen ja lisätä koko valikko.

Valikossa liikkumiseen ja parametrien muuttamiseen käytetään yleensä painikkeita. Vasen, oikea, ylös, alas. Mutta halusin käyttää kooderia painikkeiden sijaan. Sain tämän idean 3D-tulostimen ohjaimesta.


Tietenkin valikon lisäyksen vuoksi kaukosäätimen koodi on laajentunut useita kertoja. Aluksi lisäsin vain kolme valikkokohtaa: "Telemetria", "Parametrit" ja "Säilytä parametrit". Ensimmäisessä ikkunassa näkyy jopa kahdeksan erilaista ilmaisinta. Toistaiseksi käytän vain kolmea: akkuvirtaa, kompassia ja korkeutta.

Toisessa ikkunassa on kuusi parametria: PID-säätimen kertoimet X/Y-, Z-akseleille ja kiihtyvyysmittarin korjauskulmat.

Kolmannen kohteen avulla voit tallentaa parametrit EEPROMiin.

Ohjaussauvat

En ajatellut pitkään pilottiohjainten valintaa. Sattui niin, että sain ensimmäisen Turnigy 9XR -joystickin nelikopteriliiketoiminnan kollegalta - Alexander Vasilievilta, tunnetun verkkosivuston alex-exe.ru omistajalta. Tilasin toisen suoraan Hobbykingista.


Ensimmäinen joystick oli jousikuormitettu molemmissa koordinaateissa - ohjaamaan kiertosuuntaa ja nousua. Toinen, jonka otin, oli sama, jotta voin muuttaa sen joystickiksi pidon ja pyörimisen hallitsemiseksi.

Ravitsemus

Vanhassa kaukosäätimessä käytin yksinkertaista LM7805 jännitteensäädintä, jota syötettiin 8 kpl AA-paristoilla. Kauhean tehoton vaihtoehto, jossa säätimen lämmittämiseen käytettiin 7 volttia. 8 paristoa - koska käsillä oli vain tällainen lokero, ja LM7805 - koska tuolloin tämä vaihtoehto tuntui minusta yksinkertaisimmalta ja mikä tärkeintä, nopeimmalta.

Nyt päätin toimia viisaammin ja asensin melko tehokkaan säätimen LM2596S: ään. Ja 8 AA-pariston sijasta asensin lokeron kahdelle LiIon 18650 -paristolle.


Tulos

Kun kaikki yhdistetään, saimme tämän laitteen. Näkymä sisäpuolelta.


Mutta kansi kiinni.


Yhden potentiometrin korkki ja ohjaussauvojen tulpat puuttuvat.

Lopuksi video siitä, kuinka asetukset määritetään valikon kautta.


Bottom line

Kaukosäädin on koottu fyysisesti. Nyt viimeistelen kaukosäätimen ja nelikopterin koodia palauttaakseni heidän entisen vahvan ystävyytensä.

Kaukosäätimen asennuksen aikana havaittiin puutteita. Ensinnäkin kaukosäätimen alakulmat lepäävät käsissäsi: (Muunnittelen luultavasti levyjä hieman, tasoitan kulmat. Toiseksi, edes 16x4 näyttö ei riitä kauniiseen telemetrian näyttöön - täytyy lyhentää parametrien nimet kahdella kirjaimella Laitteen seuraavaan versioon asenna pistenäytön tai heti TFT-matriisin.


Raspberry Pi -yksilevytietokoneella voit luoda todella mielenkiintoisia ja hyödyllisiä asioita: multimediakeskuksista kodin automaatiojärjestelmiin. Yhdistämällä erilaisia ​​moduuleja Raspberry Pi -tietokoneeseen voit laajentaa merkittävästi tämän minitietokoneen toimintoja.



Yksi näistä lisälaajennuksista on kamera, jonka avulla voit ottaa kuvia tai kuvata videoita. Nykyään markkinoilla on useita Raspberry Pi -kameroita, ja tässä artikkelissa annamme niistä lyhyen katsauksen.


Katsotaanpa kuutta suosituinta kameraa: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi -yhteensopiva kalasilmäkamera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir ja Raspberry Pi Camera 1.3.



ZeroCam Noir on kameramoduuli Raspberry Pi Zerolle tai Raspberry Pi Zero W:lle, joten jos haluat käyttää sitä Raspberry Pi 3:ssa tai 2:ssa, tarvitset sovitinkaapelin. Tässä kamerassa ei ole IR-suodatinta objektiivissa, joten se sopii erinomaisesti hämärässä valokuvaamiseen. Tässä on joitain sen tärkeimmistä ominaisuuksista: 5 megapikselin anturi, 2592 × 1944 pikseliä, 1080p nopeudella 30 FPS (tai 60 FPS 720p, 90 FPS 480p), polttoväli 3,60 mm, 53,50 astetta vaaka, 41,41 astetta. levyn mitat kameran kanssa: 60 x 11,4 x 5,1 mm.



Tämä on ZeroCamin kalansilmäversio, mikä tarkoittaa, että siinä on laajakulmakuva. Tämä kamera on tehty myös Pi Zerolle tai Pi Zero W:lle, joten sen käyttämiseen toisen Pi-paneelin kanssa tarvitset sovitinkaapelin.



Tämä on Raspberry Pi -yhteensopiva kalansilmäkamera, joka löytyy helposti useilta verkkokaupan alustoilta, kuten AliExpress, TaoBao, eBay. Sille on ominaista laajakulmanäkymä 175º. Se perustuu Omnivision 5647 -anturiin, jonka resoluutio on 5 megapikseliä (2592 x 1944 pikseliä).



Tässä kamerassa on 8 megapikselin Sony IMX219 -kuvakenno kiinteällä polttovälillä, joka pystyy näyttämään 3280×2464 pikselin staattisia kuvia, se tukee 1080p30-, 720p60- ja 640×480p90-videoita. Kamera on yhteensopiva kaikkien Raspberry Pi -levyjen kanssa, mutta jos haluat käyttää sitä Pi Zeron kanssa, tarvitset sovitinkaapelin.



Tässä kamerassa on kaikki Raspberry Pi Camera V2 -moduulin ominaisuudet, mutta siinä ei ole IR-suodatinta. Tämä tarkoittaa, että se on melkein ihanteellinen kamera pimeässä kuvaamiseen.



Raspberry Pi Camera 1.3 on V2-moduulin edeltäjä. Se on varustettu 5 megapikselin OmniVision OV5647 -anturilla.

Raspberry Pi -kameroiden näkökentän ja kuvanlaadun vertailu

Tässä testissä kaikki kamerat asennetaan 1 metrin etäisyydelle testikuvasta. Tulokset ovat seuraavat:











Raspberry Pi -kameroiden kuvanlaadun ja värintoiston vertailu zoomattaessa











Yökuvauslaadun vertailu

Alla olevat tulokset osoittavat, että useat yökuvaukseen valmiit kamerat tekevät saman asian: testikuva hyvin heikossa valossa pimeässä.







johtopäätöksiä

Kaikki kamerat toimivat hieman paremmin kuin odotettiin näin halvoilta moduuleilta. Valitettavasti niiden joukossa ei ole all-in-one-kameraa, ja kompromissi on tehtävä, koska laajakulmakameroita (kalansilmä) ei näytä olevan, joissa IR-leikkaussuodatin on poistettu. Joten jos haluat laajakulman, tarvitset säännöllistä valaistusta, ja päinvastoin, yöllä et todennäköisesti saa laajakulmakuvia.

Hyvää päivää!

Uudenvuodenaattona minulla oli idea rakentaa jonkinlainen videovalvonta. Minulla oli kaikki mitä tarvitsin:

  • Raspberry Pi Model B yksilevytietokone
  • Verkkokamera LOGITECH HD Webcam C270
Luettuani päätin hieman kehittää kirjoittajan ideaa.
Tuttavuus
Joten ensin tutustutaan pää "komponenttiin":
Raspberry Pi ulkonäkö:

Ominaisuudet:

  • Broadcom BCM2835 700 MHz ARM1176JZFS prosessori FPU:lla ja Videocore 4 GPU:lla
  • GPU tarjoaa Open GL ES 2.0:n, laitteistokiihdytetyn OpenVG:n ja korkean profiilin 1080p30 H.264-dekoodauksen
  • GPU pystyy 1Gpixel/s, 1.5Gtexel/s tai 24GFLOPS tekstuurisuodatuksella ja DMA-infrastruktuurilla
  • 512 Mt RAM-muistia
  • Käynnistyy SD-kortilta, jossa on Linux-käyttöjärjestelmän versio
  • 10/100 BaseT Ethernet -liitäntä
  • HDMI-videolähtöliitäntä
  • 2 x USB 2.0 liitäntä
  • RCA-komposiittivideolähtöliitäntä
  • SD-kortin liitäntä
  • Virta saa microUSB-liitännästä
  • 3,5 mm audiolähtöliitäntä
  • Raspberry Pi HD -videokameraliitin
  • Koko: 85,6 x 53,98 x 17 mm"
pi@hall-pi ~ $ cat /proc/cpuinfo-prosessori: 0 mallin nimi: ARMv6-yhteensopiva prosessori rev 7 (v6l) BogoMIPS: 2.00 Ominaisuudet: swp half thumb fastmult vfp edsp java tls CPU-toteutusohjelma: 0x41 CPU-arkkitehtuuri: 7 CPU-variantti : 0x0 CPU-osa: 0xb76 CPU-versio: 7 Laitteisto: BCM2708 Versio: 000e Sarjanumero: 000000005a82c372

Luettelo virallisesti tuetuista jakeluista löytyy. Valitsin Raspbianin ilman graafista kuorta.

Asennusprosessi on melko yksinkertainen eikä vaadi Yksityiskohtainen kuvaus, joten listaan ​​tärkeimmät tosiasiat, joihin kannattaa kiinnittää huomiota:

  1. Aikavyöhykkeen asettaminen
  2. Tietokoneen nimen asettaminen
  3. Otetaan käyttöön SSH-käyttö
  4. Järjestelmän päivitys
Kun olet tehnyt kaikki tarvittavat asetukset, voit aloittaa.
Valmistautuminen
Ensin asennetaan kaikki tarvittavat paketit:
sudo apt-get install imagemagick libav-tools libjpeg8-dev subversion
Lataa ja kokoa sitten mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Koska Tallennamme kaikki tiedot pilveen, määritämme työskentelyn kaukosäätimellä tiedostojärjestelmä WebDAV:n kautta:
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
Jotta et syötä käyttäjätunnustasi ja salasanaasi joka kerta, sinun on lisättävä ne tiedostoon
/etc/davfs2/secrets
/mnt/dav käyttäjän salasana
Työprosessi
Lisätään komentoja tiedostoon /etc/rc.local WebDAV:n asentamiseksi ja komentosarjan suorittamiseksi verkkolähetystä varten:
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"
Nyt pääsemme kameraan siirtymällä osoitteeseen http://:8080/. Jäljelle jää vain välittää reitittimen portti ja voit käyttää kameraa paikallisverkon ulkopuolella.
Luodaan timelapse-videota
Ensinnäkin meidän on saatava kuva kamerasta. Koska se on jo varattu (verkkopalvelin lähettää kuvan), käytämme tilaisuutta vastaanottaa nykyinen kuva verkkopalvelimelta:
curl http://localhost:8080/?action=snapshot > out.jpg
Jos haluamme piirtää valokuvan päivämäärän kuvaan, voimme käyttää muunnoskomentoa
timestamp=`stat -c %y out.jpg` convert out.jpg -täytä musta -täytä valkoinen -pistekoko 15 -piirrä "teksti 5.15 "$(aikaleima:0:19)"" out_.jpg
Täysversio käsikirjoitus:
#!/bin/bash filename=$(perl -e "tulostusaika") foldername=$(date --rfc-3339=date) curl http://localhost:8080/?action=snapshot > $tiedostonimi timestamp=` stat -c %y $tiedostonimi` mkdir /mnt/dav/out/$foldername convert $tiedostonimi -täytä musta -täytä valkoinen -pistekoko 15 -piirrä "teksti 5.15 "$(aikaleima:0:19)"" /mnt /dav /out/$foldername/$filename.jpg rm $tiedostonimi
Video kootaan avconv-komennolla:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Videokokoonpanon käsikirjoituksen täysi versio:
#!/bin/bash tiedostonimi=$(päiväys --rfc-3339=päiväys) i=0 f:lle `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg kaiku $f "-->" $newf mv $f $newf i=$((i+1)) valmis rmdir -R /mnt/dav/out/$tiedostonimi/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
Nyt jäljellä on vain rekisteröidä komentosarjojen suoritus Cron-aikataulussa:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Esimerkkivideo
Johtopäätös
Tämä lähestymistapa auttaa poistamaan tarpeen viettää paljon aikaa videoiden katseluun ja alentaa myös lopputuotteen kustannuksia. Täydellisen käyttöjärjestelmän läsnäolon ansiosta on mahdollista laajentaa toimintoja oikeaan suuntaan.

Koska Tämän tietokoneen suorituskyky riittää vastaanottamaan, tallentamaan, käsittelemään ja lähettämään videota kamerasta (esimerkiksi USB-kamerasta) wifin kautta muihin laitteisiin. Raspberry PI:lle on olemassa erikoiskameroita, jotka liitetään sen erityiseen liittimeen, ja USB-kameroita, jotka liitetään mihin tahansa USB-portti Raspberry PI:ssä. Koska USB-kamerat ovat yleensä paljon halvempia kuin erikoiskamerat (tosin huonommat), joten seuraavaksi harkitsemme USB-kameran käyttöä Raspberry PI: llä. On olemassa useita ohjelmia videon kaappaamiseen USB-kamerasta, tai voit kirjoittaa oman, mutta yksinkertaisuuden vuoksi tarkastellaan ensin videon kaappaamista ja lähettämistä liikeohjelmalla. Jotta voit asentaa liikeohjelman Raspberry PI:hen, sinun on ensin muodostettava yhteys siihen Putty-ohjelman kautta (tai minkä tahansa muun SSH:n kautta kommunikoivan pääteohjelman kautta) (lisätietoja tämän tekemisestä on edellisessä artikkelissa “Raspberry PI 3 GPIO:n määrittäminen ja hallinta WIFI:n kautta”). Kun olet muodostanut yhteyden Raspberry PI:hen, sinun on päivitettävä järjestelmä komentojen avulla

Sudo apt-get päivitys

Sudo apt-get päivitys

Onnistuneen järjestelmäpäivityksen jälkeen sinun on asennettava liikeohjelma komennolla

Sudo apt-get install motion

Asennuksen aikana sinulle voidaan kysyä "Haluatko jatkaa?" jonka jälkeen sinun on syötettävä kirjain "Y". Kun olet asentanut liikeohjelman, sinun on tehtävä joitain muutoksia asetustiedostoihin. Avaa motion.conf-tiedosto nanoeditorissa komennolla

Sudo nano /etc/motion/motion.conf

Sitten

Korvattu

Seuraavaksi löydämme muut muutettavat rivit, tehdäksesi tämän painamalla näppäinyhdistelmää CTRL+W, syöttämällä "stream_localhost" ja painamalla enteriä, jonka jälkeen pitäisi löytyä tarvittava rivi, jos sitä ei löydy, muuttuja "stream_localhost" " kutsutaan jollain muulla nimellä, esimerkiksi "webcam_localhost" tai jotain vastaavaa. Kun tämän muuttujan rivi on löydetty, sinun on tehtävä se

Stream_localhost päällä

korvattu

Stream_maxrate 1

Ja korvaa

Stream_maxrate 100

Korvattu

Sitten

Minimi_kehysaika 0

Korvattu

Vähimmäiskehysaika 1

Jälkimmäinen tehdään niin, että ruudut lähetetään kerran sekunnissa - tämä ei näytä kovin hyvältä, mutta video ei katoa, jos kuva muuttuu äkillisesti. Kunkin muuttujan tarkoitus on luettavissa kommenteissa.
Tallenna nyt muutokset painamalla CTRL+O ja enter, paina sitten CTRL+X ja poistu nano-editori. Muokkaa nyt toista tiedostoa, annamme tämän komennon

Sudo nano /etc/default/motion

Ja vaihda linja

Start_motion_daemon=no

Start_motion_daemon=kyllä

Tallenna sitten muutokset painamalla CTRL+O ja enter ja paina sitten CTRL+X ja poistu nanoeditorista. Nyt voit aloittaa videon siirron (USB-kameran on oltava kytkettynä johonkin porttiin) komennolla

Sudo-palvelun liike käynnistyy

Lopeta käskyllä

Sudo-palvelun liikkeen pysäytys

Nähdäksesi videon, sinun on avattava selain ja kirjoitettava osoitepalkkiin Raspberry PI:n IP-osoite, sitten kaksoispiste ja 8081 (Raspberry PI:n IP-osoite: 8081) ja paina enter, jonka jälkeen USB-kameran videon pitäisi näkyä selaimessa. Voit nähdä kuinka tämä kaikki tehdään, katso tulos ja jotain muuta videosta:

Kuten tämä yksinkertaisella tavalla Voit saada videota USB-kamerasta, joka on liitetty Raspberry PI:hen. Jos se on Raspberry PI 3, jossa on sisäänrakennettu wifi ja joka saa virtansa virtapankista (tai jostain muusta kannettavasta sähkölähteestä) (esimerkiksi tämä tai halvempi, vaikka ei ole suositeltavaa käyttää halpaa, Raspberry PI tarvitsee normaalin virtalähteen käyttääkseen kaikkia ominaisuuksiaan, on myös erittäin suositeltavaa asentaa jäähdytyselementti prosessorille ja muille mikropiireille, jotka kehittyvät Raspberryn toiminnan aikana, ihannetapauksessa jäähdytyselementin tulisi olla kuparia ja päällystetty erityisellä mustalla maalilla), sitten perustuu kaikkiin tästä voit tehdä jonkinlaisen videovalvontajärjestelmän, videokameran tai jotain vastaavaa.




Ylös