import RPi.GPIO as io import time io.setmode(io.BCM) class Pin: def __init__(self, num, off=io.HIGH): self.pin = num self.off_mode = off def setup(self): io.setup(self.pin, io.OUT) def off(self): io.output(self.pin, self.off_mode) def on(self): io.output(self.pin, io.LOW if self.off_mode == io.HIGH else io.HIGH) def blink(self, blinks, blink_time_s): for _ in range(0, blinks): self.on() time.sleep(blink_time_s/2) self.off() time.sleep(blink_time_s/2) def fade_blink(self, blinks, blink_time_s): sleep_time_s = min(0.5, blink_time_s/5) on_time_s = blink_time_s - sleep_time_s for _ in range(0, blinks): self.on() time.sleep(on_time_s) self.off() time.sleep(sleep_time_s) pins = { "red": Pin(27), "yellow": Pin(22), "green": Pin(24), "blue": Pin(23), } def reset(): for name, pin in pins.items(): pin.setup() pin.blink(3, 0.5) reset()