-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
53 lines (46 loc) · 1.28 KB
/
Copy pathmain.py
File metadata and controls
53 lines (46 loc) · 1.28 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
import sys
from i2c import imu_mma
from gpio.keyboard import Listener
from gpio.rover import Rover
import threading
import time
RUNNING = False
def control_rover(key):
global rover
if key == 'UP':
rover.forward()
elif key == 'RIGHT':
rover.turn_right()
elif key == 'DOWN':
rover.stop()
elif key == 'LEFT':
rover.turn_left()
def track_acceleration(dev, verbose):
global RUNNING
while RUNNING:
imu_mma.track_acceleration(dev, verbose)
time.sleep(0.25)
if __name__ == "__main__":
RUNNING = True
print("Starting")
dev = imu_mma.init_device()
mma_thread = threading.Thread(target=track_acceleration, args=[dev, True])
print("======================")
print("Initializing Rover")
rover = Rover()
print("----------------------")
print("Initializing Listener")
listener = Listener()
print("Listening for input...")
print("----------------------")
print("Up Arrow : Go Forward")
print("Right Arrow : Go Right")
print("Left Arrow : Go Left")
print("Down Arrow : Stop")
print("Press Ctrl+D to exit")
print("----------------------")
mma_thread.start()
listener.listen(cb=control_rover)
RUNNING = False
print("Exiting...")
sys.exit(0)