Add documentation
This commit is contained in:
parent
7a954bea55
commit
5d07dbb73d
|
@ -0,0 +1,80 @@
|
|||
Homie Schild Firmware
|
||||
=====================
|
||||
## About
|
||||
## Features
|
||||
|Topic |Descriptions |settable |Values |
|
||||
|---------|--------------|:---------:|---------|
|
||||
|`device_id`/strip/pixel/|Range property from 0 - (number of pixels - 1)|ja|Color as uint32_t see [Color](#color)|
|
||||
|`device_id`/strip/color|Range property to set the effects colors 1 & 2 see: [effect colors](#effect-colors)|ja|Color as uint32_t see [Color](#color)|
|
||||
|`device_id`/strip/brightness|Sets the brightness of the pixel strip|ja|possible values: 0 - 255|
|
||||
|`device_id`/strip/effect|Set effect|ja|see: [effects](#effects)|
|
||||
|`device_id`/strip/clear|Clears the pixels strip|ja|any value is possible|
|
||||
|`device_id`/strip/length|Set the strip length|ja|Possible values: 0 - length|
|
||||
|
||||
## Color
|
||||
To convert RGB value use the following bash code:
|
||||
```bash
|
||||
function rgbToColor {
|
||||
echo $(( $(($1<<16)) + $(($2<<8)) + $(($3)) ));
|
||||
}
|
||||
|
||||
function colorToRGB {
|
||||
echo "Red: $(($1>>16&0xff))"
|
||||
echo "Green: $(($1>>8&0xff))"
|
||||
echo "Blue: $(($1&0xff))"
|
||||
}
|
||||
```
|
||||
#### Example
|
||||
RGB Value to color uint32_t
|
||||
```bash
|
||||
bash$ rgbToColor 155 230 32
|
||||
10216992
|
||||
bash$
|
||||
```
|
||||
uint32_t to RGB values
|
||||
```bash
|
||||
bash$ colorToRGB 10216992
|
||||
Red: 155
|
||||
Green: 230
|
||||
Blue: 32
|
||||
bash$
|
||||
```
|
||||
|
||||
## Effects
|
||||
* scanner
|
||||
Shows the moving larson scanner eye known form *Battlestar Galactica* and *Knight Rider*. The used effect color can be specified by *color_0*
|
||||
* randomscanner
|
||||
This is the same scanner then the scanner above but uses an alternating color pattern
|
||||
* rainbowcycle
|
||||
Shows a cycling rainbown on the LED strip
|
||||
* theaterchase
|
||||
Shows an color chasing LED strip.
|
||||
You can specify the color by set *color_0* and *color_1*
|
||||
* fade
|
||||
Fades from effect color_0 to effect_color_1
|
||||
* randomfade
|
||||
Fades thru an alternating color pattern
|
||||
* none
|
||||
Stop all effects
|
||||
|
||||
## Effect colors
|
||||
You can set to different effect colors
|
||||
* *color_0* (default R: 255, G: 0 B: 0)
|
||||
* *color_1* (default R: 0, G: 0 B: 255)
|
||||
|
||||
The effect color has to be set after the effect.
|
||||
###### Example:
|
||||
1. `homie/device_id/strip/effect/set -m "fade"`
|
||||
2. `homie/device_id/strip/color_0/set -m "255"`
|
||||
3. `homie/device_id/strip/color_1/set -m "10216992"`
|
||||
|
||||
##### color_0
|
||||
This color will be used for the following effects:
|
||||
* scanner
|
||||
* theaterchase
|
||||
* fade
|
||||
|
||||
##### color_1
|
||||
This color will be used for the following effects:
|
||||
* theaterchase
|
||||
* fade
|
|
@ -228,6 +228,13 @@ void NeoPatterns::RandomFadeUpdate(){
|
|||
Increment();
|
||||
}
|
||||
|
||||
void NeoPatterns::SetColor1(uint32_t color){
|
||||
Color1 = color;
|
||||
}
|
||||
void NeoPatterns::SetColor2(uint32_t color){
|
||||
Color2 = color;
|
||||
}
|
||||
|
||||
// Calculate 50% dimmed version of a color (used by ScannerUpdate)
|
||||
uint32_t NeoPatterns::DimColor(uint32_t color)
|
||||
{
|
||||
|
|
|
@ -26,6 +26,9 @@ void Fade(uint32_t color1, uint32_t color2, uint16_t steps, uint8_t interval, di
|
|||
void FadeUpdate();
|
||||
void RandomFade(uint8_t interval = 100);
|
||||
void RandomFadeUpdate();
|
||||
|
||||
void SetColor1(uint32_t color);
|
||||
void SetColor2(uint32_t color);
|
||||
//Utilities
|
||||
void ColorSet(uint32_t color);
|
||||
uint8_t Red(uint32_t color);
|
||||
|
|
|
@ -23,8 +23,6 @@ HomieNode stripNode("strip", "strip");
|
|||
HomieNode sensorNode("sensor", "sensor");
|
||||
Bounce debouncer = Bounce();
|
||||
|
||||
uint32_t color1 = pixels.Color(255, 0, 0);
|
||||
uint32_t color2 = pixels.Color(0, 0, 255);
|
||||
|
||||
bool onSetColor(const HomieRange& range, const String& value){
|
||||
if (!range.isRange || range.index < 0 || range.index > 1) {
|
||||
|
@ -32,10 +30,10 @@ bool onSetColor(const HomieRange& range, const String& value){
|
|||
}
|
||||
switch(range.index) {
|
||||
case 0:
|
||||
color1 = value.toInt();
|
||||
pixels.SetColor1(value.toInt());
|
||||
break;
|
||||
case 1:
|
||||
color2 = value.toInt();
|
||||
pixels.SetColor2(value.toInt());
|
||||
break;
|
||||
}
|
||||
stripNode.setProperty("color_" + String(range.index)).send(value);
|
||||
|
@ -74,19 +72,19 @@ bool onSetEffect(const HomieRange& range, const String& value){
|
|||
String effect = value;
|
||||
effect.toLowerCase();
|
||||
if(effect == "scanner") {
|
||||
pixels.Scanner(color1);
|
||||
pixels.Scanner(pixels.Color(255, 0, 0));
|
||||
}
|
||||
else if(effect == "randomscanner") {
|
||||
pixels.Scanner(color1, 40, true);
|
||||
pixels.Scanner(pixels.Color(255, 0, 0), 40, true);
|
||||
}
|
||||
else if(effect == "rainbowcycle") {
|
||||
pixels.RainbowCycle(50);
|
||||
}
|
||||
else if(effect == "theaterchase") {
|
||||
pixels.TheaterChase(color1, color2, 100);
|
||||
pixels.TheaterChase(pixels.Color(255, 0, 0), pixels.Color(0,0,255), 100);
|
||||
}
|
||||
else if(effect == "fade") {
|
||||
pixels.Fade(color1, color2, 200, 100);
|
||||
pixels.Fade(pixels.Color(255, 0, 0), pixels.Color(0,0,255), 200, 100);
|
||||
}
|
||||
else if(effect == "randomfade") {
|
||||
pixels.RandomFade();
|
||||
|
|
Loading…
Reference in New Issue