توصيل لوحة الإظهار TFT مع الأردوينو

تُمثّل شاشة الـ TFT لوحة إظهار ملوّنة بـ128 ×160 بكسل ملوّن، تُظهر الشّاشة الصّور من بطاقة الذّاكرة SD card حيث يوجد مكان لبطاقة الذّاكرة على الجهة الخلفيّة للّوحة. والشّكل التّالي يوضّح لقطة للمظهر الأماميّ والخلفيّ للوحة إظهار 1.8 TFT.

 

لقطة توضّح المظهر الأماميّ والخلفيّ للوحة الإظهار 1.8 TFT
لقطة توضّح المظهر الأماميّ والخلفيّ للوحة الإظهار 1.8 TFT

يَستخدم هذا الموديول اتّصال (Serial Peripheral Interface) SPI وهو موضّح بشكل مُفصّل في طريقة التّوصيل بالأسفل، وللتّحكُّم بلوحة الإظهار هذه سنستخدم مكتبة TFT والموجودة في بيئة التّطوير البرمجيّة الخاصّة بالأردوينو Arduino IDE 1.0.5 والإصدارات التالية له.

أطراف التّوصيل

يُظهر الجدول أدناه توصيلات (أطراف التّوصيل) لوحة الإظهار 1.8 TFT مع لوحة التّطوير أردوينو UNO.

طرف لوحة الإظهار1.8 TFT وصلها مع الأردوينو UNO
ليد ضوئيّ 3.3 v
SCK 13
SDA 11
A0 أو DC 9
RESET 8
CS 10
GND GND

ملاحظة:

تمتلك لوحات التّطوير الأردوينو المختلفة أطراف توصيل SPI مختلفة؛ لذا إذا استَخدمتَ لوحة تطوير أردوينو مغايرة لـ UNO عندها عليك التّحقّق من مواصفات الأردوينو الأساسيّ.

تهيئة الّلوحة

تتّصل لوحة الإظهار TFT مع الأردوينو باتّصال SPI لذا عليك تضمين مكتبة SPI بالكود البرمجيّ الخاصّ بك، حيثُ تُستخدم مكتبة TFT للكتابة والرّسم على لوحة الإظهار

<include <TFT.h#

<include <SPI.h#

بعد ذلك، تحتاج لتعريف الأطراف CS، A0 (أو DC) وRST كمايلي:

#define cs 10

#define dc 9

#define rst 8

ثُمّ إنشاء نموذج (كائن) من المكتبة اسمه TFTscreen:

TFT TFTscreen = TFT(cs, dc, rst);

 

أخيراً، نحتاج في مرحلة التّنفيذ setup () لتهيئة المكتبة كما يلي:

TFTscreen.begin();

 

إظهار النّص

لكتابة نصّ على لوحة الإظهار بإمكانك تخصيص لون الخلفيّة، حجم الخطّ، واللّون، فنستخدم لضبط لون الخلفيّة التّعليمة التّالية:

