Analogās kameras savienošana ar Raspberry pi. Novērošanas serveris, izmantojot Raspberry Pi. Izveidojiet timelapse video

Apskatīsim metodes, kā pareizi savienot kameru ar Raspberry Pi un strādāt ar to caur termināļa logu un izmantojot Python programmēšanas valodu.
Saistītie materiāli:,
Savienojot kameru ar Raspberry, atcerieties sekojošo:
  • kamera baidās no statiskās elektrības, to darbības laikā vēlams pieskarties caur antistatisku materiālu
  • kamera patērē 250 mA - izmantojot viduvēju Raspberry barošanas avotu, kameras pievienošana var izraisīt strāvas trūkumu, kad kamera aktīvi darbojas
  • kamerai nav mikrofona
  • Kameras augšdaļa atrodas pusē, kas atrodas pretī kabeļa izejai, bet ir īpaša komanda attēla pagriešanai vertikāli - vairāk par to zemāk.

Savienojums

Kamerai vēlams pieslēgt izslēgto Raspberry. Jūs varat ātri izslēgt Raspberry ar komandu
sudo izslēgšana tagad
CSI daisy-chain savienotājs atrodas blakus HDMI: Plus, pievienojot kameru caur šo savienotāju, atšķirībā no USB, tiek izlādēts procesors, pārsūtot datus, izmantojot CSI interfeisu.
Kameras fiksēšanas ērtībai ir pabeigti risinājumi, piemēram - Akrila turētājs.
Kameras saskarne ir jāaktivizē Raspberry iestatījumos:
Pēc kameras aktivizēšanas (ja nepieciešams), Raspberry ir jāpārstartē: sudo reboot tagad
Lai strādātu ar kameru programmā Raspbian, nepieciešamās utilītas un draiveri jau ir iepriekš instalēti. Atjauniniet pakotnes, lai izmantotu jaunākās versijas: sudo apt-get update -y sudo apt-get dist-upgrade -y Ja viss ir izdarīts pareizi, mēģiniet iegūt testa kadru no kameras - izveidojiet mapi fotogrāfijām, dodieties uz to un izpildiet attēlu uzņemšanas komandu: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
Kļūmes gadījumā pārbaudiet iepriekšējās darbības vai piezvaniet kameras un Raspberry savienotāju tapām.
Raspbian OS komplektācijā ir iekļautas šādas pakotnes darbam ar kameru:
  • raspivid, raspvidyuv - video uzņemšana
  • raspistill, raspiyuv - fotografēšana
Pilnīga utilītu rokasgrāmata angļu valodā ir izslēgta. Raspberry Pi vietne
Visas utilītas darbojas no termināļa un ir diezgan viegli lietojamas.
Pakotnēs, kuru nosaukumi beidzas ar "yuv", netiek izmantots kodēšanas komponents - tajās tiek saglabāta "neapstrādāta" neapstrādāta informācija, ko saņem kameras sensors. Apskatīsim darbu ar katru pakotni, bet vispirms iepazīsimies ar kameru parametru sarakstu, kas ir kopīgs visām pakotnēm, un tad mēs apsvērsim konkrētus argumentus un konkrēti piemēri viņu pieteikumi.

Kopējie parametri

Apsveriet parametru vērtības. Ir vērts atzīmēt, ka:
  • Ja, izsaucot utilītu, kāds arguments nav norādīts, tiek piemērota tā noklusējuma vērtība.
  • JA SLEJA “ATĻAUTO VĒRTĪBU DIAPAZONS” IR TUKŠS, tad nekādas papildu vērtības nav jānodod – pietiek nodot pašu argumentu.
  • Priekšskatījums tiek rādīts tikai fiziskajā monitorā, kas savienots ar Raspberry. Ja piekļūstat Raspberry, izmantojot attālo darbvirsmu (VNC), priekšskatījums netiks parādīts nevienā iestatījumā, jo priekšskatījuma attēls tiek nosūtīts tieši uz monitoru kopā ar pārējo informāciju.
  • Līdzīgi kā video skatīšanās, izmantojot darbvirsmu
Arguments
Apraksts
Pieņemams diapazons
Noklusējuma vērtība
-lpp
Priekšskatījuma loga opcijas
platums, augstums, x-koordināta, y-koordināta
-f
Pilnekrāna priekšskatījums

