2 """A basic Pin class for use with Binho Nova."""
14 def __init__(self, pin_id=None):
16 from adafruit_blinka.microcontroller.nova import Connection
17 Pin._nova = Connection.getInstance()
18 # check if pin is valid
20 raise ValueError("Invalid pin {}.".format(pin_id))
24 def init(self, mode=IN, pull=None):
26 raise RuntimeError("Can not init a None type pin.")
27 # Nova does't have configurable internal pulls for
29 raise ValueError("Internal pull up/down not currently supported.")
30 Pin._nova.setIOpinMode(self.id, mode)
32 def value(self, val=None):
34 raise RuntimeError("Can not access a None type pin.")
37 return int(Pin._nova.getIOpinValue(self.id).split('VALUE ')[1])
39 elif val in (self.LOW, self.HIGH):
40 Pin._nova.setIOpinValue(self.id, val)
42 raise RuntimeError("Invalid value for pin")
44 # create pin instances for each pin
52 # No PWM support on IO1
57 pwmOuts = ( ((1, 0), PWM0), ((1, 2), PWM2), ((1, 3), PWM3), ((1, 4), PWM4) )