Esempio n. 1
0
    def __init__(self,
                 com='/dev/ttyACM0',
                 sunshader_pin=5,
                 servo_range=(0, 180),
                 sprinkler_pin=6):

        try:
            self.board = ArduinoDue(com)
        except Exception as e:
            self.board = None
            return

        #
        #
        # Setup the sunshader pin.
        #
        self.board.digital[sunshader_pin].mode = pyfirmata.SERVO
        self.sunshader_pin = sunshader_pin
        self.servo_range = servo_range
        self._angle = 0

        #
        # Setup the sprinkler pin.
        #
        self.board.digital[sprinkler_pin].mode = pyfirmata.DIGITAL
        self.sprinkler_pin = sprinkler_pin

        #
        # Initialize to center (not to load the servo).
        #
        self.setAngle(90)
Esempio n. 2
0
    def connect(self, port: str, board: str="uno") -> None:
        """
        Initialize a connection with the arduino.

        Parameters
        ----------
        port : str
            Computer serial port to which the arduino is connected
        board : str, optional
            | The type of the arduino that is being used:
            | ``uno``: `Arduino Uno <https://store.arduino.cc/products/arduino-uno-rev3>`_
            | ``mega``: `Arduino Mega <https://store.arduino.cc/products/arduino-mega-2560-rev3>`_
            | ``due``: `Arduino Due <https://store.arduino.cc/products/arduino-due>`_
            | ``nano``: `Arduino Nano <https://store.arduino.cc/products/arduino-nano>`_
        """
        self.port = port

        if board == "uno":
            self.board = Arduino(self.port)
        elif board == "mega":
            self.board = ArduinoMega(self.port)
        elif board == "due":
            self.board = ArduinoDue(self.port)
        elif board == "nano":
            self.board = ArduinoNano(self.port)
        else:
            raise UnknownBoardException("Unknown board " + board)
        self.it = util.Iterator(self.board)
        self.it.start()
Esempio n. 3
0
from pyfirmata import ArduinoDue
from pyfirmata import util

board = ArduinoDue('COM3')
LEDS = [
    board.get_pin('d:3:o'),
    board.get_pin('d:5:o'),
    board.get_pin('d:6:o'),
    board.get_pin('d:9:o')
]
SW = board.get_pin('d:10:i')

it = util.Iterator(board)
it.start()


def encode(num):
    if num < 0:
        num = 0
    elif num >= 16:
        num = 15

    str = '{0:04b}'.format(num)

    for i, value in enumerate(str):
        LEDS[i].write(int(value))

    return str


def read_sw():
Esempio n. 4
0
    def __init__(self):

        self.monitor_thread=None
        self.button = None
        self.a11 = None
        self.board = ArduinoDue('/dev/ttyS0')