IOT

STONE Serial HMI Arduino การสาธิตการเรียนรู้เบื้องต้นเกี่ยวกับการเรียนรู้เบื้องต้น

การใช้ การควบคุมกราฟิกพื้นฐาน ของหน้าจออนุกรมของ STONE คุณสามารถวาดเส้น สามเหลี่ยม รูปหลายเหลี่ยม สี่เหลี่ยม สี่เหลี่ยม วงกลม โค้ง เติมสี ตัดและวาง และอื่นๆ

การออกแบบเครื่องเรียนรู้ก่อนวัยเรียนโดยใช้หน้าจอสัมผัสแบบอนุกรม STVI056WT-01 เพื่อระบุรูปร่างด้วยการดูรูปภาพ จดจำคำศัพท์ตามสี และออกแบบรูปแบบความบันเทิงเพื่อระบุข้อผิดพลาด คะแนน หรือผ่านระดับที่ถูกต้อง เพื่อให้เด็กๆ สามารถเรียนรู้ที่จะจดจำสี ทำความเข้าใจรูปทรงพื้นฐาน และเรียนรู้คำศัพท์ที่เกี่ยวข้องอย่างผ่อนคลายและสนุกสนาน

การนำเสนอวิดีโออย่างเป็นทางการไม่ได้ให้ผลที่แท้จริงของการควบคุมกราฟิกพื้นฐาน ดังนั้นการสาธิตนี้จะเป็นส่วนเสริม คำแนะนำสำหรับการวาดภาพจะถูกส่งผ่านการสื่อสารระหว่าง บอร์ดควบคุม Arduino และ หินกรวดแบบอนุกรมn.

นอกจากนี้ บันทึกย่อนี้ไม่ได้รวมเนื้อหาการทำงานที่สมบูรณ์ของการควบคุมกราฟิกพื้นฐาน เฉพาะฟังก์ชันที่ใช้ในการทำอย่างละเอียดเท่านั้น การบันทึกจะได้รับการทดสอบบนเครื่อง ตกลง คุณสามารถดาวน์โหลดการสาธิตการทำงานได้โดยตรง

สภาพแวดล้อมฮาร์ดแวร์สำหรับการสาธิตแสดงในรูปที่ 1 รูปที่ 2 และรูปที่ 3

STONE มาพร้อมกับ 2 บอร์ดอย่างเป็นทางการ โดยในจำนวนนี้จะเป็นบอร์ดสำหรับดาวน์โหลด USB และบอร์ดแบบยาวคือ USB เข้ากับบอร์ดสื่อสารแบบซีเรียล (และแหล่งจ่ายไฟ DC12V สำหรับหน้าจอซีเรียล)

(ภาพที่ 1: การสื่อสารและการเชื่อมต่อพลังงานของหน้าจออนุกรม STONE) (ภาพที่ 2: แผนภาพการเชื่อมต่อสำหรับการดาวน์โหลดไฟล์ควบคุมกราฟิกพื้นฐานจากหน้าจอ STONE)

(รูปที่ 3: การเชื่อมต่อ TX, RX, GND ระหว่างบอร์ดสื่อสารหน้าจออนุกรม STONE และบอร์ดพัฒนา Arduino)

(รูปที่ 4: พื้นที่วาดภาพควบคุมกราฟิกพื้นฐานและที่อยู่ตัวแปรและการตั้งค่าพารามิเตอร์อื่น ๆ )

หลังจากเลือกการควบคุม Basicgraphics ในเมนู STONE TOOLBox (ซอฟต์แวร์ออกแบบ GUI) การกำหนดค่าตัวแปร (D) และการตั้งค่าพื้นที่การวาดและพารามิเตอร์ที่อยู่ตัวแปร คำสั่ง 0x82 จะใช้เพื่อเขียนไปยังชุดที่อยู่หน่วยความจำตัวแปร (ตั้งค่า 0x1000 ที่นี่) หลังจากตั้งค่าพารามิเตอร์พื้นที่การวาดและที่อยู่ตัวแปรแล้ว คำสั่ง 0x82 จะใช้ในการเขียน CMD + Data_pack_Num_Max + Data ไปยังที่อยู่หน่วยความจำตัวแปรที่ตั้งไว้ (0x1000 ในกรณีนี้) เพื่อให้การใช้งานฟังก์ชันการวาดเสร็จสมบูรณ์ รหัสฟังก์ชันเฉพาะแสดงในรูปที่ 6 โดยมีคำสั่งการวาดเส้น 0x0002 โดยใช้ตัวอย่างต่อไปนี้

