def __init__(self): global GPIO try: import RPi.GPIO as GPIO except ImportError: raise ImportError( 'pingo.rpi.RaspberryPi requires RPi.GPIO installed') super(RaspberryPi, self).__init__() GPIO.setmode(GPIO.BCM) GPIO.setwarnings(True) pins = [ pingo.VccPin(self, 1, 3.3), pingo.VccPin(self, 2, 5.0), pingo.VccPin(self, 4, 5.0), pingo.VccPin(self, 17, 3.3) ] pins += [pingo.GroundPin(self, n) for n in self.GROUNDS_LIST] pins += [ pingo.PwmPin(self, location, gpio_id) for location, gpio_id in self.PWM_PIN_MAP.items() ] self._add_pins(pins) self._rpi_pwm = {}
def __init__(self, filepath=None): super(GhostBoard, self).__init__() pins = set([ pingo.GroundPin(self, 1), pingo.VccPin(self, 2, 5.0), pingo.DigitalPin(self, 3), pingo.DigitalPin(self, 4), pingo.DigitalPin(self, 5), pingo.DigitalPin(self, 6), pingo.DigitalPin(self, 7), pingo.DigitalPin(self, 8), pingo.DigitalPin(self, 9), pingo.DigitalPin(self, 10), pingo.DigitalPin(self, 11), pingo.DigitalPin(self, 12), pingo.DigitalPin(self, 13), pingo.DigitalPin(self, 14), pingo.GroundPin(self, 15), pingo.VccPin(self, 16, 3.3), ]) self._add_pins(pins) self.pin_states = pingo.util.StrKeyDict() # All pins start on LOW # FIXME: use "LOW" instead of 0 for location, pin in self.pins.iteritems(): self.pin_states[location] = 0 if hasattr(pin, 'state') else None # Pin 8 starts on HIGH self.pin_states[8] = 1
def __init__(self, server): self.server = server response = urlopen(server) if response.code != 200: raise Exception(u'HTTPBoard not found on server {}'.format(server)) response = json.load(response) pins = json.loads(response['pins']) gpio_pins = [] ground_pins = [] vcc_pins = [] pwm_pins = [] for pin, value in pins.items(): # TODO: serialize the pin (and/or the board) to do this in a better way if 'GroundPin' in value: ground_pins.append(pingo.GroundPin(self, pin)) elif 'VccPin' in value: voltage = float(value[:-2].split(' ')[1]) vcc_pins.append(pingo.VccPin(self, pin, voltage)) elif 'PwmPin' in value: gpio_id = value.split(' ')[1].split('@')[0] pwm_pins.append(pingo.PwmPin(self, pin, gpio_id)) elif 'DigitalPin' in value: gpio_id = value.split(' ')[1].split('@')[0] gpio_pins.append(pingo.DigitalPin(self, pin, gpio_id)) self._add_pins(ground_pins + vcc_pins + gpio_pins + pwm_pins)
def __init__(self): global GPIO try: import Adafruit_BBIO.GPIO as GPIO except ImportError: raise ImportError(self._import_error_msg) super(BeagleBoneBlack, self).__init__() self.PIN_MODES = { pingo.IN: GPIO.IN, pingo.OUT: GPIO.OUT, } self.PIN_STATES = { pingo.HIGH: GPIO.HIGH, pingo.LOW: GPIO.LOW, } gpio_pins = [ pingo.DigitalPin(self, location, gpio_id) for location, gpio_id in self.PINS.items() ] ground_pins = [ pingo.GroundPin(self, location) for location in self.GND_PINS ] vcc_pins = [ pingo.VccPin(self, location, voltage) for location, voltage in self.VCC_PINS.items() ] self._add_pins(gpio_pins + ground_pins + vcc_pins)
def __init__(self, filepath=None): super(GhostBoard, self).__init__() # Arduino ATmega168/328 pin mapping pins = set([ pingo.DigitalPin(self, 0), pingo.DigitalPin(self, 1), pingo.DigitalPin(self, 2), pingo.PwmPin(self, 3), pingo.DigitalPin(self, 4), pingo.VccPin(self, 'VCC', 5.0), pingo.GroundPin(self, 'GND'), pingo.PwmPin(self, 5), pingo.PwmPin(self, 6), pingo.DigitalPin(self, 7), pingo.DigitalPin(self, 8), pingo.AnalogPin(self, 'A5', 10), pingo.AnalogPin(self, 'A4', 10), pingo.AnalogPin(self, 'A3', 10), pingo.AnalogPin(self, 'A2', 10), pingo.AnalogPin(self, 'A1', 10), pingo.AnalogPin(self, 'A0', 10), pingo.GroundPin(self, 'GND'), pingo.VccPin(self, 'AREF', 5.0), pingo.VccPin(self, 'AVCC', 5.0), pingo.DigitalPin(self, 12), pingo.DigitalPin(self, 13), pingo.PwmPin(self, 11), pingo.PwmPin(self, 10), pingo.PwmPin(self, 9), ]) self._add_pins(pins) self._pin_states = pingo.util.StrKeyDict() # All pins start on LOW # FIXME: use "LOW" instead of 0 for location, pin in self.pins.iteritems(): self._pin_states[location] = 0 if hasattr(pin, 'state') else None # Pin 8 starts on HIGH self._pin_states[8] = 1