/
TELEOPERATION.py
62 lines (52 loc) · 1.54 KB
/
TELEOPERATION.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from pynput import keyboard
import time
import pigpio
SERVO_1 = 4
SERVO_2 = 12
SERVO_3 = 16
SERVO_4 = 26
pi = pigpio.pi() # Connect to local Pi.
init = 1460
forward = 1000
reverse = 1900
print("init")
pi.set_servo_pulsewidth(SERVO_1, init)
pi.set_servo_pulsewidth(SERVO_2, init)
pi.set_servo_pulsewidth(SERVO_3, init)
pi.set_servo_pulsewidth(SERVO_4, init)
def on_press(key):
if key == keyboard.Key.up:
print("forward")
pi.set_servo_pulsewidth(SERVO_1, forward+80)
pi.set_servo_pulsewidth(SERVO_2, forward)
elif key == keyboard.Key.ctrl:
print("up")
pi.set_servo_pulsewidth(SERVO_3, forward)
pi.set_servo_pulsewidth(SERVO_4, reverse)
elif key == keyboard.Key.tab:
print("down")
pi.set_servo_pulsewidth(SERVO_3, reverse)
pi.set_servo_pulsewidth(SERVO_4, forward)
elif key == keyboard.Key.down:
print("backward")
pi.set_servo_pulsewidth(SERVO_1, reverse)
pi.set_servo_pulsewidth(SERVO_2, reverse)
elif key == keyboard.Key.left:
print("right")
pi.set_servo_pulsewidth(SERVO_1, reverse)
pi.set_servo_pulsewidth(SERVO_2, forward)
elif key == keyboard.Key.right:
print("left")
pi.set_servo_pulsewidth(SERVO_1, forward)
pi.set_servo_pulsewidth(SERVO_2, reverse)
def on_release(key):
pi.set_servo_pulsewidth(SERVO_1, init)
pi.set_servo_pulsewidth(SERVO_2, init)
pi.set_servo_pulsewidth(SERVO_3, init)
pi.set_servo_pulsewidth(SERVO_4, init)
if key == keyboard.Key.esc:
# Stop listener
return False
# Collect events until released
with keyboard.Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()