(รูปที่ 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) และคำสั่งคือ

A5 5A 19 82 10 00 00 02 00 03 00 00 00 00 C8 00 C8 01 2C 00 C8 00 เอฟเอ 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 อีดี 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 DD 02 59 01 64 FF FF

0x1000 ด้านบนเป็นที่อยู่ตัวแปรของการควบคุมกราฟิกพื้นฐาน 0x0003 คือรหัสคำสั่งสี่เหลี่ยมผืนผ้า 0x0001, 0x0002 คือ 1 สี่เหลี่ยมผืนผ้า 2 สี่เหลี่ยมผืนผ้า 0x0000 0xffff คือรหัสสีค่า 0000 เป็นสีดำค่า fffff สว่าง สีขาว. ส่วนอื่นๆ คือพิกัด XY ของจุดยอดซ้ายบนและจุดยอดขวาล่างของสี่เหลี่ยมแต่ละอัน

(รูปที่ 7: คำสั่งเติมสี่เหลี่ยมและวาดวงกลมสำหรับการควบคุมกราฟิกพื้นฐาน)

ตัวอย่างการเติมสี่เหลี่ยมผืนผ้า

คำสั่งเติมสี่เหลี่ยมสีดำ (470, 200) ~ (550 ,255) is

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 เล่นกราฟิกพื้นฐานที่โปรแกรม..

เปิดไฟ LED เป็นเวลาหนึ่งวินาทีจากนั้นดับหนึ่งวินาทีซ้ำ ๆ ไฟ LED บอกเราว่าการทำงานที่นุ่มนวลนั้นใช้ได้!

ตัวอย่างมี 1 หน้า หน้าที่ 2 เป็นรูปทรง หน้า XNUMX เป็นสี!

โค้ดตัวอย่างนี้อยู่ในไฟล์ของ Frank 20210625

*/

// Pin 13 มี LED เชื่อมต่อกับบอร์ด Arduino ส่วนใหญ่

// ตั้งชื่อมันว่า:

int นำ = 13;

int iYePian = 0; //0x0020 สำหรับจำนวน YePian!

//int iGongLu = 0; //0x0180 สำหรับ The GongLu!

//int iLiuLiang = 0; //0x0160 สำหรับ The now LiuLiang!

int iJiao = 0; // 0x0260 สำหรับ The JieJuJiao!

int iGongLuWater = 0; //0x0280 สำหรับ The Water GongLu! มูลค่า 0-50000!

int iLed = 1; // หน่วงเวลาจำนวน

int iLed2 = 1; // หน่วงเวลาจำนวน 50ms ทำแต้ม

int iLed3 = 0; // หน่วงเวลาจำนวน 50ms ทำแต้ม

int iLed4 = 0; // หน่วงเวลาจำนวน 50ms ทำแต้ม

int iCurve0 = 0; //ค่าของเส้นโค้ง0. 50ms ทำแต้ม

int iCurve1 = 0; //ค่าของเส้นโค้ง1,. 50ms ทำแต้ม

int iFlag0 = 1; // แฟล็กของเส้นโค้ง0 + หรือ -; .1 ขึ้น 0 ลง

int iFlag1 = 1; // แฟล็กของเส้นโค้ง1 + หรือ -; .1 ขึ้น 0 ลง

int iNum = 0 ; // อ่านเป็น char num.

int iNum2 = 0; // อ่านเป็น char num2 สำหรับ ShuiDianZhan!

//int iPower = 2; //รูปกุญแจ 0x0009

//int iMode = 2; //รูปกุญแจ 0x000A

int iPowerWater = 2; //รูปกุญแจ 0x0039

// รูทีนการตั้งค่าทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ต:

การตั้งค่าเป็นโมฆะ () {

// เริ่มต้นพินดิจิตอลเป็นเอาต์พุต

โหมดพิน (นำ, เอาต์พุต);

Serial.begin(115200); // เปิดฟังก์ชันการสื่อสารแบบอนุกรมและรอให้พอร์ตอนุกรมเปิดขึ้น

ในขณะที่ (!Serial) {

; // รอให้พอร์ตอนุกรมเชื่อมต่อ จำเป็นสำหรับลีโอนาร์โดเท่านั้น

}

}

// รูทีนลูปทำงานซ้ำแล้วซ้ำอีกตลอดไป:

