كيفية استخدام شاشات TFT مع ST7789VI وArduino: الدليل الكامل

  • اتصال بسيط بفضل بروتوكول SPI، ولا يتطلب سوى أربعة دبابيس تحكم.
  • استخدام مكتبات Adafruit ST7789 وGFX لرسم رسومات متقدمة.
  • القدرة على تحميل الصور المعقدة دون الحاجة إلى بطاقة SD.

شاشة TFT مع ST7789VI واردوينو

تُعدّ شاشات TFT التي يتم التحكم بها بواسطة شريحة ST7789VI خيارًا ممتازًا لمشاريع أردوينو وغيرها من المتحكمات الدقيقة. تتيح لك هذه الشاشات الصغيرة ذات الدقة العالية عرض الرسومات والنصوص والصور بوضوح ودقة. مع ذلك، قد يكون دمجها صعبًا بعض الشيء لمن ليس لديهم دراية ببروتوكولات مثل SPI أو متطلبات الطاقة والتحكم. في هذا الدليل، سنتناول جميع جوانب توصيل هذه الشاشات، واستخدام المكتبات، وتكوينها مع أردوينو.

بالإضافة إلى ذلك، ستتعلم كيفية ربطها مع لوحات مختلفة مثل NodeMCU ESP8266 وArduino Nano الكلاسيكي. بهذه الطريقة، ستتمكن من الاستفادة الكاملة من الإمكانيات الرسومية والتقنية لهذا النوع من شاشات العرض، سواء لمشاريع إنترنت الأشياء (IoT) أو لأي نوع آخر من التطبيقات، دون الاعتماد على بطاقات SD أو الدوائر المعقدة.

ما هي شاشة TFT مع برنامج التشغيل ST7789VI؟

تتميز شاشات الترانزستورات الرقيقة ( TFT ) بجودة صورة فائقة مقارنةً بأنواع الشاشات الأخرى، مثل شاشات LCD القياسية أو شاشات OLED الأصغر حجمًا. ويُعدّ متحكم ST7789VI بمثابة العقل المدبر لهذه الشاشات، فهو المسؤول عن معالجة الإشارات المرسلة من متحكم دقيق مثل Arduino أو ESP8266، وتحويل تلك الإشارات إلى صور وألوان ورسومات معقدة.

من أهم مزايا هذه الشاشات استخدامها لناقل الاتصال SPI، مما يُسهّل توصيلها بمعظم المتحكمات الدقيقة، باستخدام أربعة دبابيس تحكم فقط (SDA، SCL، RES، وDC). هذا يُقلل بشكل كبير من الأسلاك ويجعلها مثالية للمشاريع الصغيرة.

توصيل شاشة TFT بشريحة ST7789VI

للعمل مع هذه الشاشات، من الضروري معرفة كيفية توصيلها بشكل صحيح مع Arduino أو ESP8266. اعتمادًا على وحدة التحكم الدقيقة التي تستخدمها، قد تتغير دبابيس الطاقة والاتصال قليلاً. أدناه نقوم بتفصيل أهم الاتصالات.

اتصال شاشة TFT مع الاردوينو نانو

الاتصالات الأساسية:

  • VCC: يتصل بإشارة الطاقة، والتي تكون عادة 3.3 فولت (وليس 5 فولت لتجنب تلف الشاشة).
  • GND: متصل بالأرض .
  • SCL (يُشار إليه أحيانًا بـ CLK): هذا هو دبوس الساعة التسلسلي وينتقل إلى D13 على طبق Arduino Uno أو نانو.
  • SDA (يُسمى أيضًا MOSI): وهو الطرف الذي يرسل البيانات ويتصل بالشبكة D11.
  • RES: يتصل بالدبوس المسؤول عن إعادة ضبط الشاشة؛ في هذه الحالة، في D8 من اردوينو.
  • DC: دبوس الأمر/البيانات الذي يتصل بـ D9.

أما بالنسبة للوحات ESP8266 ، فستلاحظ أنها تعمل بجهد 3.3 فولت، لذلك لن تحتاج إلى القلق بشأن ضبط مستويات الجهد، كما هو الحال مع Arduino، حيث يكون من الضروري استخدام مقسمات الجهد مع المقاومات لحماية وحدة التحكم في الشاشة.

استخدام المكتبات في الاردوينو

بعد إتمام جميع التوصيلات بشكل صحيح، ستحتاج إلى تثبيت بعض المكتبات في بيئة تطوير أردوينو (Arduino IDE). للعمل مع هذه الشاشات، تُعد مكتبة Adafruit ST7789 الأكثر استخدامًا، فهي متوافقة تمامًا مع مكونات هذه الشاشات ويمكن استخدامها مع مكتبة Adafruit GFX لإنشاء رسومات متقدمة.

لتثبيت المكتبات اتبع الخطوات التالية:

  • اذهب إلى رسم -> تضمين المكتبة -> إدارة المكتبات.
  • إرسال 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
}

مثال على شاشة TFT مع الكود الأساسي

يقوم هذا الجزء الصغير من التعليمات البرمجية بتهيئة الشاشة، وضبطها على الوضع الأفقي، وعرض النص "Hello World" في المنتصف. يمكنك تجربة أحجام وألوان مختلفة للنص باستخدام دوال مثل setTextColor و setTextSize.

القدرات الرسومية للشاشة ST7789VI

القدرات الرسومية لهذه الشاشات كاملة تمامًا. باستخدام مكتبة Adafruit GFX، يمكنك رسم الخطوط والمستطيلات والدوائر وغير ذلك الكثير باستخدام بعض الأوامر فقط. أدناه، نذكر بعضًا من أكثرها استخدامًا:

  • رسم الخط (x0، y0، x1، y1، اللون): ارسم خطاً من النقطة (x0, y0) إلى (x1, y1).
  • فيلريكت (س، ص، ث، ح، اللون): لرسم مستطيل مملوء على الشاشة.
  • دائرة التعبئة (س، ص، ص، اللون): ارسم دائرة مصمتة نصف قطرها r من النقطة (x، y).

ستتيح لك هذه الطرق الأساسية إضفاء الحيوية على شاشتك بسرعة، ولكن المكتبة تسمح لك أيضًا باستيراد الصور بتنسيق Bitmap ، وهو أمر مفيد للغاية إذا كنت ترغب في عرض رسومات معقدة.

للعمل مع الصور، ستحتاج إلى تحويلها مسبقًا إلى تنسيق يمكن للاردوينو فهمه، كما سنوضح لاحقًا.

استيراد الصور إلى الشاشة دون استخدام بطاقة SD

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

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

  • اختر صورة، ويفضل أن تكون 240 × 240 بكسل (حجم الشاشة).
  • استخدم برنامج مثل محول صور LCD لتحويل الصورة إلى مجموعة من القيم.
  • احفظ المصفوفة التي تم إنشاؤها وانسخ البيانات إلى ملف الرأس (.h) لمشروع Arduino الخاص بك.

بعد ذلك، باستخدام وظيفة pushImage() من مكتبة Adafruit ST7789، يمكنك تحميل تلك المصفوفة وعرض الصورة المعنية.

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

وأخيرًا، فإن العمل مع شاشات TFT مع ST7789VI في مشروعات Arduino أو ESP8266 يفتح لك عالمًا من الإمكانيات الرسومية. باستخدام التكوين الصحيح والأدوات البرمجية المناسبة، يمكنك تنفيذ واجهات جذابة وعملية دون الكثير من العوائق.


أضف كمصدر مفضل في جوجل