Picamera wie am besten intigrieren

Fragen zu Tkinter.
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

Soo ich habe jetzt versucht etwas zwecks aufnahmen hin zu bekommen, Mit der Aufnahme in Schleife das nach einer bestimmten Zeit Aufgenommen hat scheint zu funktionieren.
Aber jetzt habe ich ein neues Problem und zwar das während das Script läuft die Buttons nicht mehr gehen bzw. der Button mit dem ich das Script Starte betätigt bleibt.
Könnt ihr mir da Bitte weiterhelfen.

Hier der Teil mit dem Scrip

Code: Alles auswählen

import tkinter as tk
import picamera
import time
import datetime as dt
import datetime
import sched, time


date = datetime.datetime.now().strftime("%d-%m-%Y-%H-%M")
s = sched.scheduler(time.time, time.sleep)

# Aufnahme Pfad #

AUFNAHMEPFAD = "/media/pi/39C7-1803/Aufnahmen/"

# Zeit in Sekunden
AUFNAMEINTERVALL = 300
AUFNAHMEDAUER = 5

def Capture():
    camera.start_preview()
    def do_something(sc):
        
        camera.annotate_background = picamera.Color('black')
        camera.annotate_text = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    
        camera.start_recording(AUFNAHMEPFAD + date + ".h264")
        start = dt.datetime.now()
        while (dt.datetime.now() - start).seconds < AUFNAHMEDAUER:
            camera.annotate_text = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            camera.wait_recording(0.2)
            s.enter(60,1, do_something, (sc,))
    s.enter(60, 1, do_something, (s,))
    s.run()
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn ich mich mal selbst aus diesem Thread von vor 2 Tagen oder so zitieren darf:
__deets__ hat geschrieben: Sonntag 3. Juni 2018, 10:07 Und selbst wenn du das unter Verwendung einer while-Schleife machst, hilft das am Ende auch nichts. Denn du willst ja obendrein eine GUI schreiben, und GUIs können keine while-schleifen vertragen. Dann blockieren sie und werden nutzlos. Stattdessen musst du mit Tkinters after Methode arbeiten. Das wird hier gefühlt in jedem zweiten Forumsbeitrag zu Tkinter erläutert, schau da mal durch die Themen der letzen paar Monate.
Nachtrag:

Hier zB ein einfaches Beispiel: viewtopic.php?f=18&t=42358

Nachtrag 2: das war leider nicht gut, das hier meinte ich: viewtopic.php?f=18&t=42163
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

Mit after das habe ich schon wahr genommen. Weiß aber nicht wie ich das hier richtig einsetze
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

So, wie in den verlinkten Beispielen beschrieben. Statt sched einzusetzen, und wait_recording brauchst Du eben verschieden Funktionen zum Start und zum Stop, die jeweils passend über after aufgerufen werden.
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

Ist noch zu hoch für mich.
Habe auch schon nach Beispielen direkt für Aufnahmen gesucht um.mich besser reindenken zu können aber erfolglos..
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann versuch das doch an einem einfacheren Beispiel zu üben: eine Stopuhr, wo Du nur einen Zähler und Start-, Stopknopf hast.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Schau dir mal dieses Beispiel an.

http://code.activestate.com/recipes/124 ... n-tkinter/

Ist fuer Python 2.7, aber das sollte sich problemlos umarbeiten lassen auf dein Python3.
Antworten