ربط حسّاس اللّون TCS3200 مع لوحة التطوير أردوينو

يَكشِف حسّاس اللّون TCS3200 مجالاً واسعاً من الألوان اعتماداً على أطوال أمواجها، ويُستخدَم في مختلف التّطبيقات التي تعتمد على التمييز بين الألوان مثل تطبيقات مطابقة الألوان، وتصنيفها، وقراءة الشّرائط الملوّنة وغيرها الكثير.
يوضّح الشكل (1) حسّاس اللّون TCS3200 والذي يَستخدِم الشريحة TAOS TCS3200 RGB لتحسّس الألوان، كما يتضمّن 4 ليداتٍ ذات لونٍ أبيض White LEDs لإضاءة الغرض الموضوع أمام الحسّاس.صورة ذات صلة
الشكل (1) الحسّاس TCS3200

مواصفات الحسّاس:

-جهد التغذية: من 2.7V حتى 5.5V

-الحجم: (mm)28.4×28.4  (1.12×1.12)

-واجهة TTL رقميّة

– تحويل شدّة الضّوء إلى تردّد بدقّة عالية

-قابل لبرمجة وتحديد الألوان بالإضافة لتغيير نسبة تردّد الخرج

-تواصل مباشر مع المتحكّم الصِّغَري microcontroller

آلية عمل الحسّاس:

يمتلك الحسّاس TCS3200 مصفوفة ديوداتٍ ضوئيّةٍ بالإضافة لـ 4 مرشّحاتٍ مختلفة، ويُعرّف الديود الضوئيّ بأنّه جهازٌ نصف ناقلٍ يحوّل الضّوء السّاقط عليه إلى تيّار كهربائي.

تتألّف مصفوفة الديودات من:

▪ ١٦ ديوداً ضوئيّاً مع مرشّح للضوء الأحمر، يتحسّس اللّون الأحمر

▪ ١٦ ديوداً ضوئيّاً مع مرشّح للضوء الأخضر، يتحسّس اللّون الأخضر

▪ ١٦ ديوداً ضوئيّاً مع مرشّح للضوء الأزرق؛ يتحسّس اللّون الأزرق

▪ ١٦ ديوداً ضوئيّاً بدون مرشّحات

وهذا موضّحٌ في الشّكل (2) الذي يُعبِّر عن الشّريحة TCS3200

 TCS3200 الشّكل (2): الشّريحة

الشّكل (2) الشّريحة TCS3200

 

وبالتّالي يمكن كشف الاختلاف في درجات الألوان باختيار أحد المرشّحات، كما يحتوي الحسّاس على محوِّل تيّار إلى تردّد يعمل على تبديل قراءات الديودات الضوئيّة إلى موجة مربّعة ذات تردّد يتناسب طرداً مع شدّة الضّوء للّون المحدّد، ثم يعالج الأردوينو هذه القراءة-أي التردّد-

يوضّح الشكل (3) هذه العمليّة:

 TCS3200 الشكل(3): عملية تحسّس الألوان في حسّاس

الشكل (3) عملية تحسّس الألوان

 توصيل أرجل الحسّاس:

يوضّح الشكل (4) مخطّط أرجل الحسّاس:

 TCS3200 الشكل (4): مخطط الحسّاس

الشكل (4) مخطط الحسّاس

يبيّن الجدول التالي وظيفة كلّ رجلٍ من أرجل الحسّاس:

