Cześć
Chętnie zlecę napisanie lub modyfikację kodu.
Komunikacja pomiędzy sterownikiem Flipsky 75100 PRO V2, a WT32-SCO1 PLUS.
Chodzi mi o wyświetlanie danych ze sterownika takich jak prędkość, moc, napięcie, prąd itp - wszystko co udostępnia biblioteka vescuart.
Kod poniżej kompiluje się ale nie odczytuje danych z urządzenia (brak komunikacji).
Dla odmiany zrobiłem wyświetlacz 16x4 i2c na arduino nano i tam odczyt działa prawidłowo (mogę udostępnić kod do porównania).
Do komunikacji użyłem pinów EXT_IO1 i EXT_IO2.
Może to być zlecenie napisania lub modyfikacji kodu do odbierania danych lub bardziej rozbudowany graficznie projekt pod np. SquareLine Studio:
![[Obrazek: shopping?q=tbn:ANd9GcR1C6JY8G_GQINOt0UP9...s&usqp=CAc]](https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcR1C6JY8G_GQINOt0UP9fPBYn9VxfTXlo4cSFOfb1wXaN_cdma7lCJzYw99QEkh_IlOZCEqH6QjKd6dgAgHRrqnjZn1ms9Fn-ueyWAMec-2T7qBiAbz06DiRdA30lP1n-e0hfNrl6ipgas&usqp=CAc)
lub
![[Obrazek: TFT-C1-Sharpbike-electric-bicycle-tft-lcd-display-.jpg]](https://www.sharpbike.com/wp-content/uploads/2020/10/TFT-C1-Sharpbike-electric-bicycle-tft-lcd-display-.jpg)
Kod, który udało mi się do tej pory stworzyć pod ESP32:
![[Obrazek: Aluminiowa-p-ytka-drukowana-Flipsky-7510...cznika.jpg]](https://ae01.alicdn.com/kf/S3012f815405f4885b1899b1254b1adab1/Aluminiowa-p-ytka-drukowana-Flipsky-75100-Pro-V2-0-z-do-przycisku-zasilania-przyciskiem-prze-cznika.jpg)
Chętnie zlecę napisanie lub modyfikację kodu.
Komunikacja pomiędzy sterownikiem Flipsky 75100 PRO V2, a WT32-SCO1 PLUS.
Chodzi mi o wyświetlanie danych ze sterownika takich jak prędkość, moc, napięcie, prąd itp - wszystko co udostępnia biblioteka vescuart.
Kod poniżej kompiluje się ale nie odczytuje danych z urządzenia (brak komunikacji).
Dla odmiany zrobiłem wyświetlacz 16x4 i2c na arduino nano i tam odczyt działa prawidłowo (mogę udostępnić kod do porównania).
Do komunikacji użyłem pinów EXT_IO1 i EXT_IO2.
Może to być zlecenie napisania lub modyfikacji kodu do odbierania danych lub bardziej rozbudowany graficznie projekt pod np. SquareLine Studio:
lub
![[Obrazek: TFT-C1-Sharpbike-electric-bicycle-tft-lcd-display-.jpg]](https://www.sharpbike.com/wp-content/uploads/2020/10/TFT-C1-Sharpbike-electric-bicycle-tft-lcd-display-.jpg)
Kod, który udało mi się do tej pory stworzyć pod ESP32:
Kod:
#define LGFX_USE_V1
#include <LovyanGFX.hpp> // Główna biblioteka
#include "esp32-hal.h" // Do funkcji rdzenia ESP32
#include "esp32-hal-psram.h" // Wsparcie PSRAM
// Ustawienia orientacji
#define TFT_WIDTH 320
#define TFT_HEIGHT 480
// Konfiguracja UART
#define UART_NUM 1
#define UART_TX_PIN 10 // Pin TX dla UART (EXT_IO1)
#define UART_RX_PIN 11 // Pin RX dla UART (EXT_IO2)
#define UART_BAUDRATE 115200
class LGFX : public lgfx::LGFX_Device
{
lgfx::Panel_ST7796 _panel_instance; // ST7796UI
lgfx::Bus_Parallel8 _bus_instance; // MCU8080 8B
lgfx::Light_PWM _light_instance;
lgfx::Touch_FT5x06 _touch_instance;
public:
LGFX(void)
{
{
auto cfg = _bus_instance.config();
cfg.freq_write = 40000000;
cfg.pin_wr = 47;
cfg.pin_rd = -1;
cfg.pin_rs = 0;
// Interfejs danych LCD, 8-bitowy MCU (8080)
cfg.pin_d0 = 9;
cfg.pin_d1 = 46;
cfg.pin_d2 = 3;
cfg.pin_d3 = 8;
cfg.pin_d4 = 18;
cfg.pin_d5 = 17;
cfg.pin_d6 = 16;
cfg.pin_d7 = 15;
_bus_instance.config(cfg);
_panel_instance.setBus(&_bus_instance);
}
{
auto cfg = _panel_instance.config();
cfg.pin_cs = -1;
cfg.pin_rst = 4;
cfg.pin_busy = -1;
cfg.panel_width = TFT_WIDTH;
cfg.panel_height = TFT_HEIGHT;
cfg.offset_x = 0;
cfg.offset_y = 0;
cfg.offset_rotation = 0;
cfg.dummy_read_pixel = 8;
cfg.dummy_read_bits = 1;
cfg.readable = false;
cfg.invert = true;
cfg.rgb_order = false;
cfg.dlen_16bit = false;
cfg.bus_shared = false;
_panel_instance.config(cfg);
}
{
auto cfg = _light_instance.config();
cfg.pin_bl = 45;
cfg.invert = false;
cfg.freq = 44100;
cfg.pwm_channel = 7;
_light_instance.config(cfg);
_panel_instance.setLight(&_light_instance);
}
{
auto cfg = _touch_instance.config();
cfg.x_min = 0;
cfg.x_max = 319;
cfg.y_min = 0;
cfg.y_max = 479;
cfg.pin_int = 7;
cfg.bus_shared = true;
cfg.offset_rotation = 0;
cfg.i2c_port = 1; // I2C_NUM_1
cfg.i2c_addr = 0x38;
cfg.pin_sda = 6;
cfg.pin_scl = 5;
cfg.freq = 400000;
_touch_instance.config(cfg);
_panel_instance.setTouch(&_touch_instance);
}
setPanel(&_panel_instance);
}
};
static LGFX lcd; // Deklaracja zmiennej wyświetlacza
// Zmienne UART
char incomingData[50]; // Bufor do odbierania danych UART
void setup(void)
{
lcd.init();
// Ustaw wyświetlacz w orientacji poziomej
if (lcd.width() < lcd.height()) lcd.setRotation(lcd.getRotation() ^ 1);
// Wyświetl logo startowe
displayStartupLogo();
// Wypełnij ekran czarnym kolorem
lcd.fillScreen(TFT_BLACK);
// Ustaw kolor tekstu na żółty
lcd.setTextColor(TFT_YELLOW);
// Ustaw rozmiar czcionki
lcd.setTextSize(2);
// Inicjalizacja UART
Serial1.begin(UART_BAUDRATE, SERIAL_8N1, UART_RX_PIN, UART_TX_PIN);
// Wyświetl początkowe napisy
// displayValues(); // Ukryj tę linię, aby nie wyświetlać wartości
}
void loop()
{
// Odczyt danych z UART
if (Serial1.available()) {
int bytesRead = Serial1.readBytesUntil('\n', incomingData, sizeof(incomingData) - 1);
incomingData[bytesRead] = '\0'; // Zakończ łańcuch znaków
// Wyświetl surowe dane na ekranie dla debugowania
displayRawData(incomingData);
} else {
// Gdy brak danych, wyczyść surowe dane
strcpy(incomingData, "Brak danych");
}
// Wyczyść ekran i wyświetl nowe wartości
lcd.fillScreen(TFT_BLACK);
displayRawData(incomingData);
delay(1000); // Aktualizuj co 1 sekundę
}
void displayRawData(const char* data) {
lcd.setCursor(10, 10); // Ustaw kursor na górze ekranu
lcd.setTextColor(TFT_WHITE); // Ustaw kolor tekstu na biały
lcd.setTextSize(2); // Ustaw większy rozmiar czcionki
lcd.printf("Odebrane: %s", data); // Wyświetl surowe dane
}
void displayStartupLogo() {
lcd.fillScreen(TFT_BLACK); // Wypełnij tło czarnym kolorem
lcd.setTextColor(TFT_WHITE); // Ustaw kolor tekstu na biały
lcd.setTextSize(4); // Ustaw większy rozmiar czcionki
// Oblicz położenie logo
int16_t x = (TFT_WIDTH - lcd.textWidth("FLIPSKY 75100 PRO V2")) / 2;
int16_t y = (TFT_HEIGHT - lcd.fontHeight()) / 2;
// Wyświetl logo na środku ekranu
lcd.setCursor(x, y);
lcd.printf("FLIPSKY 75100 PRO V2");
delay(4000); // Czekaj przez 4 sekundy
}![[Obrazek: Aluminiowa-p-ytka-drukowana-Flipsky-7510...cznika.jpg]](https://ae01.alicdn.com/kf/S3012f815405f4885b1899b1254b1adab1/Aluminiowa-p-ytka-drukowana-Flipsky-75100-Pro-V2-0-z-do-przycisku-zasilania-przyciskiem-prze-cznika.jpg)

