많이

STONE 직렬 HMI Arduino 조기 학습 능력 데모

사용법 - 기본 그래픽 컨트롤 STONE 직렬 화면에서 선, 삼각형, 다각형, 직사각형, 정사각형, 원, 호, 색상 채우기, 잘라내기 및 붙여넣기 등을 그릴 수 있습니다.

직렬 터치 스크린 STVI056WT-01을 사용하는 조기 학습 기계의 설계, 그림을 보고 모양을 식별하고, 색상에 따라 단어를 인식하고, 올바른 오류를 결정하고 점수를 매기거나 레벨을 통과하는 엔터테인먼트 형식을 설계하는 것, 아이들이 편안하고 재미있는 방식으로 색상을 인식하고 기본 모양을 이해하고 해당 단어를 배울 수 있도록 합니다.

공식 비디오 프레젠테이션은 기본 그래픽 컨트롤의 실제 효과를 제공하지 않으므로 이 데모에서 이를 보완합니다. 드로잉에 대한 지침은 아두이노 컨트롤 보드 그리고 STONE 연속 화면n.

또한, 이 메모에는 기본 그래픽 컨트롤의 전체 기능 내용이 포함되어 있지 않으며, 정교화 사용에 사용되는 기능만 컴퓨터에서 테스트되며, 데모 실행을 직접 다운로드할 수 있습니다.

데모용 하드웨어 환경은 그림 1, 그림 2 및 그림 3에 나와 있습니다.

STONE은 공식적으로 2개의 보드와 함께 제공되며, 그 중 정사각형은 USB 다운로드 보드이고 긴 것은 USB to 직렬 통신 보드(및 직렬 화면용 DC12V 전원 공급 장치)입니다.

(그림 1: STONE 직렬 화면의 통신 및 전원 연결) (그림 2: STONE 화면에서 기본 그래픽 제어 파일을 다운로드하기 위한 연결 다이어그램)

(그림 3: STONE 직렬 화면 통신 보드와 arduino 개발 보드 간의 TX, RX, GND 연결)

(그림 4: 기본 그래픽 제어 그리기 영역 및 변수 주소 및 기타 매개변수 설정)

STONE TOOLBox(GUI Design software) 메뉴 Variable Configuration(D)에서 Basicgraphics 컨트롤을 선택하고 그리기 영역과 변수 주소 매개변수를 설정한 후 0x82 명령어를 사용하여 설정된 변수 메모리 주소(0x1000이 여기에서 설정됨)에 씁니다. 그리기 영역 및 변수 주소 매개변수를 설정한 후 0x82 명령을 사용하여 CMD + Data_pack_Num_Max + Data를 설정된 변수 메모리 주소(이 경우 0x1000)에 작성하여 그리기 기능의 구현을 완료합니다. 특정 기능 코드는 다음 예를 사용하여 선 그리기 명령 6x0가 있는 그림 0002에 나와 있습니다.

(그림 5: 기본 그래픽 제어 데이터 명령 형식)

(그림 6: 기본 그래픽 제어를 위한 선 그리기 및 사각형 명령 그림)

선 그리기 명령어 0x0002, 사용 예.

좌표(340, 200)에서 좌표(585, 200)까지 검은색 선을 연결하려면 다음과 같이 지시합니다.

A5 5A 11 82 10 00 00 02 00 01 00 00 01 54 00 C8 02 49 00 C8

좌표 (200, 200), (300, 200), (250, 100)에 XNUMX개의 꼭짓점이 있는 삼각형으로 닫힌 XNUMX개의 검은색 선을 그립니다. 명령은 다음과 같습니다.

A5 5A 19 82 10 00 00 02 00 03 00 00 00 00 C8 00 C8 01 2C 00 C8 00 FA 00 64 00 C8 00 C8

위의 0x1000은 기본 그래픽 제어의 가변 주소, 0x0002는 명령 코드, 0x0001 및 0x0003은 각각 1행 및 3행, 0x0000은 색상 코드, 값 0000은 검정색, 값 ffff는 밝은 흰색입니다. 각 점의 다른 순간 XY 좌표.

직사각형을 그리는 예.

사각형 왼쪽 위 꼭짓점 좌표(340, 237), 오른쪽 아래 꼭짓점 좌표(585, 340) 검정색, 명령은 다음과 같습니다.

A5 5A 11 82 10 00 00 03 00 01 01 54 00 ED 02 49 01 54 00 00

