a
This commit is contained in:
63
walk2.py
63
walk2.py
@@ -1,7 +1,8 @@
|
||||
import threading
|
||||
import time
|
||||
import sys
|
||||
import select
|
||||
from adafruit_servokit import ServoKit # type: ignore
|
||||
from pynput import keyboard
|
||||
|
||||
# Initialize ServoKit
|
||||
kit = ServoKit(channels=16)
|
||||
@@ -99,40 +100,36 @@ def group_2(servo_angles):
|
||||
thread.join()
|
||||
|
||||
# Main loop control
|
||||
running = False # Control flag
|
||||
|
||||
def on_press(key):
|
||||
global running
|
||||
try:
|
||||
if key.char == 'w':
|
||||
running = True
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def on_release(key):
|
||||
global running
|
||||
if key == keyboard.Key.esc:
|
||||
return False # Stop listener
|
||||
try:
|
||||
if key.char == 'w':
|
||||
running = False
|
||||
except AttributeError:
|
||||
pass
|
||||
def is_input_available():
|
||||
"""Check if input is available without blocking."""
|
||||
return select.select([sys.stdin], [], [], 0)[0]
|
||||
|
||||
# Main execution
|
||||
if __name__ == "__main__":
|
||||
print("Press 'w' to execute movements. Press 'Esc' to exit.")
|
||||
listener = keyboard.Listener(on_press=on_press, on_release=on_release)
|
||||
listener.start()
|
||||
print("Press 'w' to execute movements. Press 'q' to quit.")
|
||||
|
||||
while True:
|
||||
if running:
|
||||
print("Executing Group 1 movements...")
|
||||
group_1(DEFAULT_SERVO_ANGLES)
|
||||
time.sleep(DELAY)
|
||||
running = False
|
||||
try:
|
||||
while True:
|
||||
if is_input_available():
|
||||
input_char = sys.stdin.read(1).strip()
|
||||
if input_char == 'w':
|
||||
running = True
|
||||
elif input_char == 'q':
|
||||
print("Exiting...")
|
||||
break
|
||||
else:
|
||||
running = False
|
||||
|
||||
print("Executing Group 2 movements...")
|
||||
group_2(DEFAULT_SERVO_ANGLES)
|
||||
time.sleep(DELAY)
|
||||
else:
|
||||
time.sleep(0.1) # Idle loop
|
||||
if running:
|
||||
print("Executing Group 1 movements...")
|
||||
group_1(DEFAULT_SERVO_ANGLES)
|
||||
time.sleep(DELAY)
|
||||
|
||||
print("Executing Group 2 movements...")
|
||||
group_2(DEFAULT_SERVO_ANGLES)
|
||||
time.sleep(DELAY)
|
||||
else:
|
||||
time.sleep(0.1) # Idle loop
|
||||
except KeyboardInterrupt:
|
||||
print("\nProgram terminated.")
|
||||
|
||||
Reference in New Issue
Block a user