Skip to content

Commit

Permalink
Merge pull request #11 from IncursioHack/main
Browse files Browse the repository at this point in the history
Cardputer LED control (StampS3).
  • Loading branch information
pr3y authored May 9, 2024
2 parents f8dc8e4 + e75b5be commit 2ffdb91
Show file tree
Hide file tree
Showing 5 changed files with 155 additions and 78 deletions.
141 changes: 64 additions & 77 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html


[platformio]
default_envs =
m5stack-cplus1_1
Expand All @@ -20,19 +19,16 @@ default_envs =
build_flags =
-DVERSION='"2.0b"'
-DMAXFILES=256
-DEEPROMSIZE=64 ;512
-DLH=8 ; letras tamanho 1 tem 8 pixels de altura, 2 tem 16 e 3 tem 24
-DLW=6 ; letras tamanho 1 tem 6 pixels de largura, 2 tem 12 e 3 tem 18

-DEEPROMSIZE=64
-DLH=8
-DLW=6
lib_deps =
AsyncTCP
esphome/ESPAsyncWebServer-esphome
WireGuard-ESP32
IRremoteESP8266
IRremoteESP8266
Time
LibSSH-ESP32
; bodmer/TFT_eSPI@^2.5.43 ; Esta biblioteca deve estar na pasta lib, devido as alterações no drive do StickC


[env:m5stack-cplus2]
platform = espressif32
Expand All @@ -46,31 +42,31 @@ build_flags =
${common.build_flags}

-DSTICK_C_PLUS2=1

-DROTATION=3

-DHAS_BTN=1
-DSEL_BTN=37
-DROTATION=3
-DHAS_BTN=1
-DSEL_BTN=37
-DUP_BTN=35
-DDW_BTN=39
-DBTN_ALIAS='"M5"'

-DHAS_SCREEN=1
-DHAS_SCREEN=1
-DWIDTH=240
-DHEIGHT=135
-DBACKLIGHT=27
-DMINBRIGHT=190

-DLED=19
-DLED_ON=HIGH
-DLED_OFF=LOW
-DLED_OFF=LOW
-DBAT_PIN=38

-DFP=1 ; tamanho da fonte pequena
-DFM=2 ; fonte média
-DFG=3 ; fonte grande
-DFP=1
-DFM=2
-DFG=3
-DMAX_MENU_SIZE=5

-DUSER_SETUP_LOADED=1
-DST7789_2_DRIVER=1
-DTFT_RGB_ORDER=1
Expand All @@ -94,12 +90,12 @@ build_flags =
-DSDCARD_SCK=0
-DSDCARD_MISO=36
-DSDCARD_MOSI=26

-DGROOVE_SDA=32
-DGROOVE_SCL=33


-DGROVE_SDA=32
-DGROVE_SCL=33
lib_deps =
${common.lib_deps}
xylopyrographer/LiteLED@^1.2.0

[env:m5stack-cplus1_1]
platform = espressif32
Expand All @@ -116,21 +112,20 @@ build_flags =
-DUP_BTN=0
-DDW_BTN=39
-DBTN_ALIAS='"M5"'

-DWIDTH=240
-DHEIGHT=135
-DMAX_MENU_SIZE=5
-DHAS_SCREEN=1
; Backlight usa AXP


-DLED=10
-DLED_ON=LOW
-DLED_OFF=HIGH

-DLED_OFF=HIGH
-DFP=1
-DFM=2
-DFG=3

-DUSER_SETUP_LOADED=1
-DST7789_2_DRIVER=1
-DTFT_RGB_ORDER=1
Expand All @@ -154,13 +149,13 @@ build_flags =
-DSDCARD_SCK=0
-DSDCARD_MISO=36
-DSDCARD_MOSI=26

-DGROOVE_SDA=32
-DGROOVE_SCL=33

-DGROVE_SDA=32
-DGROVE_SCL=33
lib_deps =
https://github.com/tanakamasayuki/I2C_AXP192
${common.lib_deps}
xylopyrographer/LiteLED@^1.2.0

