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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file advanced-led-control-0.3.1.tar.gz.

File metadata

  • Download URL: advanced-led-control-0.3.1.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.5.2

File hashes

Hashes for advanced-led-control-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f5324c804c0972595c21c6a3d14eecca1887a6cc22180236d5f5a5c7694cab7f
MD5 6c2c422264b1990eae27635dae5087dd
BLAKE2b-256 8a129c058171da48b11112498caa3d9263a17de9dd743a00f4df245c9406339b

See more details on using hashes here.

File details

Details for the file advanced_led_control-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: advanced_led_control-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.5.2

File hashes

Hashes for advanced_led_control-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 89d1a10f7961b92e25fd267229e0b4be37a2ea8bea4aa6800962431392f90a2c
MD5 ae61672df9ae8f7a50a6b39a8d019bb1
BLAKE2b-256 8bbb1604795b7559c33849b41b8d296046e721cb2eeb73af5f7229c5b5880a23

See more details on using hashes here.

Supported by

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