Example #1
0
    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()
Example #2
0
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)
Example #3
0
 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))