stepperMulti_keyb-serial.py (4982B)
1 import serial 2 import os 3 import sys 4 import keyboard 5 import time 6 7 ser = serial.Serial('/dev/ttyUSB1', 115200, timeout=1) 8 os.system("stty -echo") 9 10 previous_status = "0" 11 previous_message = "" 12 13 def write_serial(status, printed): 14 global previous_status 15 if status != previous_status: 16 clear_screen() 17 print(printed) 18 ser.write(str(status).encode() + b'\n') 19 previous_status = status 20 21 def clear_serial(status): 22 global previous_status 23 if status != previous_status: 24 clear_screen() 25 print("WAITING FOR USER INPUT! (TRY Q,W,E,R,T,A,S,D,F)") 26 ser.write(str(status).encode() + b'\n') 27 previous_status = status 28 29 def clear_screen(): 30 if sys.platform.startswith('win'): 31 os.system('cls') 32 else: 33 os.system('clear') 34 35 print("Python script is running...") 36 print("Is the serial port open?", ser.is_open) 37 38 waiting_for_input = False 39 40 while True: 41 if keyboard.is_pressed('q'): 42 write_serial(2, "KEYBOARD KEY [Q] PRESSED!") 43 time.sleep(0.25) 44 clear_serial(0) 45 waiting_for_input = True 46 elif keyboard.is_pressed('w'): 47 write_serial(3, "KEYBOARD KEY [W] PRESSED!") 48 time.sleep(0.25) 49 clear_serial(0) 50 waiting_for_input = True 51 elif keyboard.is_pressed('e'): 52 write_serial(4, "KEYBOARD KEY [E] PRESSED!") 53 time.sleep(0.25) 54 clear_serial(0) 55 waiting_for_input = True 56 elif keyboard.is_pressed('r'): 57 write_serial(5, "KEYBOARD KEY [R] PRESSED!") 58 time.sleep(0.25) 59 clear_serial(0) 60 waiting_for_input = True 61 elif keyboard.is_pressed('t'): 62 write_serial(6, "KEYBOARD KEY [T] PRESSED!") 63 time.sleep(0.25) 64 clear_serial(0) 65 waiting_for_input = True 66 elif keyboard.is_pressed('y'): 67 write_serial(7, "KEYBOARD KEY [Y] PRESSED!") 68 time.sleep(0.25) 69 clear_serial(0) 70 waiting_for_input = True 71 elif keyboard.is_pressed('a'): 72 write_serial(8, "KEYBOARD KEY [A] PRESSED!") 73 time.sleep(0.25) 74 clear_serial(0) 75 waiting_for_input = True 76 elif keyboard.is_pressed('s'): 77 write_serial(9, "KEYBOARD KEY [S] PRESSED!") 78 time.sleep(0.25) 79 clear_serial(0) 80 waiting_for_input = True 81 elif keyboard.is_pressed('d'): 82 write_serial(10, "KEYBOARD KEY [D] PRESSED!") 83 time.sleep(0.25) 84 clear_serial(0) 85 waiting_for_input = True 86 elif keyboard.is_pressed('f'): 87 write_serial(11, "KEYBOARD KEY [F] PRESSED!") 88 time.sleep(0.25) 89 clear_serial(0) 90 waiting_for_input = True 91 elif keyboard.is_pressed('g'): 92 write_serial(12, "KEYBOARD KEY [G] PRESSED!") 93 time.sleep(0.25) 94 clear_serial(0) 95 waiting_for_input = True 96 elif keyboard.is_pressed('h'): 97 write_serial(13, "KEYBOARD KEY [H] PRESSED!") 98 time.sleep(0.25) 99 clear_serial(0) 100 waiting_for_input = True 101 elif keyboard.is_pressed('z'): 102 write_serial(14, "KEYBOARD KEY [Z] PRESSED!") 103 time.sleep(0.25) 104 clear_serial(0) 105 waiting_for_input = True 106 elif keyboard.is_pressed('x'): 107 write_serial(15, "KEYBOARD KEY [X] PRESSED!") 108 time.sleep(0.25) 109 clear_serial(0) 110 waiting_for_input = True 111 elif keyboard.is_pressed('u'): 112 write_serial(16, "KEYBOARD KEY [U] PRESSED!") 113 time.sleep(0.25) 114 clear_serial(0) 115 waiting_for_input = True 116 elif keyboard.is_pressed('i'): 117 write_serial(17, "KEYBOARD KEY [I] PRESSED!") 118 time.sleep(0.25) 119 clear_serial(0) 120 waiting_for_input = True 121 elif keyboard.is_pressed('c'): 122 write_serial(18, "KEYBOARD KEY [C] PRESSED!") 123 time.sleep(0.25) 124 clear_serial(0) 125 waiting_for_input = True 126 elif keyboard.is_pressed('v'): 127 write_serial(19, "KEYBOARD KEY [V] PRESSED!") 128 time.sleep(0.25) 129 clear_serial(0) 130 waiting_for_input = True 131 elif keyboard.is_pressed('b'): 132 write_serial(20, "KEYBOARD KEY [B] PRESSED!") 133 time.sleep(0.25) 134 clear_serial(0) 135 waiting_for_input = True 136 elif keyboard.is_pressed('n'): 137 write_serial(21, "KEYBOARD KEY [N] PRESSED!") 138 time.sleep(0.25) 139 clear_serial(0) 140 waiting_for_input = True 141 elif keyboard.is_pressed('j'): 142 write_serial(22, "KEYBOARD KEY [J] PRESSED!") 143 time.sleep(0.25) 144 clear_serial(0) 145 waiting_for_input = True 146 elif keyboard.is_pressed('k'): 147 write_serial(23, "KEYBOARD KEY [K] PRESSED!") 148 time.sleep(0.25) 149 clear_serial(0) 150 waiting_for_input = True 151 elif keyboard.is_pressed('p'): 152 write_serial(1, "DONE.") 153 ser.close() 154 print("Serial port closed.") 155 break 156 else: 157 if waiting_for_input: 158 clear_screen() 159 print("WAITING FOR USER INPUT! (TRY Q,W,E,R,T,A,S,D,F)") 160 waiting_for_input = False 161