شاشات TFT يتم التحكم فيها بواسطة شريحة ST7789VI إنها خيار ممتاز لـ Arduino ومشاريع التحكم الدقيقة الأخرى. تتيح لك هذه الشاشات الصغيرة ولكن عالية الدقة عرض الرسومات والنصوص والصور بوضوح ودقة. ومع ذلك، قد يكون تكامله أمرًا صعبًا إلى حد ما بالنسبة لأولئك الذين ليسوا على دراية بالبروتوكولات مثل SPI أو متطلبات الطاقة والتحكم. في هذا الدليل، سنتعمق في جميع جوانب الاتصال واستخدام المكتبات وتكوين هذه الشاشات باستخدام Arduino الخاص بك.
بالإضافة إلى ذلك، ستتعلم كيفية ربطها مع لوحات مختلفة مثل NodeMCU ESP8266 وArduino Nano الكلاسيكي. بهذه الطريقة، ستتمكن من الاستفادة الكاملة من الإمكانيات الرسومية والتقنية لهذا النوع من شاشات العرض، سواء لمشاريع إنترنت الأشياء (IoT) أو لأي نوع آخر من التطبيقات، دون الاعتماد على بطاقات SD أو الدوائر المعقدة.
ما هي شاشة TFT مع برنامج التشغيل ST7789VI؟
الشاشات TFT (الترانزستور ذو الأغشية الرقيقة) تتميز بتقديم جودة صورة تتفوق كثيرًا على الأنواع الأخرى من الشاشات مثل شاشات LCD العادية أو شاشات OLED الأصغر حجمًا. وحدة التحكم ST7789VI وهي عقل هذه الشاشات، وهي المسؤولة عن معالجة الإشارات التي يرسلها إليها المتحكم الدقيق مثل الاردوينو أو ESP8266، وتحويل هذه الإشارات إلى صور وألوان ورسومات معقدة.
واحدة من المزايا الرائعة لهذه الشاشات هي أنها تستخدم ناقل اتصال SPI، الذي يبسط الاتصال مع معظم وحدات التحكم الدقيقة، باستخدام أربعة أطراف تحكم فقط (SDA، SCL، RES وDC). وهذا يسمح بتقليل الأسلاك بشكل كبير وهو مثالي المشاريع المدمجة.
توصيل شاشة TFT بشريحة ST7789VI
للعمل مع هذه الشاشات، من الضروري معرفة كيفية توصيلها بشكل صحيح مع Arduino أو ESP8266. اعتمادًا على وحدة التحكم الدقيقة التي تستخدمها، قد تتغير دبابيس الطاقة والاتصال قليلاً. أدناه نقوم بتفصيل أهم الاتصالات.
الاتصالات الأساسية:
- VCC: يتصل بإشارة الطاقة، والتي تكون عادة 3.3 فولت (وليس 5 فولت لتجنب تلف الشاشة).
- GND: متصل بالأرض .
- SCL (يُشار إليه أحيانًا بـ CLK): هذا هو دبوس الساعة التسلسلي وينتقل إلى D13 على طبق Arduino Uno أو نانو.
- SDA (يُسمى أيضًا MOSI): وهو الطرف الذي يرسل البيانات ويتصل بالشبكة D11.
- RES: يتصل بالدبوس المسؤول عن إعادة ضبط الشاشة؛ في هذه الحالة، في D8 من اردوينو.
- DC: دبوس الأمر/البيانات الذي يتصل بـ D9.
فيما يتعلق باللوحات ESP8266، ستلاحظ أن هذه تعمل بجهد 3.3 فولت، لذلك لن داعي للقلق بشأن ضبط مستويات الجهد، كما هو الحال مع الاردوينو، حيث من الضروري استخدام مقسمات الجهد مع المقاومات لحماية وحدة التحكم في العرض.
استخدام المكتبات في الاردوينو
بمجرد إجراء جميع الاتصالات بشكل صحيح، ستحتاج إلى تثبيت بعض المكتبات في Arduino IDE. للعمل مع هذه الشاشات، الخيار الأكثر استخدامًا هو المكتبة ادافروت ST7789، وهو متوافق للغاية مع أجهزة هذه الشاشات ويمكننا استخدامه مع المكتبة أدافروت جي إف إكس لإنشاء رسومات متقدمة.
لتثبيت المكتبات اتبع الخطوات التالية:
- اذهب إلى رسم -> تضمين المكتبة -> إدارة المكتبات.
- إرسال ST7789 في شريط البحث وحدد الخيار Adafruit.
- افعل نفس الشيء بالنسبة للمكتبة أدافروت جي إف إكس.
بعد تثبيت هاتين المكتبتين بالفعل، ستكون جاهزًا لكتابة الكود الأول وعرض الصور أو النص أو أي رسومات تريدها.
الكود الأساسي لـ "Hello, World!" على شاشة TFT
نقطة البداية الجيدة لاختبار شاشتك هي عرض عبارة "Hello, World!" البسيطة. على الشاشة. نعرض لك أدناه رمزًا أساسيًا يمكنك استخدامه لهذا الغرض. تذكر أن هذا الرمز مصمم ل Arduino Uno أو Nano، ولكن إذا كنت تستخدم لوحات أخرى، فقد تحتاج إلى تعديل المسامير.
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup() {
tft.init(240, 240);
tft.setRotation(1);
tft.fillScreen(ST77XX_BLACK);
tft.setTextColor(ST77XX_WHITE);
tft.setTextSize(2);
tft.setCursor(50, 120);
tft.println("Hello World!");
}
void loop() {
// Nada que hacer en el loop
}
يقوم هذا الرمز الصغير بتهيئة الشاشة وتحويلها أفقيًا وعرض النص "Hello World" في وسطها. يمكنك تجربة أحجام أو ألوان مختلفة للنص باستخدام الطرق setTextColor, setTextSize، وغيرها.
القدرات الرسومية للشاشة ST7789VI
القدرات الرسومية لهذه الشاشات كاملة تمامًا. باستخدام مكتبة Adafruit GFX، يمكنك رسم الخطوط والمستطيلات والدوائر وغير ذلك الكثير باستخدام بعض الأوامر فقط. أدناه، نذكر بعضًا من أكثرها استخدامًا:
- رسم الخط (x0، y0، x1، y1، اللون): ارسم خطاً من النقطة (x0, y0) إلى (x1, y1).
- فيلريكت (س، ص، ث، ح، اللون): لرسم مستطيل مملوء على الشاشة.
- دائرة التعبئة (س، ص، ص، اللون): ارسم دائرة مصمتة نصف قطرها r من النقطة (x، y).
ستسمح لك هذه الطرق الأساسية بإضفاء الحيوية على شاشتك بسرعة، لكن المكتبة تسمح لك أيضًا باستيراد الصور نقطيةوهو أمر مفيد جدًا إذا كنت تريد عرض الرسوم البيانية المعقدة.
للعمل مع الصور، ستحتاج إلى تحويلها مسبقًا إلى تنسيق يمكن للاردوينو فهمه، كما سنوضح لاحقًا.
استيراد الصور إلى الشاشة دون استخدام بطاقة SD
بشكل عام، يتطلب تحميل الصور على شاشة TFT وجود بطاقة SD مرفقة، والتي تقوم بتخزين الصورة وتسمح بالتحميل منها. ومع ذلك، يمكننا تجنب هذه الخطوة عن طريق تحويل الصور إلى كود نقطي وتخزينها مباشرة في ذاكرة المتحكم الدقيق.
العملية أبسط مما تبدو. كل ما تحتاجه هو استخدام بعض البرامج لتحويل صورتك ثم تضمينها في ملف رأس. ونعرض لك هنا الخطوات التي يجب اتباعها:
- اختر صورة، ويفضل أن تكون 240 × 240 بكسل (حجم الشاشة).
- استخدم برنامج مثل محول صور LCD لتحويل الصورة إلى مجموعة من القيم.
- احفظ المصفوفة التي تم إنشاؤها وانسخ البيانات إلى ملف الرأس (.h) لمشروع Arduino الخاص بك.
ثم مع استخدام الوظيفة دفع الصورة () من مكتبة Adafruit ST7789، يمكنك تحميل تلك المصفوفة وعرض الصورة المعنية.
تذكر أن هذه الطريقة مثالية للمشروعات الصغيرة والمتوسطة الحجم، حيث أن قيود ذاكرة المتحكم الدقيق يمكن أن تعمل ضدك إذا حاولت تحميل العديد من الصور الكبيرة مرة واحدة.
وأخيرًا، فإن العمل مع شاشات TFT مع ST7789VI في مشروعات Arduino أو ESP8266 يفتح لك عالمًا من الإمكانيات الرسومية. باستخدام التكوين الصحيح والأدوات البرمجية المناسبة، يمكنك تنفيذ واجهات جذابة وعملية دون الكثير من العوائق.