1. 하드웨어(H/W) 요소
(1) 터치스크린 패널 종류
종류 | 특징 |
저항막 (감압식) | - 패널에 일정 압력을 가했을때(누르는 힘)에 의한 저항의 변화를 감지 - 필름이 접촉될 정도의 압력을 가해야 하기 때문에, 터치 인식률이 낮음 - 산업현장에서 장갑을 낀 손으로도 사용이 가능하기 때문에 산업 디스플레이에 주로 쓰임 |
정전용량식 | - 패널에 전극 변화를 감지하여 인식 - 터치감도가 매우 좋으며, 중소형 모델에 적용하기도 적합함 - 대부분 모바일 스마트폰 터치스크린 패널에 사용되고 있음 |
(2) 터치스크린 보드의 구조 (LVGL 지원 보드)
- 터치스크린 보드 형태의 구조는 대부분 이렇다.
- 디스플레이 컨트롤 칩은 다양하며 드라이버가 이미 라이브러리에 구현되어 있기 때문에 구현 시 소스코드에서 해당 드라이버 헤더파일 주석을 해제하여 사용한다.
(3) 사용할 디스플레이 (4인치)
Display 모듈 | 컨트롤러 드라이버 | 터치 컨트롤러 |
4 인치 SPI 터치스크린 디스플레이 (감압식) | ST7796 | XPT2046 |
(4) 사용할 디스플레이 (7인치)
Display 모듈 | 컨트롤러 드라이버 | 터치 컨트롤러 |
ESP32-8048S070C (7인치) | EK9716 | XPT2046 |
2. 소프트웨어(S/W) 요소
(1) LVGL
- 오로지 임베디드에서 GUI 구현만을 위한 대규모 그래픽 구현 라이브러리 (C언어로 구현되어 있으며 오픈소스)
- 사실상 코드만으로 구현이 가능하지만 UI 개발툴이 있음 (SQUARELINE STUDIO)
- LVGL에서는 이미 이쁘게 UI로 구현되어있는 위젯(Widgets)이라는 개념이 있다. 아래에는 사용 가능한 위젯을 소개한다.
(2) SquareLine Studio
- LVGL 라이브러리 자체는 무료이지만 GUI 디자인 툴은 라이센스가 있다. (개인라이센스 - 무료, 상업라이센스 - 유료)
- 디자인 작업 후 내보내기를 하면 LVGL로 구현된 그래픽이 구현되기 위한 코드가 생성된다. (어디까지나 디자인만)
- Arduino 환경에서 사용하기 위해서는 디자인 툴에서 넘겨받은 코드에서 드라이버 셋팅 후 상호작용 가능하다.
- 해당 디자인 툴에서 LVGL의 위젯 일부분이 지원하지 않는다. (구현하고 싶다면 직접 코드를 사용하여 구현해야한다.)
'Embedded System > 소프트웨어 (C,C++)' 카테고리의 다른 글
실시간 운영체제 (RTOS) (1) | 2024.09.04 |
---|---|
[모듈 제작] 전류 CT 센서 인터페이스 모듈 - RMS 취득 펌웨어 (0) | 2024.08.21 |
[C/C++] LVGL GUI 라이브러리 (0) | 2024.07.10 |
[C/C++] 고정된 너비 정수 (fixed-width integers) 자료형 (0) | 2024.07.09 |
[F/W] 펌웨어 구현 시 메모리 관리 (0) | 2024.06.25 |