Skip to content

Commit 2391e93

Browse files
committed
Allow manual selection of serial port
1 parent 364a66b commit 2391e93

File tree

5 files changed

+21
-8
lines changed

5 files changed

+21
-8
lines changed

config/servos.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
servos:
2+
port: /dev/ttyAMA0
23
conf:
34
leg_l_hip: { id: 0, pin: 9, range: [0, 180], start: 40 }
45
leg_l_knee: { id: 1, pin: 10, range: [0, 180], start: 10 }

main.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,11 @@ def main():
7272

7373
# Throw exception to safely exit script when terminated
7474
signal.signal(signal.SIGTERM, Config.exit)
75-
7675
# GPIO
7776
# gpio = pigpio.pi()
7877

7978
# Arduino connection
80-
serial = ArduinoSerial()
79+
serial = ArduinoSerial(port=Config.get('servos','port'))
8180

8281
servos = dict()
8382
servo_conf = Config.get('servos','conf')
@@ -184,7 +183,12 @@ def main():
184183
minute_loop = time()
185184
loop = True
186185
# pub.sendMessage('speak', msg='hi')
187-
# pub.sendMessage('animate', action='celebrate')
186+
# print('taking over servos')
187+
# pub.sendMessage('servo:pan:mvabs', percentage=50)
188+
# print('done')
189+
# print('nodding')
190+
# pub.sendMessage('animate', action='head_nod')
191+
# print('done')
188192

189193
try:
190194
pub.sendMessage('log', msg="[Main] Loop started")

main_viam.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,9 @@ async def main():
159159
# print(f"my-webcam get_image return value: {my_webcam_return_value}")
160160
# roboflow_test = VisionClient.from_robot(robot, "roboflow-test")
161161

162-
162+
# print('taking over servos')
163+
# pub.sendMessage('servo:pan:mvabs', percentage=50)
164+
# print('done')
163165

164166
try:
165167
while loop:

modules/arduinoserial.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@ class ArduinoSerial:
1616
DEVICE_SERVO_RELATIVE = 4
1717
ORDER_RECEIVED = 5
1818
def __init__(self, **kwargs):
19-
self.serial_file = ArduinoSerial.initialise()
19+
self.port = kwargs.get('port', '/dev/ttyAMA0')
20+
self.baudrate = kwargs.get('baudrate', 115200)
21+
self.serial_file = ArduinoSerial.initialise(self.port, self.baudrate)
2022
self.file = None
2123
pub.subscribe(self.send, 'serial')
2224

2325
@staticmethod
24-
def initialise():
26+
def initialise(port, baudrate):
2527
try:
26-
serial_file = open_serial_port(baudrate=115200, timeout=None)
28+
print('Trying to select port ' + port)
29+
serial_file = open_serial_port(serial_port=port, baudrate=baudrate, timeout=None)
2730
except Exception as e:
2831
raise e
2932
is_connected = True # assume connection

modules/robust_serial/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ def get_serial_ports():
5656
try:
5757
s = serial.Serial(port)
5858
s.close()
59+
print('[Serial] Found ' + port)
5960
results.append(port)
6061
except (OSError, serial.SerialException):
6162
pass
@@ -73,9 +74,11 @@ def open_serial_port(serial_port=None, baudrate=115200, timeout=0, write_timeout
7374
:param write_timeout: (int)
7475
:return: (Serial Object)
7576
"""
77+
ports = get_serial_ports()
78+
print('Serial port sent: ' + serial_port)
7679
# Open serial port (for communication with Arduino)
7780
if serial_port is None:
78-
serial_port = get_serial_ports()[0]
81+
serial_port = ports[0]
7982
# timeout=0 non-blocking mode, return immediately in any case, returning zero or more,
8083
# up to the requested number of bytes
8184
return serial.Serial(port=serial_port, baudrate=baudrate, timeout=timeout, writeTimeout=write_timeout)

0 commit comments

Comments
 (0)