Image
5.8.2019 0 Comments

Ovládanie fotoaparátov Canon vlastnou aplikáciou cez WiFi z PC, smartfónu, či Raspberry Pi

Pri bežnom fotografovaní využívate ovládacie prvky na tele fotoaparátu, prípadne káblový, alebo bezdrôtový ovládač, alebo mobilné aplikácie od výrobcu fotoaparátu, či kamery v smartfóne prepojenom s fotoaparátom cez WiFi. Tieto aplikácie umožňujú na diaľku ovládať rovnaké funkcie, ako keď používate ovládacie prvky na fotoaparáte,

Na väčšinu bežných scenárov s tým vystačíte, no niekedy potrebujete mať aplikačnú logiku vo vlastnej réžii, prípadne potrebujete do riešenia zakomponovať ďalší hardvér. Typickým príkladom je synchronizácia viacerých fotoaparátov pri snímaní 3D scény, alebo zdokumentovanie deja v správnom okamihu kedy sa na presné spustenie expozície dá použiť hardvérový impulz, napríklad z fotobunky a podobne. Inokedy potrebujete zosnímať sériu záberov a meniť v nich parametre mimo rozsahu štandardného bracketingu, či iným spôsobom naprogramovať aplikačnú logiku využívajúcu funkcie fotoaparátu, alebo kamery. 

V prípade fotoaparátov značky Canon to nie je problém. Výrobca poskytuje na tento účel EOS Digital SDK (EDSDK) (Software Development kit) pre platformy Windows a MacOS a taktiež balík funkcií Camera Control API (CCAPI), ktorý využíva HTTP protokol cez WiFi rozhranie, takže je nezávislý od platformy na ktorej je implementovaný.  Námetom článku je využitie CCAPI vrátane návodu na vytvorenie jednoduchej aplikácie v programovacom jazyku Python.

Fungovanie aplikácie využívajúcej CCAPI pre PC a Raspberry na ovládanie fotoaparátov Canon je vo videu

Aby ste mohli tieto aplikačné rozhrania pre vývojárov stiahnuť, musíte vyplniť registračný formulár do komunity vývojárov Canon Digital Imaging Developer Programme (www.didp.canon-europa.com) a Canon vám členstvo musí schváliť. V našom prípade, keď sme ako dôvod uviedli hobby konštrukciu nebol so schválením žiadny problém, takže nám nič nebránilo integrovať produkty značky Canon do vlastných riešení. V prípade využitia CCAPI nepotrebujete do počítača inštalovať žiadne knižnice, avšak členom vývojárskeho programu Canonu byť musíte. Potrebujete totiž stiahnuť aplikáciu, ktorou funkcionalitu CCAPi na fotoaparáte povolíte.

Aplikačné Camera Control API rozhranie využíva na komunikáciu HTTP protokol cez WiFi, takže sa hodí napríklad pre aplikácie na mobilných platformách. Stačí, aby akákoľvek platforma podporovala IP konektivitu a už spomínaný HTTP protokol. Pomocou funkcií integrovaných v CCAPI môže hostiteľská aplikácia konfigurovať nastavenia fotoaparátu, získavať obraz v priamom prenose, aktivovať spúšť a prenášať obrázky z fotoaparátu. V tomto prípade nie sú potrebné žiadne špeciálne knižnice na komunikáciu s fotoaparátom. Stačí na fotoaparáte povoliť CCAPI a fotoaparát odpovedá na požiadavky aplikácie. Konektivita cez USB nie je podporovaná nielen v zmysle, že ju nemôže využívať CCAPI, ale USB port je pri použití komunikácie s aplikáciou cez WiFi zablokovaný, takže nie je možné ovládať funkcie fotoaparátu súčasne cez CCAPI a cez EDSDK.  

  

Dobrá informácia je, že CCAPI umožňuje z jedného zariadenia, či už je to počítač, tablet, alebo smartfón dokáže ovládať viac pripojených fotoaparátov súčasne, Stačí ak zariadenie , na ktorom beží aplikácia otvorí paralelne viac HTTP pripojení. V čase písania článku CCAPI podporovala len zrkadlovka EOS 250D, bezzrkadlovka EOS RP a fotoaparáty  PowerShot G5 X Mark II, PowerShot G7 X Mark III a PowerShot SX70 HS.  

Paralelné ovládanie som vyskúšal s bezzrkadlovkou EOS RP a superzoomu PowerShot SX70 HS. 

Položka Camera Control API sa nastavuje v menu Settings -> Wireless communication setting -> Wi-Fi Settings. Skontrolujte, či je povolená komunikácia cez Wifi a rolovaním nájdite položku Camera Control API. Na prístroji na ktorom funkcionalita CCAPI nebola aktivovaná sa vám to nepodarí. Potrebujete si z už spomenutého vývojárskeho portálu stiahnuť nástroj CCAPI Activation Tool. Pripojíte CCAPI kompatibilný fotoaparát k počítaču platformy Windows, alebo Mac OS pomocou USB a spustíte aktivačný nástroj. Po úspešnej aktivácie pribudne do menu ponuka Camera Control Api. V nej pripojíte fotoaparát k WiFi sieti. K rovnakej sieti musí byť pripojené aj zariadenie, z ktorého budete fotoaparáty ovládať. Následne sa vám zobrazí URL adresa fotoaparátu. Po zadaní tejto adresy do prehliadača sa v JSON formáte zobrazí zoznam funkcií vrátane URL adries.