-n
Nav priekšskatījuma
- op
Priekšskatījuma loga caurspīdīgums
0...255
255
-sh
asums
-100...100
0
-co
Kontrasts
-100...100
0
-br
apgaismojums
0...100
50
-sa
Piesātinājums
-100...100
0
-ISO
Sensora jutība kamerā
-100...100
0
- pret
Video stabilizācija
(tikai video)

-ev
ekspozīcijas kompensācija
-10...10
0
-piem
ekspozīcija
  • nakts
  • nakts priekšskatījums
  • fona apgaismojums: fona apgaismojums aiz objekta
  • prožektors: prožektors
  • sports: objekts kustībā
  • sniegs: sniega ainava
  • pludmale: pludmales ainava
  • ļoti ilgstoša: ilgstoša iedarbība
  • fiksētie fps: ierobežo FPS līdz fiksētai vērtībai
  • anti-shake: anti-shake
  • uguņošana: ainava ar uguņošanu
auto
-awb
baltā balanss
  • saule: 5000K...6500K - saulains
  • mākonis: 6500K ... 12000K
  • ēnā: ēnā
  • volframs: 2500K ... 3500K volframa
  • dienasgaismas: 2500K ... 4500K
  • kvēlspuldze: karsts metāls
  • zibspuldze: ar zibspuldzi
  • horizonts
auto
-ifx
Dažādi efekti
nav, negatīvs, solarize, posterise, tāfele, tāfele, skice, denoise, reljefs, eļļas krāsa, lūka, gpen, pastelis, akvarelis, filma, aizmiglojums, piesātinājums, krāsu maiņa, izskalošanās, krāsu punkts, krāsu balanss, multfilma
neviens
-cfx
Krāsu līdzsvars
0...255:0...255
128:128
-mm
Ekspozīcijas mērīšana
  • vidējais: vidējais
  • plankums: punkts
  • aizmugurgaismojums: lasīt aizmugurgaismotu attēlu
  • matrica: matricas mērīšana
vidēji
-puves
Pagriezieties
0 ... 359
0
-hf
Apgriezt horizontāli

-vf
Atspulgs vertikāli

-roi
Interesējošā sensora zona
koordinātas no augšējā kreisā stūra un laukuma platuma un augstuma
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-ss
Slēdža ātrums
mikrosekundēs
6000000
-drc
Dinamiskā diapazona saspiešana
izslēgts
-st
rādīt statistiku

Tālāk apsveriet komunālos pakalpojumus atsevišķi.


raspistill - foto uzņemšana

Šī utilīta rada kodētu saspiestu attēlu, un, palaižot raspistill, lai veiktu šo darbību, kā argumenti tiek nodoti daži parametri.

Argumenti

Arguments
Apraksts
Pieņemams diapazons
Noklusējuma vērtība
-w
Platums
0...maks
Maks
-h
Augstums
0...maks
Maks
-q
Kvalitāte
0...100
75
-o
Faila nosaukums
ceļš uz failu
-
-v
Izvade uz termināli
Informācija par uztveršanas procesu

-t
Kavēšanās pirms darbības
milisekundēs
0
-tl
laika sprīdis
piemērs: -tl 2000 -o image%04d.jpg
2000 - intervāls
%04d — 4 ciparu raksts
-
-e
Kodēšana formātā
jpg, bmp, gif un png
jpg
-x
EXIF tagu pievienošana
līdz 32 tagiem
-
-r
Bayer masīva glabāšana kodētos attēla metadatos
-

Piemēri

