Martin Koksrud Bekkelund

Martin Koksrud Bekkelund

Teknologi • Samfunn • Politikk

Marka, baby! 😍

07.05.21

Hva gjør man med et 15 år gammelt speilreflekskamera som støver ned i en skuff? Man setter det opp som webkamera, selvfølgelig! Her får du oppskriften.

La meg starte med en avklaring. I disse hjemmekontortider tenker jeg ikke på et webkamera du bruker til videomøter. Det har du sikkert allerede. I denne saken viser jeg hvordan du setter opp et speilreflekskamera til å ta bilder av utsikten. I mitt tilfelle har jeg satt opp det gamle kameraet til å ta fantastiske bilder av Marka.

Litt om kameraet

For 15 år siden kjøpte jeg mitt første speilreflekskamera, et Canon EOS 30D. Det både var og er et godt kamera, og selv i dag tar det knivskarpe bilder med høy oppløsning. Bildene er ca. 8,27 megapiksler, noe som strengt tatt ikke er spesielt mye med dagens målestokk, men megapiksler er ingen betegnelse på bildekvalitet. Det er objektivet og bildebrikken som registrerer bildet som avgjør kvaliteten, sammen med eventuell prosessering kameraet gjør med bildet. Med et speilreflekskamera av denne typen kan man sette det opp til å ta RAW-filer, slik at kameraet ikke etterbehandler bilder selv, så man får full kontroll over sluttresultatet. Resultatet er bilder av vesentlig høyere kvalitet enn de tradisjonelle webkameraene, med skarpere bilder og bedre fargegjengivelse.

Sammen med dette kameraet kjøpte jeg også et Sigma-objektiv med brennvidde 17-70 mm. Dette objektivet passet ikke til arvtageren, så det har støvet ned sammen med kameraet. Jeg har alltid synes det var en skam, for objektivet var knallbra. Derfor har jeg hatt et saktegående prosjekt for å få kameraet med tilhørende objektiv i drift igjen.

Når man skal sette opp et kamera til å ta slike bilder, er det noen innstillinger i kameraet som må gjøres annerledes enn om man tar bilder manuelt:

  • Fokus må endres fra automatisk til manuell, hvis ikke risikerer du forskjellig fokus på bildene. Først setter du zoom, altså brennvidde, til ønsket nivå og skrur på autofokus. Deretter bruker du utløserknappen til å sette fokus der du ønsker. Når dette er gjort passer du på å ikke endre brennvidden, for da må du fokusere på nytt. Deretter skrur du fokus til manuell.
  • Kameraet må settes til blenderprioritet, på engelsk Av for «Aperture Value». Det vil si at du setter blender manuelt i kameraet. Jeg har satt f/6.3. Dermed styrer kameraet lukkertiden manuelt. Det betyr at du får samme fokus fra bilde til bilde, men at kameraet selv vurderer hvor lang lukkertid det trenger for å ta et bilde med nok lys.
  • Jeg har skrudd av kameraets innstilling for å gå i dvale. Det står alltid på. Mer om det senere.

Hva er laget?

Hvert femte minutt tar det 15 år gamle kameraet nå bilder automatisk og laster dem opp til en webside. Og når dagen er omme lages det også en kort time-lapse-video som viser hvordan dagen så ut.

Det var på ingen måte åpenbart hvordan man skulle få et 15 år gammelt kamera til å snakke med omverdenen, men ved hjelp av kameraet, to Raspberry Pi og Athom Homey Pro er prosjektet endelig på luften.

Strøm til kameraet

Det aller første man må tenke på er at kameraet skal ha strøm kontinuerlig. Batteriet ble byttet ut med et adapter som er koblet til en stikkontakt.

Ta et bilde med gPhoto

Når kontinuerlig strøm er tilgjengelig må kameraet kunne ta et bilde automatisk og dernest sende det fra seg. Jeg koblet en USB-kabel i kameraet og den andre enden i en Raspberry Pi med Raspberry Pi OS.

På Raspberry Pi installerte jeg programvaren gPhoto. Bak denne latterlig enkle websiden finner man en uhyre kraftig programvare som støtter over 2700 forskjellige kameramodeller, slik at man kan fjernstyre kameraet, inkludert mitt gamle Canon EOS 30D. gPhoto er et kommandolinjeverktøy, hvilket betyr at man kan automatisere kommandoer via et script som kjører på Raspberry Pi. Følgende kommando kan kjøres både i kommandolinjen og i et skript:

gphoto2 --capture-image-and-download --force-overwrite --filename "marka.CR2"

Kommandoen over starter gphoto2, tar et bilde, laster det ned til Raspberry Pi med filnavnet «marka.CR2» og overskriver en eventuell fil som heter det samme fra før. Enkelt og greit.

Problemet var bare — for det er selvfølgelig alltid et problem — at kameraet nektet å ta samme kommando to ganger. Første gang gikk greit, andre gang returnerte det en feilmelding uansett hva jeg forsøkte.

Problemet så ut til å ligge i kameraet. Tok jeg strømmen av og på igjen, så fungerte det. Dermed måtte jeg komme opp med en løsning som kuttet strømmen til kameraet mellom hvert bilde. Mer om det senere.

Etterbehandling med ImageMagick

Tar man bilder med et speilreflekskamera så tar man som nevnt RAW-filer. De lagrer flere detaljer i kameraet som man kan benytte i den videre etterbehandlingen. RAW-filer er ikke egnet til å vises frem på en webside, for de krever alltid etterbehandling for å bli bra.