두 개의 직사각형 (340, 237) – (585, 340), (324, 221) – (601, 356)을 동시에 그립니다. 명령은 다음과 같습니다.

A5 5A 1B 82 10 00 00 03 00 02 01 54 00 ED 02 49 01 54 00 00 01 44 00 일 02 59 01 64 FF FF

위의 0x1000은 기본 그래픽 제어의 변수 주소, 0x0003은 직사각형 명령 코드, 0x0001, 0x0002는 1개의 직사각형, 2개의 직사각형, 0x0000, 0xffff는 색상 코드, 0000의 값은 검정색, fffff의 값은 밝음 하얀. 나머지는 각 사각형의 왼쪽 위 꼭짓점과 오른쪽 아래 꼭짓점의 XY 좌표입니다.

(그림 7: 기본 그래픽 컨트롤을 위한 사각형 채우기 및 원 그리기 명령)

사각형 채우기 예.

검은색 사각형 채우기 (470, 200) ~ (550) 명령은

A5 5A 11 82 10 00 00 04 00 01 01 D6 00 C8 02 26 00 FF 00 00 00

원을 그리는 예.

원의 중심(470, 200), R = 50 검정색, 명령어는

A5 5A 0F 82 10 00 00 05 00 01 01 D6 00 C8 00 32 00 00

두 개의 원을 동시에 그리려면 중심 A(470, 200) R=50 및 중심 B(256, 200) R=80 모두 검은색으로 표시됩니다.

A5 5A 17 82 10 00 00 05 00 02 01 D6 00 C8 00 32 00 00 01 00 00 C8 00 50 00 00

(그림 8: 기본 그래픽 제어를 위한 Arc 명령)

호 해상도는 0.5도이고 360도는 720에 해당하며 0도는 수직 위쪽 방향입니다.

아크 예.

위쪽 호 시작 315도 – 끝 45도, 원의 중심(300, 200) R = 80, 검정색, 명령은 다음과 같습니다.

A5 5A 13 82 10 00 00 0B 00 01 00 00 01 2C 00 C8 00 50 02 76 00 5A

색상에 관하여.

0x0000은 검은색 0xffff는 흰색 0x00ff는 파란색 0xf000은 빨간색 0xfd60은 주황색

0xff60은 노란색 0x2f60은 녹색

(그림 9: 기본 그래픽 제어 모양 인터페이스 드로잉 보드 매개변수 및 주소)

(그림 10: 기본 그래픽 제어 색상 인터페이스의 드로잉 보드 매개변수 및 주소)

변수 주소에 따라 (10, 80) ~ (630, 400)에 녹색을 채우는 명령은 다음과 같습니다.

A5 5A 11 82 60 00 00 04 00 01 00 0A 00 50 02 76 01 90 2f 60

기타 유사점은 프로그램 코드를 참조하십시오.

영상에서 보여지는 코드는 다음과 같습니다.

/*

frank10

STONE 및 arduino COMM, 프로그램에서 기본 그래픽 재생..

XNUMX초 동안 LED를 켠 다음 XNUMX초 동안 반복적으로 끕니다. LED는 우리에게 부드러운 작동이 정상임을 알려줍니다!

샘플에는 두 페이지가 있습니다. page1은 모양이고 page2는 corlor입니다!

이 예제 코드는 frank의 파일에 있습니다. 20210625

*/

// 핀 13에는 대부분의 Arduino 보드에 연결된 LED가 있습니다.

// 이름을 지정합니다.

정수 주도 = 13;

정수 iYePian = 0; //YePian의 숫자는 0x0020!

//int iGongLu = 0; //0x0180 for GongLu!

//int iLiuLiang = 0; //0x0160 현재 LiuLiang!

정수 iJiao = 0; // JieJuJiao의 경우 0x0260!

int iGongLuWater = 0; //0x0280 워터 공루! 값은 0-50000입니다!

int iLed = 1; //지연 시간 번호.

int iLed2 = 1; //지연 시간 번호. 50ms가 포인트입니다.

int iLed3 = 0; //지연 시간 번호. 50ms가 포인트입니다.

int iLed4 = 0; //지연 시간 번호. 50ms가 포인트입니다.

int iCurve0 = 0; //curve0의 값. 50ms가 포인트입니다.

int iCurve1 = 0; //curve1의 값,. 50ms가 포인트입니다.