Apsveriet konkrētus raspistill lietošanas piemērus:
Uzņemiet standarta attēlu pēc 2 sekundēm un saglabājiet to image.jpg failā (mapē, kurā atrodaties pašlaik). Šajā gadījumā izšķirtspēja būs standarta (maksimālā) raspistill -t 2000 -o image.jpg Tāda pati, bet izšķirtspējā 640x480 raspistill -o image.jpg -w 640 -h 480 Uzņemiet attēlu ar pazeminātu kvalitāti 5% un saglabājiet to image.jpg failā (mapē, kurā atrodaties tagad). Izmantojot šo kvalitāti, attēla izmērs būs ievērojami mazāks raspistill -o image.jpg -q 5 Iegūstiet PNG formātā kodētu attēlu un saglabājiet to image.png failā raspistill -o image.png –e png Iegūstiet standarta attēlu ar diviem vadu EXIF tagiem: Mākslinieks - Boriss, GPS augstums - 123,5 m.BGPoris. itude=123 5/10 Izveidojiet laika intervāla attēlu kopu, kas tiks uzņemta ar 10 sekunžu intervālu 10 minūtes (600 000 ms) ar nosaukumu image_num_001_today.jpg, image_num_002_today.jpg un tā tālāk. Galīgais attēls tiks nosaukts par jaunāko.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg Uzņemiet attēlus, nospiežot taustiņu Enter, faili tiks saglabāti blakus un nosaukti my_pics01.jpg my_pics02.jpg un tā tālāk. raspistill -t 0 -k -o my_pics%02d.jpg

raspiyuv

Palaišanas argumenti ir tieši tādi paši kā Raspistill (skatiet iepriekš), tikai NAV pieejami šādi:
-q - kvalitāte
-e - norādiet mērķa attēla formātu
-x - Pievienojiet EXIF ​​tagus
-r Saglabājiet Bayer masīvu kodētā attēla metadatos
Tomēr ir PAŠS arguments
-rgb - saglabājiet neapstrādātus datus RGB888 formātā (8 biti kanālā)

raspivid - video uzņemšana

Palaišanas parametri

Arguments
Apraksts
Pieņemams diapazons
Noklusējuma vērtība
-w
Platums
0...maks
1920
-h
Augstums
0...maks
1080
-b
Video bitu pārraides ātrums
bitu skaits sekundē.
10 Mbits/s dod -b 10000000
-o
Faila nosaukums
ceļš uz failu
-
-v
Izvade uz termināli
Informācija par uztveršanas procesu
-t
Kavēšanās pirms darbības
milisekundēs
0
-fps
Kadru ātrums
Kadru skaits sekundē 2...30
-k
Sāciet/pārtrauciet ierakstīšanu, nospiežot taustiņu Enter
process tiek pārtraukts, nospiežot “X”
-sg
Video segmentu saglabāšana ar fiksētu garumu, lai atdalītu failus
Ir iestatīts viena segmenta ilgums un faila maska
-sg 3000 -ovideo%04d.h264
-wr
Maksimālā failu skaita ierobežošana segmentācijas laikā
Lieto ar argumentu -sg un būtībā ievieš ciklisku pārrakstīšanu, piemēram, DVR
Noklusējuma izšķirtspēja — 1080p (1920 x 1080)
Apsveriet konkrētus piemērus:
5 sekunžu standarta videoklipa ierakstīšana (1920 x 1080, 30 kadri sekundē) un saglabāšana failā video.h264 raspivid -t 5000 -o video.h264 5 sekunžu filmas ierakstīšana ar 1080p izšķirtspēju un 3,5 Mbits/s specifisku bitu pārraides ātrumu un saglabāšana failā video.h264. 500000 Ierakstiet 5 sekundes standarta izšķirtspējas video ar kadru nomaiņas ātrumu 5 kadri sekundē un saglabājiet video.h264 raspivid -t 5000 -o video.h264 -f 5 Ja monitors ir pievienots Raspberry, izmantojot HDMI, ierakstīto video var skatīt, izmantojot omxplayer videoplayer: sudo apt-get instalēt vēl nav pieejams V2 atskaņotājs. omx6 atskaņotājs vēl nav pieejams. NC

Kļūdu kodi

  • 0 - veiksmīga pabeigšana
  • 64 — nosūtīta nederīga komanda (sintakses kļūda)
  • 70 - kļūda utilītprogrammā vai sazinoties ar kameru
  • 130 — izpildi pārtrauca lietotājs (ar īsinājumtaustiņu Ctrl + C)

PiCamera bibliotēka

