قام المحفل

STONE مسلسل HMI اردوينو عرض محو الأمية للتعلم المبكر

باستخدام التحكم الأساسي في الرسومات من شاشة STONE التسلسلية ، يمكنك رسم خطوط ومثلثات ومضلعات ومستطيلات ومربعات ودوائر وأقواس وملء الألوان والقص واللصق وما إلى ذلك.

تصميم آلة التعلم المبكر باستخدام شاشة اللمس التسلسلية STVI056WT-01 ، للتعرف على الأشكال من خلال النظر إلى الصور ، والتعرف على الكلمات وفقًا للألوان ، وتصميم تنسيق ترفيهي لتحديد الأخطاء الصحيحة ، والنتيجة أو اجتياز المستوى ، حتى يتمكن الأطفال من تعلم التعرف على الألوان وفهم الأشكال الأساسية وتعلم الكلمات المقابلة بطريقة مريحة ومرحة.

لا يعطي عرض الفيديو الرسمي التأثير الفعلي للتحكم الأساسي في الرسومات ، لذا فإن هذا العرض التوضيحي سيكمله. تنتقل تعليمات الرسم من خلال الاتصال بين لوحة تحكم اردوينو و حصادة الحجر المسلسلn.

بالإضافة إلى ذلك ، لا تتضمن هذه الملاحظة المحتوى الوظيفي الكامل للتحكم الأساسي في الرسومات ، فقط الوظائف المستخدمة في استخدام التفصيل ، يتم اختبار التسجيلات على الجهاز بشكل جيد ، يمكنك تنزيل التشغيل التجريبي مباشرة.

يتم عرض بيئة الأجهزة الخاصة بالعرض التوضيحي في الشكل 1 والشكل 2 والشكل 3.

يأتي STONE رسميًا مع لوحتين ، من بينها ، المربع الأول عبارة عن لوحة تنزيل USB واللوحة الطويلة عبارة عن USB إلى لوحة اتصالات تسلسلية (ومصدر طاقة DC2V للشاشة التسلسلية).

(الشكل 1: الاتصال وتوصيل الطاقة لشاشة STONE التسلسلية) (الشكل 2: مخطط توصيل لتنزيل ملفات التحكم في الرسوم الأساسية من شاشة STONE)

(الشكل 3: اتصال TX و RX و GND بين لوحة اتصالات الشاشة التسلسلية STONE ولوحة تطوير اردوينو)

(الشكل 4: منطقة الرسم الأساسية للتحكم في الرسومات والعنوان المتغير وإعدادات المعلمات الأخرى)

