コード例 #1
0
ファイル: sensor_server.py プロジェクト: dtbinh/RobotBrain
    def start(self):
        """ Initialize and start threads. """

        # Sensors
        self.acc = MCP3008AnalogSensor([0, 1, 2], range=(100, 800))
        self.pot = MCP3008AnalogSensor([3])
        self.switch = MCP3008AnalogSensor([4])
        self.ping = PingSensor(25, 24)

        # Actuators
        self.motor = PWMActuator(23)
        self.led = PWMActuator(18)
        self.servo = ServoActuator(0)
        self.actuators = {
            'motor': self.motor,
            'led': self.led,
            'servo': self.servo,
        }

        self._server_thread = threading.Thread(target=self._server_worker)
        self._server_thread.start()

        self._sensor_thread = threading.Thread(target=self._read_worker)
        self._sensor_thread.start()

        self._link_thread = threading.Thread(target=self._link_worker)
        self._link_thread.start()
コード例 #2
0
class MotorActuator(object):
    """ A Motor uses two PWM pins to drive a motor connected to an H-Bridge.

    Parameters
    ----------
    pin1 : int
        The forward pin connected to the H-Bridge motor control chip.
    pin2 : int
        The backward pin connected to the H-Bridge motor control chip.

    """

    def __init__(self, pin1, pin2):
        self.forward_pin = PWMActuator(pin1)
        self.backward_pin = PWMActuator(pin2)

    def drive_forward(self):
        self.forward_pin.set(1)
        self.backward_pin.set(0)

    def drive_back(self):
        self.forward_pin.set(0)
        self.backward_pin.set(1)

    def stop(self):
        self.forward_pin.set(0)
        self.backward_pin.set(0)

    def drive(self, speed=0.0):
        if speed == 0.0:
            self.stop()
        elif speed >= 0.0:
            self.forward_pin.set(speed)
            self.backward_pin.set(0)
        else:
            self.forward_pin.set(0)
            self.backward_pin.set(abs(speed))

    def set_normalized(self, val):
        speed = val * 2 - 1
        self.drive(speed=speed)
コード例 #3
0
 def __init__(self, pin1, pin2):
     self.forward_pin = PWMActuator(pin1)
     self.backward_pin = PWMActuator(pin2)
コード例 #4
0
class MotorActuator(object):
    """ A Motor uses two PWM pins to drive a motor connected to an H-Bridge.

    Parameters
    ----------
    pin1 : int
        The forward pin connected to the H-Bridge motor control chip.
    pin2 : int
        The backward pin connected to the H-Bridge motor control chip.

    """
    def __init__(self, pin1, pin2):
        self.forward_pin = PWMActuator(pin1)
        self.backward_pin = PWMActuator(pin2)

    def drive_forward(self):
        self.forward_pin.set(1)
        self.backward_pin.set(0)

    def drive_back(self):
        self.forward_pin.set(0)
        self.backward_pin.set(1)

    def stop(self):
        self.forward_pin.set(0)
        self.backward_pin.set(0)

    def drive(self, speed=0.0):
        if speed == 0.0:
            self.stop()
        elif speed >= 0.0:
            self.forward_pin.set(speed)
            self.backward_pin.set(0)
        else:
            self.forward_pin.set(0)
            self.backward_pin.set(abs(speed))

    def set_normalized(self, val):
        speed = val * 2 - 1
        self.drive(speed=speed)
コード例 #5
0
 def __init__(self, pin1, pin2):
     self.forward_pin = PWMActuator(pin1)
     self.backward_pin = PWMActuator(pin2)