[env:m5stack-cardputer]
platform = espressif32
Expand All @@ -170,30 +165,30 @@ board_build.partitions = custom_8Mb.csv
build_flags =
${common.build_flags}
-DCARDPUTER=1

-DROTATION=1

-DROTATION=1
-DHAS_BTN=1
-DBTN_ALIAS='"Ok"'
-DBTN_PIN=0

-DHAS_SCREEN=1
-DWIDTH=240
-DHEIGHT=135
-DBACKLIGHT=38
-DMINBRIGHT=165
-DMAX_MENU_SIZE=5

-DMAX_MENU_SIZE=5
-DFP=1
-DFM=2
-DFG=3

-DBAT_PIN=10
-DRGB_LED=21
-DRGB_LED=21
-DLED=44
-DLED_ON=HIGH
-DLED_OFF=LOW

-DLED_OFF=LOW
-DUSER_SETUP_LOADED=1
-DST7789_2_DRIVER=1
-DTFT_RGB_ORDER=1
Expand All @@ -217,12 +212,12 @@ build_flags =
-DSDCARD_SCK=40
-DSDCARD_MISO=39
-DSDCARD_MOSI=14

-DGROOVE_SDA=2
-DGROOVE_SCL=1
-DGROVE_SDA=2
-DGROVE_SCL=1
lib_deps =
${common.lib_deps}

xylopyrographer/LiteLED@^1.2.0

[env:m5stack-c]
platform = espressif32
Expand All @@ -233,43 +228,41 @@ build_flags =
${common.build_flags}
-DSTICK_C=1
-DSTICK_C_PLUS=1

-DROTATION=3
-DHAS_BTN=1
-DSEL_BTN=37
-DUP_BTN=0
-DDW_BTN=39
-DBTN_ALIAS='"M5"'

-DWIDTH=160
-DHEIGHT=80
-DHEIGHT=80
-DMAX_MENU_SIZE=5
-DTFT_WIDTH=80
-DTFT_HEIGHT=160

-DLED=10
-DLED_ON=LOW
-DLED_OFF=HIGH


-DLED_OFF=HIGH
-DFP=1
-DFM=1
-DFG=2

-DSDCARD_SPI_BUS=HSPI
-DSDCARD_CS=14
-DSDCARD_SCK=0
-DSDCARD_MISO=36
-DSDCARD_MOSI=26

-DGROOVE_SDA=32
-DGROOVE_SCL=33


-DGROVE_SDA=32
-DGROVE_SCL=33
lib_deps =
${common.lib_deps}
xylopyrographer/LiteLED@^1.2.0


; Rodar no Cardputer para ver como a tela se comporta
[env:m5stack-c-test]
platform = espressif32
board = m5stack-stamps3
Expand All @@ -279,28 +272,23 @@ build_flags =
${common.build_flags}
-DSTICK_C=1
-DCARDPUTER=1
-DROTATION=1
-DROTATION=1
-DHAS_BTN=1
-DMAX_SPIFFS=0x100000
-DMAX_APP=0x4F0000
-DMAX_APP=0x4F0000
-DBTN_ALIAS='"G0"'
-DBTN_PIN=0
-DHAS_SCREEN=1

-DWIDTH=160
-DHEIGHT=80
-DHEIGHT=80
-DFP=1
-DFM=1
-DFG=3
;-DWIDTH=240
;-DHEIGHT=135
;-DFONT_P=1
;-DFONT_M=2
;-DFONT_G=3
-DFG=3
-DBAT_PIN=10
-DLED=21
-DLED_ON=HIGH
-DLED_OFF=LOW
-DLED_OFF=LOW
-DBACKLIGHT=38
-DMINBRIGHT=165
-DMAX_MENU_SIZE=5
Expand Down Expand Up @@ -328,10 +316,9 @@ build_flags =
-DSDCARD_SCK=40
-DSDCARD_MISO=39
-DSDCARD_MOSI=14

-DGROOVE_SDA=32
-DGROOVE_SCL=33

-DGROVE_SDA=32
-DGROVE_SCL=33
lib_deps =
${common.lib_deps}

