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

If you are using sudo natively, run sudo -E 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.

Source Distribution

advanced-led-control-0.3.1.tar.gz (9.6 kB view hashes)

Uploaded Source

Built Distribution

advanced_led_control-0.3.1-py3-none-any.whl (13.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page