Šī ir Python programmēšanas valodas bibliotēka, kas ļauj vienkāršot un automatizēt darbu ar Raspberry kameru.
Pilns bibliotēkas apraksts angļu valodā
Mūsdienu Raspbian izplatīšanas versijās bibliotēka jau ir iepriekš instalēta, to varat pārbaudīt, izmantojot Python konsoli python3 import picamera Neveiksmes gadījumā jums ir jāatstāj konsole, ievadot komandu exit() vai nospiežot Ctrl + D un instalējiet bibliotēku ar komandu sudo apt-get install python3-picamera komanda terminālis ar līdzīgu kodu no Pythons ir apspriests iepriekš. Standarta attēlu no kameras var viegli iegūt tieši Python konsolē: importēt picamera #importēt kameras bibliotēku camera = picamera.PiCamera() #izveidot kameras objektu camera.capture("image.jpg") #izsaukt kameras objekta attēla uzņemšanas metodi camera.close() #aizvērt sesiju ar kameru. Attēls tiks saglabāts pašreizējā attēla mapē.jpg

Pirms diviem gadiem, kad es pirmo reizi iedarbināju multikopterus, man bija jāizgatavo mazs . Tā kā kvadrokopters tika iecerēts kā tīri autonoms, no šīs tālvadības pults bija nepieciešams tikai vadīt dronu testēšanas un regulēšanas laikā.

Principā tālvadības pults diezgan veiksmīgi tika galā ar visiem tai uzticētajiem uzdevumiem. . Taču bija arī nopietni trūkumi.

  1. Akumulatori korpusā neiederējās, tāpēc nācās pielīmēt pie korpusa ar elektrisko lenti :)
  2. Parametru iestatīšana tika veikta uz četriem potenciometriem, kas izrādījās ļoti jutīgi pret temperatūru. Telpā tu uzstādi kādas vērtības, izej uz ielas – un tās jau ir savādākas, aizkuģotas.
  3. Plkst Arduino Nano, ko izmantoju tālvadības pultī, ir tikai 8 analogās ieejas. Četrus aizņēma noregulēšanas potenciometri. Viens potenciometrs kalpoja kā gāze. Divas ieejas tika savienotas ar kursorsviru. Tikai viena izeja palika brīva, un ir daudz vairāk konfigurējamu parametru.
  4. Vienīgā kursorsvira nemaz nebija pilots. Arī gāzes kontrole ar potenciometru bija diezgan nomācoša.
  5. Un tālvadības pults neradīja nekādas skaņas, kas dažkārt ir ārkārtīgi noderīgi.

Lai novērstu visus šos trūkumus, es nolēmu radikāli pārtaisīt tālvadības pulti. Gan aparatūra, gan programmatūra. Lūk, ko es gribēju darīt:

  • Izveidojiet lielu maciņu, lai tagad tajā varētu ievietot visu, ko vēlaties (ieskaitot baterijas), un to, ko vēlaties vēlāk.
  • Kaut kā atrisināt problēmu ar iestatījumiem, nevis palielinot potenciometru skaitu. Turklāt pievienojiet iespēju saglabāt parametrus konsolē.
  • Izveidojiet divas kursorsviras, tāpat kā parastajās pilotkonsolēs. Nu, ielieciet kursorsviras paši ortodoksāli.

Jaunbūve

Ideja ir ārkārtīgi vienkārša un efektīva. Mēs izgriezām divas plāksnes no organiskā stikla vai cita plāna materiāla un savienojam tās ar statīviem. Viss korpusa saturs ir piestiprināts pie augšējās vai apakšējās plāksnes.

Vadības ierīces un izvēlnes

Lai kontrolētu virkni parametru, tālvadības pultī ir jāievieto virkne potenciometru un jāpievieno ADC, vai arī visi iestatījumi jāveic izvēlnē. Kā jau teicu, noregulēšana ar potenciometriem ne vienmēr ir laba doma, taču arī no tās nevajadzētu atteikties. Tātad tika nolemts tālvadības pultī atstāt četrus potenciometrus un pievienot pilnvērtīgu izvēlni.

Pogas parasti tiek izmantotas, lai pārvietotos pa izvēlni un mainītu parametrus. Pa kreisi, pa labi, uz augšu, uz leju. Bet es gribēju izmantot kodētāju, nevis pogas. Šo ideju guvu no 3D printera kontrollera.


