Spaces:
Sleeping
Sleeping
File size: 3,161 Bytes
3fd98da 704ebec 3fd98da 2de9fad 3fd98da 62bd48f 3fd98da 704ebec 62bd48f 3fd98da 704ebec 3fd98da 704ebec 0f35f15 3fd98da 0f35f15 3fd98da 0f35f15 3fd98da 0f35f15 3fd98da 704ebec 0f35f15 3fd98da 0f35f15 3fd98da 2de9fad 3fd98da 62bd48f 3fd98da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
from periphery import GPIO, PWM
from enum import Enum
class Color(Enum):
RED = 0
BLUE = 1
PURPLE = 2
CLOSED = 3
class LEDs:
def __init__(self):
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.acq = 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(self, val: bool):
self.acq.write(val)
# red, green & blue are between 0 and 100 inclusively
def led1(self, red: int, green: int, blue: int):
assert 0 <= red <= 100, "Red should be between 0 and 100"
assert 0 <= green <= 100, "Green should be between 0 and 100"
assert 0 <= blue <= 100, "Blue should be between 0 and 100"
self.led1_R.duty_cycle = red / 100
self.led1_B.duty_cycle = blue / 100
def led2(self, value: Color):
if value == Color.RED:
self.led2_R.write(True)
self.led2_B.write(False)
elif value == Color.BLUE:
self.led2_R.write(False)
self.led2_B.write(True)
elif value == Color.PURPLE:
self.led2_R.write(True)
self.led2_B.write(True)
elif value == Color.CLOSED:
self.led2_R.write(False)
self.led2_B.write(False)
else:
assert False, "Unknown color"
def led3(self, value: Color):
if value == Color.RED:
self.led3_R.write(True)
elif value == Color.CLOSED:
self.led3_R.write(False)
else:
assert False, "Unknown color"
def close(self):
# 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.acq.write(False)
self.acq.close()
|