;(TFTscreen.background(r, g, b

حيثُ تدلّ الأحرف r، g، وb على قيم RGB للون المُعطى.

ونستخدم لاختيار لون الخطّ ما يلي:

TFTscreen.stroke(r, g, b);

ولضبط حجم الخط:

TFTscreen.setTextSize(2);

تستطيع زيادة أو إنقاص العدد المُعطى كبارامتر وذلك لزيادة حجم الخطّ أو إنقاصه.

أخيراً، نستخدم لكتابة النّص على اللّوحة التّعليمة التّالية:

TFTscreen.text(“Hello, World!“, x, y);

حيث تدلّ كلمتي “Hello, World!” على النّص المُراد إظهاره، بينما تدلّ (x, y) على مكان إظهار النّص على اللّوحة.

الكود البرمجيّ

يُظهر المثال التّالي نصّ “Hello, World!” في مُنتصف الشّاشة ويغيّر لون الخطّ كل 200 ميلي ثانية.

انسخ الكود البرمجيّ التّالي لبيئة برمجة الأردوينو الخاصّة بك وارفعها إلى لوحة الأردوينو.

الكود البرمجيّ الخاصّ بإظهار النّص: هنا

يُظهر الشّكل هنا نص “Hello, World!” على لوحة الإظهار1.8 TFT:

يُظهر النّص "Hello, World!" على لوحة 1.8 TFT
يُظهر النّص “Hello, World!” على لوحة 1.8 TFT

إظهار الأشكال

تزوّد مكتبة TFT توابع مفيدة لرسم أشكال على لوحة الإظهار:

  • (TFTscreen.point(x, y – تظهر نقطة في الموقع (x, y).
  • (TFTscreen.line(xStart, yStart, xEnd, yEnd – ترسم خطّ يبدأ عند النّقطة (xStart, yStart) وينتهي عند (xEnd, yEnd).
  • (TFTscreen.rect(xStart, yStart, width, height – يرسم مستطيلاً بحيث تكون أعلى زاويته اليُسرى عند (xStart, yStart) مع تحديد العرض والارتفاع.
  • (TFTscreen.circle(x, y, radius – يرسم دائرة مركزها (x, y) مع نصف قطر مُحدّد.

الكود البرمجيّ

يُظهر المثال التّالي أشكال متعدّدة، حيثُ في كل مرة يُنفّذ الكود البرمجي الحلقة يتغيّر لون الأشكال، انسخ الكود لبيئة البرمجة وارفعها على لوحة الأردوينو.

الكود البرمجيّ الخاصّ برسم الأشكال: هنا

يُظهر الشّكل الآتي الأشكال على اللّوحة:

الأشكال على لوحة الإظهار 1.8 TFT
الأشكال على لوحة الإظهار 1.8 TFT

إظهار الصّور

تستطيع لوحة الإظهار 1.8 TFT رفع الصّور وتحميلها من بطاقة الذّاكرة، وللقراءة من بطاقة الذّاكرة يجب استخدام مكتبة SD وهي موجودة ضمن بيئة البرمجة الخاصّة بالأردوينو، لذلك اتّبع الخطوات التّالية لإظهار الصّور على الّلوحة:

  • لحام أطراف مُدبّبة خاصّة لبطاقة الذّاكرة ع حيثُ نلاحظ 4 أطراف مُثبّتين بعكس الأطراف الخاصّة بلوحة الإظهار كما يُظهر الشّكل التّالي:
يبيّن الأطراف المُدبّبة الخاصّة ببطاقة الذّاكرة
يبيّن الأطراف المُدبّبة الخاصّة ببطاقة الذّاكرة
  • تستطيع لوحة الإظهار تحميل (رفع) صور أكبر أو أصغر من الحجم المُخصّص للإظهار 128 px×160، ولكن للحصول على نتائج أفضل يُفضَّل ضبط حجم الصّورة إلى 128 px×160.
  • يجب أن تكون الصّوة بصيغة .bmp وللقيام بذلك يمكننا استخدام برنامج تعديل الصّور وحفظ الصّورة بالصّيغة المطلوبة .bmp.
  • انسخ الصّورة إلى بطاقة الذّاكرة ثُمَّ أدخِل البطاقة بالمكان المُخصّص لها في الجهة الخلفيّة للوحة TFT.
  • قُم بتوصيل أطراف بطاقة الذّاكرة إلى لوحة التَّطوير الأردوينو كما هو موضّح في الجدول التّالي:
أطراف بطاقة الذّاكرة على لوحة TFT التّوصيل مع الأردوينو
CS 4
MOSI 11
MISO 13
SCK 12

يعمل كلٌّ من لوحة الإظهار وبطاقة الذّاكرة بنمط اتّصال SPI لذلك ستكون التّوصيلات على لوحة الأردوينو بحيث تؤمّن كلا الاتّصالين.

  • في البيئة البرمجيّة للأردوينو نفّذ المسار التّالي: File <Examples <TFT <Arduino <TFTBitmaLogo.
  • قم بتحرير الكود بحيث يبحث عن صورتك واستبدل arduino.bmp” باسم الصّورة الخاصّة بك.
    ;(logo = TFTscreen.loadImage(“arduino.bmp
  • ارفع الكود البرمجيّ للوحة الأردوينو خاصّتك.

ملاحظة:

يجد بعض الأشخاص قضايا (مشاكل) مع هذا الشّاشة عند محاولة القراءة من بطاقة الذّاكرة، نحنُ لا نعلم لمَ يحدث هذا ففي الحقيقة قُمنا بالاختبار عدّة مرّات وعَمِلَ بشكل جيّد وبعد ذلك وعندما أوشكنا على التّسجيل لإظهار النّتيجة النّهائيّة لم تتعرّف لوحة الإظهار على بطاقة الذّاكرة، فنحن لسنا متأكّدين إن كانت المشكلة في حامل البطاقة بحيث لا يؤمّن اتّصالاً مناسباً مع البطاقة نفسَها، ولكنّنا مع ذلك متأكّدون من أنّ هذه التّعليمات فعّالة لأنّنا اختبرناها مُسبقاً.


المصدر: هنا
ترجمة: سارة خضر، مراجعة: علي العلي، تدقيق لغوي: سلام أحمد، تصميم: علي العلي,  تحرير: لبانة مطر

Leave a Reply

Your email address will not be published. Required fields are marked *