Skip to content

Commit a12728e

Browse files
committed
make sure motors run at the same time for motorpair
1 parent 44e70d5 commit a12728e

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

buildhat/motors.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ def __init__(self, leftport, rightport):
278278
super().__init__()
279279
self._leftmotor = Motor(leftport)
280280
self._rightmotor = Motor(rightport)
281-
self.default_speed = 50
281+
self.default_speed = 20
282282

283283
def set_default_speed(self, default_speed):
284284
"""Sets the default speed of the motor
@@ -298,8 +298,7 @@ def run_for_rotations(self, rotations, speedl=None, speedr=None):
298298
speedl = self.default_speed
299299
if speedr is None:
300300
speedr = self.default_speed
301-
self._leftmotor.run_for_degrees(int(rotations * 360), speedl)
302-
self._rightmotor.run_for_degrees(int(rotations * 360), speedr)
301+
self.run_for_degrees(int(rotations * 360), speedl, speedr)
303302

304303
def run_for_degrees(self, degrees, speedl=None, speedr=None):
305304
"""Runs pair of motors for degrees
@@ -312,8 +311,14 @@ def run_for_degrees(self, degrees, speedl=None, speedr=None):
312311
speedl = self.default_speed
313312
if speedr is None:
314313
speedr = self.default_speed
315-
self._leftmotor.run_for_degrees(degrees, speedl)
316-
self._rightmotor.run_for_degrees(degrees, speedr)
314+
th1 = threading.Thread(target=self._leftmotor.run_for_degrees, args=(degrees,), kwargs={'speed': speedl, 'blocking': True})
315+
th1.daemon = True
316+
th2 = threading.Thread(target=self._rightmotor.run_for_degrees, args=(degrees,), kwargs={'speed': speedr, 'blocking': True})
317+
th2.daemon = True
318+
th1.start()
319+
th2.start()
320+
th1.join()
321+
th2.join()
317322

318323
def run_for_seconds(self, seconds, speedl=None, speedr=None):
319324
"""Runs pair for N seconds
@@ -326,9 +331,9 @@ def run_for_seconds(self, seconds, speedl=None, speedr=None):
326331
speedl = self.default_speed
327332
if speedr is None:
328333
speedr = self.default_speed
329-
th1 = threading.Thread(target=self._leftmotor._run_for_seconds, args=(seconds,), kwargs={'speed': speedl, 'blocking': True})
334+
th1 = threading.Thread(target=self._leftmotor._run_for_seconds, args=(seconds,), kwargs={'speed': speedl})
330335
th1.daemon = True
331-
th2 = threading.Thread(target=self._rightmotor._run_for_seconds, args=(seconds,), kwargs={'speed': speedr, 'blocking': True})
336+
th2 = threading.Thread(target=self._rightmotor._run_for_seconds, args=(seconds,), kwargs={'speed': speedr})
332337
th2.daemon = True
333338
th1.start()
334339
th2.start()

0 commit comments

Comments
 (0)