ESP32 TTGO mit PlatformIO / VSCode
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
[codesyntax lang=”c”]
[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
[/codesyntax]
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
[codesyntax lang=”c”]
// #define ILI9341_DRIVER #define ST7789_DRIVER // Full configuration option, define additional parameters below for this display
[/codesyntax]
TTGO test\.pio\libdeps\ttgo-lora32-v1\TFT_eSPI\User_Setup_Select.h
Ebenso in dieser Datei eine include Zeile aktivieren
[codesyntax lang=”c”]
#include <User_Setups/Setup25_TTGO_T_Display.h> // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT
[/codesyntax]
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
[codesyntax lang=”c”]
#include <Arduino.h>
[/codesyntax]
Auflösung festlegen:
Im Code die Definition für h und w auf 135 bzw. 240 ändern.
[codesyntax lang=”c”]
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library int16_t h = 135; int16_t w = 240;
[/codesyntax]
Funktionen deklarieren
Die Funktionen müssen in VSCode vor der ersten Verwendung deklariert werden.
Hierzu oberhalb von setup() folgenden Block einfügen.
[codesyntax lang=”c”]
// 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) {
[/codesyntax]
Dann mit F5 die firmware erzeugen und mit F6 hochladen.