EVE TFT 모듈과 함께 Gameduino 2 라이브러리 사용하기
2023년 7월 6일
제임스 보우먼이 작성한 Gameduino 2 라이브러리는 FT80x/FT81x 그래픽 컨트롤러 IC 시리즈를 위해 설계되었으며 다양한 마이크로컨트롤러를 지원합니다. 이 라이브러리에는 간단한 "Hello World" 프로그램부터 위젯 사용, 마이크로SD 카드의 PNG 파일 접근, 심지어 보드 게임 시뮬레이션 생성까지 포함하는 더 복잡한 프로그램에 이르기까지 다양한 예제 스케치가 포함되어 있습니다.
이 튜토리얼에서는 Arduino Uno를 사용하여 NHD-4.3-480272FT-CSXP-CTP 모듈을 구동하고 기본 "Hello World" 스케치를 컴파일하기 위해 필요한 변경 사항을 나열합니다.
이 튜토리얼에 호환되는 TFT EVE 디스플레이
이 가이드는 다음 Newhaven Display EVE TFT 모듈과 함께 Gameduino 2 라이브러리 사용법을 다룹니다:
| 디스플레이 크기 | 부품 번호 |
|---|---|
| 3.5인치 TFT | NHD-3.5-320240FT-CSXP-T |
| 4.3인치 TFT | NHD-4.3-800480FT-CSXP-CTP NHD-4.3-480272FT-CSXP-CTP NHD-4.3-480272FT-CSXP-T |
| 5.0인치 TFT | NHD-5.0-800480FT-CSXP-CTP NHD-5.0-800480FT-CTXL-CTP NHD-5.0-800480FT-CTXL-T |
| 7.0인치 TFT | NHD-7.0-800480FT-CSXV-CTP NHD-7.0-800480FT-CSXV-T |
하드웨어 및 소프트웨어 요구 사항
Gameduino 2 라이브러리를 사용하려면 다음이 필요합니다:
- 뉴헤이븐 디스플레이 4.3인치 IPS EVE 정전식 TFT NHD-4.3-480272FT-CSXP-CTP
- 뉴헤이븐 디스플레이 20 POS FFC
- 뉴헤이븐 디스플레이 NHD-FT81x-SHIELD
- 아두이노 우노
- USB 2.0 케이블 타입 A/B
- 아두이노 IDE 도구 설치됨
- 9V 전원 공급 장치
- Gameduino2 라이브러리
- 이브 애셋 빌더 (이미지용)
소프트웨어 설정: 라이브러리를 아두이노 IDE에 로드하기
Gameduino 2 라이브러리를 아두이노 보드에 로드하는 단계.
- 라이브러리 다운로드: 프로젝트에 사용할 Gameduino2 라이브러리를 다운로드하세요.
- 아두이노 IDE 실행하기: 컴퓨터에서 아두이노 IDE 소프트웨어를 실행하세요. 문제 발생을 방지하려면 IDE의 최신 버전을 사용 중인지 확인하세요.
-
Arduino IDE에 라이브러리 추가하기: Arduino IDE를 실행한 후, 스케치 > 라이브러리 포함 > .ZIP 라이브러리 추가로 이동합니다. 컴퓨터에서 다운로드한 라이브러리 파일을 찾아 선택합니다.
아두이노용 라이브러리 설치가 처음이라면, 공식 아두이노 웹사이트에서 자세한 안내를 확인할 수 있습니다.
- 설치 확인: 라이브러리가 설치되면 아래 이미지와 같이 IDE에서 사용할 수 있어야 합니다. 이를 확인하려면 파일 > 예제로 이동하면 Gameduino2가 표시되어야 합니다. 표시된다면 라이브러리가 성공적으로 설치된 것입니다. 표시되지 않는다면 과정을 반복하거나 오류가 있는지 문제 해결을 수행하십시오.
새 라이브러리가 예제 목록에 표시되지 않는 경우 Arduino IDE를 재시작하십시오. 문제가 발생하면 Arduino 커뮤니티 포럼에서 도움을 받으십시오.
하드웨어 설정
연결하기 전에, 아래 그림과 같이 아두이노 우노 연결을 위해 NHD-FT81x-SHIELD J4, J5, J6 NHD-FT81x-SHIELD J1-J3 단자는 개방 상태인지 확인하십시오:
아두이노에 실드를 장착한 후, 20핀 플랫 플렉스 케이블을 사용하여 TFT 디스플레이와 실드를 연결하고, 9V 전원 공급 장치를 아두이노 우노에 연결하십시오.
Gameduino2 라이브러리 수정하기
예제 스케치를 실행하기 전에, GD2.cpp 파일을 수정하여 Gameduino2 라이브러리가 EVE 디스플레이와 호환되도록 해야 합니다. 이를 위해 아래 단계를 따르십시오:
- 문서 > Arduino > libraries > Gameduino2 > GD2.cpp로 이동하십시오.
- 선호하는 코드 편집기에서 GD2.cpp 파일을 엽니다.
- 확보하다
//if (STORAGE && (options & GD_STORAGE))주석 처리되어 있습니다. - 변경 사항을 저장하고 수정된 파일을 닫으십시오.
이브 TFT 레지스터
각 디스플레이에 필요한 타이밍 값은 아래 표에서 복사하여 붙여넣을 수 있습니다.
| TFT 크기 | 해상도 | 등록 값 |
|---|---|---|
| 3.5인치 TFT | 320 x 240 |
GD.wr16(REG_HSIZE, 320);
GD.wr16(REG_HCYCLE, 408);
GD.wr16(REG_HOFFSET, 70);
GD.wr16(REG_HSYNC0, 0);
GD.wr16(REG_HSYNC1, 10);
GD.wr16(REG_VSIZE, 240);
GD.wr16(REG_VCYCLE, 263);
GD.wr16(REG_VOFFSET, 13);
GD.wr16(REG_VSYNC0, 0);
GD.wr16(REG_VSYNC1, 2);
GD.wr16(REG_PCLK, 8);
GD.wr16(REG_SWIZZLE, 0);
GD.wr16(REG_PCLK_POL, 0);
GD.wr16(REG_CSPREAD, 1);
GD.wr16(REG_DITHER, 1);
GD.wr16(REG_ROTATE, 0);
|
| 4.3인치 TFT | 480 x 272 |
GD.wr16(REG_HSIZE, 480);
GD.wr16(REG_HCYCLE, 548);
GD.wr16(REG_HOFFSET, 43);
GD.wr16(REG_HSYNC0, 0);
GD.wr16(REG_HSYNC1, 41);
GD.wr16(REG_VSIZE, 272);
GD.wr16(REG_VCYCLE, 292);
GD.wr16(REG_VOFFSET, 12);
GD.wr16(REG_VSYNC0, 0);
GD.wr16(REG_VSYNC1, 10);
GD.wr16(REG_PCLK, 5);
GD.wr16(REG_SWIZZLE, 0);
GD.wr16(REG_PCLK_POL, 1);
GD.wr16(REG_CSPREAD, 1);
GD.wr16(REG_DITHER, 1);
GD.wr16(REG_ROTATE, 0);
|
| 4.3인치 TFT | 800 x 480 |
GD.wr16(REG_HSIZE, 800);
GD.wr16(REG_HCYCLE, 928);
GD.wr16(REG_HOFFSET, 88);
GD.wr16(REG_HSYNC0, 0);
GD.wr16(REG_HSYNC1, 48);
GD.wr16(REG_VSIZE, 480);
GD.wr16(REG_VCYCLE, 525);
GD.wr16(REG_VOFFSET, 32);
GD.wr16(REG_VSYNC0, 0);
GD.wr16(REG_VSYNC1, 3);
GD.wr16(REG_PCLK, 2);
GD.wr16(REG_SWIZZLE, 0);
GD.wr16(REG_PCLK_POL, 1);
GD.wr16(REG_CSPREAD,0);
GD.wr16(REG_DITHER, 1);
GD.wr16(REG_ROTATE, 0);
|
| 5.0인치 TFT | 800 x 480 |
GD.wr16(REG_HSIZE, 800);
GD.wr16(REG_HCYCLE, 928);
GD.wr16(REG_HOFFSET, 88);
GD.wr16(REG_HSYNC0, 0);
GD.wr16(REG_HSYNC1, 48);
GD.wr16(REG_VSIZE, 480);
GD.wr16(REG_VCYCLE, 525);
GD.wr16(REG_VOFFSET, 32);
GD.wr16(REG_VSYNC0, 0);
GD.wr16(REG_VSYNC1, 3);
GD.wr16(REG_PCLK, 2);
GD.wr16(REG_SWIZZLE, 0);
GD.wr16(REG_PCLK_POL, 0);
GD.wr16(REG_CSPREAD, 0);
GD.wr16(REG_DITHER, 1);
GD.wr16(REG_ROTATE, 0);
|
| 7.0인치 TFT | 800 x 480 |
GD.wr16(REG_HSIZE, 800);
GD.wr16(REG_HCYCLE, 928);
GD.wr16(REG_HOFFSET, 88);
GD.wr16(REG_HSYNC0, 0);
GD.wr16(REG_HSYNC1, 48);
GD.wr16(REG_VSIZE, 480);
GD.wr16(REG_VCYCLE, 525);
GD.wr16(REG_VOFFSET, 32);
GD.wr16(REG_VSYNC0, 0);
GD.wr16(REG_VSYNC1, 3);
GD.wr16(REG_PCLK, 2);
GD.wr16(REG_SWIZZLE, 0);
GD.wr16(REG_PCLK_POL, 1);
GD.wr16(REG_CSPREAD, 0);
GD.wr16(REG_DITHER, 1);
GD.wr16(REG_ROTATE, 0);
|
예시: Hello World
해당 파일에 위 수정 사항을 적용한 후, 'Hello World' 스케치를 테스트할 차례입니다:
참고: 다음 변경 사항은 예시 가이드로 당사의 4.3인치 EVE TFT 타이밍/레지스터를 참조합니다.
- 파일 > 예제 > Gameduino2 > 기본 > Hello World로 이동하여 helloword.ino 파일을 엽니다 .
- 교체
GD.begin(0);withGD.시작(0,10,5);~에서설정()함수. - 위 EVE TFT 레지스터 테이블에서 디스플레이 크기에 해당하는 값을 확인하십시오.
- 함수를 추가하십시오
TFT_4_3()그리고 아래 코드에서 보여준 대로 설정 함수에서 이를 호출하십시오. - Arduino Uno 보드에 코드를 업로드하세요. 스케치 파일을 업로드하기 전에 보드와 포트를 선택했는지 확인하세요. 자세한 내용은Arduino IDE에서 스케치 업로드하기를 참고하세요.
최종 코드는 다음과 비슷하게 보일 것입니다:
#include#include #include void TFT_4_3() { GD.wr16(REG_HSIZE, 480); GD.wr16(REG_HCYCLE, 548); GD.wr16(REG_HOFFSET, 43); GD.wr16(REG_HSYNC0, 0); GD.wr16(REG_HSYNC1, 41); GD.wr16(REG_VSIZE, 272); GD.wr16(REG_VCYCLE, 292); GD.wr16(REG_VOFFSET, 12); GD.wr16(REG_VSYNC0, 0); GD.wr16(REG_VSYNC1, 10); GD.wr16(REG_PCLK, 5); GD.wr16(REG_SWIZZLE, 0); GD.wr16(REG_PCLK_POL, 1); GD.wr16(REG_CSPREAD, 1); GD.wr16(REG_DITHER, 1); GD.wr16(REG_ROTATE, 0); GD.swap(); } void setup() { GD.begin(0,10,5); TFT_4_3(); } void loop() { GD.ClearColorRGB(0x103000); GD.Clear(); GD.cmd_text(GD.w / 2, GD.h / 2, 31, OPT_CENTER, "Hello world"); GD.swap(); }
수정 작업이 성공적으로 완료되었다면, EVE TFT 디스플레이에 다음과 같은 내용이 표시될 것입니다:
축하합니다! 이제 예제 스케치를 실행해 보시고, 저희 EVE TFT 디스플레이와 함께 Gameduino2 라이브러리의 흥미로운 기능을 탐색해 보실 수 있습니다.
소프트웨어 지원
Gameduino2 라이브러리와 관련된 모든 소프트웨어는 James Bowman이 설계한 것으로, Newhaven Display International Inc.에서 제작하거나 유지 관리하지 않습니다. Gameduino2 라이브러리와 관련된 추가 소프트웨어 지원이 필요하신 경우, James Bowman의 GitHub 저장소를 방문하시기 바랍니다.
참고 링크
- Gameduino2 홈페이지
- Gameduino2 GitHub 페이지
- 게임듀이노2 요리책
- FTDI EVE 예제 파일
- 이 애플리케이션 노트를 PDF 형식으로 미리 보거나 다운로드하십시오.
추가 자료
TFT EVE 시리즈 디스플레이를 Gameduino2 라이브러리와 함께 사용하는 방법에 대한 추가 지원이나 기타 디스플레이 제품에 관한 문의 사항은 당사의 기술 지원 채널을 통해 연락주시기 바랍니다:
| 이메일 | techsupport@newhavendisplay.com |
| 전화 | (847) 844-8795 |
| 지원 센터 | 뉴헤이븐 디스플레이 지원 센터 |