Også for etterbehandling finnes det gode verktøy. ImageMagick (sic.) kan lese og skrive omtrent det som finnes av bildeformater, og har usannsynlig mye funksjonalitet for etterbehandling. Og på samme måte som gPhoto har også ImageMagick et kommandolinjeverktøy som kan automatisere etterbehandlingen.

Straks et bilde ble lagret på Raspberry av gPhoto plukker ImageMagic det opp. Jeg har foreløpig ikke avansert etterbehandling, men nøyer meg inntil videre med å konvertere fra RAW til JPEG, sette riktig fargerom, justere lysstyrke og kontrast, øke metningen og gjøre det skarpere. Følgende kommando kan kjøres både i kommandolinjen og som et skript:

convert marka.CR2 -colorspace sRGB -sigmoidal-contrast 4,0% -modulate 110,125 -sharpen 0x2 -quality 60 -quiet marka.jpg

Dette produserer bildet «marka.jpg» og er klart for å vises på en webside.

Fra Pi til Pi

Nå er bildet tatt, det er etterbehandlet og konvertert til JPEG og klart for å vises på en webside.

Et annet sted i huset står en annen Raspberry Pi som blant annet fungerer som intern FTP-server. Denne har som oppgave å ta imot filer fra enheter som ikke støtter sikker overføring med SFTP eller SSH og videresende dem til web via en sikker overføring.

Fra den første Raspberry Pi overføres filer til den andre med følgende kommando:

ftp -n -v servernavn << EOT
ascii
user brukernavn passord
prompt
put marka.jpg
bye
EOT

Den andre Raspberry Pi sender bildene videre hit til bekkelund.net via SSH.

sudo rsync --remove-source-files -z /sti/til/marka.jpg brukernavn@bekkelund.net:sti/til/riktig/mappe/

På nett

Nå er bildet på nett og klart til å vises der det er behov for det.

Men det stopper selvfølgelig ikke der. Hvordan så det egentlig ut i går? Jeg har tidligere skrevet om programvaren CloudCam — som strengt tatt bare er en samling skript — som jeg har skrevet selv og som kjører på en server hos skyleverandøren DigitalOcean.

Ved å utvide CloudCam med et ekstra skript for det nye kameraet, produseres det også timelapse over gårsdagen fra speilreflekskameraet.

Homey til unnsetning

Men så var det dette med å få kuttet strømmen til kameraet mellom hvert bilde, da. Jeg har tidligere skrevet om smarthussentralen Homey som vi benytter hos oss. Å få Homey til å skru strømmen av og på hvert femte minutt er enkelt. Men hvordan synkroniserer man det med skriptet som faktisk skal ta bildet, slik at strøm og skript er synkronisert?

Jeg installerte appen SSH Client på Homey. Den kan koble Homey til andre maskiner med SSH og utføre kommandoer. Logikken er da som følger:

  1. Skru på strømmen til kameraet
  2. Koble til Raspberry Pi og kjør skriptet som tar bildet, etterbehandler det og laster opp via FTP
  3. Skru av strømmen til kameraet
  4. Gjenta prosessen

Logikken for å kjøre flere kommandoer i én og samme kommando over SSH er som følger.

cd /sti/til/skript && ./skript.sh

Så enkelt, men allikevel er det et hack av en løsning.

For å gjøre det hele enda mer sofistikert har jeg satt opp Homey til å synkronisere denne prosessen med soloppgang og solnedgang. Den nevnte prosessen over starter tre kvarter før soloppgang og slutter tre kvarter etter solnedgang, for det er da det er lyst nok til å ta bilder. Homey har støtte for dette rett ut av boksen.

Fysisk innpakning

Alle som har et speilreflekskamera kjenner til det distinkte og skarpe klikket som kommer når man tar et bilde. Å lytte til dette over tid var lite fristende, så jeg bygget en boks med noen restmaterialer jeg hadde liggende. Det er definitivt ikke det vakreste jeg har laget, men det fungerer. Boksen er fylt med lydisolerende plater, så nå er klikket akseptabelt lavt. På siden av boksen har jeg skrudd fast et tradisjonelt webkamera som jeg også har i drift. Mer om det senere.

Boks til speilrefleks

Boks til speilrefleks

Boks til speilrefleks

Marka, baby! 😍

Som fast leser har du selvfølgelig fått med deg min forkjærlighet for å være ute. Jeg elsker Marka, jeg har den som nærmeste nabo og jeg oppsøker den så ofte som råd er.

Jeg har derfor skaffet meg domenet marka.baby, slik at også du kan titte ut i Marka, uansett hvor du måtte befinne deg. Jeg håper du liker det.

Duppeditter Foto IoT Linux Martins Makerspace Programvare Smarthus WWW

Som fast leser kan du bidra til produksjonen, til driften og til å skaffe utstyr til testing for å sikre regelmessige, uavhengige artikler, tester og vurderinger av høy kvalitet.

Bli bidragsyter

Husk å abonnere på nyhetsbrevet, det er gratis og du får alle artikler rett i innboksen.

 

Flere artikler

Enda flere artikler? Besøk arkivet.

Om Martin

Martin Koksrud Bekkelund

Dette er Martin Koksrud Bekkelund sitt private nettsted, hvor han skriver om teknologiledelse og hvordan teknologi, samfunn og politikk påvirker hverandre. Martin arbeider til daglig som direktør for produkt- og forretningsutvikling i Posten Norge AS. Les mer...

 

Facebook Twitter Instagram LinkedIn GitHub Thingiverse SlideShare Hold deg oppdatert

© 1995-2021 Martin Koksrud Bekkelund
OpphavsrettRSS og abonnementKontaktPersonvern og informasjonskapsler