/
roomba.py
65 lines (51 loc) · 1.05 KB
/
roomba.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
63
64
65
import serial
import RPi.GPIO as GPIO
import time
import struct
dd_pin = 7
PASSIVE = 130
SAFE = 131
FULL = 132
port = serial.Serial("/dev/ttyAMA0", baudrate=19200, timeout=3.0)
port.close()
port.open()
def turn_on():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.output(7, GPIO.HIGH)
time.sleep(.1)
GPIO.output(7, GPIO.LOW)
time.sleep(.5)
GPIO.output(7, GPIO.HIGH)
time.sleep(2)
def set_mode(mode):
write_num(128)
write_num(mode)
time.sleep(1)
def write_num(num):
port.write(struct.pack('!B', num))
def safe_mode():
set_mode(SAFE)
def full_mode():
set_mode(FULL)
def passive_mode():
set_mode(PASSIVE)
def set_digits(digit1, digit2, digit3, digit4):
write_num(164)
port.write(digit1)
port.write(digit2)
port.write(digit3)
port.write(digit4)
def set_digits_string(msg):
safe_mode()
set_digits(msg[0], msg[1], msg[2], msg[3])
def clean():
turn_on()
write_num(135)
def dock():
turn_on()
write_num(143)
def power():
write_num(133)
turn_on()
#safe_mode()