コード例 #1
0
ファイル: Effect_Fire.py プロジェクト: jmechnich/esp8266-leds
    def iterate(self):
        import random
        for i in xrange(self.nled):
            self.heat[i] = max(0, self.heat[i]-random.randint(
                0,((self.cooling * 10) / self.nled) + 2))

        for k in xrange(self.nled-3,1,-1):
            self.heat[k] = (self.heat[k-1] + self.heat[k-2] + self.heat[k-2]) / 3

        if random.randint(0,255) < self.sparking:
            y = random.randint(0,6)
            self.heat[y] = min(255,self.heat[y]+random.randint(160,254))

        leds = []
        for j in xrange(self.nled):
            leds += [ (255*i)>>8 for i in HeatColor(self.heat[j]) ]
        convert( leds, [toUnit] )
        return leds
コード例 #2
0
ファイル: LEDClient.py プロジェクト: jmechnich/esp8266-leds
 def send(self,data,topic="leddata",device="huzzah"):
     if self.mirror:
         mirrored = [ i for i in reversed(data) ]
         convert(mirrored,[rgb2bgr])
         data += mirrored
     self.send_raw(bytearray(data),topic,device)
コード例 #3
0
ファイル: ledclient.py プロジェクト: jmechnich/esp8266-leds
        sys.exit(0)

    if args.verbose:
        print "Settings:"
        for i in sorted(vars(args).iteritems()):
            print "  %10s: %s" % i
        print
            
    l = LEDClient(args)
    if args.mirror:
        args.nled /= 2
    e = effect_module.instance(args)
    try:
        if args.off:
            if args.verbose:
                print "Switching LEDs off"
            l.off()
            sys.exit(0)
            
        if args.verbose:
            print "Starting effect '%s'" % args.effect
        while True:
            data = e.iterate()
            convert(data,[toHSV, multiply((1,1,args.max)), toRGB, gamma(args.gamma),toByte,clamp(0,255)])
            l.send(data)
            time.sleep(args.time)
            
    except KeyboardInterrupt:
        pass
    print
コード例 #4
0
 def iterate(self):
     self.step_hue()
     rgb = [self.hue, 1, 1]
     convert(rgb, [toRGB])
     return rgb * self.nled