رجل الحسّاس I/O الوصف
(GND (4 تأريض منبع التغذية
(OE (3 I تفعيل مدخل الخَرْج (جهد منخفض)
(OUT(6 O تردّد الخَرْج
(S0, S1 (1, 2 I مداخل تحديد التردّد المطلوب
(S2, S3 (7, 8 I مداخل تحديد نوع الديودات الضوئيّة المطلوب
(VDD (5 منبع التغذية

اختيّار المرشّح المطلوب:

تُستخدَم الأرجل S2 وَ S3 لتحديد قراءة الديودات الضوئيّة للألوان، حيث الديودات الضوئيّة موصولةٌ على التفرّع مما يسمح باختيار مجموعة ديوداتٍ ضوئيّةٍ مختلفةً تبعاً للتّرشيح المطلوب عبر تحديد قيم S2 وَ S3 إما HIGH أو LOW، كما هو موضّح في الجدول التالي:

نوع الديود الضوئيّ S2 S3
أحمر LOW LOW
أزرق LOW HIGH
بدون مرشّح HIGH LOW
أخضر HIGH HIGH

تحديد تردّد الخرج:

يُستخدَم لهذا الغرض كلّ من الأرجل S0 وَ S1 ، حيث يمكن تغيير تردّد خرج الحسّاس وفق النّسب التالية: 100% أو 20% أو 2% ، وتُفيد هذه العملية في تحسين قراءة الحسّاس لمختلف العدّادات التي تعتمد على التردّد أو المتحكّمات الصِّغَريّة، وهذا موضّح في الجدول التالي:

نسبة تردّد خرج الحسّاس S0 S1
حالة عدم العمل LOW LOW
2% LOW HIGH
20% HIGH LOW
100% HIGH HIGH

ومن الشّائع استخدام نسبة 20% مع لوحة التطوير أردوينو، أي تكون الرجل S0 في الحالة HIGH  وS1 تكون في الحالة LOW.

ربط حسّاس الألوان TCSP3200 مع لوحة التطوير أردوينو:

سنوضح في المثال الآتي كيفيّة ربط الحسّاس TCSP3200 مع أردوينو لتحسّس الألوان، ويجب التنويه إلى أنّ دقّة هذا الحسّاس ليست عاليةً إلاّ أنّه يفي بالغرض لهذا التطبيق، أما بالنّسبة للعناصر المستخدمة فهي:

١. Arduino UNO

٢.حسّاس اللّون TCSP3200

٣.أسلاك توصيل Jumper wires

ويوضّح الشكل (5) مخطّط توصيل الحسّاس مع لوح الأردوينو:

 مع الاردوينو TCS3200 الشكل (5): مخطّط توصيل الحسّاس

الشكل (5) مخطّط توصيل الحسّاس مع الأردوينو

ويوضّح الجدول الآتي طريقة توصيل أرجل الحسّاس مع أرجل الأردوينو:

رجل الحسّاس رجل الأردوينو
S0 Digital pin 4
S1 Digital pin 5
Vcc 5V
S3 Digital pin 6
S4 Digital pin 7
OUT Digital pin 8

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

عبارة عن قسمَين:

١. قراءة وإظهار تردّد الخرج على الشاشة التسلسليّة، حيث ستعرض القيم المتغيّرة لتردّد خَرْج الحسّاس مع تغيير اللّون الموضوع أمام الحسّاس ثم تكتبها.

٢. التمييز بين الألوان المختلفة، وسنحتاج هنا لإدخال القيم التردّديّة المأخوذة سابقاً إلى الكود البرمجيّ ليتمكن الحسّاس من التمييز بين مختلف الألوان الموجودة.

الكود البرمجيّ  لقراءة التردّد : التحميل  من هنا

نقوم بتجريب التطبيق، حيث نضع جسماً أزرق اللّون أمام الحسّاس على مسافاتٍ مختلفةٍ أوّلها على مسافةٍ قريبةٍ من الحسّاس، والثّانية على مسافةٍ بعيدةٍ عنه -كما يوضّح الشّكل (6)-

ثم نفتح شاشة العرض التسلسليّة لعرض القيم الموافقة للألوان التي يكتشفها الحسّاس.

الشكل (6): توضُّع الجسم الأزرق على مسافات مختلفة من الحسّاس

الشكل (6) توضُّع الجسم الأزرق على مسافات مختلفة من الحسّاس

 يجب أن تكون قيمة التردّد المقاسة للّون الأزرق أصغر من قيمتَي اللّونين الأحمر والأخضر كما هو موضّح في الجدول الآتي:

 TCS3200 الشكل(7): قيم التردّدات المقاسة لحسّاس

الشكل(7) قيم التردّدات المقاسة

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

الشكل(8): تحسّس ألوان الأجسام ذات اللّون الأخضر والأحمر

الشكل(8) تحسّس ألوان الأجسام ذات اللّون الأخضر والأحمر

 الكود البرمجيّ لتمييز الألوان:

يجب أولاً تحويل قيم التردّد الخاصّة بالألوان الأخضر والأحمر والأزرق إلى قيم RGB الموافقة لها، وكما رأينا فإنّ أعظم قيمة لتردّد اللّون الأزرق هي 223 وتوافق الصّفر في RGB ، أما القيمة الصُّغرى للتردّد فكانت 59 وتوافق 255 في RGB، وسنستخدم لهذا الغرض التابع map() في برنامجنا مع التنويه إلى ضرورة تغيير بارامتراته إلى القِيَم التي حصلنا عليها أثناء قراءة الألوان.

الكود البرمجيّ لتمييز الألوان : التحميل من هنا

نلاحظ وجود ثلاث حالاتٍ لتمييز الألوان:

١.يكون اللّون أحمرَ عندما تكون قيمة R هي الأعلى في نظام RGB

٢.يكون اللّون أخضرَ عندما تكون قيمة G هي الأعلى في نظام RGB

٣.يكون اللّون أزرقَ عندما تكون قيمة B هي الأعلى في نظام RGB

خلاصة:

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


المصدر: Ultimate Guide for Arduino Sensors Modules
ترجمة: آلاء آغا ،مراجعة: محمد مرتكوش ، تدقيق لغوي: مي همدر  ، تصميم: علي العلي ، تحرير: كريم سلوم.

Leave a Reply

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