Ansluta en analog kamera till en raspberry pi. Videoövervakningsserver som använder Raspberry Pi. Skapar timelapse-video

Låt oss titta på metoder för att korrekt ansluta kameran till Raspberry Pi och arbeta med den genom terminalfönstret och använda Python-programmeringsspråket.
Relaterat material:
När du ansluter kameran till Raspberry, kom ihåg följande:
  • Kameran är rädd för statisk elektricitet, det är tillrådligt att röra den under drift genom antistatiskt material
  • kameran förbrukar 250 mA - när du använder en medelmåttig Malina-strömförsörjning kan anslutning av kameran orsaka brist på ström när kameran arbetar aktivt
  • det finns ingen mikrofon i kameran
  • toppen av kameran är placerad på den sida som är motsatt kabelutgången, men det finns ett speciellt kommando för att reflektera bilden vertikalt - mer om det nedan.

Förbindelse

Det är lämpligt att ansluta kameran till en avstängd Raspberry. Du kan snabbt stänga av Raspberry med kommandot
sudo avstängning nu
CSI daisy chain-kontakten är placerad bredvid HDMI: Fördelen med att ansluta kameran via denna kontakt, till skillnad från USB, är att den avlastar processorn vid överföring av data via CSI-gränssnittet
För enkel kamerafixering finns det färdiga lösningar, till exempel - Akrylhållare.
Kameragränssnittet måste aktiveras i Raspberry-inställningarna:
Efter aktivering av kameran (om det behövs) måste Malina startas om: sudo starta om nu
För att fungera med kameran har Raspbian redan nödvändiga verktyg och drivrutiner förinstallerade. Låt oss uppdatera paketen för att använda de senaste versionerna: sudo apt-get update -y sudo apt-get dist-upgrade -y Om allt är gjort korrekt, låt oss försöka få en testram från kameran - skapa en mapp för foton, gå till den och kör kommandot bildfångst: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
Vid fel bör du kontrollera de föregående stegen, eller ringa kontakterna på kameran och på Malina.
Följande paket för att arbeta med kameran är förinstallerade i Raspbian OS:
  • raspivid, raspvidyuv - videoinspelning
  • raspistill, raspiyuv - ta bilder
En komplett guide till de listade verktygen finns på engelska språketär på av. Raspberry Pi hemsida
Alla verktyg startas från terminalen och är ganska lätta att använda.
Paket med namn som slutar på "yuv" använder inte kodningskomponenten - de lagrar den "råa" obearbetade informationen som tas emot av kamerasensorn. Låt oss titta på att arbeta med varje paket, men först ska vi bekanta oss med listan över kameraparametrar som är gemensamma för alla paket, och sedan ska vi titta på specifika argument och specifika exempel deras ansökningar.

Vanliga parametrar

Låt oss titta på parametervärdena. Det är värt att notera:
  • Om ett argument inte anges när verktyget anropas, används dess standardvärde.
  • OM KOLUMNEN "TILLÅTNA VÄRDEN" ÄR TOM, behöver inga ytterligare värden skickas - det räcker att bara passera själva argumentet.
  • Förhandsvisningen visas endast på en fysisk bildskärm som är ansluten till hallon. Om du kommer åt Raspberry via fjärrskrivbord (VNC), kommer förhandsgranskningen inte att visas vid några inställningar eftersom förhandsgranskningsbilden skickas direkt till monitorn ovanpå resten av informationen
  • Liknar att titta på videor via skrivbordet
Argument
Beskrivning
Giltigt intervall
Standardvärde
-s
Förhandsgranska fönsteralternativ
bredd, höjd, x-koordinat, y-koordinat
-f
Förhandsvisning i helskärm
Nej
-n
Ingen förhandsvisning
-op
Förhandsgranska fönstertransparens
0...255
255
-sh
Skärpa
-100...100
0
-co
Kontrast
-100...100
0
-br
Belysning
0...100
50
-sa
Mättnad
-100...100
0
-ISO
Kamerasensorkänslighet
-100...100
0
-mot
Videostabilisering
(endast video)
Nej
-ev
Exponeringskompensation
-10...10
0
-ex
Utläggning
  • natt
  • nattförhandsvisning
  • bakgrundsbelysning: bakgrundsbelysning bakom motivet
  • spotlight: spotlight belysning
  • sport: föremål i rörelse
  • snö: snölandskap
  • strand: strandlandskap
  • mycket lång: lång exponering
  • fixedfps: begränsa FPS till ett fast värde
  • antishake: anti-shake
  • fyrverkerier: landskap med fyrverkerier
