class ProcessStateIndicator:
    def __init__(self, bb8):
        self.BB8 = bb8
        self.red = LED(5)
        self.green = LED(6)
        self.blue = LED(12)
        self.State = "default"
        self.nextUpdate = 0

    def SetBrightness(self, brightness):
        self.red.SetBrightness(brightness)
        self.green.SetBrightness(brightness)
        self.blue.SetBrightness(brightness)

    def SetValue(self, r, g, b):
        self.red.SetValue(r)
        self.green.SetValue(g)
        self.blue.SetValue(b)

    def SetDefault(self):
        self.SetValue(0, 0, 0)
        self.State = "default"

    def SetR2D2(self):
        self.State = "r2d2"
        self.nextUpdate = time.time()

    def Update(self):
        if self.State == "default":
            v = 255 * self.BB8.Sound.GetAmplitude()
            self.SetValue(v, v, v)
        elif self.State == "r2d2":
            t = time.time()
            if t > self.nextUpdate:
                self.nextUpdate = t + 3 * random.random()
                if self.red.Value == 255:
                    self.SetValue(0, 0, 255)
                else:
                    self.SetValue(255, 0, 0)
Exemple #2
0
class Eye:
    def __init__(self):
        self.LED1 = LED(17)
        self.LED2 = LED(27)
        self.LED3 = LED(22)
        self.LED4 = LED(23)
        self.LED5 = LED(24)
        self.LED6 = LED(25)

    def SetBrightness(self, brightness):
        self.LED1.SetBrightness(brightness)
        self.LED2.SetBrightness(brightness)
        self.LED3.SetBrightness(brightness)
        self.LED4.SetBrightness(brightness)
        self.LED5.SetBrightness(brightness)
        self.LED6.SetBrightness(brightness)

    def SetDefault(self):
        self.LED1.On()
        self.LED2.Off()
        self.LED3.Off()
        self.LED4.Off()
        self.LED5.Off()
        self.LED6.Off()