示例#1
0
def startup():
    bpa_path = os.path.dirname(os.path.abspath(BiblioPixelAnimations.__file__)).replace("\\", "/")
    bpa_matrix = bpa_path + "/matrix/"
    bpa_strip = bpa_path + "/strip/"
    bpa_recv = bpa_path + "/receivers/"
    bpa_circle = bpa_path + "/circle/"

    status.pushStatus("Starting PixelWeb Server")
    config.initConfig()
    status.pushStatus("Reading server config")
    config.upgradeServerConfig()
    cfg = globals._server_config = config.readServerConfig()
    # if(bpa_matrix not in cfg.mod_dirs): cfg.mod_dirs.append(bpa_matrix)
    # if(bpa_strip not in cfg.mod_dirs): cfg.mod_dirs.append(bpa_strip)

    globals._bpa_dirs = [bpa_matrix, bpa_strip, bpa_recv, bpa_circle]

    level = log.INFO
    if cfg.show_debug:
        level = log.DEBUG
    log.setLogLevel(level)

    mod_dir = os.path.join(config.__home, "mods")
    if os.path.isdir(mod_dir):
        globals._bpa_dirs.append(mod_dir)

    initBPM()
示例#2
0
def startup():
    bpa_path = os.path.dirname(os.path.abspath(
        BiblioPixelAnimations.__file__)).replace("\\", "/")
    bpa_matrix = bpa_path + "/matrix/"
    bpa_strip = bpa_path + "/strip/"
    bpa_recv = bpa_path + "/receivers/"
    bpa_circle = bpa_path + "/circle/"

    status.pushStatus("Starting PixelWeb Server")
    config.initConfig()
    status.pushStatus("Reading server config")
    config.upgradeServerConfig()
    cfg = globals._server_config = config.readServerConfig()
    # if(bpa_matrix not in cfg.mod_dirs): cfg.mod_dirs.append(bpa_matrix)
    # if(bpa_strip not in cfg.mod_dirs): cfg.mod_dirs.append(bpa_strip)

    globals._bpa_dirs = [bpa_matrix, bpa_strip, bpa_recv, bpa_circle]

    level = log.INFO
    if cfg.show_debug: level = log.DEBUG
    log.setLogLevel(level)

    mod_dir = os.path.join(config.__home, 'mods')
    if os.path.isdir(mod_dir):
        globals._bpa_dirs.append(mod_dir)

    initBPM()
示例#3
0
    def test_serial(self):
        # Code taken from
        # https://gist.github.com/adammhaile/1b43fdde6ae6cbbd35560c68a9b90beb

        from bibliopixel import Strip
        from bibliopixel.drivers.channel_order import ChannelOrder
        from bibliopixel.drivers.serial import Serial, LEDTYPE
        from bibliopixel.drivers.serial.devices import Devices
        from bibliopixel.animation import StripChannelTest

        import bibliopixel.log as log
        import time

        log.setLogLevel(log.DEBUG)

        devs = Devices(hardware_id="1D50:60AB", baudrate=921600)

        log.info("Serial devices:")
        dev_list = devs.find_serial_devices()
        log.info(dev_list)

        first_dev = dev_list[list(dev_list.keys())[0]][0]

        log.info('Default device:')
        log.info(devs.get_device())

        log.info('Device ID for: ' + first_dev)
        old_id = devs.get_device_id(first_dev)
        log.info(old_id)

        log.info('Setting device ID to 42')
        devs.set_device_id(first_dev, 42, baudrate=921600)

        log.info('New Device ID for: ' + first_dev)
        log.info(devs.get_device_id(first_dev))

        log.info('Restoring device ID to ' + str(old_id))
        devs.set_device_id(first_dev, old_id, baudrate=921600)

        log.info('Device version for: ' + first_dev)
        log.info(devs._get_device_version(first_dev))

        driver = Serial(
            LEDTYPE.APA102, 600, SPISpeed=4, c_order=ChannelOrder.RGB)
        layout = Strip(driver)

        for b in range(7, 256, 8):
            log.info('Set brightness ' + str(b))
            layout.set_brightness(b)
            time.sleep(0.25)

        log.info('Run StripChannelTest')
        anim = StripChannelTest(layout)

        anim.run(amt=1, max_steps=8)

        layout.all_off()
        layout.update()

        print("Test Complete!")
