diff --git a/.project b/.project new file mode 100644 index 0000000..f0efbca --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + LEDText + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/examples/TextExampleAtari/FontAtari.h b/examples/TextExampleAtari/FontAtari.h new file mode 100644 index 0000000..8b372c3 --- /dev/null +++ b/examples/TextExampleAtari/FontAtari.h @@ -0,0 +1,881 @@ +// Atari regular font example with classic spectrum cycling logo +// Legit 8-bit computer font from https://github.com/a8bit/EightBit-Atari-Fonts +// converted FNT file with +// xxd -b -c1 ATARI.FNT > awk '{print "B8("$2"),"}' > FontAtari.h +// D. Cerisano 2023 + +#ifndef FontAtari_h +#define FontAtari_h + +const uint8_t AtariFontData[] = { + 8, // Font Width + 8, // Font Height + 32, // Font First Character + 127, // Font Last Character + + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00000000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(11111111), + B8(01100110), + B8(01100110), + B8(11111111), + B8(01100110), + B8(00000000), + + B8(00011000), + B8(00111110), + B8(01100000), + B8(00111100), + B8(00000110), + B8(01111100), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01101100), + B8(00011000), + B8(00110000), + B8(01100110), + B8(01000110), + B8(00000000), + + B8(00011100), + B8(00110110), + B8(00011100), + B8(00111000), + B8(01101111), + B8(01100110), + B8(00111011), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00001110), + B8(00011100), + B8(00011000), + B8(00011000), + B8(00011100), + B8(00001110), + B8(00000000), + + B8(00000000), + B8(01110000), + B8(00111000), + B8(00011000), + B8(00011000), + B8(00111000), + B8(01110000), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(00111100), + B8(11111111), + B8(00111100), + B8(01100110), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00011000), + B8(01111110), + B8(00011000), + B8(00011000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00011000), + B8(00011000), + B8(00110000), + + B8(00000000), + B8(00000000), + B8(00000000), + B8(01111110), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00011000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(00000110), + B8(00001100), + B8(00011000), + B8(00110000), + B8(01100000), + B8(01000000), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(01101110), + B8(01110110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00111000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(00001100), + B8(00011000), + B8(00110000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(00001100), + B8(00011000), + B8(00001100), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00001100), + B8(00011100), + B8(00111100), + B8(01101100), + B8(01111110), + B8(00001100), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(01100000), + B8(01111100), + B8(00000110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(00000110), + B8(00001100), + B8(00011000), + B8(00110000), + B8(00110000), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(00111100), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(00111110), + B8(00000110), + B8(00001100), + B8(00111000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00011000), + B8(00011000), + B8(00000000), + B8(00011000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00011000), + B8(00011000), + B8(00000000), + B8(00011000), + B8(00011000), + B8(00110000), + + B8(00000110), + B8(00001100), + B8(00011000), + B8(00110000), + B8(00011000), + B8(00001100), + B8(00000110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01111110), + B8(00000000), + B8(00000000), + B8(01111110), + B8(00000000), + B8(00000000), + + B8(01100000), + B8(00110000), + B8(00011000), + B8(00001100), + B8(00011000), + B8(00110000), + B8(01100000), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(00001100), + B8(00011000), + B8(00000000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(01101110), + B8(01101110), + B8(01100000), + B8(00111110), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00111100), + B8(01100110), + B8(01100110), + B8(01111110), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(01111100), + B8(01100110), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01111100), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(01100000), + B8(01100000), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(01111000), + B8(01101100), + B8(01100110), + B8(01100110), + B8(01101100), + B8(01111000), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(01100000), + B8(01111100), + B8(01100000), + B8(01100000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(01100000), + B8(01111100), + B8(01100000), + B8(01100000), + B8(01100000), + B8(00000000), + + B8(00000000), + B8(00111110), + B8(01100000), + B8(01100000), + B8(01101110), + B8(01100110), + B8(00111110), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01100110), + B8(01111110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(00000110), + B8(00000110), + B8(00000110), + B8(00000110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01101100), + B8(01111000), + B8(01111000), + B8(01101100), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(01100000), + B8(01100000), + B8(01100000), + B8(01100000), + B8(01100000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(01100011), + B8(01110111), + B8(01111111), + B8(01101011), + B8(01100011), + B8(01100011), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01110110), + B8(01111110), + B8(01111110), + B8(01101110), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01111100), + B8(01100000), + B8(01100000), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01101100), + B8(00110110), + B8(00000000), + + B8(00000000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01111100), + B8(01101100), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(00111100), + B8(01100000), + B8(00111100), + B8(00000110), + B8(00000110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(01100011), + B8(01100011), + B8(01101011), + B8(01111111), + B8(01110111), + B8(01100011), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00111100), + B8(01100110), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(01111110), + B8(00001100), + B8(00011000), + B8(00110000), + B8(01100000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(00011110), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011110), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00111100), + B8(01100110), + B8(01100110), + B8(01111110), + B8(01100110), + B8(00011000), + + B8(00000000), + B8(01111000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(01111000), + B8(00000000), + + B8(00000000), + B8(00001000), + B8(00011100), + B8(00110110), + B8(01100011), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(11111111), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00111100), + B8(00000110), + B8(00111110), + B8(01100110), + B8(00111110), + B8(00000000), + + B8(00000000), + B8(01100000), + B8(01100000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01111100), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00111100), + B8(01100000), + B8(01100000), + B8(01100000), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00000110), + B8(00000110), + B8(00111110), + B8(01100110), + B8(01100110), + B8(00111110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00111100), + B8(01100110), + B8(01111110), + B8(01100000), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00001110), + B8(00011000), + B8(00111110), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00111110), + B8(01100110), + B8(01100110), + B8(00111110), + B8(00000110), + B8(01111100), + + B8(00000000), + B8(01100000), + B8(01100000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(00000000), + B8(00111000), + B8(00011000), + B8(00011000), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00000110), + B8(00000000), + B8(00000110), + B8(00000110), + B8(00000110), + B8(00000110), + B8(00111100), + + B8(00000000), + B8(01100000), + B8(01100000), + B8(01101100), + B8(01111000), + B8(01101100), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(00111000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01100110), + B8(01111111), + B8(01111111), + B8(01101011), + B8(01100011), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00111100), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01111100), + B8(01100110), + B8(01100110), + B8(01111100), + B8(01100000), + B8(01100000), + + B8(00000000), + B8(00000000), + B8(00111110), + B8(01100110), + B8(01100110), + B8(00111110), + B8(00000110), + B8(00000110), + + B8(00000000), + B8(00000000), + B8(01111100), + B8(01100110), + B8(01100000), + B8(01100000), + B8(01100000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00111110), + B8(01100000), + B8(00111100), + B8(00000110), + B8(01111100), + B8(00000000), + + B8(00000000), + B8(00011000), + B8(01111110), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00001110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01100110), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00111110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00111100), + B8(00011000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01100011), + B8(01101011), + B8(01111111), + B8(00111110), + B8(00110110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01100110), + B8(00111100), + B8(00011000), + B8(00111100), + B8(01100110), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(01100110), + B8(01100110), + B8(01100110), + B8(00111110), + B8(00001100), + B8(01111000), + + B8(00000000), + B8(00000000), + B8(01111110), + B8(00001100), + B8(00011000), + B8(00110000), + B8(01111110), + B8(00000000), + + B8(00000000), + B8(00011110), + B8(00011000), + B8(00110000), + B8(00011000), + B8(00011000), + B8(00011110), + B8(00000000), + + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + B8(00011000), + + B8(00000000), + B8(01111000), + B8(00011000), + B8(00001100), + B8(00011000), + B8(00011000), + B8(01111000), + B8(00000000), + + B8(00000000), + B8(00000000), + B8(00000000), + B8(00110110), + B8(01101100), + B8(00000000), + B8(00000000), + B8(00000000), + + B8(01011010), + B8(01011010), + B8(01011010), + B8(01011010), + B8(01011010), + B8(11011011), + B8(11011011), + B8(10011001) +}; + +#endif diff --git a/examples/TextExampleAtari/TextExampleAtari.ino b/examples/TextExampleAtari/TextExampleAtari.ino new file mode 100644 index 0000000..1e13e6f --- /dev/null +++ b/examples/TextExampleAtari/TextExampleAtari.ino @@ -0,0 +1,77 @@ +// 8-bit Atari computer font example with classic spectrum-cycling logo +// D. Cerisano 2023 + +// Custom hardware settings. +#define FASTLED_INTERNAL +#define LED_PIN 27 +#define COLOR_ORDER GRB +#define CHIPSET WS2812B +#define MATRIX_WIDTH 8 +#define MATRIX_HEIGHT 8 +#define MATRIX_TYPE HORIZONTAL_MATRIX +#define FPS 20 + +// Include dependencies +#include +#include +#include +#include "FontAtari.h" + +// Display structs +cLEDMatrix leds; +cLEDText ScrollingMsg; + +// Sequence structs +unsigned char TxtDemo1[] = {EFFECT_HSV_AV "\x00\xff\xff\x80\xff\xff" " "}; //vertical spectrum +unsigned char TxtDemo2[] = {EFFECT_SCROLL_LEFT " ATARI regular font "}; + +// Demo variables +int hue = 0, inc = 2; +boolean logo = true; + +void setup() +{ + FastLED.addLeds(leds[0], leds.Size()); + FastLED.setBrightness(128); + + // Change first char in seq to custom Atari logo (ASCII 127 DEL) in FontAtari.h + TxtDemo1[7] = 127; + TxtDemo2[1] = 127; + + ScrollingMsg.SetFont(AtariFontData); + ScrollingMsg.Init(&leds, leds.Width(), ScrollingMsg.FontHeight() + 1, 0, 0); + ScrollingMsg.SetText((unsigned char *)TxtDemo1, sizeof(TxtDemo1) - 1); +} + +void loop() +{ + // Bounce HSV_AV spectrum for the logo sequence then scroll the second sequence, ad infinitum + + if (logo) { + TxtDemo1[1] = hue; + TxtDemo1[4] = hue + 128; + ScrollingMsg.SetText((unsigned char *)TxtDemo1, sizeof(TxtDemo1) - 1); + hue += inc; + + // Bounce spectrum + if (hue > 127) { + hue = 127; + inc = -2; + } + + // Start the second sequence after logo bounce completes + if (hue < 0) { + hue = 0; + inc = 2; + logo = false; + ScrollingMsg.SetText((unsigned char *)TxtDemo2, sizeof(TxtDemo2) - 1); + } + } + + // Restart demo after second sequence scrolls. + if (ScrollingMsg.UpdateText() == -1) + logo = true; + + // FastLED.delay() calls show() FPS times per second + FastLED.delay(1000 / FPS); +}