import PySimpleGUI as sg import serial import numpy import time slider_width = 100 slider_hight = 40 button_width = 10 button_hight = 3 open_value = 650 close_value = 350 layout = [ [sg.Text('Servomotor 1')], [sg.Text('CLOSE'),sg.Slider(range=(312, 712), size=(slider_width, slider_hight), default_value=512, orientation='h', key='-SLIDER1-'),sg.Text('OPEN'), sg.Button('Reset', key='-BUTTON1-',size=(button_width,button_hight))], #enable_events=True, [sg.Text('Servomotor 2')], [sg.Text('CLOSE'),sg.Slider(range=(312, 712), size=(slider_width, slider_hight), default_value=512, orientation='h', key='-SLIDER2-'),sg.Text('OPEN'), sg.Button('Reset', key='-BUTTON2-',size=(button_width,button_hight))], #enable_events=True, [sg.Text('Servomotor 3')], [sg.Text('CLOSE'),sg.Slider(range=(312, 712), size=(slider_width, slider_hight), default_value=512, orientation='h', key='-SLIDER3-'),sg.Text('OPEN'), sg.Button('Reset', key='-BUTTON3-',size=(button_width,button_hight))], #enable_events=True, [sg.Text('Motor')], [sg.Text('DOWN'),sg.Slider(range=(1, 99), size=(slider_width, slider_hight), default_value=50, orientation='h', key='-SLIDER4-'),sg.Text(' UP '), sg.Button('Reset', key='-BUTTON4-',size=(button_width,button_hight))], [sg.Button('OK',key='-BUTTON9-',size=(button_width,button_hight)),sg.Button('Reset',key='-BUTTON5-',size=(button_width,button_hight)),sg.Button('Open',key='-BUTTON6-',size=(button_width,button_hight)),sg.Button('Close',key='-BUTTON7-',size=(button_width,button_hight)),sg.Button('Auto-Close',key='-BUTTON8-',size=(button_width,button_hight)),sg.Button('KALIB',key='-BUTTON10-',size=(button_width,button_hight))] ] arduino = serial.Serial(port='COM5', baudrate=115200, timeout=.1) def write_read(x): arduino.write(bytes(x, 'utf-8')) time.sleep(0.1) data = arduino.readline() print(data) return data # GUI erstellen window = sg.Window('Slider GUI', layout,resizable=True,ttk_theme='classic') def write(): # Werte der Schieberegler abrufen slider1_value = 512+(512-values['-SLIDER1-']) slider2_value = 512+(512-values['-SLIDER2-']) slider3_value = values['-SLIDER3-'] slider4_value = values['-SLIDER4-'] # Beispiel: Ausgabe der aktuellen Werte der Schieberegler print("Slider 1:", slider1_value) print("Slider 2:", slider2_value) print("Slider 3:", slider3_value) print("Slider 4:", slider4_value) print("1 " + str(int(slider1_value))) print("2 " + str(int(slider2_value))) print("3 " + str(int(slider3_value))) print("4 " + str(int(slider4_value))) write_read(str("1 "+str(int(slider1_value)))) write_read(str("2 "+str(int(slider2_value)))) write_read(str("3 "+str(int(slider3_value)))) if int(slider4_value) < 10: write_read("4 00" + str(int(slider4_value))) else: write_read("4 0" + str(int(slider4_value))) #data = "<" + str(0) + "," + str(slider1_value) + "," + str(slider2_value) \ # + "," + str(slider3_value) + "," + str(slider4_value) + "," + ">" # GUI-Ereignisschleife while True: event, values = window.read() if event == sg.WINDOW_CLOSED: break if event == '-BUTTON9-': print('Button OK was clicked') write() if event == '-BUTTON1-': print('Button 1 was clicked') window['-SLIDER1-'].update(512) values['-SLIDER1-']=512.0 write() elif event == '-BUTTON2-': print('Button 2 was clicked') window['-SLIDER2-'].update(512) values['-SLIDER2-']=512.0 write() elif event == '-BUTTON3-': print('Button 3 was clicked') window['-SLIDER3-'].update(512) values['-SLIDER3-']=512.0 write() elif event == '-BUTTON4-': print('Button 4 was clicked') window['-SLIDER4-'].update(0) values['-SLIDER4-']=0 write() elif event == '-BUTTON5-': print('Button 5 was clicked') window['-SLIDER1-'].update(512) values['-SLIDER1-']=512.0 window['-SLIDER2-'].update(512) values['-SLIDER2-']=512.0 window['-SLIDER3-'].update(512) values['-SLIDER3-']=512.0 window['-SLIDER4-'].update(0) values['-SLIDER4-']=0 write() elif event == '-BUTTON6-': print('Button 6 was clicked') window['-SLIDER1-'].update(open_value) values['-SLIDER1-']=open_value window['-SLIDER2-'].update(open_value) values['-SLIDER2-']=open_value window['-SLIDER3-'].update(open_value) values['-SLIDER3-']=open_value window['-SLIDER4-'].update(95) values['-SLIDER4-']=95 write() elif event == '-BUTTON7-': print('Button 7 was clicked') window['-SLIDER1-'].update(close_value) values['-SLIDER1-']=close_value window['-SLIDER2-'].update(close_value) values['-SLIDER2-']=close_value window['-SLIDER3-'].update(close_value) values['-SLIDER3-']=close_value window['-SLIDER4-'].update(5) values['-SLIDER4-']=5 write() elif event == '-BUTTON8-': print('Button 8 was clicked') value = "50000" + '\n' write_read(str(value)) while(arduino.readline() != b"" ): print(arduino.readline()) print(arduino.readline()) elif event == '-BUTTON10-': print('Button 10 was clicked') value = "60000" + '\n' write_read(str(value)) while(arduino.readline() != b"" ): print(arduino.readline()) print(arduino.readline()) # GUI schließen window.close()