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 belowfunc
: 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 reportflickering
: 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]. UseNO_FLICKER
or1001
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 betweenLED_1
andLED_2
, currentlyLED_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.
Settingquiet=0
will disable this feature, and force all the indications to run consecutively.
Settingquiet=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 async_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: Setsync_duration=0
to disable this feature.
NOTE: Settingsync_duration
to say 8 will start at every eighth second, In example, [0, 8, 16, 24, 32 ...]
Notes
- This project was inspired by the Pi Dramble
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
Built Distribution
Hashes for advanced-led-control-0.3.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5324c804c0972595c21c6a3d14eecca1887a6cc22180236d5f5a5c7694cab7f |
|
MD5 | 6c2c422264b1990eae27635dae5087dd |
|
BLAKE2b-256 | 8a129c058171da48b11112498caa3d9263a17de9dd743a00f4df245c9406339b |
Hashes for advanced_led_control-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89d1a10f7961b92e25fd267229e0b4be37a2ea8bea4aa6800962431392f90a2c |
|
MD5 | ae61672df9ae8f7a50a6b39a8d019bb1 |
|
BLAKE2b-256 | 8bbb1604795b7559c33849b41b8d296046e721cb2eeb73af5f7229c5b5880a23 |