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)
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()
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():
def __init__(self): self.monitor_thread=None self.button = None self.a11 = None self.board = ArduinoDue('/dev/ttyS0')