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();
|
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)
|
// Calculate 50% dimmed version of a color (used by ScannerUpdate)
|
||||||
uint32_t NeoPatterns::DimColor(uint32_t color)
|
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 FadeUpdate();
|
||||||
void RandomFade(uint8_t interval = 100);
|
void RandomFade(uint8_t interval = 100);
|
||||||
void RandomFadeUpdate();
|
void RandomFadeUpdate();
|
||||||
|
|
||||||
|
void SetColor1(uint32_t color);
|
||||||
|
void SetColor2(uint32_t color);
|
||||||
//Utilities
|
//Utilities
|
||||||
void ColorSet(uint32_t color);
|
void ColorSet(uint32_t color);
|
||||||
uint8_t Red(uint32_t color);
|
uint8_t Red(uint32_t color);
|
||||||
|
|
|
@ -23,8 +23,6 @@ HomieNode stripNode("strip", "strip");
|
||||||
HomieNode sensorNode("sensor", "sensor");
|
HomieNode sensorNode("sensor", "sensor");
|
||||||
Bounce debouncer = Bounce();
|
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){
|
bool onSetColor(const HomieRange& range, const String& value){
|
||||||
if (!range.isRange || range.index < 0 || range.index > 1) {
|
if (!range.isRange || range.index < 0 || range.index > 1) {
|
||||||
|
@ -32,10 +30,10 @@ bool onSetColor(const HomieRange& range, const String& value){
|
||||||
}
|
}
|
||||||
switch(range.index) {
|
switch(range.index) {
|
||||||
case 0:
|
case 0:
|
||||||
color1 = value.toInt();
|
pixels.SetColor1(value.toInt());
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
color2 = value.toInt();
|
pixels.SetColor2(value.toInt());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
stripNode.setProperty("color_" + String(range.index)).send(value);
|
stripNode.setProperty("color_" + String(range.index)).send(value);
|
||||||
|
@ -74,19 +72,19 @@ bool onSetEffect(const HomieRange& range, const String& value){
|
||||||
String effect = value;
|
String effect = value;
|
||||||
effect.toLowerCase();
|
effect.toLowerCase();
|
||||||
if(effect == "scanner") {
|
if(effect == "scanner") {
|
||||||
pixels.Scanner(color1);
|
pixels.Scanner(pixels.Color(255, 0, 0));
|
||||||
}
|
}
|
||||||
else if(effect == "randomscanner") {
|
else if(effect == "randomscanner") {
|
||||||
pixels.Scanner(color1, 40, true);
|
pixels.Scanner(pixels.Color(255, 0, 0), 40, true);
|
||||||
}
|
}
|
||||||
else if(effect == "rainbowcycle") {
|
else if(effect == "rainbowcycle") {
|
||||||
pixels.RainbowCycle(50);
|
pixels.RainbowCycle(50);
|
||||||
}
|
}
|
||||||
else if(effect == "theaterchase") {
|
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") {
|
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") {
|
else if(effect == "randomfade") {
|
||||||
pixels.RandomFade();
|
pixels.RandomFade();
|
||||||
|
|
Loading…
Reference in New Issue