정수 iFlag0 = 1; // 곡선의 플래그0 + 또는 -; .1은 위, 0은 아래입니다.

정수 iFlag1 = 1; // 곡선의 플래그1 + 또는 -; .1은 위, 0은 아래입니다.

정수 iNum = 0 ; // 문자 번호를 읽습니다.

정수 iNum2 = 0; // ShuiDianZhan의 경우 char num2에서 읽습니다!

//int iPower = 2; //키 조각상 0x0009

//int iMode = 2; //키 조각상 0x000A

정수 iPowerWater = 2; //키 조각상 0x0039

// 재설정을 누를 때 설정 루틴이 한 번 실행됩니다.

void setup () {

// 디지털 핀을 출력으로 초기화합니다.

핀모드(LED, 출력);

Serial.begin(115200); // 직렬 통신 기능을 열고 직렬 포트가 열릴 때까지 기다립니다.

동안 (! 직렬) {

; // 직렬 포트가 연결될 때까지 기다립니다. 레오나르도에게만 필요

}

}

// 루프 루틴은 영원히 계속 반복됩니다.

무효 루프 () {

정수 inChar;

/*——————————————————————————--*/

if (iLed == 800) {

//——- 0x0039 값 읽기———-

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x04); //길이

직렬.쓰기(0x83); // 읽다!

직렬.쓰기(0x00); // ShuiDianZhan 전원 키의 주소!

직렬.쓰기(0x39); // ShuiDianZhan 전원 키의 주소!

직렬.쓰기(0x01); // 0x0039(전원 키)

//———STONE 반환 값은 "A5 5A 06 83 00 39 01 00 01 "--

}

// 직렬 포트에서 보낸 정보를 읽습니다.

if (Serial.available() > 0) { inChar = Serial.read(); }

/*

바크를 저장합니다.

읽기 키를 가질 수 있고 키 작업을 가질 수 있기 때문입니다.

프로그램은 입력의 키가 peplose의 일을 하는 HMI입니다.

*/

//—————————————————————————————

//—————————0x0039 키 읽기 시작———————————-

if (inChar == 0x39) { iNum2 = 1 ; }

if ((inChar == 0x01)&&(iNum2 == 1)) { iNum2 = 2 ; }

if ((inChar == 0x00)&&(iNum2 == 2)) { iNum2 = 3 ; }

if ((inChar == 0x01)&&(iNum2 == 3)) {

iNum2 = 0 ;

if(아이파워워터!= 1){

아이파워워터 = 1 ; //전원 켜짐!

아이자오 = 0 ;

아이공루워터 = 0 ;

}

}

if ((inChar == 0x02)&&(iNum2 == 3)) {

iNum2 = 0 ;

아이파워워터 = 2 ; //전원 OFF!

}

//——————0x0039 키 읽기 확인! 아이파워워터 ok!——————————

//—————————————————————————————

지연 (1);

iLED += 1;

iLed2 += 1; // 50ms는 한 지점을 수행합니다.

//———————————————————————————————

//——————————50ms는 포인트 시작을 합니다————————————-

if (iLed2 == 50) {

iLed2 = 1;

iLed4 += 1; // 50ms는 한 지점을 수행합니다.

if(iFlag0 == 1){

아이커브0 += 1; // 50ms는 한 지점을 수행합니다.

if(iCurve0 >= 150){

iFlag0 = 0; // iCurve0 턴 다운!.

}

}

if(iFlag0 == 0){

iCurve0 -= 1; // 50ms는 한 지점을 수행합니다.

if(iCurve0 <= 1){

iFlag0 = 1; // iCurve0이 켜집니다!.

}

}

if(iFlag1 == 1){

if(iLed4 >= 3){

아이커브1 += 1; // 50ms는 한 지점을 수행합니다.

iLed4 = 0;

}

if(iCurve1 >= 50){

iFlag1 = 0; // iCurve1 턴 다운!.

}

}

if(iFlag1 == 0){

if(iLed4 >= 3){

iLed4 = 0;

iCurve1 -= 1; // 50ms는 한 지점을 수행합니다.

}

if(iCurve1 <= 1){

iFlag1 = 1; // iCurve1이 켜집니다!.

}

}

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x06);

직렬.쓰기(0x84); //곡선에 쓰기!

직렬.쓰기(0x03); // 커브 경로,

Serial.write(iCurve0); // N=1,

직렬.쓰기(0x00);

Serial.write(iCurve1);

