Gripper_gui_test.py 5.7 KB

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