-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmove.py
More file actions
78 lines (68 loc) · 1.84 KB
/
move.py
File metadata and controls
78 lines (68 loc) · 1.84 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import RPi.GPIO as GPIO
import time
# Motor control pins
IN1 = 17 # Motor A forward
IN2 = 18 # Motor A backward
IN3 = 22 # Motor B forward
IN4 = 23 # Motor B backward
# Setup
GPIO.setmode(GPIO.BCM)
GPIO.setup([IN1, IN2, IN3, IN4], GPIO.OUT)
def move_forward(duration=2):
GPIO.output(IN1, GPIO.HIGH)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.HIGH)
GPIO.output(IN4, GPIO.LOW)
time.sleep(duration)
stop()
def move_backward(duration=2):
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.HIGH)
GPIO.output(IN3, GPIO.LOW)
GPIO.output(IN4, GPIO.HIGH)
time.sleep(duration)
stop()
def turn_left(duration=1):
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.HIGH)
GPIO.output(IN3, GPIO.HIGH)
GPIO.output(IN4, GPIO.LOW)
time.sleep(duration)
stop()
def turn_right(duration=1):
GPIO.output(IN1, GPIO.HIGH)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.LOW)
GPIO.output(IN4, GPIO.HIGH)
time.sleep(duration)
stop()
def stop():
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.LOW)
GPIO.output(IN4, GPIO.LOW)
def main():
print("Robot Movement Controller")
print("Commands: forward, backward, left, right, stop, exit")
try:
while True:
cmd = input(">> ").strip().lower()
if cmd == "forward":
move_forward()
elif cmd == "backward":
move_backward()
elif cmd == "left":
turn_left()
elif cmd == "right":
turn_right()
elif cmd == "stop":
stop()
elif cmd == "exit":
break
else:
print("Unknown command.")
finally:
GPIO.cleanup()
print("GPIO cleaned up. Exiting.")
if __name__ == "__main__":
main()