بعد تحديد عنصر تحكم Basicgraphics في STONE TOOLBox (برنامج تصميم واجهة المستخدم الرسومية) قائمة التكوين المتغير (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 C00 8 C00 8 01C 2 C00 8 FA 00 00 64 C00 8 C00

ما سبق هو 0x1000 هو العنوان المتغير للتحكم الأساسي في الرسومات ، و 0x0002 هو رمز التعليمات ، و 0x0001 و 0x0003 عبارة عن سطر واحد و 1 أسطر على التوالي ، و 3x0 هو رمز اللون ، والقيمة 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 عبارة عن مستطيل واحد ، مستطيلان ، 1x2 ، 0xffff هي رمز اللون ، قيمة 0000 سوداء ، قيمة fffff ساطعة أبيض. الآخرون هم إحداثيات XY للرأس الأيسر العلوي والرأس الأيمن السفلي لكل مستطيل.

(الشكل 7: مستطيل يملأ ويرسم أوامر دائرة للتحكم في الرسومات الأساسية)

مثال لتعبئة المستطيل.

أمر تعبئة المستطيل الأسود (470 ، 200) ~ (550 ، 255) هو

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

لرسم دائرتين في نفس الوقت ، المركز أ (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 أحمر

0xff60 أصفر ، 0x2f60 أخضر

(الشكل 9: معلمات وعناوين لوحة رسم واجهة التحكم في الرسومات الأساسية)

(الشكل 10: معلمات لوحة الرسم وعناوين واجهة الألوان الأساسية للتحكم في الرسومات)

وفقًا لعنوان المتغير ، يكون الأمر لملء اللون الأخضر لـ (10 ، 80) ~ (630 ، 400) هو

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

أوجه التشابه الأخرى ، راجع رمز البرنامج للحصول على التفاصيل.

الكود الموضح في الفيديو هو كما يلي.

/*

frank10

STONE و arduino COMM ، تشغيل الرسومات الأساسي في البرنامج ..

يضيء مصباح LED لمدة ثانية واحدة ، ثم ينطفئ لمدة ثانية واحدة ، بشكل متكرر. يخبرنا LED أن التشغيل الناعم جيد!

يحتوي النموذج على صفحتين ، الصفحة 1 عبارة عن شكل ، والصفحة 2 عبارة عن كورلور!

كود المثال هذا موجود في ملف frank. 20210625

*/

// يحتوي Pin 13 على مؤشر LED متصل بمعظم لوحات Arduino.

// أعطه إسما:

أدى int = 13 ؛

int iYePian = 0 ؛ // 0x0020 لعدد YePian!

// int iGongLu = 0 ؛ // 0x0180 من أجل The GongLu!

// int iLiuLiang = 0 ؛ // 0x0160 لـ LiuLiang الآن!

int iJiao = 0 ؛ // 0x0260 لـ JieJuJiao!

int iGongLuWater = 0 ؛ // 0x0280 لـ The Water GongLu! القيمة هي 0-50000!

int iLed = 1 ؛ // تأخير الوقت الأسطوانات.

int iLed2 = 1 ؛ // تأخير الوقت الأسطوانات. 50 مللي ثانية تفعل نقطة.

int iLed3 = 0 ؛ // تأخير الوقت الأسطوانات. 50 مللي ثانية تفعل نقطة.

int iLed4 = 0 ؛ // تأخير الوقت الأسطوانات. 50 مللي ثانية تفعل نقطة.

int iCurve0 = 0 ؛ // قيمة المنحنى 0. 50 مللي ثانية تفعل نقطة.

int iCurve1 = 0 ؛ // قيمة المنحنى 1 ،. 50 مللي ثانية تفعل نقطة.

int iFlag0 = 1 ؛ // علم المنحنى 0 + أو - ؛ .1 لأعلى ، و 0 لأسفل.

int iFlag1 = 1 ؛ // علم المنحنى 1 + أو - ؛ .1 لأعلى ، و 0 لأسفل.

int iNum = 0 ؛ // قراءة في حرف الأسطوانات.

int iNum2 = 0 ؛ // قراءة في char num2 لـ ShuiDianZhan!

// int iPower = 2 ؛ // مفتاح التمثال 0x0009

// int iMode = 2 ؛ // مفتاح التمثال 0x000A

int iPowerWater = 2 ؛ // مفتاح التمثال 0x0039

// يتم تشغيل روتين الإعداد مرة واحدة عند الضغط على إعادة تعيين:

إعداد باطل () {

// تهيئة الدبوس الرقمي كمخرج.

pinMode (الصمام ، الإخراج) ؛

Serial.begin (115200) ؛ // افتح وظيفة الاتصال التسلسلي وانتظر حتى يتم فتح المنفذ التسلسلي

بينما (! المسلسل) {

؛ // انتظر حتى يتم توصيل المنفذ التسلسلي. مطلوب ليوناردو فقط

}

}

// يعمل روتين الحلقة مرارًا وتكرارًا إلى الأبد:

حلقة باطلة () {

int inChar.

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

إذا (iLed == 800) {

// ——- قراءة قيمة 0x0039 ———-

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x04) ؛ // طول

Serial.write (0x83) ؛ // اقرأ!

Serial.write (0x00) ؛ // عنوان مفتاح التشغيل 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 يقوم مفتاح الإدخال بعمل peplose.

*/

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

// —————————- بدء قراءة المفتاح 0x0039 ———————————–

إذا (inChar == 0x39) {iNum2 = 1 ؛ }

إذا ((inChar == 0x01) && (iNum2 == 1)) {iNum2 = 2 ؛ }

إذا ((inChar == 0x00) && (iNum2 == 2)) {iNum2 = 3 ؛ }

إذا ((inChar == 0x01) && (iNum2 == 3)) {

iNum2 = 0 ؛

إذا كان (iPowerWater! = 1) {

iPowerWater = 1 ؛ //تشغيل!

iJiao = 0 ؛

iGongLuWater = 0 ؛

}

}

إذا ((inChar == 0x02) && (iNum2 == 3)) {

iNum2 = 0 ؛

iPowerWater = 2 ؛ // إيقاف التشغيل!

}

// —————— قراءة المفتاح 0x0039 بشكل جيد! iPowerWater طيب! ——————————-

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

تأخير (1) ؛

iLed + = 1 ؛

iLed2 + = 1 ؛ // 50 مللي ثانية تفعل نقطة.

// ———————————————————————————————–

// ———————————— 50 مللي ثانية تبدأ نقطة ما —————————————–

إذا (iLed2 == 50) {

iLed2 = 1 ،

iLed4 + = 1 ؛ // 50 مللي ثانية تفعل نقطة.

إذا (iFlag0 == 1) {

iCurve0 + = 1 ؛ // 50 مللي ثانية تفعل نقطة.

إذا (iCurve0> = 150) {

iFlag0 = 0 ؛ // إن iCurve0 رفض !.

}

}

إذا (iFlag0 == 0) {

iCurve0 - = 1 ؛ // 50 مللي ثانية تفعل نقطة.

إذا (iCurve0 <= 1) {

iFlag0 = 1 ، // يحضر iCurve0 !.

}

}

إذا (iFlag1 == 1) {

إذا (iLed4> = 3) {

iCurve1 + = 1 ؛ // 50 مللي ثانية تفعل نقطة.

iLed4 = 0 ،

}

إذا (iCurve1> = 50) {

iFlag1 = 0 ؛ // إن iCurve1 رفض !.

}

}

إذا (iFlag1 == 0) {

إذا (iLed4> = 3) {

iLed4 = 0 ،

iCurve1 - = 1 ؛ // 50 مللي ثانية تفعل نقطة.

}

إذا (iCurve1 <= 1) {

iFlag1 = 1 ، // يحضر iCurve1 !.

}

}

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x06) ؛

Serial.write (0x84) ؛ // اكتب لمنحنى!

Serial.write (0x03) ؛ // مسار المنحنى ،

Serial.write (iCurve0) ؛ // N = 1 ،

Serial.write (0x00) ؛

Serial.write (iCurve1) ؛

Serial.write (0x00) ؛

}

// ——————————-- 50 مللي ثانية تفعل نقطة النهاية ——————————————

// ———————————————————————————————-

إذا (iLed == 500) {

الكتابة الرقمية (led ، عالية) ؛ // قم بتشغيل LED (HIGH هو مستوى الجهد)

// تأخير (500) ؛ // انتظر ثانية ، المدى: 200-2000

}

إذا (iLed> = 1000) {

الكتابة الرقمية (led ، منخفضة) ؛ // قم بإيقاف تشغيل LED بجعل الجهد منخفضًا

// تأخير (500) ؛ // انتظر ثانية ، النطاق: 200-2000

آيليد = 1 ؛

إذا (iNum <= 6) iNum + = 1 ؛ // شكل بدوره!

إذا (iNum == 6) iNum = 0 ؛ // شكل بدوره!

// —————————————– الأحمر يبدأ ——————————————–

إذا (iNum == 1) {// مثلث! والأحمر!

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x19) ؛

Serial.write (0x82) ؛

Serial.write (0x10) ؛ // عنوان H للرسومات الأساسية

Serial.write (0x00) ؛ // عنوان L للرسومات الأساسية

Serial.write (0x00) ؛ // هل خط CMD

Serial.write (0x02) ؛ // هل خط CMD

Serial.write (0x00) ؛ // رقم السطر

Serial.write (0x03) ؛ // رقم السطر.

Serial.write (0x00) ؛ // colorH أسود

Serial.write (0x00) ؛ // colorL

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0xc8) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0xc8) ؛ // نقطة Y1L

Serial.write (0x01) ؛ // نقطة X2H

Serial.write (0x2C) ؛ // نقطة X2L.

Serial.write (0x00) ؛ // نقطة Y2H

Serial.write (0xC8) ؛ // pointY2L

Serial.write (0x00) ؛ // نقطة X3H

Serial.write (0xFA) ؛ // نقطة X3L

Serial.write (0x00) ؛ // نقطة Y3H

Serial.write (0x64) ؛ // نقطة Y3L

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0xc8) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0xc8) ؛ // نقطة Y1L

