Koble et analogt kamera til en raspberry pi. Videoovervåkingsserver som bruker Raspberry Pi. Lage timelapse-video
La oss se på metoder for å koble kameraet til Raspberry Pi på riktig måte og jobbe med det gjennom terminalvinduet og bruke Python-programmeringsspråket.Relatert materiale:
Når du kobler kameraet til Raspberry, husk følgende:
- Kameraet er redd for statisk elektrisitet; det anbefales å berøre det under bruk gjennom antistatisk materiale
- kameraet bruker 250 mA - når du bruker en middelmådig Malina-strømforsyning, kan tilkobling av kameraet føre til mangel på strøm når kameraet fungerer aktivt
- det er ingen mikrofon i kameraet
- toppen av kameraet er plassert på siden motsatt av kabelutgangen, men det er en spesiell kommando for å reflektere bildet vertikalt - mer om det nedenfor.
Forbindelse
Det anbefales å koble kameraet til en avslått Raspberry. Du kan raskt slå av Raspberry med kommandoensudo avstengning nå
CSI-kjedekontakten er plassert ved siden av HDMI: Fordelen med å koble kameraet gjennom denne kontakten, i motsetning til USB, er at den avlaster prosessoren ved overføring av data via CSI-grensesnittet
For enkel kamerafiksering er det ferdige løsninger, for eksempel - Akrylholder.
![](https://i2.wp.com/systop.ru/uploads/posts/2018-05/1527699779_vydelenie_298.png)
![](https://i0.wp.com/systop.ru/uploads/posts/2018-05/1527699865_vydelenie_300.png)
![](https://i2.wp.com/systop.ru/uploads/posts/2018-05/1527699957_vydelenie_301.png)
For å jobbe med kameraet har Raspbian allerede de nødvendige verktøyene og driverne forhåndsinstallert. La oss oppdatere pakkene for å bruke de nyeste versjonene: sudo apt-get update -y sudo apt-get dist-upgrade -y Hvis alt er gjort riktig, la oss prøve å få en testramme fra kameraet - lag en mappe for bilder, gå til den og utfør bildeopptakskommandoen: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
![](https://i0.wp.com/systop.ru/uploads/posts/2018-05/1527700014_vydelenie_302.png)
Følgende pakker for arbeid med kameraet er forhåndsinstallert i Raspbian OS:
- raspivid, raspvidyuv - videoopptak
- raspistill, raspiyuv - ta bilder
Alle verktøyene startes fra terminalen og er ganske enkle å bruke.
Pakker med navn som slutter på "yuv" bruker ikke kodingskomponenten - de lagrer den "rå" ubehandlede informasjonen mottatt av kamerasensoren. La oss se på å jobbe med hver pakke, men først vil vi bli kjent med listen over kameraparametere som er felles for alle pakker, og deretter skal vi se på spesifikke argumenter og spesifikke eksempler søknadene deres.
Vanlige parametere
La oss se på parameterverdiene. Det er verdt å merke seg at:- Hvis et argument ikke er spesifisert når du kaller opp verktøyet, brukes standardverdien.
- HVIS "TILLATTE VERDIOMRÅDE"-KOLONNNEN ER TOM, trenger ingen tilleggsverdier sendes - bare å bestå selve argumentet er nok.
- Forhåndsvisningen vises bare på en fysisk skjerm koblet til Raspberry. Hvis du får tilgang til Raspberry via eksternt skrivebord (VNC), vil forhåndsvisningen ikke vises på noen innstillinger siden forhåndsvisningsbildet sendes direkte til skjermen på toppen av resten av informasjonen
- Ligner på å se videoer via skrivebordet
Argument | Beskrivelse | Gyldig rekkevidde | Standardverdi |
-s | Alternativer for forhåndsvisningsvindu | bredde, høyde, x-koordinat, y-koordinat | |
-f | Forhåndsvisning i full skjerm | Nei |
|
-n | Ingen forhåndsvisning | ||
-op | Forhåndsvis vindu åpenhet | 0...255 | 255 |
-sh | Skarphet | -100...100 | 0 |
-co | Kontrast | -100...100 | 0 |
-br | Belysning | 0...100 | 50 |
-sa | Metning | -100...100 | 0 |
-ISO | Kamerasensorfølsomhet | -100...100 | 0 |
- vs | Videostabilisering (kun video) | Nei |
|
-ev | Eksponeringskompensasjon | -10...10 | 0 |
-eks | Utstilling |
| auto |
-ååå | hvit balanse |
| auto |
-ifx | Ulike effekter | ingen, negativ, solariser, posterise, tavle, tavle, skisse, denoise, preging, oljemaling, luke, gpen, pastell, akvarell, film, uskarphet, metning, fargebytte, utvasket, fargepunkt, fargebalanse, tegneserie | ingen |
-cfx | Fargebalanse | 0...255:0...255 | 128:128 |
-mm | Eksponeringsmåling |
| gjennomsnitt |
-råtne | Sving | 0 ... 359 | 0 |
-hf | Horisontal refleksjon | Nei |
|
-vf | Vertikal refleksjon | Nei |
|
-roi | Sensor ROI | koordinater fra øvre venstre hjørne og bredden og høyden på området 0 … 1,0 … 1,0 … 1,0 … 1 | 0,0,1,1 |
-ss | Lukkerhastighet | i mikrosekunder | 6000000 |
-drc | Dynamisk rekkeviddekomprimering | av |
|
-st | vise statistikk | Nei |
raspistill - fotofangst
Dette verktøyet produserer et kodet komprimert bilde, og for å utføre denne handlingen er det ganske mange parametere som sendes som argumenter når du kjører raspistill.Argumenter
Argument | Beskrivelse | Gyldig rekkevidde | Standardverdi |
-w | Bredde | 0...maks | Maks |
-h | Høyde | 0...maks | Maks |
-q | Kvalitet | 0...100 | 75 |
-o | Filnavn | banen til filen | - |
-v | Utgang til terminal | Informasjon om fangstprosessen | Nei |
-t | Forsinkelse før handling | på millisekunder | 0 |
-tl | Tidsforløp | eksempel: -tl 2000 -o image%04d.jpg 2000 - intervall %04d - 4-sifret tallmønster | - |
-e | Koding for å formatere | jpg, bmp, gif og png | jpg |
-x | Legger til EXIF-tagger | opptil 32 tagger | - |
-r | Lagre en Bayer-matrise i metadataene til et kodet bilde | - |
Eksempler
La oss se på spesifikke eksempler på bruk av raspistill:Ta et standardbilde etter 2 sekunder og lagre det i image.jpg-filen (i mappen du befinner deg i). Oppløsningen vil være standard (maksimal) raspistill -t 2000 -o image.jpg Det samme, men i en oppløsning på 640x480 raspistill -o image.jpg -w 640 -h 480 Ta et bilde med redusert kvalitet på 5% og lagre den til en fil image.jpg (i mappen du befinner deg i). Med denne kvaliteten vil bildestørrelsen bli betydelig mindre raspistill -o image.jpg -q 5 Hente et bilde kodet i PNG-format og lagre det til filen image.png raspistill -o image.png –e png Skaffe et standardbilde med to innebygde EXIF-tagger: Artist - Boris, GPS-høyde - 123,5 m raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 Opprette et time-lapse sett med bilder som vil bli tatt med intervaller på 10 sekunder gjennom 10 minutter (600 000 ms) og kalles image_num_001_today.jpg, image_num_002_today.jpg og så videre. Det endelige bildet vil få navnet latest.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg Ta bilder når du trykker på Enter, filene lagres side ved side og får navnet my_pics01.jpg my_pics02. jpg osv. raspistill -t 0 -k -o my_pics%02d.jpg
raspiyuv
Lanseringsargumentene er nøyaktig de samme som for raspistill (se ovenfor), hvorav bare følgende IKKE er tilgjengelig:-q - kvalitet
-e - spesifisere målbildeformatet
-x - Legg til EXIF-koder
-r - Lagre en Bayer-array i metadataene til det kodede bildet
Det er imidlertid et EGET argument
-rgb - lagring av "rå" rådata i RGB888-format (8 biter/kanal)
raspivid - videoopptak
Startparametere
Argument | Beskrivelse | Gyldig rekkevidde | Standardverdi |
-w | Bredde | 0...maks | 1920 |
-h | Høyde | 0...maks | 1080 |
-b | Video bitrate | antall bits per sekund. 10Mbits/s er satt til -b 10000000 | |
-o | Filnavn | banen til filen | - |
-v | Utgang til terminal | Informasjon om fangstprosessen | |
-t | Forsinkelse før handling | på millisekunder | 0 |
-fps | Framerate | Antall bilder per sekund 2...30 | |
-k | Start/stopp opptaket ved å trykke Enter | prosessen avbrytes ved å trykke "X" | |
-sg | Lagre videosegmenter med en fast varighet i separate filer | Angi varigheten av ett segment og filmaske -sg 3000 -o video%04d.h264 | |
-wr | Begrensning av maksimalt antall filer under segmentering | Brukes med -sg-argumentet og implementerer i hovedsak syklisk omskriving som i DVR-er |
La oss se på spesifikke eksempler:
Ta opp en 5-sekunders standardvideo (1920x1080, 30 bilder/sek.) og lagre til en fil video.h264 raspivid -t 5000 -o video.h264 Ta opp en 5-sekunders video med en oppløsning på 1080p og en spesifikk bitrate på 3,5Mbits /s og lagre til fil video.h264 raspivid -t 5000 -o video.h264 -b 3500000 Ta opp 5 sekunder med standardoppløsningsvideo med 5fps bildefrekvens og lagre til filen video.h264 raspivid -t 5000 -o video.h264 -f 5 Hvis en skjerm er koblet til Raspberry via HDMI, kan den innspilte videoen sees ved hjelp av omxplayer-spilleren: sudo apt-get install omxplayer #hvis spilleren ikke er installert ennå omxplayer video.h264 Videovisning er ikke tilgjengelig via VNC
Feilkoder
- 0 - vellykket gjennomføring
- 64 - ugyldig kommando sendt (syntaksfeil)
- 70 - feil i verktøyet eller ved kommunikasjon med kameraet
- 130 - utførelse ble avbrutt av brukeren (tastkombinasjon Ctrl + C)
PiCamera bibliotek
Dette er et bibliotek for programmeringsspråket Python som lar deg forenkle og automatisere arbeidet med Raspberry-kameraetFull beskrivelse av biblioteket på engelsk
I moderne versjoner av Raspbian-distribusjonen er biblioteket allerede forhåndsinstallert, du kan sjekke dette gjennom Python-konsollen python3 import picamera I tilfelle feil må du forlate konsollen ved å skrive inn exit()-kommandoen eller bruke Ctrl + D tastekombinasjon og installer biblioteket med kommandoen sudo apt-get install python3-picamera Arbeide med kameraet fra Python-kode som ligner på terminalkommandoene diskutert ovenfor. Du kan enkelt få et standardbilde fra et kamera direkte i Python-konsollen: importer picamera #importer kamerabiblioteket kamera = picamera.PiCamera() #opprett et kameraobjekt camera.capture("image.jpg") #ring kamerabildet fangstmetode kamera .close() #lukk kameraøkten Bildet vil bli lagret i image.jpg-filen i gjeldende mappe.
For to år siden, da jeg først begynte å jobbe med multikoptre, måtte jeg lage en liten. Siden quadcopteren var ment å være rent autonom, var alt som krevdes av denne fjernkontrollen å kontrollere dronen under testing og oppsett.
I prinsippet taklet fjernkontrollen alle oppgavene som ble tildelt den ganske vellykket . Men det var også alvorlige mangler.
- Batteriene passet ikke inn i etuiet, så jeg måtte teipe dem til etuiet med elektrisk tape :)
- Parametrene ble justert ved hjelp av fire potensiometre, som viste seg å være svært følsomme for temperatur. Du setter noen verdier innendørs, går ut - og de er allerede forskjellige, de har flytet bort.
- U Arduino Nano, som jeg brukte i fjernkontrollen, er det kun 8 analoge innganger. Fire ble okkupert av tuning potensiometre. Ett potensiometer fungerte som gass. To innganger var koblet til styrespaken. Bare én utgang forble ledig, og det var mange flere parametere å konfigurere.
- Den eneste joysticken var ikke en pilot i det hele tatt. Å kontrollere gassen med et potensiometer var også ganske frustrerende.
- Og fjernkontrollen ga ingen lyder, noe som noen ganger er ekstremt nyttig.
For å eliminere alle disse manglene bestemte jeg meg for å radikalt redesigne fjernkontrollen. Både maskinvaredelen og programvaren. Her er hva jeg ville gjøre:
- Lag et stort etui slik at du kan stappe alt du vil nå (inkludert batterier) i den, og hva du vil senere.
- Løs problemet med innstillingene på en eller annen måte, ikke ved å øke antall potensiometre. Legg i tillegg til muligheten til å lagre parametere i fjernkontrollen.
- Lag to joysticker, som på vanlige pilotkonsoller. Vel, sette joystickene seg ortodokse.
Ny bygning
Ideen er ekstremt enkel og effektiv. Vi kutter ut to plater fra plexiglass eller annet tynt materiale og kobler dem til stativer. Hele innholdet i kofferten er festet til enten topp- eller bunnplaten.
Kontroller og menyer
For å kontrollere en haug med parametere, må du enten plassere en haug med potensiometre på fjernkontrollen og legge til en ADC, eller gjøre alle innstillingene gjennom menyen. Som jeg allerede sa, justering med potensiometre er ikke alltid en god idé, men du bør heller ikke gi opp. Så det ble besluttet å la fire potensiometre være i fjernkontrollen og legge til en full meny.
For å navigere gjennom menyen og endre parametere, brukes vanligvis knapper. Venstre, høyre, opp, ned. Men jeg ønsket å bruke en koder i stedet for knapper. Jeg fikk denne ideen fra en 3D-skriverkontroller.
Selvfølgelig, på grunn av tillegget av menyen, har fjernkontrollkoden utvidet flere ganger. Til å begynne med la jeg bare til tre menyelementer: "Telemetri", "Parametere" og "Store params". Det første vinduet viser opptil åtte forskjellige indikatorer. Så langt bruker jeg bare tre: batteristrøm, kompass og høyde.
I det andre vinduet er seks parametere tilgjengelige: PID-regulatorkoeffisienter for X/Y-, Z-aksene og akselerometerets korreksjonsvinkler.
Det tredje elementet lar deg lagre parametere i EEPROM.
Joysticks
Jeg tenkte ikke lenge på valget av pilot-joysticks. Det hendte at jeg fikk den første Turnigy 9XR-joysticken fra en kollega i quadcopter-bransjen - Alexander Vasiliev, eieren av det velkjente nettstedet alex-exe.ru. Jeg bestilte den andre direkte fra Hobbyking.
Den første joysticken var fjærbelastet i begge koordinatene - for å kontrollere giring og stigning. Den andre jeg tok var den samme, slik at jeg deretter kunne konvertere den til en joystick for å kontrollere trekkraft og rotasjon.
Ernæring
I den gamle fjernkontrollen brukte jeg en enkel LM7805 spenningsregulator, som ble matet med en haug med 8 AA-batterier. Et fryktelig ineffektivt alternativ, der 7 volt ble brukt på å varme regulatoren. 8 batterier - fordi det bare var et slikt rom for hånden, og LM7805 - fordi på den tiden virket dette alternativet for meg det enkleste, og viktigst av alt, det raskeste.
Nå bestemte jeg meg for å handle klokere og installerte en ganske effektiv regulator på LM2596S. Og i stedet for 8 AA-batterier, installerte jeg et rom for to LiIon 18650-batterier.
Resultat
Setter vi alt sammen, har vi denne enheten. Innvendig utsikt.
Men med lokket lukket.
Hetten på det ene potensiometeret og hettene på styrespakene mangler.
Til slutt en video om hvordan innstillinger konfigureres gjennom menyen.
Bunnlinjen
Fjernkontrollen er fysisk montert. Nå jobber jeg med å ferdigstille koden for fjernkontrollen og quadcopteret for å returnere dem til deres tidligere sterke vennskap.
Under oppsett av fjernkontrollen ble det identifisert mangler. For det første hviler de nedre hjørnene av fjernkontrollen i hendene dine: (Jeg skal nok redesigne platene litt, jevne ut hjørnene. For det andre er ikke engang en 16x4-skjerm nok for en vakker telemetriskjerm - jeg må forkorte parameternavn til to bokstaver I neste versjon av enheten vil jeg installere et punktdisplay eller umiddelbart en TFT-matrise.
Raspberry Pi enkeltbordsdatamaskinen lar deg lage virkelig interessante og nyttige ting: fra multimediesentre til hjemmeautomatiseringssystemer. Ved å koble ulike moduler til Raspberry Pi kan du utvide funksjonaliteten til denne minidatamaskinen betydelig.
En av disse ekstra plugin-modulene er et kamera som lar deg ta bilder eller filme. I dag finnes det en rekke kameraer for Raspberry Pi på markedet, og i denne artikkelen vil vi gi en kort gjennomgang av dem.
La oss se på seks av de mest populære kameraene: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi-kompatibelt Fisheye-kamera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir og Raspberry Pi Camera 1.3.
ZeroCam Noir er en kameramodul for Raspberry Pi Zero eller Raspberry Pi Zero W, så hvis du vil bruke den i Raspberry Pi 3 eller 2, må du bruke en adapterkabel. Dette kameraet har ikke et IR-filter på objektivet, noe som gjør det ideelt for fotografering i lite lys. Her er noen av hovedkarakteristikkene: 5 megapikslers sensor, 2592 × 1944 piksler, 1080p ved 30 FPS (eller 60 FPS ved 720p, 90 FPS ved 480p), brennvidde 3,60 mm, 53,50 grader horisontalt, 41,41 grader vertikalt, ca. bordmål med kamera: 60 x 11,4 x 5,1 mm.
Dette er fiskeøye-versjonen av ZeroCam, som betyr at den har et vidvinkelbilde. Dette kameraet er også laget for Pi Zero eller Pi Zero W, så for å bruke det med et annet Pi-panel trenger du en adapterkabel.
Dette er et Raspberry Pi-kompatibelt fiskeøyekamera som enkelt kan finnes på ulike online handelsplattformer som AliExpress, TaoBao, eBay. Den er preget av en vidvinkelvisning på 175º. Den er basert på Omnivision 5647-sensoren med en oppløsning på 5 megapiksler (2592 x 1944 piksler).
Dette kameraet er utstyrt med en 8-megapiksel Sony IMX219-bildesensor med et fast fokusobjektiv, som kan vise statiske bilder på 3280×2464 piksler, det støtter 1080p30, 720p60 og 640×480p90 videoer. Kameraet er kompatibelt med alle Raspberry Pi-kort, men hvis du vil bruke det med Pi Zero, trenger du en adapterkabel.
Dette kameraet har alle funksjonene til Raspberry Pi Camera V2-modulen, men det har ikke et IR-filter. Dette betyr at det nesten er et ideelt kamera for fotografering i mørket.
Raspberry Pi Camera 1.3 er forgjengeren til V2-modulen. Den er utstyrt med en 5-megapiksel OmniVision OV5647-sensor.
Sammenligning av synsfelt og bildekvalitet på kameraer for Raspberry Pi
I denne testen er alle kameraer installert i en avstand på 1 meter fra testbildet. Resultatene er som følger:
Sammenligning av bildekvalitet og fargegjengivelse av Raspberry Pi-kameraer ved zooming
Sammenligning av opptakskvalitet om natten
Resultatene nedenfor viser flere nattfotograferingsklare kameraer som gjør det samme. testbilde i svært lite lys i mørket.
konklusjoner
Alle kameraer yter litt bedre enn forventet fra slike billige moduler. Dessverre er det ikke noe alt-i-ett-kamera blant dem, og det er en avveining å gjøre siden det ikke ser ut til å være noen vidvinkelkameraer (fiskeøye) med IR-filteret fjernet. Så hvis du vil ha vidvinkel, trenger du vanlig belysning, og omvendt er det usannsynlig at du kan ta vidvinkelfotografering om natten.
God dag!
På nyttårsaften fikk jeg ideen om å bygge en slags videoovervåking. Jeg hadde alt jeg trengte for hånden:
- Raspberry Pi Model B enkeltbord datamaskin
- Webkamera LOGITECH HD Webkamera C270
Bekjent
Så la oss først bli kjent med hovedkomponenten:Raspberry Pi utseende:
Kjennetegn:
- Broadcom BCM2835 700MHz ARM1176JZFS-prosessor med FPU og Videocore 4 GPU
- GPU gir Open GL ES 2.0, maskinvareakselerert OpenVG og 1080p30 H.264 høyprofildekoding
- GPU er i stand til 1Gpixel/s, 1,5Gtexel/s eller 24GFLOPS med teksturfiltrering og DMA-infrastruktur
- 512 MB RAM
- Starter opp fra SD-kort, kjører en versjon av Linux-operativsystemet
- 10/100 BaseT Ethernet-kontakt
- HDMI video ut-kontakt
- 2 x USB 2.0-kontakter
- RCA kompositt video ut-kontakt
- SD-kortkontakt
- Drives fra microUSB-kontakt
- 3,5 mm lydutgang
- Raspberry Pi HD videokamerakontakt
- Størrelse: 85,6 x 53,98 x 17 mm
Du finner en liste over offisielt støttede distribusjoner. Jeg valgte Raspbian uten et grafisk skall.
Installasjonsprosessen er ganske enkel og krever ikke Detaljert beskrivelse, så jeg vil liste opp hovedfakta som er verdt å ta hensyn til:
- Stille inn tidssonen
- Stille inn datamaskinnavnet
- Aktiverer SSH-tilgang
- System oppdatering
Forberedelse
Først, la oss installere alle nødvendige pakker:sudo apt-get install imagemagick libav-tools libjpeg8-dev subversion
Last ned og sett sammen mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Fordi Vi vil lagre all data i skyen, vi vil sette opp arbeid med fjernkontroll filsystem via WebDAV:
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
For ikke å skrive inn brukernavn og passord hver gang, må du legge dem til i filen
/etc/davfs2/secrets
/mnt/dav brukerpassord
Arbeidsprosessen
La oss legge til kommandoer til /etc/rc.local for å montere WebDAV og kjøre skriptet for kringkasting til nettverket: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.så -w ./www"
Nå, ved å gå til http://:8080/ får vi tilgang til kameraet. Det gjenstår bare å videresende porten på ruteren og du får tilgang til kameraet utenfor det lokale nettverket.
Lage timelapse-video
Først av alt må vi få et bilde fra kameraet. Fordi det er allerede opptatt (bildet kringkastes av webserveren), så vil vi bruke muligheten til å motta det gjeldende bildet fra webserveren:curl http://localhost:8080/?action=snapshot > out.jpg
Hvis vi vil tegne datoen for bildet på bildet, kan vi bruke kommandoen 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
Full versjon manus:
#!/bin/bash filnavn=$(perl -e "utskriftstid") mappenavn=$(dato --rfc-3339=dato) curl http://localhost:8080/?action=snapshot > $filnavn timestamp=` stat -c %y $filnavn` mkdir /mnt/dav/out/$mappenavn konvertere $filnavn -fyll svart -fyll hvit -punktstørrelse 15 -draw "text 5.15 "$(timestamp:0:19)"" /mnt /dav /out/$mappenavn/$filnavn.jpg rm $filnavn
Videoen er satt sammen ved hjelp av avconv-kommandoen:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Fullversjon av videomonteringsskriptet:
#!/bin/bash filnavn=$(dato --rfc-3339=dato) i=0 for f i `ls -tr /mnt/dav/out/$filnavn/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg ekko $f "-->" $newf mv $f $newf i=$((i+1)) ferdig rmdir -R /mnt/dav/out/$filnavn/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filnavn.avi rm *.jpg
Nå gjenstår det bare å registrere utførelsen av skript i Cron-planleggeren:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Eksempel video
Konklusjon
Denne tilnærmingen bidrar til å eliminere behovet for å bruke mye tid på å se videoer, og reduserer også kostnadene for sluttproduktet. Takket være tilstedeværelsen av et fullverdig OS, blir det mulig å utvide funksjonaliteten i riktig retning.Fordi Denne datamaskinen har tilstrekkelig ytelse til å motta, lagre, behandle og overføre video fra et kamera (for eksempel fra et USB-kamera) via wifi til andre enheter. Det er spesialkameraer for Raspberry PI som kobles til en spesiell kontakt på den og USB-kameraer som kobles til evt. USB-port på Raspberry PI. Fordi USB-kameraer er som regel mye billigere enn spesielle (om enn verre), så neste gang vil vi vurdere å bruke et USB-kamera med Raspberry PI. Det finnes en rekke programmer for å ta opp video fra et USB-kamera, eller du kan skrive ditt eget, men for enkelhets skyld, la oss først se på å ta opp og overføre video ved hjelp av bevegelsesprogrammet. For å installere bevegelsesprogrammet på Raspberry PI, må du først koble til det gjennom Putty-programmet (eller et hvilket som helst annet terminalprogram med evne til å kommunisere via SSH) (for informasjon om hvordan du gjør dette, se forrige artikkel "Raspberry PI 3 sette opp og administrere GPIO via WIFI"). Etter å ha koblet til Raspberry PI, må du oppdatere systemet ved hjelp av kommandoene
Sudo apt-get oppdatering
Sudo apt-get oppgradering
Etter en vellykket systemoppdatering må du installere bevegelsesprogrammet med kommandoen
Sudo apt-get install motion
Under installasjonen kan du bli spurt spørsmålet "Vil du fortsette?" deretter må du skrive inn bokstaven "Y". Etter å ha installert bevegelsesprogrammet, må du gjøre noen endringer i konfigurasjonsfilene. Åpne motion.conf-filen i nano-editoren med kommandoen
Sudo nano /etc/motion/motion.conf
Deretter
Erstattet av
Deretter finner vi andre linjer å endre, for å gjøre dette, trykk på tastekombinasjonen CTRL+W, skriv inn "stream_localhost" og trykk enter, etter det skal den nødvendige linjen bli funnet, hvis den ikke blir funnet, deretter variabelen "stream_localhost" ” kalles noe annet, for eksempel “webcam_localhost” eller noe sånt. Etter at linjen med denne variabelen er funnet, må du
Stream_localhost på
erstattet av
Stream_maxrate 1
Og erstatte med
Stream_maxrate 100
Erstattet av
Deretter
Minimum_frame_time 0
Erstattet av
Minimum_frame_time 1
Sistnevnte er gjort slik at rammer sendes ut en gang i sekundet - dette ser ikke veldig bra ut, men videoen vil ikke forsvinne hvis bildet endres plutselig. Hensikten med hver variabel kan leses i kommentarfeltet.
Lagre nå endringene ved å trykke CTRL+O og enter, trykk deretter CTRL+X og avslutt nano redaktør. La oss nå redigere en annen fil, for å gjøre dette skriver vi inn kommandoen
Sudo nano /etc/default/motion
Og bytt ut linjen
Start_motion_daemon=nei
Start_motion_daemon=ja
Lagre deretter endringene ved å trykke CTRL+O og enter og trykk deretter CTRL+X og gå ut av nano-editoren. Nå kan du starte videooverføring (USB-kameraet må være koblet til en av portene) med kommandoen
Sudo service motion start
Stopp med kommando
Sudo service bevegelse stopp
For å se videoen må du åpne nettleseren og skrive inn IP-adressen til Raspberry PI i adressefeltet, deretter sette et kolon og 8081 (IP-adressen til Raspberry PI: 8081) og trykke enter, hvoretter videoen fra USB-kameraet skal vises i nettleseren. Du kan se hvordan alt gjøres, se resultatet og noe annet i videoen:
Som dette på en enkel måte Du kan få video fra et USB-kamera koblet til Raspberry PI. Hvis det er en Raspberry PI 3 med innebygd wifi og drevet av en powerbank (eller en annen bærbar strømkilde) (for eksempel denne eller en billigere, selv om det ikke anbefales å bruke en billig, Raspberry PI trenger en normal strømkilde for å bruke alle sine evner, det er også veldig tilrådelig å installere en kjøleribbe for prosessoren og andre mikrokretser som utvikler seg under bringebærdrift, ideelt sett bør kjøleribben være kobber og belagt med spesiell svart maling), deretter basert på alle dette kan du lage et slags videoovervåkingssystem, videokamera eller noe lignende.