ห่วงเป็นโมฆะ () {

int ในชาร์;

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

ถ้า (iLed == 800) {

//——- อ่านค่า 0x0039———-

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

Serial.write(0x04); //ความยาว

Serial.write(0x83); // อ่าน!

Serial.write(0x00); // ที่อยู่ของปุ่ม Power ShuiDianZhan!

Serial.write(0x39); // ที่อยู่ของปุ่มเพาเวอร์ ShuiDianZhan!

Serial.write(0x01); // 0x0039 (ปุ่มเปิดปิด)

//———ค่าส่งคืนของ STONE จะเป็น “A5 5A 06 83 00 39 01 00 01 “——

}

// อ่านข้อมูลที่ส่งโดยพอร์ตอนุกรม:

ถ้า (Serial.available () > 0) { inChar = Serial.read (); }

/*

บันทึกบาก

เพราะสามารถมีปุ่มอ่านและมีการทำงานของคีย์ได้

โปรแกรมคือ HMI ที่คีย์ของอินพุตทำงานของ pplose

*/

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

//—————-0x0039 อ่านคีย์เริ่มต้น ———————————–

ถ้า (inChar == 0x39) { iNum2 = 1 ; }

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

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

ถ้า ((inChar == 0x01)&& (iNum2 == 3)) {

inNum2 = 0 ;

ถ้า (iPowerWater != 1){

iPowerWater = 1 ; //เปิดเครื่อง!

ไอเจียว = 0 ;

น้ำ iGongLu = 0 ;

}

}

ถ้า ((inChar == 0x02)&& (iNum2 == 3)) {

inNum2 = 0 ;

iPowerWater = 2 ; //ไฟดับ!

}

//——0x0039 อ่านคีย์ ok! iPowerWater ตกลง!——————-

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

ล่าช้า (1);

ไฟ LED += 1;

iLed2 += 1; // 50ms ทำแต้ม

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

//——————————————— 50ms เริ่มต้นจุด ————————————–

ถ้า (iLed2 == 50) {

ไอเลด2 = 1;

iLed4 += 1; // 50ms ทำแต้ม

ถ้า (iFlag0 == 1){

iCurve0 += 1; // 50ms ทำแต้ม

ถ้า (iCurve0 >= 150){

iFlag0 = 0; // iCurve0 ปฎิเสธ!.

}

}

ถ้า (iFlag0 == 0){

iCurve0 -= 1; // 50ms ทำแต้ม

ถ้า (iCurve0 <= 1){

iFlag0 = 1; // iCurve0 ปรากฏขึ้น!.

}

}

ถ้า (iFlag1 == 1){

ถ้า (iLed4 >= 3){

iCurve1 += 1; // 50ms ทำแต้ม

ไอเลด4 = 0;

}

ถ้า (iCurve1 >= 50){

iFlag1 = 0; // iCurve1 ปฎิเสธ!.

}

}

ถ้า (iFlag1 == 0){

ถ้า (iLed4 >= 3){

ไอเลด4 = 0;

iCurve1 -= 1; // 50ms ทำแต้ม

}

ถ้า (iCurve1 <= 1){

iFlag1 = 1; // iCurve1 ปรากฏขึ้น!.

}

}

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x06);

Serial.write(0x84); //เขียนโค้ง!

Serial.write(0x03); // ทางโค้ง

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

อนุกรมเขียน(0x00);

Serial.write (iCurve1);

อนุกรมเขียน(0x00);

}

//——————————-50ms ทำจุดสิ้นสุด —————————————

//------------------------------------------------------------------------------------------

ถ้า (iLed == 500) {

digitalWrite (นำสูง); // เปิด LED (สูงคือระดับแรงดันไฟฟ้า)

// ล่าช้า (500); // รอสักครู่ ช่วง:200-2000

}

ถ้า (iLed >= 1000) {

digitalWrite (นำ, ต่ำ); // ปิด LED โดยทำให้แรงดันไฟฟ้า LOW

// ล่าช้า (500); // รอสักครู่ ช่วง:200-2000

ไฟ LED = 1;

ถ้า( iNum <= 6 ) iNum += 1; //แปลงร่าง!

ถ้า (iNum == 6 ) iNum = 0; //แปลงร่าง!

//————————————–สีแดงเริ่มต้นแล้ว—————–

ถ้า (iNum == 1) { // สามเหลี่ยม! และสีแดง!

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x19);

อนุกรมเขียน(0x82);

Serial.write(0x10); // addressH ของกราฟิกพื้นฐาน

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน

Serial.write(0x00); // ทำบรรทัด CMD

Serial.write(0x02); // ทำบรรทัด CMD

Serial.write(0x00); // จำนวนบรรทัด

Serial.write(0x03); // จำนวนบรรทัด

Serial.write(0x00); //สีH สีดำ

Serial.write(0x00); //สีL

Serial.write(0x00); // pointX1H

Serial.write(0xc8); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0xc8); // จุด Y1L