Protams, pateicoties izvēlnes papildināšanai, tālvadības pults kods ir uzbriest vairākas reizes. Lai sāktu, es pievienoju tikai trīs izvēlnes vienumus: "Telemetrija", "Parametri" un "Veikala parametri". Pirmajā logā ir redzami līdz astoņiem dažādiem indikatoriem. Pagaidām izmantoju tikai trīs: akumulatora enerģiju, kompasu un augstumu.

Otrajā logā ir pieejami seši parametri: PID kontrollera koeficienti X/Y,Z asīm un akselerometra korekcijas leņķi.

Trešais vienums ļauj saglabāt parametrus EEPROM.

Kursorsviras

Par pilota kursorsviru izvēli ilgi nedomāju. Tā sagadījās, ka pirmo Turnigy 9XR kursorsviru saņēmu no kolēģa kvadrokopteru biznesā - Aleksandra Vasiļjeva, bēdīgi slavenās vietnes alex-exe.ru īpašnieka. Otro pasūtīju tieši no Hobbyking.


Pirmā kursorsvira bija ar atsperi abās koordinātēs - lai kontrolētu leņķi un slīpumu. Otro es paņēmu to pašu, pēc tam, lai to pārveidotu par kursorsviru, lai kontrolētu vilci un rotāciju.

Uzturs

Vecajā tālvadības pultī es izmantoju vienkāršu LM7805 sprieguma regulatoru, kas tika barots ar 8 AA baterijām. Šausmīgi neefektīvs variants, kurā 7 volti aizgāja regulatora sildīšanai. 8 akumulatori - jo pie rokas bija tikai tāds nodalījums, un LM7805 - jo tobrīd šis variants man šķita visvienkāršākais, un galvenais, ātrākais.

Tagad es nolēmu būt gudrāks un LM2596S uzliku diezgan efektīvu regulatoru. Un 8 AA bateriju vietā es ievietoju nodalījumu divām LiIon 18650 baterijām.


Rezultāts

Saliekot visu kopā, sanāca tāda ierīce. Skats no iekšpuses.


Šeit tas ir ar aizvērtu vāku.


Vienam potenciometram nav pietiekami daudz vāciņu un kursorsviru vāciņu.

Visbeidzot, video par to, kā iestatījumi tiek konfigurēti, izmantojot izvēlni.


Rezultāts

Fiziski tālvadības pults ir samontēta. Tagad es nodarbojos ar to, ka noformēju tālvadības pults un kvadrokoptera kodu, lai atjaunotu viņu kādreizējo stipro draudzību.

