Vielen Dank erstmal für die Hinweise. Ich habe jetzt erstmal mein Bestes probiert. Bei den Kommentaren bitte ich erstmal noch um etwas Nachsicht. Einige habe ich drin gelassen, zur eigenen Orientierung. Die PiCamera Klasse habe ich eingebaut. Fotos werden aufgenommen und die GUI lädt auch. Was du genau mit der Trennung von GUI und Programmlogik meinst, konnte ich leider noch nicht so richtig umsetzen, bzw. verstehen.
Der aktuelle Code sieht nun so aus:
Python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.uic import *
import time
import RPi.GPIO as GPIO
import os
import picamera
#Definierungen Mikrofon
pin_m = 19 #Mikrofonpin
pin_b = 21 #Button_oben
GPIO.setmode(GPIO.BCM) #GPIO Aufbau definieren
GPIO.setup(pin_m, GPIO.IN) #Mikrofon Digital PIN als Input definieren
GPIO.setup(pin_b, GPIO.IN, pull_up_down = GPIO.PUD_UP) #Button Digital PIN als Input definieren
#Definierung GUI
def MainWindow():
w = loadUi("schreibox_ui.ui")
w.introduction.setText("Hallo, das ist die Schreibox und du darfst sie gerne testen. Schrei doch mal ganz laut, bis auf dem Bildschirm etwas passiert.")
return w
def new_pic(pic):
bild1 = QPixmap(pic)
bild1.scaledToWidth(950)
w.bild_label.setPixmap(bild1)
def foto_verarbeiten(channel):
bild = foto_aufnehmen()
new_pic(bild)
time.sleep(2)
def foto_aufnehmen():
DATEINAME = time.strftime("%Y_%m_%d_%H_%M_%S") + '.jpg'
ORDNER = os.path.join(os.getcwd(),'Bilder/',DATEINAME)
cam = picamera.PiCamera()
try:
cam.brightness = 60
cam.resolution = (800, 600)
cam.start_preview()
time.sleep(0.1)
cam.stop_preview()
cam.capture(ORDNER)
pass
finally:
cam.close()
return ORDNER
#Events empfangen
GPIO.add_event_detect(pin_m, GPIO.RISING, callback = foto_verarbeiten, bouncetime = 4000) ### MIKROFON als Auslöser
GPIO.add_event_detect(pin_b, GPIO.RISING, callback = foto_verarbeiten, bouncetime = 200) ### Button 1 als Auslöser
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
Alles anzeigen
Achja das import * Problem habe ich ehrlich gesagt noch nicht lösen können, weil ich nicht weiß, was ich alles importieren soll?!
Der QPixmap Befehl funktioniert weiterhin nicht. Bin bereit für neue Hilfestellung