//يملأ--

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x60) ؛ // عنوان H من صفحة الرسومات الأساسية 2

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe2

Serial.write (0x00) ؛ // قم بملء المستطيل CMD

Serial.write (0x04) ؛ // قم بملء المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0x0A) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0x50) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x76) ؛ // نقطة X2L.

Serial.write (0x01) ؛ // نقطة Y2H

Serial.write (0x90) ؛ // نقطة Y2L

Serial.write (0xF0) ؛ // اللون الأحمر

Serial.write (0x00) ؛ // أحمر colorL

}

// ————————————– الأحمر هو النهاية ——————————————–

// ————————————– يبدأ اللون الأصفر والقوس —————————————–

إذا (iNum == 2) {// arc! والأصفر!

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x13) ؛

Serial.write (0x82) ؛

Serial.write (0x10) ؛ // عنوان H من صفحة الرسومات الأساسية 1

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) ؛ // RH

Serial.write (0x50) ؛ // RL.

Serial.write (0x02) ؛ // Angle1H

Serial.write (0x76) ؛ // Angle1L

Serial.write (0x00) ؛ // Angle2H

Serial.write (0x5A) ؛ // Angle2L

//يملأ--

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x60) ؛ // عنوان H من صفحة الرسومات الأساسية 2

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe2

Serial.write (0x00) ؛ // قم بملء المستطيل CMD

Serial.write (0x04) ؛ // قم بملء المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0x0A) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0x50) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x76) ؛ // نقطة X2L.

Serial.write (0x01) ؛ // نقطة Y2H

Serial.write (0x90) ؛ // نقطة Y2L

