PortiloopDemo / leds.py
Xavier L'Heureux
Modularize & add untested main program
3fd98da unverified
raw
history blame
2.79 kB
from periphery import GPIO, PWM
class LEDs:
def __init__():
self.led1_R = PWM(0, 0)
self.led1_B = PWM(2, 0)
self.led1_gnd = PWM(1, 0)
self.led2_R = GPIO("/dev/gpiochip0", 8, "out")
self.led2_B = GPIO("/dev/gpiochip0", 6, "out")
self.led2_gnd = GPIO("/dev/gpiochip0", 7, "out")
self.led3_R = GPIO("/dev/gpiochip2", 0, "out")
#self.led3_B = GPIO("/dev/gpiochip2", 5, "out")
self.led3_gnd = GPIO("/dev/gpiochip2", 8, "out")
self.aquisition = GPIO("/dev/gpiochip2", 20, "out")
# Init LEDs
# RGBs
self.led1_R.frequency = 1e3
self.led1_R.duty_cycle = 0.0
self.led1_R.enable()
self.led1_B.frequency = 1e3
self.led1_B.duty_cycle = 0.0
self.led1_B.enable()
self.led1_gnd.frequency = 1e3
self.led1_gnd.duty_cycle = 0.0
self.led1_gnd.enable()
# LED2
self.led2_R.write(False)
self.led2_B.write(False)
self.led2_gnd.write(False)
# LED3
self.led3_R.write(False)
#self.led3_B.write(False)
self.led3_gnd.write(False)
def aquisition(val):
self.aquisition.write(val)
# red, green & blue are between 0 and 100 inclusively
def led1(red, green, blue):
self.led1_R.duty_cycle = red / 100
self.led1_B.duty_cycle = blue / 100
def led2(value):
if value == RED:
self.led2_R.write(True)
self.led2_B.write(False)
elif value == BLUE:
self.led2_R.write(False)
self.led2_B.write(True)
elif value == PURPLE:
self.led2_R.write(True)
self.led2_B.write(True)
elif value == CLOSED:
self.led2_R.write(False)
self.led2_B.write(False)
else:
assert False, "Unknown color"
def led3(value):
if value == RED:
self.led3_R.write(True)
elif value == CLOSED:
self.led3_R.write(False)
else:
assert False, "Unknown color"
def close():
# LED1
self.led1_R.disable()
self.led1_B.disable()
self.led1_gnd.disable()
self.led1_R.close()
self.led1_B.close()
self.led1_gnd.close()
# LED2
self.led2_R.write(False)
self.led2_B.write(False)
self.led2_gnd.write(False)
self.led2_R.close()
self.led2_B.close()
self.led2_gnd.close()
# LED3
self.led3_R.write(False)
#self.led3_B.write(False)
self.led3_gnd.write(False)
self.led3_R.close()
#self.led3_B.close()
self.led3_gnd.close()
# AQUISITION
self.aquisition.write(False)
self.aquisition.close()