Serial.write(0x01); // pointX2H

Serial.write(0x2C); // pointX2L.

Serial.write(0x00); // จุด Y2H

Serial.write(0xC8); // จุดY2L

Serial.write(0x00); // pointX3H

Serial.write(0xFA); // pointX3L

Serial.write(0x00); // จุด Y3H

Serial.write(0x64); // จุด Y3L

Serial.write(0x00); // pointX1H

Serial.write(0xc8); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0xc8); // จุด Y1L

//เติม--

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x60); // addressH ของกราฟิกพื้นฐาน page2

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe2

Serial.write(0x00); // เติมสี่เหลี่ยม CMD

Serial.write(0x04); // เติมสี่เหลี่ยม CMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x00); // pointX1H

Serial.write(0x0A); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0x50); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x76); // pointX2L.

Serial.write(0x01); // จุด Y2H

Serial.write(0x90); // จุด Y2L

Serial.write(0xF0); // สีแดงH

Serial.write(0x00); // สีแดงL

}

//————————————–สีแดงคือจุดสิ้นสุด—————–

//————————————–สีเหลืองและส่วนโค้งเริ่มต้นแล้ว——————–

ถ้า (iNum == 2) { // arc! และสีเหลือง!

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x13);

อนุกรมเขียน(0x82);

Serial.write(0x10); // addressH ของกราฟิกพื้นฐาน page1

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe1

Serial.write(0x00); // ทำส่วนโค้ง CMD

Serial.write(0x0B); // ทำส่วนโค้ง CMD

Serial.write(0x00); // จำนวนส่วนโค้ง

Serial.write(0x01); // จำนวนของส่วนโค้ง

Serial.write(0x00); // colorH สีดำ

Serial.write(0x00); // colorL ว่างเปล่า

Serial.write(0x01); // จุดศูนย์กลางของวงกลม XH

Serial.write(0x2c); // จุดศูนย์กลางของวงกลม XL

Serial.write(0x00); // ศูนย์กลางของวงกลม YH

Serial.write(0xc8); // จุดศูนย์กลางของวงกลม YL

Serial.write(0x00); // รือ

Serial.write(0x50); // ร.

Serial.write(0x02); // มุม 1H

Serial.write(0x76); // มุม1L

Serial.write(0x00); // มุม 2H

Serial.write(0x5A); // Angle2L

//เติม--

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x60); // addressH ของกราฟิกพื้นฐาน page2

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe2

Serial.write(0x00); // เติมสี่เหลี่ยม CMD

Serial.write(0x04); // เติมสี่เหลี่ยม CMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x00); // pointX1H

Serial.write(0x0A); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0x50); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x76); // pointX2L.

Serial.write(0x01); // จุด Y2H

Serial.write(0x90); // จุด Y2L

Serial.write(0xFF); // สีเหลืองH

Serial.write(0x60); // สีเหลืองL

}

//————————————–สีเหลืองและส่วนโค้งสิ้นสุด—————————————–

//————————————– เริ่มสีเขียวและสี่เหลี่ยมแล้ว——————–

ถ้า (iNum == 3) { // สี่เหลี่ยมผืนผ้า! และสีเขียว!

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x10); // addressH ของกราฟิกพื้นฐาน page1

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe1

Serial.write(0x00); // ทำสี่เหลี่ยมCMD

Serial.write(0x03); // ทำสี่เหลี่ยมCMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // pointX1H

Serial.write(0x54); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0xED); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x49); // pointX2L.

Serial.write(0x01); // จุด Y2H

Serial.write(0x54); // จุด Y2L

Serial.write(0x00); // colorH สีดำ

Serial.write(0x00); // colorL ว่างเปล่า

//เติม--

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x60); // addressH ของกราฟิกพื้นฐาน page2

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe2

Serial.write(0x00); // เติมสี่เหลี่ยม CMD

Serial.write(0x04); // เติมสี่เหลี่ยม CMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x00); // pointX1H

Serial.write(0x0A); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0x50); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x76); // pointX2L.

Serial.write(0x01); // ชี้Y2H

