الاثنين، 25 أغسطس 2014

الشاشة الرسومية الملونة TFT LCD 1.8 Inch

TFT LCD 1.8 inch ST7735 Controller



تعتبر هذه الشاشه من فئة شاشات العرض الصغيره الملونه .


شاشه 1.8TFT Display يوجد اشكال كثيره منها متوفره كغطاء  Arduino shield و كلوحات سهله التوصيل مع الاردوينو breakout boards . سنستخدم في هذا المقال شاشه العرض  1.8 inch TFT color display بابعاد 128*160بكسل ومزوده  (micro SD )لتخزين الصور والملفات .



تحتوي هذه الشاشة على 160 صف و 128 عمود (128*160 ) بكسل على عكس شاشه Nokia 6110

اسم المتحكم المستخدم في الشاشه ST7735R يمكنه عرض 18بت لون كامله اي 262,144لون , المتحكم ST7735 هو رقاقه تحكم ب262K لون .نوع الرسم TFT-LCD .هذه الرقاقه قادره على الربط مع متحكم خارجي مباشره يتصل عن طريق البروتوكول SPI




 بورد الشاشه يحتوي على منظم للفولتيه لذلك يمكننا استخدام 3.3فولت او 5 فولت لتزويد الشاشه بالطاقه.وايضا تحتوي على حافظه SD card حتى نتمكن من تحميل صور ملونه بسهوله.
تتم برمجتها عبر برتوكول SPI نظرا لما تحتاجه هذه الشاشه من سرعه عاليه لنقل البيانات من المتحكم (الاردوينو ) وبين متحكم الشاشه ST7735R


3) ستقسم مقالات هذه الشاشة إلى  3 أجزاء :

1)التحكم فيها بواسطة مكتبة ادافروت Adafruit و أوامرها البسيطة .

سنستخدم لبرمجه هذه الشاشه مكتبه Adafruit_GFX حيث توفر مجموعه من اقترانات الجمل والرسومات لكل من شاشات الكرستال السائلهLCDوشاشات الOLED وهذا يسمح لنا من برمجه هذه الشاشات عن طريق الاردوينو بسهوله وتحسين ادائها
تعمل هذه المكتبه جنبا الى جنب مع مكتبه مخصصه لنوع الشاشه المستخدمه .لذلك سنستخدم بلاضافه لهذه المكتبه مكتبه Adafruit_ST7735.

2) كيفية تحميل الصور على هذه الشاشة و ضبطها .

3) برمجتها بواسطة مكتبة اردوينو الرسمية .

قبل البداية سنقوم بتحميل مكتبة Adafruit الخاصة بهذه الشاشة من هنا 

و تحميل  مكتبة gfx من هنا 


التوصيل :




شرح اوامر المكتبه :

1) لبدأ العمل مع هذه الشاشه نعمل على تهيئتها بواسطه الامر 

TFT_name.initR(INITR_BLACKTAB);

2) لضبط اللون المستخدم بالكتابه نستخدم الامر 
TFT_name.setTextColor(ST7735_COLOR);

3) لضبط حجم الخط المستخدم نستخدم الامر 
TFT_name.setTextSize(n);

حيث ان n رقم بين 1 -4 كلما زاد الرقم n زاد حجم الخط 


4)لرسم نقطه على الشاشه نستعمل الامر 
TFT_name.drawPixel(x1,y1,ST7735_COLOR);
حيث x1,y1 هي احداثيات النقطه.




وهذا المثال يوضح طريقه رسم نقطه على الشاشه






5) لرسم خط مستقيم نستخدم الامر 
TFT_name.drawLine(x1,y1,x2,y2,ST7735_COLOR);
x1,y1 احداثيات النقطه الاولى 
x2,y2 احداثيات النقطه الثانيه 
ST7735_COLOR  لون الخط المستقيم
بالاضافه لوجود اوامر خاصه لرسم الخط وهي :
رسم خط مستقيم افقيا 
TFT_name.drawFastHLine(x1,y1,L,ST7735_COLOR);

حيث X1,Y1 نقطه بدايه هذا الخط
L طول الخط 


ولرسم خط مستقيم عاموديا 
TFT_name.drawFastVLine(x1,y1,L,ST7735_COLOR);

حيث X1,Y1 نقطه بدايه هذا الخط
L طول الخط





وهذا البرنامج مثال لرسم الخطوط المختلفه على الشاشه 






6) لرسم مستطيل فارغ نستخدم الامر 
  TFT_name.drawRoundRect(X1,Y1,X2,Y2,5,ST7735_COLOR);
X1,Y1 نقطه بدايه المستطيل 
X2,Y2 نقطه نهايه المستطيل 
ST7735_COLOR لون اطار المستطيل

7)لرسم مستطيل ممتلئ بلون  نستخدم الامر 
  TFT_name.fillRoundRect(X1,Y1,X2,Y2,5,ST7735_COLOR);
X1,Y1 نقطه بدايه المستطيل 
X2,Y2 نقطه نهايه المستطيل
ST7735_COLOR لون الذي سيملئ بها المستطيل 




