KameraMarius Geschrieben 27. Dezember 2014 Share #1 Geschrieben 27. Dezember 2014 Werbung (verschwindet nach Registrierung) Hallo, ich hoffe das Thema passt hierhin.Ich möchte für alle Bastler mal eine nette Möglichkeit erwähnen, welche die Sony API bietet. Mit Hilfe von etwas Python und einer Kamera, welche sich durch die Remote App steuern lässt, kann man einen Photobooth basteln. Das kann man dann entweder auf dem PC laufen lassen oder einen Raspberry Pi oder ähnliches verwenden.Wie genau das Resultat aussieht könnt ihr zum Beispiel hier sehen: Ich bitte um Entschuldigung für die Musik im Hintergrund und die schlechte Videoqualität.Sofern es jemanden näher interessiert, kann ich das ganze gerne mal nähern erläutern bzw. den Code wieder rauskramen.Habe den Photobooth inzwischen für mehrere Veranstaltungen genutzt und ist sicherlich ein interessanter Einsatz. Kam auf jeden Fall jedes Mal super an.Mit einem Raspberry Pi und der Remote App lassen sich sicherlich auch viele andere tolle Sachen, in etwa Timelapse Videos machen, die sich übers Internet einstellen lassen, so dass man nicht mal vor Ort sein muss. Ist meines Erachtens nach eine sehr gute Alternative zu irgendwelchen Handyapplikationen zum Steuern von Sony Kameras.GrüßeKameraMarius nextho hat darauf reagiert 1 Link zum Beitrag Auf anderen Seiten teilen More sharing options...
nextho Geschrieben 27. Dezember 2014 Share #2 Geschrieben 27. Dezember 2014 (bearbeitet) Hi! Sehr feine Sache das du das mit uns teilst! Ich hatte vor, so etwas für meine Hochzeit (06/15) mit der A6000 um zu setzen. Mein erster Gedanke war dabei das Tablet und die Cam per WLAN zu verbinden (sony smartremote), die Leute patschen aufs tablet und ab gehts. Da ein raspberry pi nun nicht die Investition darstellt bin ich aber sehr interessiert an deiner Lösung, kann man der NEX6 sagen sie soll an bleiben, oder lässt du den pi irgendwelche Aktivitäten veranstalten? Meine größte Sorge war das die Cam in standby wechselt und ich dann jemand einweisen muss um erneut eine Verbindung zwischen Tablet und Cam her zu stellen. In kurz: Erzähl mal mehr, und vielen dank schon im voraus! Viele Grüße, Thomas bearbeitet 27. Dezember 2014 von nextho Link zum Beitrag Auf anderen Seiten teilen More sharing options...
KameraMarius Geschrieben 28. Dezember 2014 Autor Share #3 Geschrieben 28. Dezember 2014 Hey,also ich lasse das ganze mit einem Pythonscript auf dem Raspberry Pi laufen. Ich benutze zum Auslösen entweder Tastatur oder Maus (beides möglich).Die NEX 6 bleibt bei mir im gleichen Modus, auch über längere Zeit, sobald ich das erste mal connected habe. Ich glaube bisher musste ich im Schnitt einmal am Abend reconnecten, aber bin mir nicht sicher, ob das nicht eher am Raspberry oder sonst etwas lag. Bei mir spinnt die Kamera aber ab und zu beim ersten Connecten, wobei dass dann auch maximal dazu führt, dass ich die Smart Remote App auf der Kamera ein bis zwei mal neustarten muss.Damit es kein Problem mit dem Akku gibt, habe Ich einen "AC Power Supply Adapter" gekauft. Das waren um die 20€ und somit kann man die Kamera an die Stockdose stecken, so dass es kein Problem gibt. Das würde ich auf jeden Fall empfehlen.Was den Raspberry Pi betrifft: Alternativ kann man auch einen Laptop oder Desktop-PC verwenden. Dort muss man auch nur wenig mehr Aufwand betreiben, damit Python läuft. Das größte Problem war für mich als Python-Anfänger eher erstmal zu verstehen wie und woher man die ganzen Pythonbibliotheken herbekommt und wie man ein oder zwei kleinere Fehler behebt.Ich habe am PC nur eine Version, an der ich aktuell bastle. An die Dateien auf dem Raspberry Pi komme ich gerade nicht dran, da ich keinen Bildschirm mit HDMI Anschluss habe. (Studiere gerade im Ausland und musste für die letzte Veranstaltung einen Beamer von Freunden ausleihen.)Aber wenn es jemanden hilft, kann ich gerne die Bastel-Version schicken.GrüßeMarius Link zum Beitrag Auf anderen Seiten teilen More sharing options...
pisa57 Geschrieben 28. Dezember 2014 Share #4 Geschrieben 28. Dezember 2014 Hallo Zusammen, ich habe die Playmemories Mobile App per Sideload auf ein Amazon Fire TV (AFTV) geladen. Funktioniert! Eine Maus am AFTV USB Anschluß ist nötig, bei mir per Funk über eine k400 Tastatur. Es ist kein Root auf dem AFTV nötig! Eine a6000 an einem 50 Zöller zu bedienen macht Spaß. Alle Funktionen laufen so, wie auf einem Android Smartphone. Sollte auch mit diversen "Android Sticks" funktionieren. Um mal kurz Spaß bei einer Familienfeier zu haben reicht es aus. Aber auch die remote Möglichkeit auf einem großen Monitor ist nicht zu verachten. Stichwort für Sideload: "AGK Fire". Gruß pisa57 Link zum Beitrag Auf anderen Seiten teilen More sharing options...
hr67 Geschrieben 19. Februar 2015 Share #5 Geschrieben 19. Februar 2015 Hallo, ich hoffe das Thema passt hierhin. Ich möchte für alle Bastler mal eine nette Möglichkeit erwähnen, welche die Sony API bietet. Mit Hilfe von etwas Python und einer Kamera, welche sich durch die Remote App steuern lässt, kann man einen Photobooth basteln. Das kann man dann entweder auf dem PC laufen lassen oder einen Raspberry Pi oder ähnliches verwenden. Wie genau das Resultat aussieht könnt ihr zum Beispiel hier sehen: Ich bitte um Entschuldigung für die Musik im Hintergrund und die schlechte Videoqualität. Sofern es jemanden näher interessiert, kann ich das ganze gerne mal nähern erläutern bzw. den Code wieder rauskramen. Habe den Photobooth inzwischen für mehrere Veranstaltungen genutzt und ist sicherlich ein interessanter Einsatz. Kam auf jeden Fall jedes Mal super an. Mit einem Raspberry Pi und der Remote App lassen sich sicherlich auch viele andere tolle Sachen, in etwa Timelapse Videos machen, die sich übers Internet einstellen lassen, so dass man nicht mal vor Ort sein muss. Ist meines Erachtens nach eine sehr gute Alternative zu irgendwelchen Handyapplikationen zum Steuern von Sony Kameras. Grüße KameraMarius Hallo KameraMarius, dass Thema Interessiert mich sehr, ich Versuche auch gerade einen Photobooth mit einem Raspberry Pi zu bauen. Habe leider überhaupt keinen Plan von Linux oder Pyton, weshalb ich auch gerade nicht weiter komme. Versuche es mit Gphoto2, und daher würde mich Interessieren wie du das Projekt Programiert hast. Vieleicht bist du ja so nett, das Script mal zu Posten? Gruss HR67 Link zum Beitrag Auf anderen Seiten teilen More sharing options...
sonix Geschrieben 13. März 2015 Share #6 Geschrieben 13. März 2015 Hi Marius, ist das "Projekt" noch aktuell und kannst noch ein paar Infos ( Aufbau, Script ) geben? Vielen Dank Sven Link zum Beitrag Auf anderen Seiten teilen More sharing options...
KameraMarius Geschrieben 20. September 2015 Autor Share #7 Geschrieben 20. September 2015 (bearbeitet) Werbung (verschwindet nach Registrierung) Hey,erst einmal sorry, dass ich erst jetzt schreibe.Ich habe inzwischen in der Funktionalität noch erweiterte Version geschrieben. Während dem gefilmten Versuch gab es leider noch ein kleines Problem bei der Vorschau für das Bild unten rechts.https://youtu.be/4-yjkfMtB4o - Dropbox upload Funktion. Anschließend wird ein QR-code angezeigt und wenn man den scannt, erhält man Zugriff auf das Bild.- Neues Layout (u. a. Vorschau an der Stelle, wo später auch das Bild ist)- Läuft auf meinem Laptop (statt Raspberry Pi) @Sonix: Ich werde in den nächsten Tagen hoffentlich dazu kommen den fertigen Code zu veröffentlichen.Ansonsten läuft bei mir noch immer alles über python und diverse Bibliotheken für python.Ich freue mich über Feedback und Anregungen.Grüße Marius bearbeitet 20. September 2015 von KameraMarius mbenn55hb hat darauf reagiert 1 Link zum Beitrag Auf anderen Seiten teilen More sharing options...
mbenn55hb Geschrieben 2. Oktober 2015 Share #8 Geschrieben 2. Oktober 2015 Wunderbar! Ich hatte schon fast die Hoffnung aufgegeben Bin weniger an dem Photobooth interessiert (auch wenn das fabelhaft aussieht), als an der WLAN-Kommunikation zwischen PC und Kamera. Würde mich sehr freuen wenn du den Code veröffentlichst! Besten dank! Markus Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Anzeige (Anzeige) Ich würde dir das Adobe Creative Cloud Foto-Abo mit Photoshop und Lightroom empfehlen
KameraMarius Geschrieben 2. Oktober 2015 Autor Share #9 Geschrieben 2. Oktober 2015 So, jetzt wirds lang Man brauch zudem noch Bilder für up/down/left/right (jeweils als "up.jpg") im gleichen Ordner. Sowie einen Ordner namens "results". Hoffe, ich habe ansonsten nichts vergessen.@Markus: Also es gibt noch andere Möglichkeiten mit der Kamera zu kommunizieren. Gerade wenn man nur will, dass sie Fotos macht. (Ich hatte mal von irgendwem ne Anleitung mit einem anderen Programm gesehen. Für komplexere Probleme, wenn man noch verschiedene Einstellung ändern will und vllt. ne Eingabeoberfläche erzeugen will, kann man dann gut Python nehmen. Die Installation und bis man die ganzen Bibliotheken/Module (wie auch immer die korrekt genannt werden) nehmen aber einiges an Zeit in Anspruch, wenn man es noch nicht kennt, mit Python zu arbeiten. Du bräuchtest glaube ich vor allem "requests", "json" und "struct". Für mehr Funktion wie die Anzeigt kommen Sachen wie "pygame", "io" und "urllib" (für den Livestream) und ähnliches dazu. Sofern du einigermaßen mit dem Code klar kommst und bei kleineren Sachen Hilfe brauchst, so schreib einfach. Allgemein schickt man ein "json" Objekt, mit der Aufgabe an die Kamera, und die gibt dann zum Beispiel ein geschossenes Bild zurück. Eine Liste aller Befehle, die man an die Kamera senden kann, hat Sony irgendwo auf deren Seite. Hab es auf Anhieb gerade aber nicht gefunden. Ansonsten je nach Modell musst du vllt. die IP-Adresse und den Ordner beim Kamera-Link noch ändern.Sofern wirklich jemand, dass nutzen möchte, werden wahrscheinlich erstmal ne Menge fragen auftauchen , aber immer her damit.Hier der gesamte Code: ## ATTENTION: Do not publish dropbox keys. #Photobooth #Author: Marius Hofmann #Issue-Date: 20-09-2015 #License: This code is licensed under the GPLv3. #Keys: # 1. take picture/etc. # 2. previous # 3. next # 4. upload #To use all functions you need a dropbox account. #Import libraries import requests #to communicate with the camera import json #to send json objects import time #time import urllib2 #stream read out/urls import struct #to create/use structs import pygame #displaying contents on screen import io #stream read out import Tkinter import os import dropbox #dropbox upload import PyQRNative #to create qr codes from dropbox import client from PIL import Image #Important data # secret app_key = 'XXXXXXXXXXXXXXX' #DO NOT PUBLISH - PERSONAL app_secret = 'XXXXXXXXXXXXXXX' #DO NOT PUBLISH - PERSONAL # Labels lbl_take_photo = 'Take photo' lbl_return = 'Return' lbl_next = 'Next' lbl_previous = 'Previous' lbl_qr_code = 'QR code' lbl_dropbox = 'Dropbox' lbl_choose_keys = 'Choose keys' lbl_go = 'Go!' lbl_smile = 'Smile ;)' lbl_wait = 'Please wait!' # Dimensions col_w = 120 x_space = 30 y_space = 30 # Camera url = 'http://192.168.122.1:8080/sony/camera' preview_w = 640 preview_h = 424 # Colors yellow = pygame.Color(0,128,0) black = pygame.Color(0,0,0) white = pygame.Color(255,255,255) # Time m = 1 #1.5 #adjust to get rid of delays t = 3 #countdown time # Image displaying result_disp_time = 10 # Number of needed keys num_keys = 4; # Initialise other variables keys, types, img_link = [], [], [] #Functions # Dropbox/Upload def get_mode(app_key = [], app_secret = []): #Asks wether you want to use the dropbox function and connects if so while True: upload_mode = raw_input("Do you want to use the dropbox uploading function? (y/n) ") if upload_mode == "n": return {'mode':0} elif upload_mode == "y": root = Tkinter.Tk() #Needed to read out clipboard root.withdraw() # Get your app key and secret from the Dropbox developer website flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret) # Have the user sign in and authorize this token authorize_url = flow.start() root.clipboard_clear() root.clipboard_append(authorize_url) print '1. Go to: ' + authorize_url + ' (already in clipboard)' print '2. Click "Allow" (you might have to log in first)' print '3. Copy the authorization code into clipboard and confirm.' code = raw_input("Enter anything if the code is in the clipboard.").strip() code = root.clipboard_get() # This will fail if the user enters an invalid authorization code access_token, user_id = flow.finish(code) client = dropbox.client.DropboxClient(access_token) print 'linked account: ', client.account_info() return {'mode':1,'client':client} def dropbox_upload(link): f = open(link, 'rb') name = link.split("/",1)[1] response = client.put_file(name, f) print 'uploaded: ', response db_link = client.media(name) return db_link['url'] # QR-Code def create_qr_code(string): qr = PyQRNative.QRCode(8, PyQRNative.QRErrorCorrectLevel.L) qr.addData(string) qr.make() qr_code = qr.makeImage() qr_code.save("qr_code.jpg") mode = qr_code.mode size = qr_code.size data = qr_code.tostring() qr_code = pygame.image.fromstring(data, size, mode) return qr_code # Camera communication def post_method(method,par = []): #general post_method for communication with camera payload = {'method': method, 'params': par, 'id': 1, 'version': '1.0'} data = json.dumps(payload) requests.post(url, data=data) def take_picture(): #take one image and receive it method = 'actTakePicture' par = [] payload = {'method': method, 'params': par, 'id': 1, 'version': '1.0'} data = json.dumps(payload) resp = requests.post(url, data=data) resp_js = resp.json() res_con = str(resp_js.get('result')[0][0]) return res_con def start_liveview(): #start camera liveview method = 'startLiveview' par = [] payload = {'method': method, 'params': par, 'id': 1, 'version': '1.0'} data = json.dumps(payload) resp = requests.post(url, data=data) resp_js = resp.json() link = str(resp_js.get('result')[0]) return link # Layout and displaying elements def disp_obj(obj,type = 1): #displays an object depending on the wanted position if type >= 1: if type == 1: screen.fill(white) obj = myfont.render(obj, True, yellow) screen.blit(obj, ((screen_w-obj.get_width())/2,(screen_h-obj.get_height())/2)) pygame.display.flip() def disp_preview(obj,pos = 1): screen.fill(white) x = (screen_w - 2*col_w-3*x_space)/2 y = (screen_h - 3*y_space)/2 scale_factor = min(x/float(preview_w),y/float(preview_h)) obj = pygame.transform.scale(obj,(int(scale_factor*preview_w),int(scale_factor*preview_h))) if pos == 1: screen.blit(obj, (0.5*screen_w-int(scale_factor*preview_w)-0.5*x_space,0.5*screen_h-int(scale_factor*preview_h)-0.5*y_space)) elif pos == 2: screen.blit(obj, (0.5*screen_w+0.5*x_space,0.5*screen_h-int(scale_factor*preview_h)-0.5*y_space)) elif pos == 3: screen.blit(obj, (0.5*screen_w-int(scale_factor*preview_w)-0.5*x_space,0.5*screen_h+0.5*y_space)) else: screen.blit(obj, (0.5*screen_w+0.5*x_space,0.5*screen_h+0.5*y_space)) pygame.display.flip() def disp_button(obj,pos,mode = 1): if mode == 1: o_w = obj.get_width()/2 o_h = obj.get_height()/2 else: if mode == 2: obj = buttonfont.render(obj, True, black) obj = pygame.transform.rotate(obj,90) o_w = obj.get_width()/2 if pos == 1 or pos == 2: o_h = -col_w/2 else: o_h = obj.get_height() + col_w/2 if pos == 1: x = col_w/2 - o_w y = col_w/2 - o_h elif pos == 2: x = screen_w - col_w/2 - o_w y = col_w/2 - o_h elif pos == 3: x = col_w/2 - o_w y = screen_h - col_w/2 - o_h else: x = screen_w - col_w/2 - o_w y = screen_h - col_w/2 - o_h screen.blit(obj,(x,y)) def disp_result(link): disp_time = result_disp_time start_time = time.clock() check = 0 while True: if time.clock() - start_time >= disp_time: white_block = pygame.Surface((col_w, screen_h/2)) white_block.fill(white) screen.blit(white_block,(screen_w-col_w,0)) break #Display numbers in upper right corner white_rect = pygame.Surface((100, 100)) white_rect.fill(white) white_rect.fill(white, rect=None, special_flags=0) disp_button(white_rect,2) #Display time scale chart = pygame.Surface((100, 40)) chart.fill(black) pygame.draw.rect(chart,white,pygame.Rect(100-int((time.clock() - start_time)/disp_time*100),0,int((time.clock() - start_time)/disp_time*100),40)) disp_button(chart,2,3) #Disp number disp_button(buttonfont.render(str(int(disp_time-(time.clock() - start_time)+1)), True, black),2) pygame.display.flip() #Check if upload wanted/show existing qr code if get_key() == 3 and mode == 1: disp_time = disp_time - time.clock() + start_time if check == 0: check == 1 dropbox_link = dropbox_upload(link) qr_code = create_qr_code(dropbox_link) disp_obj(qr_code,0) white_block = pygame.Surface((col_w, screen_h/2)) white_block.fill(white) screen.blit(white_block,(0,0)) disp_button(space,1) disp_button(lbl_return,1,2) pygame.display.flip() while True: if get_key() == 0: break; img = pygame.image.load(link) disp_obj(img,0) screen.blit(white_block,(0,0)) disp_button(up,1) disp_button(lbl_qr_code,1,2) start_time = time.clock() layout(1) def layout(settings): screen.fill(white) if settings == 1: disp_button(space,1) disp_button(lbl_take_photo,1,2) disp_button(left,3) disp_button(lbl_previous,3,2) disp_button(right,4) disp_button(lbl_next,4,2) elif mode == 1: disp_button(up,1) disp_button(lbl_dropbox,1,2) pygame.display.flip() # Image processing/editing def img_combine(img_1,img_2,img_3,img_4): #combines 4 images to one and returns the results x = screen_w/2 - col_w y = screen_h/2 o_width, o_height = img_1.size n_width = x-1.5*x_space n_height = y-1.5*y_space scale_factor = min(n_width/o_width,n_height/o_height) s_width = scale_factor * o_width s_height = scale_factor * o_height r_width = 3 * x_space + 2 * s_width r_height = 3 * y_space + 2 * s_height size = int(s_width),int(s_height) img_1 = img_1.resize(size) img_2 = img_2.resize(size) img_3 = img_3.resize(size) img_4 = img_4.resize(size) result = Image.new("RGB", (int(r_width), int(r_height)), "white") result.paste(img_1,(int(x_space),int(y_space))) result.paste(img_2,(int(2 * x_space + s_width),int(y_space))) result.paste(img_3,(int(x_space),int(2 * y_space + s_height))) result.paste(img_4,(int(2 * x_space + s_width),int(2 * y_space + s_height))) img_num_folder = str(len(os.listdir("results")) + 1) img_link = "results/result" + img_num_folder + ".jpg" result.save(img_link) img_mode = result.mode img_size = result.size img_data = result.tostring() img_pg = pygame.image.fromstring(img_data,img_size,img_mode) return img_pg, img_link # Key detection/definition def def_keys(): wv = True while wv == True: event = pygame.event.wait() type_int = int(event.type) if type_int in [2,5]: types.extend([type_int]) if type_int == 2: keys.extend([int(event.key)]) else: keys.extend([int(event.button)]) if len(types) >= num_keys: wv = False return keys, types def key_type(event): for i in range(0,num_keys): if int(event.type) == 2: if keys[i] == int(event.key): return i if int(event.type) == 5: if keys[i] == int(event.button): return i def get_key(): for event in pygame.event.get(): if int(event.type) in [2,5]: check = key_type(event) #get last pressed key return check # Processes def img_taking(): #Takes 4 images which are getting combined afterwards try: link = start_liveview() except: con = False while con == False: try: con == True post_method('startRecMode') except: print 'Connection problem' con == False #Take 4 images img_1 = countdown_img(link,1) time.sleep(1) img_2 = countdown_img(link,2) time.sleep(1) img_3 = countdown_img(link,3) time.sleep(1) img_4 = countdown_img(link,4) #Combine images disp_obj(lbl_wait) post_method('stopLiveview') img_result, img_link = img_combine(img_1,img_2,img_3,img_4) layout(2) disp_obj(img_result,0) pygame.event.clear() disp_result(img_link) pygame.event.clear() def countdown_img(link,pos): #Gives countdown and takes image screen.fill(white) pygame.display.flip() a = time.clock() - 0.1 bol = True while bol == True: b = time.clock() if ((a-*m+t) > 0: stream = urllib2.urlopen(link) data = stream.read(136) size = struct.unpack('>i','\x00'+data[12:15])[0] imgdata = stream.read(size) img_bytes = pygame.image.load(io.BytesIO(imgdata)) disp_preview(img_bytes,pos) disp_obj(str(int((a-*m+t+1)),2) else: bol = False disp_obj(lbl_smile) img_link = take_picture() img_res = Image.open(io.BytesIO(urllib2.urlopen(img_link).read())) return img_res def wait(): #displays results and waits for input layout(1) start_time = time.clock() j = 0 img_num = len(os.listdir("results")) while True: now = time.clock() if now - start_time >= 3: start_time = time.clock() if img_num >= 2: img_num = img_num - 1 else: img_num = len(os.listdir("results")) check = get_key() if check == 0: #key 0 -> new collage img_taking() elif check == 1: #key 1 -> show previous collage start_time = time.clock() if img_num >= 2: img_num = img_num - 1 else: img_num = len(os.listdir("results")) elif check == 2: #key 2 -> show next collage start_time = time.clock() if img_num < len(os.listdir("results")): img_num = img_num + 1 else: img_num = 1 if img_num >= 1: img = pygame.image.load("results/result" + str(img_num) + ".jpg") disp_obj(img,0) #Program # Check camera connection # Dropbox connection/Mode get_mode_return = get_mode(app_key, app_secret) if get_mode_return['mode'] == 0: mode = 0 else: mode = 1 client = get_mode_return['client'] pygame.init() #Off-Code festlegen off_code = [0,1,2,0,1,2] #Screensize definieren screen = pygame.display.set_mode((1200,700)) ##screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN) info = pygame.display.Info() screen_w = info.current_w screen_h = info.current_h myfont = pygame.font.SysFont(None,200) buttonfont = pygame.font.SysFont(None,60) up = pygame.image.load('up.jpg') down = pygame.image.load('down.jpg') left = pygame.image.load('left.jpg') right = pygame.image.load('right.jpg') space = pygame.image.load('space.jpg') disp_obj(lbl_choose_keys) keys,types = def_keys() disp_obj(lbl_go) try: post_method('startRecMode') except: pygame.quit() print 'Check camera connection' raise SystemExit wait() pygame.quit() Link zum Beitrag Auf anderen Seiten teilen More sharing options...
KameraMarius Geschrieben 2. Oktober 2015 Autor Share #10 Geschrieben 2. Oktober 2015 (bearbeitet) So, und hier noch das wichtigste für die WLAN-Kommunikation: Das müssten glaube ich die wichtigsten Bausteine sein, um mal ein Bild aufzunehmen, ohne dass ich gerade es testen konnte. Also noch ohne live preview und ähnliches. Damit man ungefähr sieht, wie die Kommunikation mit der Kamera funktioniert. #Import libraries import requests #to communicate with the camera import json #to send json objects import urllib2 #stream read out/urls import struct #to create/use structs url = 'http://192.168.122.1:8080/sony/camera' #Kann je nach Modell und Verbindung anders seien (ich glaube, ich habe das damals über ipconfig ermittelt und der Ordner war bereits in einem Dokument von Sony beschrieben #Funktionen def post_method(method,par = []): #general post_method for communication with camera payload = {'method': method, 'params': par, 'id': 1, 'version': '1.0'} data = json.dumps(payload) requests.post(url, data=data) def take_picture(): #take one image and receive it method = 'actTakePicture' par = [] payload = {'method': method, 'params': par, 'id': 1, 'version': '1.0'} data = json.dumps(payload) resp = requests.post(url, data=data) resp_js = resp.json() res_con = str(resp_js.get('result')[0][0]) return res_con def start_liveview(): #start camera liveview method = 'startLiveview' par = [] payload = {'method': method, 'params': par, 'id': 1, 'version': '1.0'} data = json.dumps(payload) resp = requests.post(url, data=data) resp_js = resp.json() link = str(resp_js.get('result')[0]) return link #Eigentliches Programm post_method('startRecMode') take_picture() bearbeitet 2. Oktober 2015 von KameraMarius Link zum Beitrag Auf anderen Seiten teilen More sharing options...
mbenn55hb Geschrieben 20. Oktober 2015 Share #11 Geschrieben 20. Oktober 2015 Hey, echt riesig! Vielen vielen Dank, kann ich auf jeden Fall gebrauchen! Leider ist gerade Stress im Studium, also wird es noch ein wenig dauern bis ich es ausprobieren kann. Um die Libaries kommt man ja kaum mehr drum rum, wird schon klappen Saubere Arbeit Grüße, Markus Link zum Beitrag Auf anderen Seiten teilen More sharing options...
powerw87 Geschrieben 19. Oktober 2016 Share #12 Geschrieben 19. Oktober 2016 Hallo zusammen, ich habe das Projekt nun mit meiner Sony Alpha 6000 umgesetzt. Dank des Codes von KameraMarius war die Funktion an sich kein Problem. Leider sind die result jpgs nur wenige Kilobites groß. Also zum ausdrucken eher nicht geeignet. An welcher Stelle des Programms kann ich da was ändern? Ich bin für jeden Hinweis dankbar. Gruß, Patrick Link zum Beitrag Auf anderen Seiten teilen More sharing options...
KameraMarius Geschrieben 11. Dezember 2016 Autor Share #13 Geschrieben 11. Dezember 2016 Hallo Patrick,Entschuldigung, ich bin aktuell nicht so aktiv was Fotografie angeht und hatte nicht mitbekommen, dass hier etwas gefragt wurde. Die Bildgröße hängt von der Bildschirmgröße ab. Könnte dies der Grund sein? (Dass du nur einen sehr kleinen Bildschirm dran hast?)Das wollte ich in Zukunft mal ändern, aber aktuell sieht es bei mir zeitlich recht knapp aus.Ich hoffe, du hast inzwischen schon eine eigene Lösung gefunden.Beste GrüßeMarius Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden