@@ -419,6 +419,28 @@ def float(self):
419419 """Float motor"""
420420 self .pwm (0 )
421421
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+
422444
423445class MotorPair :
424446 """Pair of motors
@@ -438,6 +460,7 @@ def __init__(self, leftport, rightport):
438460 self ._leftmotor = Motor (leftport )
439461 self ._rightmotor = Motor (rightport )
440462 self .default_speed = 20
463+ self ._release = True
441464
442465 def set_default_speed (self , default_speed ):
443466 """Set the default speed of the motor
@@ -537,3 +560,27 @@ def run_to_position(self, degreesl, degreesr, speed=None, direction="shortest"):
537560 th2 .start ()
538561 th1 .join ()
539562 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