diff --git a/Code/Control/Laptop_Code/main_keyboard.py b/Code/Control/Laptop_Code/main_keyboard.py
index 27dbfc5725a908f06ff476ed547031b4c099e51e..b002e5816c7318a5d5deee6ba1d9c1ba1ad52a1a 100644
--- a/Code/Control/Laptop_Code/main_keyboard.py
+++ b/Code/Control/Laptop_Code/main_keyboard.py
@@ -301,21 +301,28 @@ def main_control(gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist, debugM):
     return pwm1, pwm2, pwm3, pwm4, dir1, dir2, dir3, dir4
 
 # ============= keyboard interruption ===================
-def keyboard_stop():
-    key = cv2.waitKey(5)
-    if key == ord('q'):
-        flag = 0
-        print_count = 1
-    return flag,print_count
-
-def keyboard_interrupt(key):
-
-    if key == ord('s'):
-        stop_all()
-    elif key == ord('c'):
-        manual_control()
-    elif key == ord('v'):
-        variables_change()
+
+def init():
+    pygame.init()
+    win= pygame.display.set_mode((200,200))
+
+def keyboard_stop(flag_s,print_count_s):
+
+    if get_key('q'):
+        flag_s = 0
+        print_count_s = 1
+    return flag_s,print_count_s
+
+def get_key(keyname):
+    ans = False
+    for eve in pygame.event.get(): pass
+    keyInput = pygame.key.get_pressed()
+    myKey = getattr(pygame,'K_{}'.format(keyname))
+
+    if keyInput[myKey]:
+        ans = True
+    pygame.display.update()
+    return ans
 
 def auto_control():
     # =================================== tested autonomous control ======================================================
@@ -382,32 +389,36 @@ if __name__ == '__main__':
 
     flag = 0
     print_count = 1
+    init()
     # =========== LOOP FOREVER===========
     while True:
 
-        key = cv2.waitKey(5)
-
-        if key == ord('a'):
+        if get_key('a'):
             flag = 1
             while (flag == 1):
                 auto_control()
-                flag,print_count = keyboard_stop()
+                flag, print_count = keyboard_stop(flag,print_count)
+                if flag == 0:
+                    cap.release()
+                    cv2.destroyAllWindows()
 
-        elif key == ord('s'):
+        elif get_key('s'):
             stop_all()
             print("stop all motors")
 
-        elif key == ord('c'):
+        elif get_key('m'):
             flag = 2
             while (flag == 2):
                 manual_control()
-                flag,print_count = keyboard_stop()
+                flag, print_count = keyboard_stop(flag,print_count)
 
-        elif key == ord('v'):
+        elif get_key('v'):
             flag = 3
             while (flag == 3):
                 variables_change()
-                flag,print_count = keyboard_stop()
+                flag, print_count = keyboard_stop(flag,print_count)
+        elif get_key('k'):
+            break
 
         if print_count is not 0:
             print("No subsystem is running")