Serial.write (0xFF) ؛ // اللون الأصفر

Serial.write (0x60) ؛ // اللون الأصفر L.

}

// ————————————– ينتهي اللون الأصفر والقوس —————————————–

// ————————————– يبدأ اللون الأخضر والمستطيل —————————————–

إذا (iNum == 3) {// مستطيل! والأخضر!

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x10) ؛ // عنوان H من صفحة الرسومات الأساسية 1

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe1

Serial.write (0x00) ؛ // هل المستطيل CMD

Serial.write (0x03) ؛ // هل المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // نقطة X1H

Serial.write (0x54) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0xED) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x49) ؛ // نقطة X2L.

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

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x60) ؛ // عنوان H من صفحة الرسومات الأساسية 2

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe2

Serial.write (0x00) ؛ // قم بملء المستطيل CMD

Serial.write (0x04) ؛ // قم بملء المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0x0A) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0x50) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x76) ؛ // نقطة X2L.

Serial.write (0x01) ؛ // نقطة Y2H

Serial.write (0x90) ؛ // نقطة Y2L

Serial.write (0x2F) ؛ // اللون الأخضر

Serial.write (0x60) ؛ // اللون الأخضر

}

// ————————————– اللون الأخضر والمستطيل ينتهي —————————————–

// ————————————– يبدأ اللون البرتقالي والمربع —————————————–

إذا (iNum == 4) {// مربع! والبرتقالي!

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x10) ؛ // عنوان H من صفحة الرسومات الأساسية 1

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe1

Serial.write (0x00) ؛ // هل المستطيل CMD

Serial.write (0x03) ؛ // هل المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // نقطة X1H

Serial.write (0x54) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0x91) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x49) ؛ // نقطة X2L.

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

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x60) ؛ // عنوان H من صفحة الرسومات الأساسية 2

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe2

Serial.write (0x00) ؛ // قم بملء المستطيل CMD

Serial.write (0x04) ؛ // قم بملء المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0x0A) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0x50) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x76) ؛ // نقطة X2L.

Serial.write (0x01) ؛ // نقطة Y2H

Serial.write (0x90) ؛ // نقطة Y2L

Serial.write (0xFD) ؛ // اللون البرتقالي

Serial.write (0x60) ؛ // اللون البرتقالي L.

}

// ————————————– نهاية المربع البرتقالي —————————————–

// ————————————– يبدأ اللون الأزرق والدائرة —————————————–

إذا (iNum == 5) {// دائرة! والأزرق!

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x0F) ؛

Serial.write (0x82) ؛

Serial.write (0x10) ؛ // عنوان H من صفحة الرسومات الأساسية 1

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) ؛ // RH

Serial.write (0x32) ؛ // RL.

Serial.write (0x00) ؛ // colorH أسود

Serial.write (0x00) ؛ // colorL فارغ

//يملأ--

Serial.write (0xA5) ؛ // ”A5 هو 165

Serial.write (0x5A) ؛ // "5A" تساوي 90

Serial.write (0x11) ؛

Serial.write (0x82) ؛

Serial.write (0x60) ؛ // عنوان H من صفحة الرسومات الأساسية 2

Serial.write (0x00) ؛ // addressL من الرسومات الأساسية pabe2

Serial.write (0x00) ؛ // قم بملء المستطيل CMD

Serial.write (0x04) ؛ // قم بملء المستطيل CMD

Serial.write (0x00) ؛ // رقم المستطيل

Serial.write (0x01) ؛ // رقم المستطيل

Serial.write (0x00) ؛ // نقطة X1H

Serial.write (0x0A) ؛ // نقطة X1L

Serial.write (0x00) ؛ // نقطة Y1H

Serial.write (0x50) ؛ // نقطة Y1L

Serial.write (0x02) ؛ // نقطة X2H

Serial.write (0x76) ؛ // نقطة X2L.

Serial.write (0x01) ؛ // نقطة Y2H

Serial.write (0x90) ؛ // نقطة Y2L

Serial.write (0x00) ؛ // اللون الأزرق

Serial.write (0xFF) ؛ // اللون الأزرق

}

// ————————————– ينتهي اللون الأزرق والدائرة —————————————–

أخيرًا ، تصحيح الأخطاء عبر الإنترنت.

STONE TOOLBox (برنامج تصميم واجهة المستخدم الرسومية) سيقوم بتحرير تنزيل ملف الشاشة ، وتحميل ملف كود اردوينو ، وتوصيل مزود الطاقة ، والتواصل ، وتشغيل الطاقة لمراقبة رسم الصورة وتغيير اللون ، لتحقيق التأثير المطلوب.

الكود الموضح في الفيديو هو كما يلي.

(محاولات التوليف عبر الإنترنت)

المصدر: أفلاطون داتا إنتليجنس