직렬.쓰기(0x00);

}

//—————————-50ms는 포인트 끝을 합니다—————————————

//———————————————————————————————

if (iLed == 500) {

digitalWrite(led, HIGH); // LED 켜기(HIGH는 전압 레벨)

//지연(500); // 잠시 기다림, Range:200-2000

}

if (iLed >= 1000) {

디지털 쓰기(LED, LOW); // 전압을 LOW로 만들어 LED를 끕니다.

//지연(500); // 200초 동안 기다립니다. 범위:2000-XNUMX

iLed = 1;

if( iNum <= 6 ) iNum += 1; //모양 회전!

if( iNum == 6 ) iNum = 0; //모양 회전!

//————————————-빨간색은 시작입니다——————————————

if( iNum == 1){ // 삼각형! 그리고 빨강!

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x19);

직렬.쓰기(0x82);

직렬.쓰기(0x10); // 기본 그래픽의 addressH

직렬.쓰기(0x00); // 기본 그래픽의 addressL

직렬.쓰기(0x00); // 행 CMD 수행

직렬.쓰기(0x02); // 행 CMD 수행

직렬.쓰기(0x00); // 줄 번호

직렬.쓰기(0x03); // 줄 번호.

직렬.쓰기(0x00); //색상H 블랙

직렬.쓰기(0x00); //색상L

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0xc8); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0xc8); // 포인트Y1L

직렬.쓰기(0x01); // 포인트X2H

직렬.쓰기(0x2C); // 포인트X2L.

직렬.쓰기(0x00); // 포인트Y2H

직렬.쓰기(0xC8); // 포인트Y2L

직렬.쓰기(0x00); // 포인트X3H

직렬.쓰기(0xFA); // 포인트X3L

직렬.쓰기(0x00); // 포인트Y3H

직렬.쓰기(0x64); // 포인트Y3L

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0xc8); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0xc8); // 포인트Y1L

//채우다--

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x60); // 기본 그래픽 페이지 2의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe2의 addressL

직렬.쓰기(0x00); // 사각형 CMD 채우기 수행

직렬.쓰기(0x04); // 사각형 CMD 채우기 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0x0A); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0x50); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x76); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x90); // 포인트Y2L

직렬.쓰기(0xF0); // 빨간색 H

직렬.쓰기(0x00); // 레드 컬러L

}

//————————————-빨간색이 끝입니다—————————————

//————————————노란색과 호가 시작됩니다——————————————

if( iNum == 2){ // 호! 그리고 노란색!

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x13);

직렬.쓰기(0x82);

직렬.쓰기(0x10); // 기본 그래픽 페이지 1의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe1의 addressL

직렬.쓰기(0x00); // 아크 CMD 수행

직렬.쓰기(0x0B); // 아크 CMD 수행

직렬.쓰기(0x00); // 호의 번호

직렬.쓰기(0x01); // 호의 번호.

직렬.쓰기(0x00); // 색상H 블랙

직렬.쓰기(0x00); // colorL 공백

직렬.쓰기(0x01); // 원 XH의 중심

직렬.쓰기(0x2c); // 원 XL의 중심

직렬.쓰기(0x00); // 원 YH의 중심

직렬.쓰기(0xc8); // 원 YL의 중심

직렬.쓰기(0x00); // RH

직렬.쓰기(0x50); // RL.

직렬.쓰기(0x02); // 각도1H

직렬.쓰기(0x76); // 각도1L

직렬.쓰기(0x00); // 각도2H

직렬.쓰기(0x5A); // 각도2L

//채우다--

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x60); // 기본 그래픽 페이지 2의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe2의 addressL

직렬.쓰기(0x00); // 사각형 CMD 채우기 수행

직렬.쓰기(0x04); // 사각형 CMD 채우기 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0x0A); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0x50); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x76); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x90); // 포인트Y2L

직렬.쓰기(0xFF); // 노란색 H

직렬.쓰기(0x60); // 노란색 L

}

//————————————-노란색과 호가 끝——————————————

//————————————녹색과 직사각형이 시작됩니다——————————————

if( iNum == 3){ // 직사각형! 그리고 녹색!

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x10); // 기본 그래픽 페이지 1의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe1의 addressL

직렬.쓰기(0x00); // 사각형 CMD 수행

직렬.쓰기(0x03); // 사각형 CMD 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x01); // 포인트X1H

