Module src.main.python.servo

Expand source code
import machine
from actuator import Actuator


class Servo(Actuator):

    """Servo rotates in a range, given an angle"""
    current_angle = 0

    def __init__(self, pin_num, range_min=30, range_max=130, frequency=50):

        """ constructor.
        :param pin_num: number of pin that will command servo with PWM
        :param range_min: min angle the servo works
        :param range_max: max angle the servo works
        :param frequency: frequency PWM of servo """
        pin = machine.Pin(pin_num)
        self.servo = machine.PWM(pin, freq=frequency)
        self.range_min = range_min
        self.range_max = range_max
        self.frequency = frequency

    def __str__(self):
        """prints the object."""
        return "Servo: current angle: {}, ".format(self.current_angle)

    def angle(self, angle):
        """moves actuator to angle."""
        if self.range_min <= angle <= self.range_max:
            self.current_angle = angle
            self.servo.duty(angle)
            return True
        else:
            return False

    def get_angle(self):
        """current angle."""
        return self.current_angle

Classes

class Servo (pin_num, range_min=30, range_max=130, frequency=50)

Servo rotates in a range, given an angle

constructor. :param pin_num: number of pin that will command servo with PWM :param range_min: min angle the servo works :param range_max: max angle the servo works :param frequency: frequency PWM of servo

Expand source code
class Servo(Actuator):

    """Servo rotates in a range, given an angle"""
    current_angle = 0

    def __init__(self, pin_num, range_min=30, range_max=130, frequency=50):

        """ constructor.
        :param pin_num: number of pin that will command servo with PWM
        :param range_min: min angle the servo works
        :param range_max: max angle the servo works
        :param frequency: frequency PWM of servo """
        pin = machine.Pin(pin_num)
        self.servo = machine.PWM(pin, freq=frequency)
        self.range_min = range_min
        self.range_max = range_max
        self.frequency = frequency

    def __str__(self):
        """prints the object."""
        return "Servo: current angle: {}, ".format(self.current_angle)

    def angle(self, angle):
        """moves actuator to angle."""
        if self.range_min <= angle <= self.range_max:
            self.current_angle = angle
            self.servo.duty(angle)
            return True
        else:
            return False

    def get_angle(self):
        """current angle."""
        return self.current_angle

Ancestors

  • actuator.Actuator

Class variables

var current_angle

Methods

def angle(self, angle)

moves actuator to angle.

Expand source code
def angle(self, angle):
    """moves actuator to angle."""
    if self.range_min <= angle <= self.range_max:
        self.current_angle = angle
        self.servo.duty(angle)
        return True
    else:
        return False
def get_angle(self)

current angle.

Expand source code
def get_angle(self):
    """current angle."""
    return self.current_angle