Das Pflegepersonal in medizinischen Einrichtungen, wie Krankenhäusern oder Pflegeeinrichtungen, ist, aufgrund des Mangels an Pflegepersonal, mit der intensiven und zeitaufwendigen Pflege der Patienten oder Bewohner stark überfordert. Das System „PflegeRuf“ soll das Pflegepersonal unterstützen und entlasten, indem die Patienten auswählen können, warum Sie das Pflegepersonal zu sich ins Zimmer rufen möchten. Somit spart sich das Pflegepersonal kostbare Zeit und Energie, hin und her zu laufen, um erstmal den Grund für den Ruf zu erfahren und daraufhin die notwendigen Materialien zu holen, um dann wieder zurück zum Patienten zu gehen.
Um den PflegeRuf nutzen zu können, muss der Patient die Gesichtserkennung nutzen, indem er das Gesicht zur Kamera hält, welche sich über dem Touch Display befindet. Die Kamera erkennt nur bereits vorher registrierte Nutzer. Unbekannte Gesichter werden mit der Bezeichnung „Unknown“ nicht zur Nutzung des PflegeRufs zugelassen. Nachdem der Patient erkannt wurde, öffnet sich der PflegeRuf. Hier gibt es 3 Auswahlmöglichkeiten (siehe Bild oben).
Der Vorgang zur Einrichtung der Gesichtserkennung, sowie der Quellcode mit Ausnahme Zeile 78-80, sowie Zeile 113-114, wurden aus folgendem Tutorial entnommen und kann dort ausführlich nachgelesen werden: https://core-electronics.com.au/guides/face-identify-raspberry-pi/ Um die Gesichtserkennung starten zu können musste OpenCV installiert werden und eine haarcascade_frontalface.xml Datei aus dem Internet heruntergeladen werden für das Erkennen von Gesichtern. Wir haben mindestens 10 Fotos von unseren Gesichtern aufgenommen und diese in einem Ordner gespeichert. Auf diesen Ordner wird zugegriffen und während der Videoaufnahme erscheint der Name des Ordners und somit der Name der Person.
<#!/usr/bin/python3 # import the necessary packages from imutils.video import VideoStream from imutils.video import FPS import face_recognition import imutils import pickle import time import cv2 import RPi.GPIO as GPIO from time import sleep import subprocess import sys #Initialize 'currentname' to trigger only when a new person is identified. currentname = "unknown" #Determine faces from encodings.pickle file model created from train_model.py encodingsP = "encodings.pickle" # load the known faces and embeddings along with OpenCV's Haar # cascade for face detection print("[INFO] loading encodings + face detector...") data = pickle.loads(open(encodingsP, "rb").read()) # initialize the video stream and allow the camera sensor to warm up # Set the ser to the followng # src = 0 : for the build in single web cam, could be your laptop webcam # src = 2 : I had to set it to 2 inorder to use the USB webcam attached to my laptop #vs = VideoStream(src=2,framerate=10).start() vs = VideoStream(usePiCamera=True).start() time.sleep(2.0) # start the FPS counter fps = FPS().start() # loop over frames from the video file stream while True: # grab the frame from the threaded video stream and resize it # to 500px (to speedup processing) frame = vs.read() frame = imutils.resize(frame, width=500) # Detect the fce boxes boxes = face_recognition.face_locations(frame) # compute the facial embeddings for each face bounding box encodings = face_recognition.face_encodings(frame, boxes) names = [] # loop over the facial embeddings for encoding in encodings: # attempt to match each face in the input image to our known # encodings matches = face_recognition.compare_faces(data["encodings"], encoding) name = "Unknown" #if face is not recognized, then print Unknown # check to see if we have found a match if True in matches: # find the indexes of all matched faces then initialize a # dictionary to count the total number of times each face # was matched matchedIdxs = [i for (i, b) in enumerate(matches) if b] counts = {} # loop over the matched indexes and maintain a count for # each recognized face face for i in matchedIdxs: name = data["names"][i] counts[name] = counts.get(name, 0) + 1 # determine the recognized face with the largest number # of votes (note: in the event of an unlikely tie Python # will select first entry in the dictionary) name = max(counts, key=counts.get) #If someone in your dataset is identified, print their name on the screen if currentname != name: currentname = name cmd = 'python3 pflegeRuf.py' p = subprocess.Popen(cmd, shell=True) sys.exit().sys.exit() # update the list of names names.append(name) # loop over the recognized faces for ((top, right, bottom, left), name) in zip(boxes, names): # draw the predicted face name on the image - color is in BGR cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 225), 2) y = top - 15 if top - 15 > 15 else top + 15 cv2.putText(frame, name, (left, y), cv2.FONT_HERSHEY_SIMPLEX, .8, (0, 255, 255), 2) # display the image to our screen cv2.imshow("Facial Recognition is Running", frame) key = cv2.waitKey(1) & 0xFF # quit when 'q' key is pressed if key == ord("q"): break # update the FPS counter fps.update() # stop the timer and display FPS information fps.stop() print("[INFO] elasped time: {:.2f}".format(fps.elapsed())) print("[INFO] approx. FPS: {:.2f}".format(fps.fps())) if currentname != name: sys.exit().sys.exit() cv2.destroyAllWindows() vs.stop() >
Die Graphische Benutzeroberfläche wurde mit dem GUI-Framework PysimpleGui erstellt. Jede Zeile mit den []-Klammern erweitert das Display und ermöglicht das Hinzufügen von den gewünschten Elementen wie z.B. Button, Bilder, Text, Input Felder und vieles mehr. Um „Image Buttons“ erstellen zu können, müssen Bilder (png oder jpeg) vorher zu Base_64 konvertiert und im Quellcode als Variable hinzugefügt werden. Erst dann können die Bilder als Button genutzt werden. Nachdem ein Anliegen ausgewählt wurde, erscheint für 4 Sekunden ein Pop up Fenster, welches sich automatisch wieder schließt. Zusätzlich werden E-Mails verschickt, indem der Email Sender und Empfänger, sowie ein Passwort für die externe Nutzung durch weniger gesicherte Apps, notiert werden.
<#!/usr/bin/python3 import PySimpleGUI as sg import smtplib import os from email.message import EmailMessage import ssl import subprocess import RPi.GPIO as GPIO import time email_sender = 'melaley98@gmail.com' email_password = 'ddvpqksaxtxvhlne' email_receiver = 'pflegepersonal98@gmail.com' schmerzen_base64 = b'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' medikamente_base64 = b'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' wc_base64 = b'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' waschen_base64 = b'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' essen_base64 = b'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' getränk_base64 = b'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' tv_base64 = b'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' layout = [ [sg.Text(' ')], [sg.Text('Willkommen im PflegeRuf des Krankenhauses Niederrhein!', size=(800,1), font=('Calibri',19), justification='center')], [sg.Image('hospitalLogo.png', size=(800,100))], [sg.Text('Wählen Sie eine der folgenden Optionen aus:', size=(800,1), font=('Calibri',17), justification='center')], [sg.Text(' ', size=(800,2))], [sg.Text(' ', size=(19,1)), sg.Button('Pflegepersonal rufen', size=(17,2), font=('Calibri',13)), sg.Text(' '), sg.Button('Puls messen', size=(17,2), font=('Calibri',13))], [sg.Text(' ')], [sg.Text(' ', size=(36,1)), sg.Button('TicTacToe spielen', size=(17,2), font=('Calibri',13))] ] window = sg.Window('PflegeRuf - Krankenhaus Niederrhein - Menü', layout, size=(800,480)) def pflegeruf_window(): pflegeruf_layout = [ [sg.Button('Menü', size=(6,1), font=('Calibri', 11))], [sg.Text('Bitte wählen Sie Ihr Anliegen aus, indem Sie auf das entsprechende Feld klicken!', size=(800,1), font=('Calibri',14), justification='center')], [sg.Text(' ', size=(800,2))], [sg.Text(' ', size=(5,1)), sg.Button('', image_data=schmerzen_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='Schmerzen'), sg.Text(' ', size=(5,1)), sg.Button('', image_data=medikamente_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='Medikamente'), sg.Text(' ', size=(5,1)), sg.Button('', image_data=wc_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='WC'), sg.Text(' ', size=(5,1)), sg.Button('', image_data=waschen_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='Waschen'), sg.Text(' ', size=(5,1))], [sg.Text(' ', size=(800,1))], [sg.Text(' ', size=(18,1)), sg.Button('', image_data=essen_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='Essen'), sg.Text(' ', size=(5,1)), sg.Button('', image_data=getränk_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='Getränk'), sg.Text(' ', size=(5,1)), sg.Button('', image_data=tv_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='TV'), sg.Text(' ', size=(5,1))], ] pflegeruf_window = sg.Window('PflegeRuf - Krankenhaus Niederrhein - Pflegepersonal rufen', pflegeruf_layout, size=(800,480)) while True: event, values = pflegeruf_window.read() if event == sg.WIN_CLOSED: break elif event == 'Schmerzen': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: Schmerzen!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: Schmerzen. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'Medikamente': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: Medikamente!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: Medikamente. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'WC': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: WC!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: WC. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'Waschen': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: Waschen!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: Waschen. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'Essen': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: Essen!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: Essen. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'Getränk': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: Getränk!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: Getränk. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'TV': subject = 'PflegeRuf aus Zimmer 014' body = 'Aus dem Zimmer 014 wurde der PflegeRuf betätigt, mit folgendem Anliegen: TV!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) sg.popup_timed('Sie haben den PflegeRuf betätigt, mit folgendem Anliegen: TV. In Kürze wird sich das Pflegepersonal um Sie kümmern!', auto_close_duration=4) elif event == 'Menü': break pflegeruf_window.close() while True: event, values = window.read() if event == sg.WIN_CLOSED: break elif event == 'Pflegepersonal rufen': pflegeruf_window() elif event == 'Puls messen': cmd = 'python3 pulse_v3.py' p = subprocess.Popen(cmd, shell=True) elif event == 'Kalender': print('hallo') elif event == 'TicTacToe spielen': cmd = 'python3 sign_up_window.py' p = subprocess.Popen(cmd, shell=True) window.close()>
<#!/usr/bin/python3 from CA_BOARD_FUNCTIONS import * import lcddriver import matplotlib.pyplot as plt import gpiozero import time import os import ssl import smtplib from email.message import EmailMessage import scipy.signal from pulse_width import * email_sender = 'melaley98@gmail.com' email_password = 'ddvpqksaxtxvhlne' email_receiver = 'pflegepersonal98@gmail.com' # Board-Pinbelegung wird gewaehlt initBoard() # alle LEDs auf dem BOARD werden als Output definiert initLEDs() # Klassen # adc: MCP3008 # lcd: lcd adc = gpiozero.MCP3008(channel = 0) lcd = lcddriver.lcd() # Variablendefinition x = [] rawData = [] filteredData = [] filteredDataMean = 0 filteredDataMaxValue = 0 thres = 0 thres_vec = [] binPulseData = [] meastime = 0 # Konfiguration # Messzeit MEASURE_TIME = 10 # Abtastfrequenz SAMPLE_FREQ = 1000 # Zeit zwischen zwei Messungen TIME_PER_SAMPLE = 1/SAMPLE_FREQ # Anzahl der Messungen in der angegebenen Messzeit # (stimmt nicht zu 100% ueberein, da das Programm durch andere Prozesse "gestoppt" wird NUM_SAMPLES = MEASURE_TIME * SAMPLE_FREQ # Dateiname (plot) FILENAME = "Aleyna-Yildirim-puls.png" # Variablen für das LCD-Display # lcd_row1: string für die 1. Zeile # lcd_row2: string für die 2. Zeile lcd_row1 = "-----Pulse------" lcd_row2 = "" lcd.lcd_display_string(lcd_row1, 1) # Ausgabe measure starts in 5,4,3 .... for i in range(2, 0,-1): lcd_row2 = "starts in " + str(i) + "sec." lcd.lcd_display_string(lcd_row2, 2) print(lcd_row2) time.sleep(1) # Ausgabe Messung wird gestartet (start) lcd_row2 = "start" print("start") lcd.lcd_clear() lcd.lcd_display_string(lcd_row1, 1) lcd.lcd_display_string(lcd_row2, 2) # Messung # für die Berechnung der Dauer wird zunaecht ein Zeitstempel gesetzt t1 = time.time() for i in range(NUM_SAMPLES): # rawData (analog Wert) wird gelesen rawData.append(adc.raw_value) # x-Achse x.append(i) time.sleep(TIME_PER_SAMPLE) # 2. Zeitstempel t2 = time.time() # Ueberpruefung, ob die angegebene Messzeit erreicht wurde if (t2-t1) > MEASURE_TIME: break # die Messdauer wird berechnet measTime = t2-t1 # Filter: Das Signal (raw values) wird gefiltert # Lowpass filter (Tiefpass Filter) b, a = scipy.signal.butter(3, 0.1) filteredData = scipy.signal.filtfilt(b, a, rawData) # Schwellwert wird berechnet for i in filteredData: filteredDataMean = filteredDataMean + i filteredDataMean = filteredDataMean/len(filteredData) filteredDataMaxValue = max(filteredData) thres = int((filteredDataMean + filteredDataMaxValue)/2) # Mit dem gefilterten Signal und einem Schwellwert wird die 3. Kennlinie generiert for i in range(len(filteredData)): # falls, das gefilterte Signal an der Stelle i groesser oder gleich thres ==> 1 sonst 0 if filteredData[i] >= thres: binPulseData.append(1) else: binPulseData.append(0) # Es wird ein Vektor generiert, damit auch der Schwellenwert geplottet werden kann for i in range(len(filteredData)): thres_vec.append(thres) # Verarbeitung der 3. Kennlinie (Beispiel siehe **) # Eingabe der Funktion: # binPulseData: binarisierte Samples || 0: Sample-Wert kleiner als Schwellwert, 1: Sample-Wert groesser als Schwellwert # Ausgabe der Funktion: # PulsBreite: Gibt die Anzahl der PulsBreite in Samples an (Nullen und einsen) # PulsBin: Gibt die Änderung der Sample-Werte in binPulseData an || 0: Änderung 1 --> 0, 1: Änderung 0 --> 1 PulsBreite, PulsBin = analysisPulseBin(binPulseData) # binPulseData =[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0] # PulseBreite = [10, 6, 7, 2, 10, 1, 8, 4, 6] # PulsBin = [0, 1, 0, 1, 0, 1, 0, 1, 0] # Wird die Messung richtig durchgefuehrt, so sind alle Impulse in der Variable PulsBin enthalten. counterPuls = 0 # Da die Variable PulsBin alle Impulse beinhaltet, werden hier die einsen gezaehlt # Die Einsen geben an, wie viele Impulse waehrend der Messung erkannt wurden. for i in PulsBin: if i == 1: counterPuls = counterPuls + 1 # Ausgabe und Berechnung der Herzschlaege pro Minute (Anzahl der Impulse in 10 Sekunden * 6 = Anzahl der Impulse in einer Minute) print(counterPuls) num_samples = 0 time_per_sample = 0 num_samples = len(rawData) ## Beispiel * # 20 Werte in 10Sek. # 2 Daten/Sekunde: Frequenz 1/sek. # 10/20 = 0.5 s PulseTime = [] # Berechnung Dauer eines Samples (Beispiel siehe *) time_per_sample = measTime / num_samples for i in PulsBreite: PulseTime.append(i*time_per_sample) print(PulseTime) # Plot mit drei subplots werden erstellt. Die x-Achse gilt fuer alle Plots (Parameter: sharex=True) fig, axs = plt.subplots(3, sharex=True) # Plot axs[0].plot(x, rawData) axs[0].set_title('Pulse sensor raw data') axs[1].plot(x, filteredData) axs[1].plot(x, thres_vec, 'r') axs[1].set_title('Pulse sensor fltered data') axs[2].plot(x, binPulseData) axs[2].set_title('Pulse') plt.show() # Plot wird gespeichert. Dateiname: FILENAME (wird in der Variablendefinition angegeben) plt.savefig(FILENAME) # Ausgabe LCD-Display lcd.lcd_clear() lcd.lcd_display_string(lcd_row1, 1) lcd_row2 = "measure done..." lcd.lcd_display_string(lcd_row2, 2) # Ausgabe am Terminal print("measure done...") print("###############") print("### Summary ###") print("Pulse/min.: " + str(counterPuls*6)) print("Time per sample: " + str(time_per_sample)) print("measure time: " + str(measTime)) print("number samples: " + str(len(rawData))) print("saved file name: " + FILENAME) # alle LEDs blinken 5x allLedBLINK(5, 0.5) puls = counterPuls if puls > 100: subject = 'Pulswert aus Zimmer 014' body = 'Der Puls des Patienten aus Zimmer 014 liegt bei mehr als 100 Schlägen pro Minute!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) elif puls < 60: subject = 'Pulswert aus Zimmer 014' body = 'Der Puls des Patienten aus Zimmer 014 liegt bei weniger als 60 Schlägen pro Minute!' em = EmailMessage() em['From'] = email_sender em['to'] = email_receiver em['Subject'] = subject em.set_content(body) context = ssl.create_default_context() with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp: smtp.login(email_sender, email_password) smtp.sendmail(email_sender, email_receiver, em.as_string()) # GPIOs freigeben cleanGPIOs() >
Nebenbei haben wir ein Spiel hinzugefügt auf PysimpleGui, was über Touch einfach zu spielen ist. Der Quellcode wurde komplett aus dem Tutorial entnommen: https://www.youtube.com/watch?v=q7Q1EQ1dZdM
<#!/usr/bin/python3 import PySimpleGUI as sg import game_window import subprocess import lcddriver from time import* lcd = lcddriver.lcd() lcd.lcd_clear() layout = [ [sg.Text("Geben Sie den Namen des ersten Benutzers an!"), sg.Input(key='-FIRST_PLAYER-', do_not_clear=True, size=(20, 1))], [sg.Text(" ", size=(400,1))], [sg.Text("Geben Sie den Namen des zweiten Benutzers an!"), sg.Input(key='-SECOND_PLAYER-', do_not_clear=True, size=(20, 1))], [sg.Text(" ", size=(400,2))], [sg.Button('Spiel starten'), sg.Text(" "), sg.Exit()] ] window = sg.Window('Tic Tac Toe', layout, size=(400,260)) while True: event, values = window.read() if event in (sg.WIN_CLOSED, 'Exit'): lcd.lcd_clear() break elif event == 'Spiel starten': players = [values['-FIRST_PLAYER-'], values['-SECOND_PLAYER-']] game_window.initiate_game(players) window.close() >
<#!/usr/bin/python3 import PySimpleGUI as sg import lcddriver from time import* lcd = lcddriver.lcd() lcd.lcd_clear() sg.theme('DarkBrown5') def check_if_winner(board): for column in range(0, 3): print(board) if ((0,column) in board.keys()) and ((1, column) in board.keys()) and ((2, column) in board.keys()): if board[(0, column)] == board[(1, column)] == board[(2, column)]: return board[(0, column)] for row in range(0, 3): if ((row, 0) in board.keys()) and ((row, 1) in board.keys()) and ((row, 2) in board.keys()): if board[(row, 0)] == board[(row, 1)] == board[(row, 2)]: return board[(row, 0)] if ((0,0) in board.keys()) and ((1,1) in board.keys()) and ((2,2) in board.keys()): if board[(0,0)] == board[(1,1)] == board[(2,2)]: return board[(1,1)] if ((2,0) in board.keys()) and ((1,1) in board.keys()) and ((0,2) in board.keys()): if board[(2,0)] == board[(1,1)] == board[(0,2)]: return board[(2, 0)] def initiate_game(players): board, player = {}, 0 layout = [[sg.Text('Current Player: ' + players[player], key='-CURRENT_PLAYER-')]] for row in range(3): new_row = [] for column in range(3): new_row.append(sg.Button(size=(3, 2), key=(row, column))) layout.append(new_row) layout.append([sg.Button('Nochmal'), sg.Button('Cancel')]) window = sg.Window('TicTacToe', layout, size=(400,240), use_default_focus=False) while True: event, values = window.read() if event == sg.WIN_CLOSED or event == 'Cancel': break if event == 'Reset': board = {} for row in range(3): for col in range(3): window[(row, col)].update('') elif event not in board: board[event] = player window[event].update('X' if player else '0') is_winner = check_if_winner(board) if is_winner is not None: sg.popup("Der Gewinner ist "+ players[player]) lcd.lcd_display_string("Gewinner: "+ players[player], 1) lcd.lcd_display_string("Glückwunsch!", 2) break player = (player + 1) % 2 window['-CURRENT_PLAYER-'].update('Current player: ' + players[player]) window.close() >
Der Quellcode für den kleinen LCD-Display wurde aus den Vorlesungsskripten entnommen.