직렬.쓰기(0x54); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0xED); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x49); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x54); // 포인트Y2L

직렬.쓰기(0x00); // 색상H 블랙

직렬.쓰기(0x00); // colorL 공백

//채우다--

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x60); // 기본 그래픽 페이지 2의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe2의 addressL

직렬.쓰기(0x00); // 사각형 CMD 채우기 수행

직렬.쓰기(0x04); // 사각형 CMD 채우기 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0x0A); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0x50); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x76); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x90); // 포인트Y2L

직렬.쓰기(0x2F); // 녹색 H

직렬.쓰기(0x60); // 녹색 L

}

//————————————녹색과 직사각형이 끝——————————————

//—————————————주황색과 사각형이 시작됩니다——————————————

if( iNum == 4){ // 정사각형! 그리고 오렌지!

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x10); // 기본 그래픽 페이지 1의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe1의 addressL

직렬.쓰기(0x00); // 사각형 CMD 수행

직렬.쓰기(0x03); // 사각형 CMD 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x01); // 포인트X1H

직렬.쓰기(0x54); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0x91); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x49); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x86); // 포인트Y2L

직렬.쓰기(0x00); // 색상H 블랙

직렬.쓰기(0x00); // colorL 공백

//채우다--

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x60); // 기본 그래픽 페이지 2의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe2의 addressL

직렬.쓰기(0x00); // 사각형 CMD 채우기 수행

직렬.쓰기(0x04); // 사각형 CMD 채우기 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0x0A); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0x50); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x76); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x90); // 포인트Y2L

직렬.쓰기(0xFD); // 주황색 H

직렬.쓰기(0x60); // 주황색 L

}

//————————————오렌지와 네모는 끝——————————————

//————————————파란색과 원이 시작됩니다——————————————

if( iNum == 5){ // 원! 그리고 파란색!

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x0F);

직렬.쓰기(0x82);

직렬.쓰기(0x10); // 기본 그래픽 페이지 1의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe1의 addressL

직렬.쓰기(0x00); // 서클 CMD 수행

직렬.쓰기(0x05); // 서클 CMD 수행

직렬.쓰기(0x00); // 원의 수

직렬.쓰기(0x01); // 원의 수

직렬.쓰기(0x01); // 원 XH의 중심

직렬.쓰기(0xD6); // 원 XL의 중심

직렬.쓰기(0x00); // 원 YH의 중심

직렬.쓰기(0xc8); // 원 YL의 중심

직렬.쓰기(0x00); // RH

직렬.쓰기(0x32); // RL.

직렬.쓰기(0x00); // 색상H 블랙

직렬.쓰기(0x00); // colorL 공백

//채우다--

직렬.쓰기(0xA5); //"A5"는 165입니다.

직렬.쓰기(0x5A); //"5A"는 90입니다.

직렬.쓰기(0x11);

직렬.쓰기(0x82);

직렬.쓰기(0x60); // 기본 그래픽 페이지 2의 addressH

직렬.쓰기(0x00); // 기본 그래픽 pabe2의 addressL

직렬.쓰기(0x00); // 사각형 CMD 채우기 수행

직렬.쓰기(0x04); // 사각형 CMD 채우기 수행

직렬.쓰기(0x00); // 사각형의 수

직렬.쓰기(0x01); // 사각형의 수

직렬.쓰기(0x00); // 포인트X1H

직렬.쓰기(0x0A); // 포인트X1L

직렬.쓰기(0x00); // 포인트Y1H

직렬.쓰기(0x50); // 포인트Y1L

직렬.쓰기(0x02); // 포인트X2H

직렬.쓰기(0x76); // 포인트X2L.

직렬.쓰기(0x01); // 포인트Y2H

직렬.쓰기(0x90); // 포인트Y2L

직렬.쓰기(0x00); // 파란색 H

직렬.쓰기(0xFF); // 파란색 L

}

//————————————파란색과 원이 끝——————————————

마지막으로 온라인 디버깅입니다.

STONE TOOLBox(GUI 디자인 소프트웨어)는 화면 파일 다운로드, arduino 코드 파일 업로드, 전원 공급 장치 연결, 통신, 전원을 켜서 이미지 드로잉 및 색상 변경을 관찰하여 원하는 효과를 얻을 수 있도록 편집합니다.

영상에서 보여지는 코드는 다음과 같습니다.

(온라인 튜닝 시도)

출처 : Plato Data Intelligence