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=(-254, 254), size=(slider_width, slider_hight), default_value=0, 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))] ] arduino = serial.Serial(port='/dev/ttyUSB0', baudrate=9600, 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) val_1 = "0" if slider4_value < 0: slider4_value = numpy.abs(slider4_value) val_1 = "1" print("1 " + str(int(slider1_value))) print("2 " + str(int(slider2_value))) print( "3 " + str(int(slider3_value))) print("4" +val_1+ 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)))) write_read(str("4"+val_1+str(int(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(0) values['-SLIDER4-']=0 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(0) values['-SLIDER4-']=0 write() elif event == '-BUTTON8-': print('Button 8 was clicked') value = "50000" write_read(str(value)) while(arduino.readline() != b"" ): print(arduino.readline()) print(arduino.readline()) # GUI schließen window.close()