Gripper_gui_test.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. import PySimpleGUI as sg
  2. import serial
  3. import numpy
  4. import time
  5. slider_width = 100
  6. slider_hight = 40
  7. button_width = 10
  8. button_hight = 3
  9. open_value = 650
  10. close_value = 350
  11. layout = [
  12. [sg.Text('Servomotor 1')],
  13. [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,
  14. [sg.Text('Servomotor 2')],
  15. [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,
  16. [sg.Text('Servomotor 3')],
  17. [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,
  18. [sg.Text('Motor')],
  19. [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))],
  20. [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))]
  21. ]
  22. arduino = serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=.1)
  23. def write_read(x):
  24. arduino.write(bytes(x, 'utf-8'))
  25. time.sleep(0.1)
  26. data = arduino.readline()
  27. print(data)
  28. return data
  29. # GUI erstellen
  30. window = sg.Window('Slider GUI', layout,resizable=True,ttk_theme='classic')
  31. def write():
  32. # Werte der Schieberegler abrufen
  33. slider1_value = 512+(512-values['-SLIDER1-'])
  34. slider2_value = 512+(512-values['-SLIDER2-'])
  35. slider3_value = values['-SLIDER3-']
  36. slider4_value = values['-SLIDER4-']
  37. # Beispiel: Ausgabe der aktuellen Werte der Schieberegler
  38. print("Slider 1:", slider1_value)
  39. print("Slider 2:", slider2_value)
  40. print("Slider 3:", slider3_value)
  41. print("Slider 4:", slider4_value)
  42. val_1 = "0"
  43. if slider4_value < 0:
  44. slider4_value = numpy.abs(slider4_value)
  45. val_1 = "1"
  46. print("1 " + str(int(slider1_value)))
  47. print("2 " + str(int(slider2_value)))
  48. print( "3 " + str(int(slider3_value)))
  49. print("4" +val_1+ str(int(slider4_value)))
  50. write_read(str("1 "+str(int(slider1_value))))
  51. write_read(str("2 "+str(int(slider2_value))))
  52. write_read(str("3 "+str(int(slider3_value))))
  53. write_read(str("4"+val_1+str(int(slider4_value))))
  54. # GUI-Ereignisschleife
  55. while True:
  56. event, values = window.read()
  57. if event == sg.WINDOW_CLOSED:
  58. break
  59. if event == '-BUTTON9-':
  60. print('Button OK was clicked')
  61. write()
  62. if event == '-BUTTON1-':
  63. print('Button 1 was clicked')
  64. window['-SLIDER1-'].update(512)
  65. values['-SLIDER1-']=512.0
  66. write()
  67. elif event == '-BUTTON2-':
  68. print('Button 2 was clicked')
  69. window['-SLIDER2-'].update(512)
  70. values['-SLIDER2-']=512.0
  71. write()
  72. elif event == '-BUTTON3-':
  73. print('Button 3 was clicked')
  74. window['-SLIDER3-'].update(512)
  75. values['-SLIDER3-']=512.0
  76. write()
  77. elif event == '-BUTTON4-':
  78. print('Button 4 was clicked')
  79. window['-SLIDER4-'].update(0)
  80. values['-SLIDER4-']=0
  81. write()
  82. elif event == '-BUTTON5-':
  83. print('Button 5 was clicked')
  84. window['-SLIDER1-'].update(512)
  85. values['-SLIDER1-']=512.0
  86. window['-SLIDER2-'].update(512)
  87. values['-SLIDER2-']=512.0
  88. window['-SLIDER3-'].update(512)
  89. values['-SLIDER3-']=512.0
  90. window['-SLIDER4-'].update(0)
  91. values['-SLIDER4-']=0
  92. write()
  93. elif event == '-BUTTON6-':
  94. print('Button 6 was clicked')
  95. window['-SLIDER1-'].update(open_value)
  96. values['-SLIDER1-']=open_value
  97. window['-SLIDER2-'].update(open_value)
  98. values['-SLIDER2-']=open_value
  99. window['-SLIDER3-'].update(open_value)
  100. values['-SLIDER3-']=open_value
  101. window['-SLIDER4-'].update(0)
  102. values['-SLIDER4-']=0
  103. write()
  104. elif event == '-BUTTON7-':
  105. print('Button 7 was clicked')
  106. window['-SLIDER1-'].update(close_value)
  107. values['-SLIDER1-']=close_value
  108. window['-SLIDER2-'].update(close_value)
  109. values['-SLIDER2-']=close_value
  110. window['-SLIDER3-'].update(close_value)
  111. values['-SLIDER3-']=close_value
  112. window['-SLIDER4-'].update(0)
  113. values['-SLIDER4-']=0
  114. write()
  115. elif event == '-BUTTON8-':
  116. print('Button 8 was clicked')
  117. value = "50000"
  118. write_read(str(value))
  119. while(arduino.readline() != b"" ):
  120. print(arduino.readline())
  121. print(arduino.readline())
  122. # GUI schließen
  123. window.close()