xylopyrographer/LiteLED@^1.2.0
56 changes: 56 additions & 0 deletions src/led.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#ifdef CARDPUTER
// By @IncursioHack - github.com/IncursioHack
#include "display.h"
#include "globals.h"
#include "led_control.h"
#include <LiteLED.h>

// Escolha o tipo de LED na lista abaixo.
// Comente todos menos um LED_TYPE.
// #define LED_TYPE LED_STRIP_WS2812
#define LED_TYPE LED_STRIP_SK6812
// #define LED_STRIP_APA106
// #define LED_STRIP_SM16703

#define LED_TYPE_IS_RGBW 1 // Se o LED for do tipo RGBW, altere o 0 para 1
#define LED_BRIGHT 245 // Define o brilho do LED. "0" está desligado; 255 pode queimar seus olhos (não recomendado)

LiteLED myLED( LED_TYPE, LED_TYPE_IS_RGBW ); // Cria o objeto LiteLED com o nome "myLED"

void ledrgb_setup() {
myLED.begin( RGB_LED, 1 ); // Inicialize o objeto myLED. Aqui temos 1 LED conectado ao pino RGB_LED
myLED.brightness( LED_BRIGHT, 1 ); // Ligue o LED

options = {
{"OFF", [=]() { myLED.brightness( 0, 1 ); }},
{"PURPLE", [=]() { myLED.setPixel( 0, L_PURPLE, 1 ); }},
{"WHITE", [=]() { myLED.setPixel( 0, L_WHITE, 1 ); }},
{"RED", [=]() { myLED.setPixel( 0, L_RED, 1 ); }},
{"GREEN", [=]() { myLED.setPixel( 0, L_GREEN, 1 ); }},
{"BLUE", [=]() { myLED.setPixel( 0, L_BLUE, 1 ); }},
};
delay(200);
loopOptions(options);
delay(200);
}

void ledrgb_flash() {
myLED.begin( RGB_LED, 1 ); // Inicialize o objeto myLED. Aqui temos 1 LED conectado ao pino RGB_LED
myLED.brightness( LED_BRIGHT_DEFAULT, 1 ); // Ligue o LED
myLED.setPixel( 0, L_PURPLE, 1 );
delay(1000);
myLED.brightness( 0, 1 );
delay(1000);
myLED.brightness( LED_BRIGHT_DEFAULT, 1 );
delay(1000);
myLED.brightness( 0, 1 );
delay(1000);
myLED.brightness( LED_BRIGHT_DEFAULT, 1 );
delay(1000);
myLED.brightness( 0, 1 );
delay(1000);
myLED.brightness( LED_BRIGHT_DEFAULT, 1 );
delay(1000);
myLED.brightness( 0, 1 );
}
#endif
31 changes: 31 additions & 0 deletions src/led_control.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#ifdef CARDPUTER
// By IncursioHack @github.com/IncursioHack
#include <Arduino.h>
#include <LiteLED.h>

// Escolha o tipo de LED na lista abaixo. Comente todos, exceto o que você está usando.
#define LED_TYPE LED_STRIP_SK6812
// #define LED_STRIP_WS2812
// #define LED_STRIP_APA106
// #define LED_STRIP_SM16703

#define LED_TYPE_IS_RGBW 1 // Se o LED for do tipo RGBW, altere o 0 para 1

// Definição de intensidade de brilho
#define LED_BRIGHT_DEFAULT 245 // Define o brilho padrão do LED. "0" é desligado; 255 pode ser muito brilhante.

// Cores predefinidas para o LED
static const crgb_t L_RED = 0xff0000;
static const crgb_t L_GREEN = 0x00ff00;
static const crgb_t L_BLUE = 0x0000ff;
static const crgb_t L_WHITE = 0xe0e0e0;
static const crgb_t L_PURPLE = 0xff00ff;

// Declaração do objeto LiteLED
extern LiteLED myLED;

// Declarações de funções para controle do LED RGB
void ledrgb_setup();
void ledrgb_flash();

#endif
Loading

0 comments on commit 2ffdb91

Please sign in to comment.