示例#4
0
def saveServerConfig(req):
	config.writeServerConfig(req["config"])
	cfg = d(req["config"])
	level = log.INFO
	if cfg.show_debug: level = log.DEBUG
	log.setLogLevel(level)
	globals._server_config = cfg
	return success()
示例#5
0
def saveServerConfig(req):
    config.writeServerConfig(req["config"])
    cfg = d(req["config"])
    level = log.INFO
    if cfg.show_debug: level = log.DEBUG
    log.setLogLevel(level)
    globals._server_config = cfg
    return success()
示例#6
0
 def do_circle_pop(size, use_timedata, debug=False):
     debug and log.setLogLevel(log.DEBUG)
     saved_timedata = DriverBase.USE_TIMEDATA
     try:
         driver = DriverDummy(num=width * height, delay=0)
         led = LEDMatrix(driver, width=width, height=height, serpentine=False,
                         threadedUpdate=False)
         anim = CirclePop(led)
         anim.run(max_steps=10, max_cycles=size)
     finally:
         DriverBase.USE_TIMEDATA = saved_timedata
         debug and log.setLogLevel(log.WARNING)
示例#7
0
import os, sys

PARENT = os.path.dirname(os.getcwd())
sys.path.append(os.path.join(PARENT, 'BiblioPixelAnimations'))

from BiblioPixelAnimations.matrix.bloom import Bloom
from bibliopixel.drivers.serial_driver import DriverTeensySmartMatrix
from bibliopixel import LEDMatrix
import bibliopixel.colors as colors
from bibliopixel import MultiMapBuilder, mapGen
import bibliopixel.log as log
import time
from bibliopixel import font

log.setLogLevel(log.DEBUG)

w = 128
h = 32
dCount = 3
d_order = [10, 11, 12]

build = MultiMapBuilder()
drivers = []
for i in range(dCount):
    build.addRow(mapGen(w, h, serpentine=False))
    drivers.append(
        DriverTeensySmartMatrix(width=w, height=h, deviceID=d_order[i]))

# print(build.map)

