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()
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()
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!")
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()
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)
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 """
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))
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!")
# -*- 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
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:
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)