bil
-awb
vitbalans
  • sol: 5000K...6500K - soligt
  • moln:6500K ... 12000K molnigt
  • skugga: i skuggan
  • volfram: 2500K ... 3500K volfram
  • fluorescerande: 2500K...4500K
  • glödlampa: glödhet metall
  • blixt: med blixt
  • horisont
bil
-ifx
Olika effekter
ingen, negativ, solarisera, posterisera, whiteboard, svart tavla, skiss, denoise, relief, oljefärg, lucka, gpen, pastell, akvarell, film, oskärpa, mättnad, färgbyte, uttvättad, färgpunkt, färgbalans, tecknad film
ingen
-cfx
Färgbalans
0...255:0...255
128:128
-mm
Exponeringsmätning
  • medel: medel
  • plats: punkt
  • bakgrundsbelyst: läs bakgrundsbelyst bild
  • matris: matrismätning
genomsnitt
-ruttna
Sväng
0 ... 359
0
-hf
Horisontell reflektion
Nej
-vf
Vertikal reflektion
Nej
-roi
Sensor ROI
koordinater från det övre vänstra hörnet och områdets bredd och höjd
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-ss
Slutartid
i mikrosekunder
6000000
-drc
Dynamisk intervallkompression
av
-st
visa statistik
Nej
Därefter kommer vi att överväga verktygen separat.


raspistill - fotofångst

Det här verktyget producerar en kodad komprimerad bild, och för att utföra denna åtgärd finns det en hel del parametrar som skickas som argument när raspistill körs.

Argument

Argument
Beskrivning
Giltigt intervall
Standardvärde
-w
Bredd
0...max
Max
-h
Höjd
0...max
Max
-q
Kvalitet
0...100
75
-o
Filnamn
sökvägen till filen
-
-v
Utgång till terminal
Information om fångstprocessen
Nej
-t
Fördröjning innan åtgärd
i millisekunder
0
-tl
Tidsförlopp
exempel: -tl 2000 -o image%04d.jpg
2000 - intervall
%04d - 4-siffrigt nummermönster
-
-e
Kodning för att formatera
jpg, bmp, gif och png
jpg
-x
Lägger till EXIF-taggar
upp till 32 taggar
-
-r
Lagring av en Bayer-array i metadata för en kodad bild
-

Exempel

Låt oss titta på specifika exempel på hur du använder raspistill:
Ta en standardbild efter 2 sekunder och spara den i filen image.jpg (i den mapp du befinner dig i). Upplösningen blir standard (max) raspistill -t 2000 -o image.jpg Samma sak, men i en upplösning på 640x480 raspistill -o image.jpg -w 640 -h 480 Ta en bild med en reducerad kvalitet på 5% och spara den till en fil image.jpg (i den mapp du befinner dig i). Med denna kvalitet blir bildstorleken betydligt mindre raspistill -o image.jpg -q 5 Skaffa en bild kodad i PNG-format och spara den till filen image.png raspistill -o image.png –e png Skaffa en standardbild med två inbäddade EXIF-taggar: Artist - Boris, GPS-höjd - 123,5 m raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 Skapa en time-lapse-uppsättning bilder som kommer att fångas med intervaller på 10 sekunder under 10 minuter (600 000 ms) och kallas image_num_001_today.jpg, image_num_002_today.jpg och så vidare. Den slutliga bilden kommer att heta latest.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg Ta bilder när du trycker på Enter, filerna sparas sida vid sida och får namnet my_pics01.jpg my_pics02. jpg osv. raspistill -t 0 -k -o my_pics%02d.jpg

raspiyuv

Lanseringsargumenten är exakt desamma som raspistillens (se ovan), av vilka endast följande INTE är TILLGÄNGLIGA:
-q - kvalitet
-e - ange målbildformatet
-x - Lägg till EXIF-taggar
-r - Lagra en Bayer-array i metadata för den kodade bilden
Det finns dock ett EGET argument
-rgb - spara "rå" rådata i RGB888-format (8 bitar/kanal)