led = LEDMatrix(drivers,
#!/usr/bin/env python
"""
Use version of DriverSlave that has pixmap and pixheights
"""
import threading
# import base classes and driver
from bibliopixel import LEDStrip, LEDMatrix
# from bibliopixel.drivers.LPD8806 import DriverLPD8806, ChannelOrder
from bibliopixel.drivers.visualizer import DriverVisualizer, ChannelOrder
from bibliopixel.drivers.slave_driver import DriverSlave
# import colors
import bibliopixel.colors
from bibliopixel.animation import BaseStripAnim
from logging import DEBUG, INFO, WARNING, CRITICAL, ERROR
from bibliopixel import log
log.setLogLevel(WARNING)
import re
import time
from operator import or_, ior, ixor
import matplotlib.pyplot as plt
import BiblioPixelAnimations.matrix.bloom as BA


class MasterAnimation(BaseStripAnim):
    """
    Takes copies of fake leds, combines using heights and mixing to fill and update
    a led
    NEED now ledcopies is list of the leds associated with each animation
    NEED also mapping of the leds into master led (i.e. path list)
    NEED also height of each animations and merging method if same height
    """
示例#9
0
from __future__ import print_function
from bibliopixel.drivers.network_udp import DriverNetworkUDP
from bibliopixel import LEDMatrix, MatrixRotation, MultiMapBuilder, mapGen
from BiblioPixelAnimations.matrix.bloom import Bloom
from BiblioPixelAnimations.matrix.Text import ScrollText
from BiblioPixelAnimations.matrix.spectrum import Spectrum
from BiblioPixelAnimations.matrix.MatrixRain import MatrixRainBow
from BiblioPixelAnimations.matrix.TicTacToe import TicTacToe
from bibliopixel import log
import time

log.setLogLevel(log.DEBUG)

w = 8
h = 8
rotation = MatrixRotation.ROTATE_0

print("connecting")
base_ip = '10.0.1.3'
drivers = []
for i in range(1, 10):
    drivers.append(DriverNetworkUDP(num=w * h, broadcast=False,
                                    host=base_ip + str(i), port=1822))

print("setup matrix")
build = MultiMapBuilder()
for _ in range(3):
    build.addRow(mapGen(w, h, rotation=rotation),
                 mapGen(w, h, rotation=rotation),
                 mapGen(w, h, rotation=rotation))
示例#10
0
    def test_serial(self):
        # Code taken from
        # https://gist.github.com/adammhaile/1b43fdde6ae6cbbd35560c68a9b90beb

        from bibliopixel import Strip
        from bibliopixel.drivers.channel_order import ChannelOrder
        from bibliopixel.drivers.serial import Serial, LEDTYPE
        from bibliopixel.drivers.serial.devices import Devices
        from bibliopixel.animation import StripChannelTest

        import bibliopixel.log as log
        import time

        log.setLogLevel(log.DEBUG)

        devs = Devices(hardware_id="1D50:60AB", baudrate=921600)

        log.info("Serial devices:")
        dev_list = devs.find_serial_devices()
        log.info(dev_list)

        first_dev = dev_list[list(dev_list.keys())[0]][0]

        log.info('Default device:')
        log.info(devs.get_device())

        log.info('Device ID for: ' + first_dev)
        old_id = devs.get_device_id(first_dev)
        log.info(old_id)

        log.info('Setting device ID to 42')
        devs.set_device_id(first_dev, 42, baudrate=921600)

        log.info('New Device ID for: ' + first_dev)
        log.info(devs.get_device_id(first_dev))

        log.info('Restoring device ID to ' + str(old_id))
        devs.set_device_id(first_dev, old_id, baudrate=921600)

        log.info('Device version for: ' + first_dev)
        log.info(devs._get_device_version(first_dev))

        driver = Serial(LEDTYPE.APA102,
                        600,
                        SPISpeed=4,
                        c_order=ChannelOrder.RGB)
        layout = Strip(driver)

        for b in range(7, 256, 8):
            log.info('Set brightness ' + str(b))
            layout.set_brightness(b)
            time.sleep(0.25)

        log.info('Run StripChannelTest')
        anim = StripChannelTest(layout)

        anim.run(amt=1, max_steps=8)

        layout.all_off()
        layout.update()

        print("Test Complete!")
示例#11
0
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 03 16:31:41 2016

@author: Bill
"""


from bibliopixel import LEDStrip, LEDMatrix
from bibliopixel.drivers.visualizer import DriverVisualizer, ChannelOrder
import bibliopixel.colors as colors
from bibliopixel.animation import BaseStripAnim, BaseMatrixAnim, MasterAnimation, AnimationQueue
from logging import DEBUG, INFO, WARNING, CRITICAL, ERROR
from bibliopixel import log
log.setLogLevel(INFO)
import re
import time
import BiblioPixelAnimations.matrix.bloom as BA
import BiblioPixelAnimations.strip.Wave as WA
from wormanimclass import Worm, pathgen

class dimLights(BaseStripAnim):
    def __init__(self, led, start=0, end=-1):
        super(dimLights, self).__init__(led, start, end)
        self._dir = -1
        self._brightness = led.masterBrightness

    def preRun(self,amt=1):
        #self._led.fill(self.color)
        self._count = 0
示例#12
0
#!/usr/bin/env python
"""
Use version of DriverSlave that has pixmap and pixheights
"""
import threading
# import base classes and driver
from bibliopixel import LEDStrip, LEDMatrix
# from bibliopixel.drivers.LPD8806 import DriverLPD8806, ChannelOrder
from bibliopixel.drivers.visualizer import DriverVisualizer, ChannelOrder
from bibliopixel.drivers.slave_driver import DriverSlave
# import colors
import bibliopixel.colors
from bibliopixel.animation import BaseStripAnim
from logging import DEBUG, INFO, WARNING, CRITICAL, ERROR
from bibliopixel import log
log.setLogLevel(WARNING)
import re
import time
from operator import or_, ior, ixor
import matplotlib.pyplot as plt
import BiblioPixelAnimations.matrix.bloom as BA


class MasterAnimation(BaseStripAnim):
    """
    Takes copies of fake leds, combines using heights and mixing to fill and update
    a led
    NEED now ledcopies is list of the leds associated with each animation
    NEED also mapping of the leds into master led (i.e. path list)
    NEED also height of each animations and merging method if same height
    """
示例#13
0
import importlib
import math
import numpy

import bibliopixel.colors as colors
import bibliopixel.image as image

from bibliopixel.led import *
from bibliopixel.drivers.driver_base import *
from lightshow_serial_driver import *
from bibliopixel import log
from PIL import Image, ImageSequence, ImageChops, ImageEnhance

from driver_sacn import DriverSACN

log.setLogLevel(log.WARNING)
# log.setLogLevel(log.DEBUG)

color_map = [list(colors.hue2rgb(c)) for c in range(256)]
green_map = [list(colors.Green) for g in range(256)]
graded_green_map = [colors.Green for g in range(0)] + \
     [colors.Green for g in range(15)] + \
     [colors.Green for g in range(31)] + \
     [colors.Green for g in range(47)] + \
     [colors.Green for g in range(63)] + \
     [colors.Green for g in range(79)] + \
     [colors.Green for g in range(95)] + \
     [colors.Green for g in range(111)] + \
     [colors.Green for g in range(127)] + \
     [colors.Green for g in range(143)] + \
     [colors.Green for g in range(159)] + \
import bibliopixel.log as log
log.setLogLevel(log.logging.DEBUG)

import win32api
import win32con

from bibliopixel.util import d

class GamePadEmu():
    foundDevices = []
    def __init__(self, btn_map = [[win32con.VK_UP, "UP"], [win32con.VK_DOWN, "DOWN"], [win32con.VK_LEFT, "LEFT"], [win32con.VK_RIGHT, "RIGHT"], [win32con.VK_SPACE, "FIRE"], ["A","A"],["S","B"],["Z","X"],["X","Y"]]):
        self._map = btn_map

    def getKeys(self):
        result = {}
        for m in self._map:
            key = m
            val = m
            if isinstance(m, list):
                val = m[0]
                key = m[1]
            if isinstance(val, str):
                val = ord(val[0])

            result[key] = abs(win32api.GetAsyncKeyState(val)) > 1
        return d(result)

    def __enter__(self):
        return self

    def __exit__(self, type, value, traceback):
from kilo import *
import sys
sys.path.append("G:\GitHub")

from bibliopixel.animation import MatrixCalibrationTest
from matrix_animations import Bloom

from pad import pad
from Snake import Snake
from Tetris import Tetris
from flappy import Flappy
import BiblioPixelAnimations.matrix as matrix
from matrix.GameOfLife import GameOfLife

import bibliopixel.log as log
log.setLogLevel(log.INFO)

choice = "snake"
if len(sys.argv) > 1:
    choice = sys.argv[1]

choices = {
    "snake":Snake(led, pad),
    "tetris":Tetris(led, pad),
    "flappy":Flappy(led, pad),
    "gol": GameOfLife(led)
}
anim = choices[choice]
try:
    anim.run(fps=30)
except KeyboardInterrupt:
示例#16
0
from bibliopixel import log
from bibliopixel.layout import Matrix
from bibliopixel.drivers import SimPixel
from bibliopixel.animation.animation import STATE
from bibliopixel.animation import MatrixCalibrationTest

from bibliopixel.drivers.serial import Serial, LEDTYPE
from bibliopixel.drivers.channel_order import ChannelOrder
import bibliopixel.colors as color_util

from config import config
from animations.base import animation_dict, Interrupt
from beam.state import beam_state
import beam.util as beam_util

log.setLogLevel(log.INFO)

app = flask.Flask(__name__)
CORS(app)

Animation = enum.Enum('Animation', ' '.join(animation_dict.keys()))


def get_new_input_class(key=None):
    if key:
        return animation_dict[key]

    vals = list(animation_dict.values())
    return random.choice(vals)