123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 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()
|