وهذا المثال يوضح طريقه رسم مستطيل فارغ وممتلئ 






8) لرسم مثلث نستخدم الامر 
 TFT_name.drawTriangle(X1,Y1,X2,Y2,X3,Y3,ST7735_COLOR);
 X1,Y1,X2,Y2,X3,Y3 حيث هذه الاحداثيات رؤوس المثلث  ST7735_COLOR لون اطار المثلث
9) لرسم مثلث ممتلئ بلون نستخدم الامر 
 TFT_name.fillTriangle(X1,Y1,X2,Y2,X3,Y3,ST7735_COLOR);
 X1,Y1,X2,Y2,X3,Y3 حيث هذه الاحداثيات رؤوس المثلث  ST7735_COLOR لون الممتلئ به المثلث 







هذا هو الجزء الأول من المقال و في الجزء الثاني سنتحدث عن كيفية تحميل صورة على هذه الشاشة باستخدام SD Card



الجمعة، 15 أغسطس 2014

تحكم بالوحة المفاتيح بواسطة الأردوينو


                      Arduino Keyboard PS2






في هذا التدوينة سنقوم بتوصيل كيبورد الكمبيوتر بالاردوينو بمعزل عن أي اجهزة اخرى، حيث سنحصل على عدد كبير من ازرار الادخال باستخدام مدخلين فقط من الاردوينو سواءاً الUno اوالMega او غيرها.

المتطلبات السابقة :

- معرفة بمبادئ برمجة الاردوينو
-معرفة وظيفة ال Interrupt pins  في الاردوينو (مداخل المقاطعة).

القطع و الادوات:
1- PS2 Keyboard (كيبورد بمدخل ال PS2)
2- اردوينو Uno (يمكن استخدام Mega او Nano الخ.).
3- اسلاك توصيل نوع "Male-Female".
4- قطاعة اسلاك.
5- لابتوب للبرمجة 
6- اذا لم تستطع الحصول على PS2 Keyboard يمكنك شراء USB to PS2 converter  و هي قطعة تحول مدخل الUSB  الى PS2 ثم توصيلها مع الكيبورد للمباشرة بالعمل 




USB to PS2 converter


نبدأ الآن بشرح آلية عمل لوحة المفاتيح :



هذه صورة عمودية لذكرمدخل ال PS2  و هو يتكون من 6 مخارج اربعة منها فقط الفعالة و اثنين مهملين.
نبدأ  بالمدخلين رقم (4) و (3)، وكما نرى في الصورة هما خطي تغذية الطاقة حيث سيتم توصيل هذه المداخل على ال 5فولت و ال GND في الارديونو حيث (4) ---< 5 فولت و (3) ---< Gnd

ثم لدينا ال Clock  على مخرج رقم (5) ووظيفة هذا المخرج هي تنبيه الجهاز ببدأ استقبال اشارة الكيبورد،  بحيث يتحول من High  الى Low لبدأ استقبال اشارة من ال Data 
اما ال Data فهي المخرج الاساسي الذي يُخرج كل Askii لحرف مشفر بالنظام الثنائي (01).
اما كل من 2 و 6 فهما غير مستخدمين في لوحة المفاتيح.

الخطوات:
1- نبدأ بازالة المحيط المعدني لمخرج الPS2 باستخدام القطاعة:



2- بعد ازالة المحيط المعدني، ارتأيت افضل طريقة للتوصيل هي بسحب اسلاك ذات شعرة واحدة حول كل Pin  و تثبيت الاسلاك بلاصق كما فعلت انا في الصورة ، لكن بالطبع يمكنك استخدام اسلاك Male –Female.





الآن ناتي للاردوينو، هناك مكتبة مخصصة للتعامل مع اتصال ال PS2 حيث يمكن من خلالها التعامل مع كل من لوحة المفاتيح او الماوس و يمكن تحميلها لاضافتها من هذا الرابط :

http://www.pjrc.com/teensy/arduino_libraries/PS2Keyboard.zip

و بعد تحميل المكتبة يمكنكم اضافتها عن طريق Sketch >> Import Library >> Add Library



بعد اضافة المكتبة اصبح الاردوينو جاهز للتوصيلات و البرمجة قبل البدأ بالخطوة الثالثة علينا معرفة ال interrupt pins  في نسخة الاردوينو الموجودة معك ففي الUno يوجد interrupt Pins  عدد 2 هما D2  و D3 ، و اذا كنت تستخدم اردوينو Mega فيمكنك استخدام 2  او 3 او 18 او 19 او 20 او 21.


- نبدأ في البرمجة بعد توصيل الاسلاك كلاتي 

Data >> D4
Clock >> D3
VCC >> 5V
Gnd >> Gnd




ستظهر الان القراءات و النتائج على قارئ السيريال عند الضغط على اي زر في الكيبورد 

الكاتب : زيد حيمور 
البلد : المملكة الأردنية الهاشمية 
 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.