Tālvadības pults uzstādīšanas gaitā tika konstatētas nepilnības. Pirmkārt, tālvadības pults apakšējie stūri atpūšas pret rokām: (Laikam nedaudz pārprojektēšu plāksnes, izlīdzināšu stūrus. Otrkārt, skaistai telemetrijas izvadei nepietiek pat ar 16x4 displeju - jāsamazina parametru nosaukumi līdz diviem burtiem. Nākošajā ierīces versijā uzstādīšu punktu displeju, vai uzreiz TFT matricu.


Viena borta dators Raspberry Pi ļauj izveidot patiešām interesantas un noderīgas lietas: no multimediju centriem līdz mājas automatizācijas sistēmām. Pieslēdzot Raspberry Pi dažādus moduļus, var ievērojami paplašināt šī minidatora funkcionalitāti.



Viens no šādiem papildu spraudņiem ir kamera, kas ļauj uzņemt attēlus vai video. Mūsdienās tirgū ir pieejamas vairākas Raspberry Pi kameras, un šajā rakstā mēs veiksim to īsu pārskatu.


Apskatīsim sešas populārākās kameras: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi saderīgo Fisheye kameru, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir un Raspberry Pi Camera 1.3.



ZeroCam Noir ir kameras modulis Raspberry Pi Zero vai Raspberry Pi Zero W, tādēļ, ja vēlaties to izmantot Raspberry Pi 3 vai 2, jums ir jāizmanto adaptera kabelis. Šīs kameras objektīvam nav infrasarkanā filtra, tāpēc tā ir ideāli piemērota fotografēšanai vājā apgaismojumā. Šeit ir dažas no tā galvenajām iezīmēm: 5 megapikseļu sensors, 2592 × 1944 pikseļi, 1080p pie 30 kadri sekundē (vai 60 kadri sekundē ar 720p, 90 kadri sekundē ar 480p), 3,60 mm fokusa attālums, aptuveni 53,50 grādi horizontāli, 41,4 grāds. kameras plates izmēri: 60 x 11,4 x 5,1 mm.



Šī ir ZeroCam zivs acs versija, kas nozīmē, ka tai ir platleņķa attēls. Šī kamera ir paredzēta arī Pi Zero vai Pi Zero W, tāpēc jums ir nepieciešams adaptera kabelis, lai to izmantotu ar citu Pi paneli.



Šī ir ar Raspberry Pi saderīga zivs acs kamera, ko var viegli atrast dažādos tiešsaistes tirgos, piemēram, AliExpress, TaoBao, eBay. Tam ir 175º platleņķa skats. Tā pamatā ir Omnivision 5647 sensors ar 5 megapikseļu (2592 x 1944 pikseļu) izšķirtspēju.



Šī kamera ir aprīkota ar 8 megapikseļu Sony IMX219 fiksētā fokusa objektīva attēla sensoru, kas spēj attēlot 3280 × 2464 pikseļu nekustīgus attēlus, tā atbalsta 1080p30, 720p60 un 640 × 480p90 video. Kamera ir savietojama ar visām Raspberry Pi platēm, taču, ja vēlaties to izmantot kopā ar Pi Zero, nepieciešams adaptera kabelis.



Šai kamerai ir visas Raspberry Pi Camera V2 moduļa funkcijas, taču tai nav infrasarkanā filtra. Tas nozīmē, ka tā ir gandrīz ideāla kamera fotografēšanai naktī.



Raspberry Pi Camera 1.3 ir moduļa V2 priekštecis. Tas ir aprīkots ar 5 megapikseļu OmniVision OV5647 sensoru.

Raspberry Pi kameru redzes lauka un attēla kvalitātes salīdzinājums

Šajā testā visas kameras ir iestatītas 1 metra attālumā no testa attēla. Rezultāti ir šādi:











Raspberry Pi kameru attēla kvalitātes un krāsu reproducēšanas salīdzinājums tālummaiņas laikā











Fotografēšanas kvalitātes salīdzinājums naktī

Zemāk esošie rezultāti demonstrē vairāku nakts fotografēšanai piemērotu kameru darbību, filmējot tās pašas testa attēlsļoti vājā apgaismojumā tumsā.







secinājumus

Visas kameras darbojas nedaudz labāk, nekā gaidīts no šādiem lētiem moduļiem. Diemžēl starp tām nav universālas kameras, un jums ir jāpieiet kompromisam, jo ​​šķiet, ka nav platleņķa ("zivju acs") kameru ar noņemtu IR filtru. Tātad, ja vēlaties platleņķi, jums būs nepieciešams normāls apgaismojums, un otrādi, naktī jūs diez vai varēsit uzņemt platleņķa attēlu.

Labs dienas laiks!

Vecgada vakarā man radās doma uzbūvēt kaut kādu videonovērošanu. Man pa rokai bija viss nepieciešamais:

  • Raspberry Pi Model B viena borta dators
  • LOGITECH HD tīmekļa kamera C270
Pēc izlasīšanas nolēmu nedaudz attīstīt autora ideju.
Iepazīšanās
Tātad, vispirms iepazīsimies ar galveno "komponentu":
Raspberry Pi izskats:

Raksturlielumi:

  • Broadcom BCM2835 700MHz ARM1176JZFS procesors ar FPU un Videocore 4 GPU
  • GPU nodrošina OpenGL ES 2.0, aparatūras paātrinātu OpenVG un 1080p30 H.264 augsta profila dekodēšanu
  • GPU spēj 1Gpixel/s, 1.5Gtexel/s vai 24GFLOPs ar tekstūras filtrēšanu un DMA infrastruktūru
  • 512 MB RAM
  • Sāknēšana no SD kartes, kurā darbojas operētājsistēmas Linux versija
  • 10/100 BaseT Ethernet ligzda
  • HDMI video izvades ligzda
  • 2x USB 2.0 ligzdas
  • RCA kompozīta video izejas ligzda
  • SD kartes ligzda
  • Barošana no microUSB ligzdas
  • 3,5 mm audio izejas ligzda
  • Raspberry Pi HD videokameras savienotājs
  • Izmērs: 85,6 x 53,98 x 17 mm
[aizsargāts ar e-pastu]~ $ cat /proc/cpuinfo procesors: 0 modeļa nosaukums: ar ARMv6 saderīgs procesors rev 7 (v6l) BogoMIPS: 2.00 Funkcijas: swp half thumb fastmult vfp edsp java tls CPU ieviestājs: 0x41 CPU arhitektūra: 7 CPU variants: 0x0xb CPU variants: 0x0xb: CPU 7 daļa: 0x0xb: CPU 7. vīzija: 000e Sērijas numurs: 000 000005a82c372

Oficiāli atbalstīto izplatīšanu sarakstu var atrast. Es izvēlējos Raspbian bez grafiskā apvalka.

Instalēšanas process ir diezgan vienkāršs un neprasa Detalizēts apraksts, tāpēc es uzskaitīšu galvenos faktus, kuriem jums vajadzētu pievērst uzmanību:

  1. Laika joslas iestatīšana
  2. Datora nosaukuma iestatīšana
  3. SSH piekļuves iespējošana
  4. Sistēmas atjaunināšana
Pēc visu nepieciešamo iestatījumu pabeigšanas varat turpināt.
Sagatavošana
Vispirms instalēsim visas nepieciešamās pakotnes:
sudo apt-get install imagemagick libav-tools libjpeg8-dev subversion
Pēc tam lejupielādējiet un izveidojiet mjpg straumētāju:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Jo visus datus glabāsim mākonī, iestatīsim darbu ar pulti failu sistēma no 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
Lai katru reizi neievadītu lietotājvārdu un paroli, tie jāpievieno failam
/etc/davfs2/secrets
/mnt/dav lietotāja parole
Darba process
Pievienojiet komandas failam /etc/rc.local, lai uzstādītu WebDAV un palaistu skriptu, lai pārraidītu tīklā:
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"
Tagad, dodoties uz http://:8080/, mēs iegūsim piekļuvi kamerai. Atliek tikai veikt portu pāradresāciju maršrutētājā, un jūs varat piekļūt kamerai ārpus vietējā tīkla.
Izveidojiet timelapse video
Pirmkārt, mums ir jāiegūst attēls no kameras. Jo tas jau ir uzņemts (attēlu pārraida tīmekļa serveris), tad izmantosim iespēju iegūt pašreizējo attēlu no tīmekļa servera:
saritināt http://localhost:8080/?action=snapshot > out.jpg
Ja vēlamies uz attēla uzzīmēt momentuzņēmuma datumu, mēs varam izmantot komandu konvertēt
timestamp=`stat -c %y out.jpg` convert out.jpg -aizpildiet melnu -aizpildiet baltu -punktu izmērs 15 -zīmējiet "teksts 5.15 "$(timestamp:0:19)"" out_.jpg
Pilna versija skripts:
Nr. w "text 5,15 "$(timest amp:0:19)"" /mnt/dav/out/$foldername/$filename.jpg rm $faila nosaukums
Videoklips tiek samontēts, izmantojot komandu avconv:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Video montāžas skripta pilna versija:
Nr. /dav/out/$ faila nosaukums/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
Tagad atliek tikai reģistrēt skriptu izpildi Cron plānotājā:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Video piemērs
Secinājums
Šī pieeja palīdz atbrīvoties no nepieciešamības pavadīt daudz laika, skatoties videoklipus, kā arī samazina gala produkta izmaksas. Pilnvērtīgas OS klātbūtnes dēļ kļūst iespējams paplašināt funkcionalitāti pareizajā virzienā.

Jo šim datoram ir pietiekama veiktspēja, lai saņemtu, uzglabātu, apstrādātu un pārsūtītu caur wifi uz citām ierīcēm video no kameras (piemēram, no usb kameras). Raspberry PI ir īpašas kameras, kuras tiek savienotas ar īpašu savienotāju, un USB kameras, kuras savieno ar jebkuru, USB ports uz Raspberry Pi. Jo USB kameras, kā likums, ir daudz lētākas nekā īpašās (kaut arī sliktākas), tad mēs turpmāk apsvērsim iespēju izmantot USB kameru ar Raspberry PI. Ir vairākas programmas video uzņemšanai no USB kameras, vai arī varat rakstīt savu, taču vienkāršības labad vispirms apsvērsim iespēju uzņemt un pārsūtīt video, izmantojot kustību programmu. Lai instalētu kustības programmu Raspberry PI, vispirms ir jāpievienojas tai, izmantojot programmu Putty (vai jebkuru citu termināļa programmu ar iespēju sazināties, izmantojot SSH) (kā to izdarīt, skatiet iepriekšējā rakstā "Raspberry PI 3 konfigurēšana un GPIO vadība, izmantojot WIFI"). Pēc savienojuma izveides ar Raspberry PI jums ir jāatjaunina sistēma ar komandām

Sudo apt-get atjauninājums

sudo apt-get jauninājums

Pēc veiksmīgas sistēmas atjaunināšanas jums jāinstalē kustības programma ar komandu

sudo apt-get install motion

Instalēšanas laikā jums var tikt uzdots jautājums "Vai vēlaties turpināt?" pēc kura būs jāievada burts "Y". Pēc kustības programmas instalēšanas jums būs jāveic dažas izmaiņas konfigurācijas failos. Atveriet failu motion.conf nano redaktorā ar komandu

sudo nano /etc/motion/motion.conf

Tad

Aizvietots ar

Tālāk atrodiet citas maināmās rindas, lai to izdarītu, nospiediet taustiņu kombināciju CTRL + W, ievadiet "stream_localhost" un nospiediet enter, pēc tam ir jāatrod vajadzīgā rinda, ja tā nav atrasta, tad mainīgo "stream_localhost" sauc citādi, piemēram, "webcam_localhost" vai tamlīdzīgi. Kad ir atrasta rinda ar šo mainīgo, jums tas ir jādara

Stream_localhost ieslēgts

aizvietots ar

Stream_maxrate 1

Un aizstāt ar

Stream_maxrate 100

Aizvietots ar

Tad

Minimālais_kadra_laiks 0

Aizvietots ar

Minimālais_kadra_laiks 1

Pēdējais tiek darīts tā, lai kadri tiktu parādīti reizi sekundē – tas neizskatās īpaši labi, taču video nepazudīs, kad attēls pēkšņi mainīsies. Katra mainīgā mērķi var izlasīt komentāros.
Tagad saglabāsim izmaiņas, nospiežot CTRL+O un ievadiet, pēc tam nospiediet CTRL+X un izejiet no nano redaktora. Tagad rediģēsim citu failu, šim mēs ievadīsim komandu

Sudo nano /etc/default/motion

Un nomainiet līniju

Start_motion_daemon=nē

Start_motion_daemon=jā

Pēc tam saglabājiet izmaiņas, nospiežot CTRL + O un ievadiet, pēc tam nospiediet CTRL + X un izejiet no nano redaktora. Tagad varat sākt video pārsūtīšanu (USB kamerai jābūt savienotai ar vienu no pieslēgvietām) ar komandu

sudo pakalpojuma kustības sākums

Apturēšanas komanda

Sudo servisa kustības apstāšanās

Lai skatītu video, jāatver pārlūkprogramma, adreses joslā jāievada Raspberry PI IP adrese, pēc tam jāievieto kols un 8081 (Raspberry PI IP adrese: 8081) un jānospiež enter, pēc kura pārlūkprogrammā jāparādās video no USB kameras. Skaties, kā tas viss tiek darīts, skatīt rezultātu un vēl kaut ko video:

Kā šis vienkāršā veidā varat iegūt video no USB kameras, kas savienota ar Raspberry PI. Ja tas ir Raspberry PI 3 ar iebūvētu wifi un darbina powerbank (vai kāds cits pārnēsājams barošanas avots) (piemēram, šis vai lētāks, lai gan nav ieteicams lietot lētu, Raspberry PI ir nepieciešams normāls barošanas avots, lai izmantotu visas tā iespējas, ļoti vēlams arī procesoram ideāli uzlikt radiatoru ar radiatoru un citu mikroshēmu, kas ir jānosedz. melna krāsa), tad uz šī visa pamata var uztaisīt kaut kādu videonovērošanas sistēmu, video kameras u vai ko līdzīgu.




Tops