Serial.write(0x90); // จุด Y2L

Serial.write(0x2F); // สีเขียวH

Serial.write(0x60); // สีเขียวL

}

//————————————–สีเขียวและสี่เหลี่ยมสิ้นสุด —————————————–

//————————————–สีส้มและสี่เหลี่ยมเริ่มต้นแล้ว——————–

ถ้า (iNum == 4) { // สี่เหลี่ยม! และส้ม!

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x10); // addressH ของกราฟิกพื้นฐาน page1

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe1

Serial.write(0x00); // ทำสี่เหลี่ยมCMD

Serial.write(0x03); // ทำสี่เหลี่ยมCMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // pointX1H

Serial.write(0x54); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0x91); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x49); // pointX2L.

Serial.write(0x01); // จุด Y2H

Serial.write(0x86); // จุด Y2L

Serial.write(0x00); // colorH สีดำ

Serial.write(0x00); // colorL ว่างเปล่า

//เติม--

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x60); // addressH ของกราฟิกพื้นฐาน page2

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe2

Serial.write(0x00); // เติมสี่เหลี่ยม CMD

Serial.write(0x04); // เติมสี่เหลี่ยม CMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x00); // pointX1H

Serial.write(0x0A); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0x50); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x76); // pointX2L.

Serial.write(0x01); // จุด Y2H

Serial.write(0x90); // จุด Y2L

Serial.write(0xFD); //สีส้มH

Serial.write(0x60); // สีส้มL

}

//————————————–สีส้มและสี่เหลี่ยมสิ้นสุด—————————————–

//————————————–สีน้ำเงินและวงกลมเริ่มต้น—————————————–

ถ้า (iNum == 5) { // วงกลม! และสีน้ำเงิน!

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x0F);

อนุกรมเขียน(0x82);

Serial.write(0x10); // addressH ของกราฟิกพื้นฐาน page1

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe1

Serial.write(0x00); // ทำวงกลม CMD

Serial.write(0x05); // ทำวงกลม CMD

Serial.write(0x00); // จำนวนวงกลม

Serial.write(0x01); // จำนวนวงกลม

Serial.write(0x01); // จุดศูนย์กลางของวงกลม XH

Serial.write(0xD6); // จุดศูนย์กลางของวงกลม XL

Serial.write(0x00); // ศูนย์กลางของวงกลม YH

Serial.write(0xc8); // จุดศูนย์กลางของวงกลม YL

Serial.write(0x00); // รือ

Serial.write(0x32); // ร.

Serial.write(0x00); // colorH สีดำ

Serial.write(0x00); // colorL ว่างเปล่า

//เติม--

Serial.write(0xA5); //”A5″ คือ 165

Serial.write(0x5A); //”5A” คือ 90

อนุกรมเขียน(0x11);

อนุกรมเขียน(0x82);

Serial.write(0x60); // addressH ของกราฟิกพื้นฐาน page2

Serial.write(0x00); // addressL ของกราฟิกพื้นฐาน pabe2

Serial.write(0x00); // เติมสี่เหลี่ยม CMD

Serial.write(0x04); // เติมสี่เหลี่ยม CMD

Serial.write(0x00); // จำนวนสี่เหลี่ยม

Serial.write(0x01); // จำนวนสี่เหลี่ยม

Serial.write(0x00); // pointX1H

Serial.write(0x0A); // pointX1L

Serial.write(0x00); // จุด Y1H

Serial.write(0x50); // จุด Y1L

Serial.write(0x02); // pointX2H

Serial.write(0x76); // pointX2L.

Serial.write(0x01); // จุด Y2H

Serial.write(0x90); // จุด Y2L

Serial.write(0x00); // สีฟ้าH

Serial.write(0xFF); // สีน้ำเงิน L

}

//————————————–สีน้ำเงินและวงกลมสิ้นสุด—————————————–

ในที่สุดการดีบักออนไลน์

STONE TOOLBox (ซอฟต์แวร์ออกแบบ GUI) จะแก้ไขการดาวน์โหลดไฟล์หน้าจอ อัปโหลดไฟล์รหัส Arduino เชื่อมต่อแหล่งจ่ายไฟ การสื่อสาร เปิดเครื่องเพื่อสังเกตการวาดภาพและการเปลี่ยนสี เพื่อให้ได้เอฟเฟกต์ที่ต้องการ

รหัสที่แสดงในวิดีโอมีดังนี้

(พยายามจูนออนไลน์)

ที่มา: Plato Data Intelligence