raspivid - videoinspelning

Startparametrar

Argument
Beskrivning
Giltigt intervall
Standardvärde
-w
Bredd
0...max
1920
-h
Höjd
0...max
1080
-b
Video bitrate
antal bitar per sekund.
10Mbits/s är satt till -b 10000000
-o
Filnamn
sökvägen till filen
-
-v
Utgång till terminal
Information om fångstprocessen
-t
Fördröjning innan åtgärd
i millisekunder
0
-fps
Framerate
Antal bilder per sekund 2...30
-k
Starta/stoppa inspelningen genom att trycka på Enter
processen avbryts genom att trycka på "X"
-sg
Spara videosegment med en bestämd varaktighet i separata filer
Ställ in varaktigheten för ett segment och filmask
-sg 3000 -o video%04d.h264
-wr
Begränsning av det maximala antalet filer under segmentering
Används med argumentet -sg och implementerar i huvudsak cyklisk omskrivning som i DVR:er
Standardupplösningen är 1080p (1920x1080)
Låt oss titta på specifika exempel:
Spela in en 5-sekunders standardvideo (1920x1080, 30 bilder/sek) och spara till en fil video.h264 raspivid -t 5000 -o video.h264 Spela in en 5-sekunders video med en upplösning på 1080p och en specifik bithastighet på 3,5Mbits /s och spara till filen video.h264 raspivid -t 5000 -o video.h264 -b 3500000 Spela in 5 sekunder av standardupplösningsvideo med 5 fps bildhastighet och spara till filen video.h264 raspivid -t 5000 -o video.h264 -f 5 Om en bildskärm är ansluten till Raspberry via HDMI kan den inspelade videon ses med omxplayer-spelaren: sudo apt-get install omxplayer #om spelaren ännu inte är installerad omxplayer video.h264 Videovisning är inte tillgänglig via VNC

Felkoder

  • 0 - framgångsrikt slutförande
  • 64 - ogiltigt kommando skickat (syntaxfel)
  • 70 - fel i verktyget eller vid kommunikation med kameran
  • 130 - körningen avbröts av användaren (tangentkombination Ctrl + C)

PiCamera bibliotek

Detta är ett bibliotek för programmeringsspråket Python som låter dig förenkla och automatisera arbetet med Raspberry-kameran
Fullständig beskrivning av biblioteket på engelska
I moderna versioner av Raspbian-distributionen är biblioteket redan förinstallerat, du kan kontrollera detta genom Python-konsolen python3 import picamera I händelse av ett fel måste du lämna konsolen genom att ange kommandot exit() eller använda Ctrl + D tangentkombination och installera biblioteket med kommandot sudo apt-get install python3-picamera Arbeta med kameran från Python-kod liknande terminalkommandona som diskuterats ovan. Du kan enkelt få en standardbild från en kamera direkt i Python-konsolen: importera picamera #importera kamerabiblioteket kamera = picamera.PiCamera() #skapa ett kameraobjekt camera.capture("image.jpg") #ringa kamerabilden fångstmetod kamera .close() #stäng kamerasessionen Bilden kommer att sparas i filen image.jpg i den aktuella mappen.

För två år sedan, när jag först började arbeta på multikoptrar, var jag tvungen att göra en liten. Eftersom quadcoptern var tänkt att vara rent autonom krävdes allt av denna fjärrkontroll att styra drönaren under testning och installation.

I princip klarade fjärrkontrollen alla uppgifter som tilldelats den ganska framgångsrikt . Men det fanns också allvarliga brister.

  1. Batterierna fick inte plats i fodralet, så jag var tvungen att tejpa fast dem på fodralet med eltejp :)
  2. Parametrarna justerades med hjälp av fyra potentiometrar, som visade sig vara mycket känsliga för temperatur. Du ställer in några värden inomhus, går ut - och de är redan olika, de har flytit iväg.
  3. U Arduino Nano, som jag använde i fjärrkontrollen, det finns bara 8 analoga ingångar. Fyra var upptagna av avstämningspotentiometrar. En potentiometer fungerade som gas. Två ingångar kopplades till joysticken. Endast en utgång var ledig och det fanns många fler parametrar att konfigurera.
  4. Den enda joysticken var inte en pilot alls. Att styra gasen med en potentiometer var också ganska frustrerande.
  5. Och fjärrkontrollen gjorde inga ljud, vilket ibland är extremt användbart.