Surový a formátovaný výpis zoznamu príkazov vo formáte JSON

Teraz môžete začať vyvíjať webovú, alebo Android aplikáciu, ktorá bude posielať do pripojeného fotoaparátu, alebo fotoaparátov príkazy. Popis parametrov je v prehľadnej dokumentácii. Súčasťou dokumentácie je aj zdrojový kód príkladu Android aplikácie.

Niektoré HTTP príkazy, ktoré sú určené na získanie informácií z fotoaparátu, napríklad o nastavení parametrov, stave batérie a podobne využívajú metódu GET. Tie môžete zadať do webového prehliadača a ten vám vráti výsledok vo formáte JSON. Príkazy obsahujúce povely, či už s parametrami, alebo bez parametrov využívajú metódu POST. Tie bude generovať aplikácia. Podľa príkladu môžete urobiť napríklad aplikáciu pre Android, alebo iOS, avšak na jednoúčelové záležitosti ako napríklad zachytenie nejakého špecifického deja, je vhodnejšie napísať jednoduchú aplikáciu na niekoľko riadkov v programovacom jazyku Python.

Python je interpreter, takže zdrojový kód po spustení sa nekompiluje, ale priamo vykonáva. Najjednoduchšie je stiahnuť si populárne vývojové prostredie Mu.

Rovnaké vývojové prostredie je totiž už nainštalované spolu s interpreterom Pythonu aj na mikropočítačovej doske Raspberry Pi v operačnom systéme Raspbian. Výhodou Raspberry Pi je, že môžete využiť jeho zbernicu na konektor a aktivovať udalosti, napríklad zosnímanie fotografie, či nakrúcanie videa od hardvéru, napríklad fotobunky, mechanického snímača a podobne.  

Zdrojový kód v programovacom jazyku Python na aktivovanie spúšte

# requests library 
import requests 
# príkaz 
CCAPI_URL = "http://192.168.0.146:8080/ccapi/ver100/shooting/control/shutterbutton"
  
# parametre 
data = {'af': True} 
 
headers = {'Content-type': 'application/json'}
 
r = requests.post(CCAPI_URL, json=data, headers=headers)
  
# response text 
r_url = r.text 
print("Odpoved:%s"%r_url)

Tento príkaz potrebuje len jeden parameter af, ktorého hodnota môže byť True, alebo False, podľa toho či sa má pred aktivovaním spúšte zaostriť, alebo nie

V príkaze http://192.168.0.148:8080/ccapi/ver100/shooting/control/shutterbutton/manual sú dva parametre, či chcete simulovať polovičné zatlačenie spúšte a aktivovať autofokus

{
    "action": "half_press",
    "af": true
}

Zdrojový kód v programovacom jazyku Python na nastavenie zoomu na konkrétnu hodnotu

# requests library 
import requests 
# príkaz 
CCAPI_URL = "http://192.168.0.146:8080/ccapi/ver100/shooting/control/zoom"
  
# parametre 
data = {'value': 50} 
 
headers = {'Content-type': 'application/json'}
 
r = requests.post(CCAPI_URL, json=data, headers=headers)
  
# response text 
r_url = r.text 
print("Odpoved:%s"%r_url)

Zdrojový kód v programovacom jazyku Python pre Raspberry Pi na aktivovanie spúšte od logickej nuly na porte 23

import requests
import RPi.GPIO as GPIO
import time
 
def Spust():
   CCAPI_URL = "http://192.168.0.148:8080/ccapi/ver100/shooting/control/shutterbutton"
    data = {'af': True}
   headers = {'Content-type': 'application/json'}
    r = requests.post(CCAPI_URL, json=data, headers=headers)
    r_url = r.text
   print("Odpoved:%s"%r_url)
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
 
while True:
    vstup = GPIO.input(23)
    if vstup == False:
       Spust()
       while vstup == False:
           vstup = GPIO.input(23)

Takto môžete ovládať vlastnou aplikáciou prakticky všetky funkcie fotoaparátov, ktoré podporujú CCAPI.    

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to 4

Ako pripraviť zeleninové jedlo vo vákuu pri nízkej teplote, aby si zachovalo maximum vitamínov

26.10.2019 00:10

Po úspešnom pokuse o prípravu šťavnatého steaku popísaného v článku https://www.pcrevue.sk/a/Vyskusali-sme-pripravit-steak-vo-vakuu-pri-teplote-58-stupnov  som vyskúšal tento spôsob tepelnej úpravy po ...

Ako na to 4

Vyskúšali sme pripraviť steak vo vákuu pri teplote 58 stupňov

22.10.2019 00:10

Málokedy sa mi pri testovaní produktov stalo, že som ani rámcovo netušil, ako sa zariadenie používa. Presne v takej situácii som bol po vybalení Lauben Sous Vide Stick. Výrobca s tým však počítal a pr ...

Ako na to

Tipy, triky a návody: Ako zjednotiť hlasitosť rozdielnych skladieb MP3

24.10.2019 00:00

Pokiaľ máte svoj obľúbený mix skladieb MP3 zložený z rôznych interpretov a z rôznych albumov, zrejme sa pravidelne stretávate s tým, že sa pri prehrávaní na smarfóne či v aute musíte načahovať po ovlá ...

Žiadne komentáre

Vyhľadávanie

ACER_122019

Najnovšie videá