Skip to main content

An non-official advanced controller for blinkstick

Project description

About

A package to ease the control of the blinkstick nano

Source code is at https://github.com/weshouman/advanced_led_control

Example

Save this example as test.py then run it as in the Usage section below

import advanced_led_control.models.colors as c
from advanced_led_control.models.leds import *
from advanced_led_control.models.ValueIndication import *
from advanced_led_control.models.Indicator       import *
from advanced_led_control.models.Procedure       import *

def indic1_func():
	# Indication values are best shown between 1 and 10
	value_indication = ValueIndication(c.RED, 10)
	return value_indication

def indic2_func():
	value_indication = ValueIndication(c.BLUE, NO_FLICKER)
	return value_indication

indic1 = Indicator(m_col=c.GREEN, func=indic1_func, i_time=4)
indic2 = Indicator(m_col=c.GREEN, func=indic2_func, i_time=4)

stick = blinkstick.find_first()
procedure = Procedure(stick=stick, mode_led=LED_2, quiet=10, sync_duration=10)

# Append all indicators to be run
procedure.indicators.append(indic1)
procedure.indicators.append(indic2)

# Run the specified procedure
procedure.run()

Usage

This utility needs sudo to execute, as required by the blinkstick package. If you are using a virtualenv, run

virtualenv -p python3 venv
pip install advanced-led-control
source venv/bin/activate
# Follow this [answer](https://stackoverflow.com/a/50335946/2730737) for why we need to use fully qualified path with sudo
sudo venv/bin/python test.py

Configuration

Indicator Params
  • m_col: the indication mode color, based on any of the color types defined below
  • func: a callback that will be called to evaluate the color and flickering for the value led.
  • brightness: a value in range [0, 1] that gets multiplied by both the mode and value indication.
  • i_time: indication time, is how much time is allocated for this mode.
Indicator Callback

Returns

  • color: the indication value color, based on any of the color types defined below
    NOTE: CSS names don't work with flickering, follow this report
  • flickering: an integer that shows the speed of flickering of this color, the higher the value the faster the flickering. Recommended Values are in range [1, 20]. Use NO_FLICKER or 1001 to set the led on without flickering.
Color Type

An indication color is either one of the 3 types

  • RGB: a list of 3 vals in RGB ie. [0, 10, 0].
  • HEX: a string ie. '#00ffff'.
  • ```CSS_NAME````: a string ie. 'aliceblue'.
Procedure Params
  • mode_led: Choose between LED_1 and LED_2, currently LED_1 isn't supported as the blinkstick doesn't allow flickering the second led while the first is set constantly.
    Follow this report.

  • quiet: A percentage to be taken from the indication time for the stick to shutdown.
    Setting quiet=0 will disable this feature, and force all the indications to run consecutively.
    Setting quiet=100 is useless, as it will take all the indication time as a break!

  • sync_duration: Allows starting the procedure at a specific second, as this package is made to run for multiple machines/RPis that are working separately, and to avoid using communication to control the led, we allow sync based on real time.
    Use a sync_duration of at least 1.2 total indication time to count for the delay the pulses make, and if it's less than the total indication time, it will be almost useless.
    NOTE: Set sync_duration=0 to disable this feature.
    NOTE: Setting sync_duration to say 8 will start at every eighth second, In example, [0, 8, 16, 24, 32 ...]

Notes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for advanced-led-control, version 0.3.0
Filename, size File type Python version Upload date Hashes
Filename, size advanced_led_control-0.3.0-py3-none-any.whl (12.9 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size advanced-led-control-0.3.0.tar.gz (9.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page