För att eliminera alla dessa brister bestämde jag mig för att radikalt göra om fjärrkontrollen. Både hårdvarudelen och mjukvaran. Här är vad jag ville göra:

  • Gör ett stort fodral så att du kan stoppa in allt du vill nu (inklusive batterier) i det, och vad du vill senare.
  • Lös problemet med inställningarna på något sätt, inte genom att öka antalet potentiometrar. Lägg dessutom till möjligheten att spara parametrar i fjärrkontrollen.
  • Gör två joysticks, som på vanliga pilotkonsoler. Tja, sätta joysticks själva ortodoxa.

Ny byggnad

Idén är extremt enkel och effektiv. Vi skär ut två plattor från plexiglas eller annat tunt material och ansluter dem med ställ. Hela innehållet i fodralet är fäst på antingen över- eller bottenplattan.

Kontroller och menyer

För att styra ett gäng parametrar måste du antingen placera ett gäng potentiometrar på fjärrkontrollen och lägga till en ADC, eller göra alla inställningar via menyn. Som jag redan sa, justering med potentiometrar är inte alltid en bra idé, men du bör inte ge upp det heller. Så det beslutades att lämna fyra potentiometrar i fjärrkontrollen och lägga till en fullständig meny.

För att navigera genom menyn och ändra parametrar används vanligtvis knappar. Vänster, höger, upp, ner. Men jag ville använda en kodare istället för knappar. Jag fick den här idén från en 3D-skrivarkontroller.


Naturligtvis, på grund av tillägget av menyn, har fjärrkontrollkoden utökats flera gånger. Till att börja med lade jag bara till tre menyalternativ: "Telemetri", "Parametrar" och "Store params". Det första fönstret visar upp till åtta olika indikatorer. Än så länge använder jag bara tre: batterikraft, kompass och höjd.

I det andra fönstret finns sex parametrar tillgängliga: PID-regulatorkoefficienter för X/Y-, Z-axlarna och accelerometerns korrigeringsvinklar.

Den tredje posten låter dig spara parametrar i EEPROM.

Joysticks

Jag tänkte inte länge på valet av pilotjoysticks. Det hände så att jag fick den första Turnigy 9XR-joysticken från en kollega i quadcopterbranschen - Alexander Vasiliev, ägaren till den välkända webbplatsen alex-exe.ru. Jag beställde den andra direkt från Hobbyking.


Den första joysticken var fjäderbelastad i båda koordinaterna - för att styra gir och stigning. Den andra jag tog var samma, så att jag sedan kunde omvandla den till en joystick för att kontrollera dragkraft och rotation.

Näring

I den gamla fjärrkontrollen använde jag en enkel LM7805 spänningsregulator, som matades med ett gäng 8 AA-batterier. Ett fruktansvärt ineffektivt alternativ, där 7 volt spenderades på att värma regulatorn. 8 batterier - eftersom det bara fanns ett sådant fack till hands och LM7805 - eftersom det här alternativet vid den tiden tycktes mig vara det enklaste, och viktigast av allt, det snabbaste.

Nu bestämde jag mig för att agera klokare och installerade en ganska effektiv regulator på LM2596S. Och istället för 8 AA-batterier installerade jag ett fack för två LiIon 18650-batterier.


Resultat

När vi satte ihop allt fick vi den här enheten. Inifrån.


Men med locket stängt.


Locket på en potentiometer och locken på joysticks saknas.

Slutligen en video om hur inställningarna konfigureras via menyn.


Slutsats

Fjärrkontrollen är fysiskt monterad. Nu jobbar jag på att färdigställa koden för fjärrkontrollen och quadcoptern för att återställa dem till sin tidigare starka vänskap.

