2024.11.01
구글링 하다보니 UI 생성하는 다른 툴이 있다.
https://www.envox.eu/studio/studio-introduction/
완전 무료라 다운받아서 만들어 봤다.
녹칸다님 강의를 참고하여 진행하다가 여러가지 시행착오
0. eez에서 생성되는 파일은 lvgl, tft_espi 라이브러리가 없다.
1. git을 이용하여 lvgl, TFT_eSPI 다운로드
git clone https://github.com/lvgl/lvgl
git clone https://github.com/Bodmer/TFT_eSPI
2. PlatformIO에서 프로젝트 생성 (esp32-cam)
3. git으로 받은 2개의 디렉토리를 lib로 이동
4. EEZ에서 생성된 library/ui 를 lib로 이동
5. EEZ에서 생성된 ui를 src/main.cpp로 복사
계속 컴파일에러가 난다.
여러가지 에러를 정리했지만 함수이름이 다르다는 에러에서 중단
git 으로 받은 lvgl이 9.x 이다
프로젝트 구조는
녹칸다님 블로그에서 받은 PlatformIO 프로젝트를 수정해서 시도
esp32-cam 으로 도전하다가 Program Board를 빼면 전원 연결도 힘들고, Touch를 위한 포트 부족으로 포기
집에 있는 LOLIN-D32로 도전
컴파일 완료후 다운로드에서 포트 인식 문제
CH340 드라이버 설치해도 포트 인식 안됨 -> 케이블 문제, 얇은 케이블들은 전원만 연결된 것 같다.
정상 동작하는 PlatformIO.ini와 수정된 코드이다.
esp32dev 와 lolin_d32 모두 된다.
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
[env:lolin_d32]
platform = espressif32
board = lolin_d32
framework = arduino
TFT_eSPI/User_Setup.h
그대로 사용하고 ILI9488로만 변경
// #define ILI9341_2_DRIVER //녹칸다가 가진 ILI9341
#define ILI9488_DRIVER
...
//ILI9341연결법(SPI)
//VSPI(X), HSPI(O)
#define TFT_MOSI 13 // In some display driver board, it might be written as "SDA" and so on.
#define TFT_SCLK 14
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 12 // Reset pin (could connect to Arduino RESET pin)
#define SPI_FREQUENCY 27000000
#define SPI_READ_FREQUENCY 20000000
#define SPI_TOUCH_FREQUENCY 2500000
#define USE_HSPI_PORT
main.cpp
화면 사이즈만 변경
#include <Arduino.h>
#include <lvgl.h>
#include <TFT_eSPI.h>
#include <ui.h>
...
static const uint16_t screenWidth = 480;
static const uint16_t screenHeight = 320;
연결 방법도 정리
TFT_LCD의 JP1을 연결하여 3.3V 전원 입력을 받는다.
ESP32 | TFT_LCD (JP1=short) |
3.3V | 1: VCC 3.3V |
GND | 2: GND |
15 | 3: CS |
12 | 4: RESET |
2 | 5: DC/RS |
13 | 6: SDI(MOSI) |
14 | 7: SCK |
N.C | 8: LED (3.3V) |
N.C | 9: SDO(MISO) |
25 | 10: T_CLK |
33 | 11: T_CS |
32 | 12: T_DIN |
34 | 13: T_DO |
N.C | 14: T_IRQ (N.C) |
2024.11.02
Touch도 테스트
main.cpp에 touch pin 설정이 있는데 39가 이상하다. 34로 바로 수정해서 테스트
#include <Arduino.h>
#include <lvgl.h>
#include <TFT_eSPI.h>
#include <ui.h>
#include <TFT_Touch.h>
// #define DOUT 39 /* Data out pin (T_DO) of touch screen */
#define DOUT 34 /* Data out pin (T_DO) of touch screen */
#define DIN 32 /* Data in pin (T_DIN) of touch screen */
#define DCS 33 /* Chip select pin (T_CS) of touch screen */
#define DCLK 25 /* Clock pin (T_CLK) of touch screen */
TFT_eSPI/User_Setup.h 도 수정
#define ILI9488_DRIVER
...
#define TFT_MOSI 13 // In some display driver board, it might be written as "SDA" and so on.
#define TFT_SCLK 14
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 12 // Reset pin (could connect to Arduino RESET pin)
//#define TFT_BL 27 //녹칸다가 백라이트컨트롤핀을 3.3V에서 27번으로 옮김!
컴파일 정상
업로드 후 serial monitor 실행
터치하면 뭔가 나온다.
BAUD값이 안맞는 것 같아 설정을 찾아 수정 했지만 9600 만 된다.
[env:custom_monitor_speedrate]
monitor_speed = 115200
메뉴얼을 찾아 터미널에서 커맨드 입력
pio device monitor --baud 115200
혹시나 싶어서 스피드 설정 위치를 바꾸니 된다.
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
'IT > Platform' 카테고리의 다른 글
[TFT LCD] ili9488 LVGL 재도전 #4 EEZ & LOLIN & PlatformIO (1) | 2024.11.03 |
---|---|
[TFT LCD] ili9488 LVGL 재도전 #3 STM32F103 (2) | 2024.11.02 |
[TFT LCD] ili9488 LVGL 재도전 #1 (6) | 2024.10.30 |
[TFT LCD] ili9488 STM32, RPi pico 용 UI 플랫폼 (0) | 2024.10.23 |
[Logic Analyzer] USB 제품 구매, 설치, 활용 (0) | 2024.08.17 |