ESP32 TTGO mit PlatformIO / VSCode

29. Januar 2021 at 19:30
Print Friendly, PDF & Email

Das ESP Board mit Display soll für einen CO2 Sensor eingesetzt werden. Dieser Artikel beschreibt aber erst einmal wie man das ein solches Projekt unter PlatformIO / VS Code erzeugt.

Projekt Anlegen

platformio.ini – Bibliotheken einbinden

[env:ttgo-lora32-v1]
platform = espressif32
board = ttgo-lora32-v1
framework = arduino
upload_speed = 921600
monitor_speed = 115200
lib_deps =
    bodmer/TFT_eSPI # for TTGO display

 

Bibliothek TFT_eSPI holen

Nun den ersten Build mit F5 starten. Damit holt sich PIO die Bibliotheken.

Danach kann man sie unter .pio/lipdeps sehen:

TFT Bibliothek anpassen

TTGO-Pong\.pio\libdeps\ttgo-lora32-v1\TFT_eSPI\User_Setup.h

Den default Treiber mit “//” kommentieren und den ST7789 aktivieren, d.h. die Kommentar-Zeichen “//” entfernen

// #define ILI9341_DRIVER
#define ST7789_DRIVER      // Full configuration option, define additional parameters below for this display

TTGO test\.pio\libdeps\ttgo-lora32-v1\TFT_eSPI\User_Setup_Select.h

Ebenso in dieser Datei eine include Zeile aktivieren

// #include <User_Setup.h>
 
#include <User_Setups/Setup25_TTGO_T_Display.h>    // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT

Beispiel-Code kopieren

Ich verwende hier das Beispiel “Pong”, da man damit sehen kann, ob der ganze Bildschirm ausgenutzt wird.

TTGO-Pong\.pio\libdeps\ttgo-lora32-v1\TFT_eSPI\examples\320 x 240\TFT_Pong\TFT_Pong.ino

Einfach den Inhalt in die Datei TTGO-Pong\src\main.cpp kopieren

Dann am Anfang das Arduino-Include wieder einfügen

#include <Arduino.h>

Auflösung festlegen:

Im Code die Definition für h und w auf 135 bzw. 240 ändern.

TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
 
int16_t h = 135;
int16_t w = 240;

Funktionen deklarieren

Die Funktionen müssen in VSCode vor der ersten Verwendung deklariert werden.
Hierzu oberhalb von setup() folgenden Block einfügen.

// Declare function before first use
void initgame (void);
void calc_target_y (void);
void lpaddle(void);
void rpaddle(void);
void midline(void);
void ball(void);
 
void setup(void)
{

Dann mit F5 die firmware erzeugen und mit F6 hochladen.