Vid installationen av fjärrkontrollen upptäcktes brister. För det första vilar de nedre hörnen av fjärrkontrollen i dina händer: (Jag kommer förmodligen att göra om plattorna lite, jämna ut hörnen. För det andra räcker inte ens en 16x4-skärm för en vacker telemetriskärm - jag måste förkorta parameternamn till två bokstäver I nästa version av enheten kommer jag att installera en punktdisplay eller omedelbart en TFT-matris.


Raspberry Pi enkelkortsdator låter dig skapa riktigt intressanta och användbara saker: från multimediacenter till hemautomationssystem. Genom att ansluta olika moduler till Raspberry Pi kan du avsevärt utöka funktionaliteten hos denna minidator.



En av dessa extra plug-ins är en kamera, som gör att du kan ta bilder eller filma. Idag finns det ett antal kameror för Raspberry Pi på marknaden, och i den här artikeln kommer vi att ge en kort genomgång av dem.


Låt oss titta på sex av de mest populära kamerorna: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi-kompatibel Fisheye-kamera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir och Raspberry Pi Camera 1.3.



ZeroCam Noir är en kameramodul för Raspberry Pi Zero eller Raspberry Pi Zero W, så om du vill använda den i Raspberry Pi 3 eller 2 behöver du använda en adapterkabel. Den här kameran har inget IR-filter på objektivet, vilket gör den idealisk för fotografering i svagt ljus. Här är några av dess huvudsakliga egenskaper: 5 megapixel sensor, 2592 × 1944 pixlar, 1080p vid 30 FPS (eller 60 FPS vid 720p, 90 FPS vid 480p), brännvidd 3,60 mm, 53,50 grader horisontellt, ca 41,41 grader vertikalt. brädans mått med kamera: 60 x 11,4 x 5,1 mm.



Detta är fisheye-versionen av ZeroCam, vilket betyder att den har en vidvinkelbild. Den här kameran är också gjord för Pi Zero eller Pi Zero W, så för att använda den med en annan Pi-panel behöver du en adapterkabel.



Detta är en Raspberry Pi-kompatibel fisheye-kamera som lätt kan hittas på olika handelsplattformar online som AliExpress, TaoBao, eBay. Den kännetecknas av en vidvinkelvy på 175º. Den är baserad på Omnivision 5647-sensorn med en upplösning på 5 megapixlar (2592 x 1944 pixlar).



Den här kameran är utrustad med en 8-megapixel Sony IMX219-bildsensor med en fast fokal lins, som kan visa 3280×2464 pixlar statiska bilder, den stöder 1080p30, 720p60 och 640×480p90 videor. Kameran är kompatibel med alla Raspberry Pi-kort, men om du vill använda den med Pi Zero behöver du en adapterkabel.



Den här kameran har alla funktioner i Raspberry Pi Camera V2-modulen, men den har inget IR-filter. Det betyder att det nästan är en idealisk kamera för fotografering i mörker.



Raspberry Pi Camera 1.3 är föregångaren till V2-modulen. Den är utrustad med en 5-megapixel OmniVision OV5647-sensor.

Jämförelse av synfält och bildkvalitet för kameror för Raspberry Pi

I detta test installeras alla kameror på ett avstånd av 1 meter från testbilden. Resultaten är följande:











Jämförelse av bildkvalitet och färgåtergivning av Raspberry Pi-kameror vid zoomning











Jämförelse av fotograferingskvalitet på natten

Resultaten nedan visar flera nattfotograferingsförberedda kameror som gör samma sak: testbild i mycket svagt ljus i mörker.







Slutsatser

Alla kameror presterar lite bättre än förväntat av så billiga moduler. Tyvärr finns det ingen allt-i-ett-kamera bland dem, och det finns en avvägning att göra eftersom det inte verkar finnas några vidvinkelkameror (fiskögon) med IR-klippfiltret borttaget. Så om du vill ha vidvinkel behöver du regelbunden belysning, och omvänt, på natten är det osannolikt att du tar vidvinkelbilder.

God dag!

På nyårsafton fick jag idén att bygga någon form av videoövervakning. Jag hade allt jag behövde till hands:

  • Raspberry Pi Model B enkelkortsdator
  • Webbkamera LOGITECH HD Webbkamera C270
Efter att ha läst, bestämde jag mig för att utveckla författarens idé lite.
Bekantskap
Så låt oss först bekanta oss med huvudkomponenten:
Raspberry Pi utseende:

Egenskaper:

  • Broadcom BCM2835 700MHz ARM1176JZFS-processor med FPU och Videocore 4 GPU
  • GPU ger Open GL ES 2.0, hårdvaruaccelererad OpenVG och 1080p30 H.264 högprofilsavkodning
  • GPU klarar av 1Gpixel/s, 1,5Gtexel/s eller 24GFLOPS med texturfiltrering och DMA-infrastruktur
  • 512 MB RAM
  • Startar från SD-kort, kör en version av operativsystemet Linux
  • 10/100 BaseT Ethernet-uttag
  • HDMI-videoutgång
  • 2 x USB 2.0-uttag
  • RCA-kompositvideoutgång
  • SD-kortuttag
  • Drivs från microUSB-uttag
  • 3,5 mm ljudutgång
  • Raspberry Pi HD videokamerakontakt
  • Storlek: 85,6 x 53,98 x 17 mm
pi@hall-pi ~ $ cat /proc/cpuinfo processor: 0 modellnamn: ARMv6-kompatibel processor rev 7 (v6l) BogoMIPS: 2.00 Funktioner: swp half thumb fastmult vfp edsp java tls CPU implementerare: 0x41 CPU-arkitektur: 7 CPU-variant : 0x0 CPU-del: 0xb76 CPU-revision: 7 Hårdvara: BCM2708 Revision: 000e Serie: 000000005a82c372

En lista över officiellt stödda distributioner finns. Jag valde Raspbian utan ett grafiskt skal.

Installationsprocessen är ganska enkel och kräver inte detaljerad beskrivning, så jag kommer att lista de viktigaste fakta som är värda att uppmärksamma:

  1. Ställa in tidszonen
  2. Ställa in datornamnet
  3. Aktiverar SSH-åtkomst
  4. Systemuppdatering
När du har gjort alla nödvändiga inställningar kan du börja.
Förberedelse
Låt oss först installera alla nödvändiga paket:
sudo apt-get installera imagemagick libav-tools libjpeg8-dev subversion
Ladda sedan ner och montera mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Därför att Vi kommer att lagra all data i molnet, vi kommer att ställa in arbete med fjärrkontroll 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
För att inte ange ditt användarnamn och lösenord varje gång måste du lägga till dem i filen
/etc/davfs2/secrets
/mnt/dav användarlösenord
Arbetsprocessen
Låt oss lägga till kommandon till /etc/rc.local för att montera WebDAV och köra skriptet för att sända till nätverket:
montera -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"
Nu, genom att gå till http://:8080/ får vi tillgång till kameran. Allt som återstår är att vidarebefordra porten på routern så kommer du åt kameran utanför det lokala nätverket.
Skapar timelapse-video
Först och främst måste vi få en bild från kameran. Därför att den är redan upptagen (bilden sänds av webbservern), då kommer vi att använda möjligheten att ta emot den aktuella bilden från webbservern:
curl http://localhost:8080/?action=snapshot > out.jpg
Om vi ​​vill rita datumet för fotot på bilden kan vi använda kommandot konvertera
timestamp=`stat -c %y out.jpg` convert out.jpg -fill svart -fill vit -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" out_.jpg
Full version manus:
#!/bin/bash filnamn=$(perl -e "utskriftstid") mappnamn=$(datum --rfc-3339=datum) curl http://localhost:8080/?action=snapshot > $filnamn timestamp=` stat -c %y $filnamn` mkdir /mnt/dav/out/$foldername konvertera $filnamn -fill svart -fill vit -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" /mnt /dav /ut/$mappnamn/$filnamn.jpg rm $filnamn
Videon sammanställs med kommandot avconv:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Full version av videosammansättningsskriptet:
#!/bin/bash filnamn=$(datum --rfc-3339=datum) i=0 för f i `ls -tr /mnt/dav/out/$filnamn/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg eko $f "-->" $newf mv $f $newf i=$((i+1)) klar rmdir -R /mnt/dav/out/$filnamn/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filnamn.avi rm *.jpg
Nu återstår bara att registrera körningen av skript i Cron-schemaläggaren:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Exempel video
Slutsats
Detta tillvägagångssätt hjälper till att eliminera behovet av att spendera mycket tid på att titta på videor och minskar också kostnaden för slutprodukten. Tack vare närvaron av ett fullfjädrat OS blir det möjligt att utöka funktionaliteten i rätt riktning.

Därför att Den här datorn har tillräcklig prestanda för att ta emot, lagra, bearbeta och överföra video från en kamera (till exempel från en USB-kamera) via wifi till andra enheter. Det finns specialkameror för Raspberry PI som ansluts till en speciell kontakt på den och USB-kameror som ansluts till valfri USB uttag på Raspberry PI. Därför att USB-kameror är som regel mycket billigare än speciella (om än värre), så härnäst kommer vi att överväga att använda en USB-kamera med Raspberry PI. Det finns ett antal program för att fånga video från en USB-kamera, eller så kan du skriva din egen, men för enkelhetens skull, låt oss först titta på att fånga och överföra video med hjälp av rörelseprogrammet. För att installera rörelseprogrammet på Raspberry PI måste du först ansluta till det via Putty-programmet (eller något annat terminalprogram med möjlighet att kommunicera via SSH) (för information om hur du gör detta, se föregående artikel "Raspberry PI 3 konfigurera och hantera GPIO via WIFI”). Efter att ha anslutit till Raspberry PI måste du uppdatera systemet med hjälp av kommandona

Sudo apt-get uppdatering

Sudo apt-get uppgradering

Efter en lyckad systemuppdatering måste du installera rörelseprogrammet med kommandot

Sudo apt-get installation motion

Under installationen kan du få frågan "Vill du fortsätta?" varefter du måste ange bokstaven "Y". Efter installation av rörelseprogrammet måste du göra några ändringar i konfigurationsfilerna. Öppna filen motion.conf i nanoredigeraren med kommandot

Sudo nano /etc/motion/motion.conf

Sedan

Ersatt av

Därefter hittar vi andra rader att ändra, för att göra detta, tryck på tangentkombinationen CTRL+W, skriv "stream_localhost" och tryck på enter, efter det ska den önskade raden hittas, om den inte hittas, sedan variabeln "stream_localhost" ” kallas något annat, till exempel “webcam_localhost” eller något liknande. Efter att raden med denna variabel har hittats måste du

Stream_localhost på

ersatt av

Stream_maxrate 1

Och ersätt med

Stream_maxrate 100

Ersatt av

Sedan

Minimum_frame_time 0

Ersatt av

Minimum_frame_time 1

Det senare görs så att bildrutor matas ut en gång per sekund - det här ser inte särskilt bra ut, men videon kommer inte att försvinna om bilden ändras plötsligt. Syftet med varje variabel kan läsas i kommentarerna.
Spara nu ändringarna genom att trycka CTRL+O och enter, tryck sedan CTRL+X och avsluta nano editor. Låt oss nu redigera en annan fil, för att göra detta anger vi kommandot

Sudo nano /etc/default/motion

Och byt ut linjen

Start_motion_daemon=nej

Start_motion_daemon=ja

Spara sedan ändringarna genom att trycka på CTRL+O och enter och tryck sedan på CTRL+X och avsluta nanoredigeraren. Nu kan du starta videoöverföring (USB-kameran måste vara ansluten till en av portarna) med kommandot

Sudo service motion start

Sluta med kommandot

Sudo service motion stop

För att se videon måste du öppna webbläsaren och ange IP-adressen för Raspberry PI i adressfältet, sätt sedan ett kolon och 8081 (IP-adress för Raspberry PI: 8081) och tryck på enter, varefter videon från USB-kameran ska visas i webbläsaren. Du kan se hur allt detta går till, se resultatet och något annat i videon:

Så här på ett enkelt sätt Du kan få video från en USB-kamera ansluten till Raspberry PI. Om det är en Raspberry PI 3 med inbyggt wifi och drivs av en powerbank (eller någon annan bärbar elkälla) (till exempel den här eller en billigare, även om det inte rekommenderas att använda en billig, Raspberry PI behöver en normal strömkälla för att använda alla dess möjligheter, det är också mycket lämpligt att installera en kylfläns för processorn och andra mikrokretsar som utvecklas under hallondrift, helst bör kylflänsen vara koppar och belagd med speciell svart färg), sedan baserat på alla detta kan du göra någon form av videoövervakningssystem, videokamera eller något liknande.




Topp