File size: 2,785 Bytes
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
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()