def configure(self, baudrate=100000, polarity=0, phase=0, bits=8): if detector.board.any_raspberry_pi: from adafruit_blinka.microcontroller.bcm283x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif detector.board.any_beaglebone: from adafruit_blinka.microcontroller.am335x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ORANGE_PI_PC: from adafruit_blinka.microcontroller.allwinner_h3.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.GIANT_BOARD: from adafruit_blinka.microcontroller.sama5.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI else: from machine import SPI as _SPI from machine import Pin if self._locked: # TODO check if #init ignores MOSI=None rather than unsetting, to save _pinIds attribute self._spi.init(baudrate=baudrate, polarity=polarity, phase=phase, bits=bits, firstbit=_SPI.MSB, sck=Pin(self._pins[0].id), mosi=Pin(self._pins[1].id), miso=Pin(self._pins[2].id)) else: raise RuntimeError("First call try_lock()")
def configure(self, baudrate=100000, polarity=0, phase=0, bits=8): if detector.board.any_raspberry_pi or detector.board.any_raspberry_pi_40_pin: from adafruit_blinka.microcontroller.bcm283x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif detector.board.any_beaglebone: from adafruit_blinka.microcontroller.am335x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ORANGE_PI_PC or board_id == ap_board.ORANGE_PI_R1 or board_id == ap_board.ORANGE_PI_ZERO: from adafruit_blinka.microcontroller.allwinner.h3.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.GIANT_BOARD: from adafruit_blinka.microcontroller.sama5.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.CORAL_EDGE_TPU_DEV: from adafruit_blinka.microcontroller.nxp_imx8m.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ODROID_C2: from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.DRAGONBOARD_410C: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.JETSON_NANO: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t210.pin import Pin elif board_id == ap_board.JETSON_TX1: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t210.pin import Pin elif board_id == ap_board.JETSON_TX2: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t186.pin import Pin elif board_id == ap_board.JETSON_XAVIER: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t194.pin import Pin elif detector.board.ftdi_ft232h: from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI from adafruit_blinka.microcontroller.ft232h.pin import Pin elif detector.board.binho_nova: from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI from adafruit_blinka.microcontroller.nova.pin import Pin elif board_id == ap_board.PINE64 or board_id == ap_board.PINEBOOK or board_id == ap_board.PINEPHONE: from adafruit_blinka.microcontroller.allwinner.a64.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI else: from machine import SPI as _SPI from machine import Pin if self._locked: # TODO check if #init ignores MOSI=None rather than unsetting, to save _pinIds attribute self._spi.init(baudrate=baudrate, polarity=polarity, phase=phase, bits=bits, firstbit=_SPI.MSB, sck=Pin(self._pins[0].id), mosi=Pin(self._pins[1].id), miso=Pin(self._pins[2].id)) else: raise RuntimeError("First call try_lock()")
def __init__( self, pixel_count, gpio_pin, pixel_order ): """ Create a new controller for the WS2801 based lights Arguments: pixel_count {int} -- The total number of neopixels. gpio_pin {int} -- The GPIO pin the WS281x data pin is on. This is IO addressing, NOT physical addressing. pixel_order {str} -- The RGB or GRB order that colors are provided in. """ super().__init__(pixel_count) if not local_debug.is_debug(): from adafruit_blinka.microcontroller.bcm283x.pin import Pin self.__leds__ = neopixel.NeoPixel( Pin(gpio_pin), # board.D18, #gpio_pin, pixel_count, auto_write=False, pixel_order=pixel_order) # Clear all the pixels to turn them off. self.set_all([0, 0, 0])
def __init__(self, pin): self._pin = Pin(pin.id) self.direction = Direction.INPUT
class DigitalInOut(ContextManaged): _pin = None def __init__(self, pin): self._pin = Pin(pin.id) self.direction = Direction.INPUT def switch_to_output(self, value=False, drive_mode=DriveMode.PUSH_PULL): self.direction = Direction.OUTPUT self.value = value self.drive_mode = drive_mode def switch_to_input(self, pull=None): self.direction = Direction.INPUT self.pull = pull def deinit(self): del self._pin @property def direction(self): return self.__direction @direction.setter def direction(self, dir): self.__direction = dir if dir is Direction.OUTPUT: self._pin.init(mode=Pin.OUT) self.value = False self.drive_mode = DriveMode.PUSH_PULL elif dir is Direction.INPUT: self._pin.init(mode=Pin.IN) self.pull = None else: raise AttributeError("Not a Direction") @property def value(self): return self._pin.value() is 1 @value.setter def value(self, val): if self.direction is Direction.OUTPUT: self._pin.value(1 if val else 0) else: raise AttributeError("Not an output") @property def pull(self): if self.direction is Direction.INPUT: return self.__pull else: raise AttributeError("Not an input") @pull.setter def pull(self, pul): if self.direction is Direction.INPUT: self.__pull = pul if pul is Pull.UP: self._pin.init(mode=Pin.IN, pull=Pin.PULL_UP) elif pul is Pull.DOWN: if hasattr(Pin, "PULL_DOWN"): self._pin.init(mode=Pin.IN, pull=Pin.PULL_DOWN) else: raise NotImplementedError("{} unsupported on {}".format( Pull.DOWN, board_id)) elif pul is None: self._pin.init(mode=Pin.IN, pull=None) else: raise AttributeError("Not a Pull") else: raise AttributeError("Not an input") @property def drive_mode(self): if self.direction is Direction.OUTPUT: return self.__drive_mode # else: raise AttributeError("Not an output") @drive_mode.setter def drive_mode(self, mod): self.__drive_mode = mod if mod is DriveMode.OPEN_DRAIN: self._pin.init(mode=Pin.OPEN_DRAIN) elif mod is DriveMode.PUSH_PULL: self._pin.init(mode=Pin.OUT)
class DigitalInOut(ContextManaged): """DigitalInOut CircuitPython compatibility implementation""" _pin = None def __init__(self, pin): self._pin = Pin(pin.id) self.direction = Direction.INPUT def switch_to_output(self, value=False, drive_mode=DriveMode.PUSH_PULL): """Switch the Digital Pin Mode to Output""" self.direction = Direction.OUTPUT self.value = value self.drive_mode = drive_mode def switch_to_input(self, pull=None): """Switch the Digital Pin Mode to Input""" self.direction = Direction.INPUT self.pull = pull def deinit(self): """Deinitialize the Digital Pin""" del self._pin @property def direction(self): """Get or Set the Digital Pin Direction""" return self.__direction @direction.setter def direction(self, value): self.__direction = value if value is Direction.OUTPUT: self._pin.init(mode=Pin.OUT) self.value = False self.drive_mode = DriveMode.PUSH_PULL elif value is Direction.INPUT: self._pin.init(mode=Pin.IN) self.pull = None else: raise AttributeError("Not a Direction") @property def value(self): """Get or Set the Digital Pin Value""" return self._pin.value() == 1 @value.setter def value(self, val): if self.direction is Direction.OUTPUT: self._pin.value(1 if val else 0) else: raise AttributeError("Not an output") @property def pull(self): """Get or Set the Digital Pin Direction""" if self.direction is Direction.INPUT: return self.__pull raise AttributeError("Not an input") @pull.setter def pull(self, pul): if self.direction is Direction.INPUT: self.__pull = pul if pul is Pull.UP: self._pin.init(mode=Pin.IN, pull=Pin.PULL_UP) elif pul is Pull.DOWN: if hasattr(Pin, "PULL_DOWN"): self._pin.init(mode=Pin.IN, pull=Pin.PULL_DOWN) else: raise NotImplementedError("{} unsupported on {}".format( Pull.DOWN, board_id)) elif pul is None: self._pin.init(mode=Pin.IN, pull=None) else: raise AttributeError("Not a Pull") else: raise AttributeError("Not an input") @property def drive_mode(self): """Get or Set the Digital Pin Drive Mode""" if self.direction is Direction.OUTPUT: return self.__drive_mode # raise AttributeError("Not an output") @drive_mode.setter def drive_mode(self, mod): self.__drive_mode = mod if mod is DriveMode.OPEN_DRAIN: self._pin.init(mode=Pin.OPEN_DRAIN) elif mod is DriveMode.PUSH_PULL: self._pin.init(mode=Pin.OUT)
def configure(self, baudrate=100000, polarity=0, phase=0, bits=8): """Update the configuration""" if detector.board.any_raspberry_pi or detector.board.any_raspberry_pi_40_pin: from adafruit_blinka.microcontroller.bcm283x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif detector.board.any_beaglebone: from adafruit_blinka.microcontroller.am335x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif detector.board.any_orange_pi and detector.chip.id == ap_chip.SUN8I: from adafruit_blinka.microcontroller.allwinner.h3.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.GIANT_BOARD: from adafruit_blinka.microcontroller.sama5.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.CORAL_EDGE_TPU_DEV: from adafruit_blinka.microcontroller.nxp_imx8m.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ODROID_C2: from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ODROID_C4: from adafruit_blinka.microcontroller.amlogic.s905x3.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ODROID_XU4: from adafruit_blinka.microcontroller.samsung.exynos5422.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.DRAGONBOARD_410C: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.JETSON_NANO: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t210.pin import Pin elif board_id == ap_board.JETSON_TX1: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t210.pin import Pin elif board_id == ap_board.JETSON_TX2: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t186.pin import Pin elif board_id == ap_board.JETSON_XAVIER: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t194.pin import Pin elif board_id == ap_board.JETSON_NX: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t194.pin import Pin elif detector.board.ROCK_PI_S: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.rockchip.rk3308.pin import Pin elif detector.board.SIFIVE_UNLEASHED: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.hfu540.pin import Pin elif detector.board.ftdi_ft232h: from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI from adafruit_blinka.microcontroller.ft232h.pin import Pin elif detector.board.binho_nova: from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI from adafruit_blinka.microcontroller.nova.pin import Pin elif detector.board.greatfet_one: from adafruit_blinka.microcontroller.nxp_lpc4330.spi import SPI as _SPI from adafruit_blinka.microcontroller.nxp_lpc4330.pin import Pin elif board_id in (ap_board.PINE64, ap_board.PINEBOOK, ap_board.PINEPHONE): from adafruit_blinka.microcontroller.allwinner.a64.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.CLOCKWORK_CPI3: from adafruit_blinka.microcontroller.allwinner.a33.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ONION_OMEGA2: from adafruit_blinka.microcontroller.mips24kec.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI else: from machine import SPI as _SPI from machine import Pin if self._locked: # TODO check if #init ignores MOSI=None rather than unsetting, to save _pinIds attribute self._spi.init( baudrate=baudrate, polarity=polarity, phase=phase, bits=bits, firstbit=_SPI.MSB, sck=Pin(self._pins[0].id), mosi=Pin(self._pins[1].id), miso=Pin(self._pins[2].id), ) else: raise RuntimeError("First call try_lock()")
elif board_id == ap_board.DRAGONBOARD_410C: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI else: from machine import SPI as _SPI from machine import Pin if self._locked: # TODO check if #init ignores MOSI=None rather than unsetting, to save _pinIds attribute self._spi.init( baudrate=baudrate, polarity=polarity, phase=phase, bits=bits, firstbit=_SPI.MSB, sck=Pin(self._pins[0].id), mosi=Pin(self._pins[1].id), miso=Pin(self._pins[2].id) ) else: raise RuntimeError("First call try_lock()") def deinit(self): self._spi = None self._pinIds = None def write(self, buf, start=0, end=None): return self._spi.write(buf, start, end) def readinto(self, buf, start=0, end=None, write_value=0): return self._spi.readinto(buf, start, end, write_value=write_value)
def __init__(self, id: int, name: str, pin: int): super().__init__(id, name) self._dht22 = adafruit_dht.DHT22(Pin(pin), use_pulseio=False)
"""Broadcom BCM2711 pin names""" import RPi.GPIO as GPIO from adafruit_blinka.microcontroller.bcm283x.pin import Pin GPIO.setmode(GPIO.BCM) # Use BCM pins D4 = GPIO #4 GPIO.setwarnings(False) # shh! D0 = Pin(0) D1 = Pin(1) D2 = Pin(2) SDA = Pin(2) D3 = Pin(3) SCL = Pin(3) D4 = Pin(4) D5 = Pin(5) D6 = Pin(6) D7 = Pin(7) CE1 = Pin(7) D8 = Pin(8) CE0 = Pin(8) D9 = Pin(9) MISO = Pin(9) D10 = Pin(10) MOSI = Pin(10) D11 = Pin(11) SCLK = Pin(11) # Raspberry Pi naming SCK = Pin(11) # CircuitPython naming
def __init__(self, pin, _control): self._pin = Pin(control=_control, pin_id=pin.id) self.direction = Direction.INPUT