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)
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()