def __init__(self): print 'Starting up drums!' self._buttons = Buttons() self._led = LEDS() self._sequenceQueue = [] self._play = False self._last_key_time = datetime.now() self._led.test()
class Drums(object): def __init__(self): print 'Starting up drums!' self._buttons = Buttons() self._led = LEDS() self._sequenceQueue = [] self._play = False self._last_key_time = datetime.now() self._led.test() def run(self): while True: now = datetime.now() if not self._buttons.has_keys() and (now - self._last_key_time).total_seconds() > STOP_PLAYING_THRESHOLD: print 'sequence ended. going to sleep (kinda!)' self._play = False if self._buttons.has_keys(): if not self._play: print 'start playing!' self._play = True self._last_key_time = now self._process_key(self._buttons.get_key()) if not self._play: time.sleep(1) continue time.sleep(0.05) def _process_key(self, key): print 'processing key %s' % key self._led.set_color_for_button(key, 0xFF)
def __init__(self): for led in LEDS.values(): GPIO.setup(led, GPIO.OUT) self._lock = threading.Lock() self._values = { 'LED_ENTER': False, 'LED_LEFT': False, 'LED_RIGHT': False, 'LED_BACK': False, 'LED_KEY1': False, 'LED_KEY2': False, 'LED_KEY3': False, 'LED_KEY4': False, 'LED_FRONT_RED': False, 'LED_FRONT_GREEN': False, 'LED_FRONT_YELLOW': False, }
from http.server import BaseHTTPRequestHandler, HTTPServer from sun import Sun from leds import LEDS light = LEDS(brightness=0.5) class HueRequestHandler(BaseHTTPRequestHandler): def do_GET(self): try: path_split = self.path.split('?') if (len(path_split) > 1) and (path_split[0] == '/LEDS'): specifiers = path_split[1].split('+') for specifier in specifiers: key, value = specifier.split('=') if key == 'on': brightness = 0.5 if value == 'true' else 0.0 light.set_brightness(brightness) elif key == 'brightness': brightness = float(value) light.set_brightness(brightness) elif key == 'temperature': temperature = float(value) r, g, b = Sun.kelvin_to_rgb(temperature) light.fill(r, g, b) elif key == 'duotone': r1, g1, b1, r2, g2, b2, seg = value.split(',') light.duotone((r1, g1, b1), (r2, g2, b2), int(seg))