@@ -419,6 +419,28 @@ def float(self):
419
419
"""Float motor"""
420
420
self .pwm (0 )
421
421
422
+ @property
423
+ def release (self ):
424
+ """Determine if motor is released after running, so can be turned by hand
425
+
426
+ :getter: Returns whether motor is released, so can be turned by hand
427
+ :setter: Sets whether motor is released, so can be turned by hand
428
+ :return: Whether motor is released, so can be turned by hand
429
+ :rtype: bool
430
+ """
431
+ return self ._release
432
+
433
+ @release .setter
434
+ def release (self , value ):
435
+ """Determine if the motor is released after running, so can be turned by hand
436
+
437
+ :param value: Whether motor should be released, so can be turned by hand
438
+ :type value: bool
439
+ """
440
+ if not isinstance (value , bool ):
441
+ raise MotorError ("Must pass boolean" )
442
+ self ._release = value
443
+
422
444
423
445
class MotorPair :
424
446
"""Pair of motors
@@ -438,6 +460,7 @@ def __init__(self, leftport, rightport):
438
460
self ._leftmotor = Motor (leftport )
439
461
self ._rightmotor = Motor (rightport )
440
462
self .default_speed = 20
463
+ self ._release = True
441
464
442
465
def set_default_speed (self , default_speed ):
443
466
"""Set the default speed of the motor
@@ -537,3 +560,27 @@ def run_to_position(self, degreesl, degreesr, speed=None, direction="shortest"):
537
560
th2 .start ()
538
561
th1 .join ()
539
562
th2 .join ()
563
+
564
+ @property
565
+ def release (self ):
566
+ """Determine if motors are released after running, so can be turned by hand
567
+
568
+ :getter: Returns whether motors are released, so can be turned by hand
569
+ :setter: Sets whether motors are released, so can be turned by hand
570
+ :return: Whether motors are released, so can be turned by hand
571
+ :rtype: bool
572
+ """
573
+ return self ._release
574
+
575
+ @release .setter
576
+ def release (self , value ):
577
+ """Determine if motors are released after running, so can be turned by hand
578
+
579
+ :param value: Whether motors should be released, so can be turned by hand
580
+ :type value: bool
581
+ """
582
+ if not isinstance (value , bool ):
583
+ raise MotorError ("Must pass boolean" )
584
+ self ._release = value
585
+ self ._leftmotor .release = value
586
+ self ._rightmotor .release = value
0 commit comments