- المكونات مطلوبة
- كيفية صنع الشاسيه للذراع الآلي لفرز الألوان
- مستشعر الألوان TCS3200
- مخطط دائرة فارز لون اردوينو
- برمجة Arduino Uno لفرز الكرات الملونة
كما يوحي الاسم ، فإن فرز الألوان هو ببساطة فرز الأشياء حسب لونها. يمكن القيام بذلك بسهولة من خلال رؤيته ولكن عندما يكون هناك الكثير من الأشياء التي يجب فرزها وهي مهمة متكررة ، فإن آلات فرز الألوان التلقائية مفيدة للغاية. تحتوي هذه الآلات على مستشعر ألوان لاستشعار لون أي كائنات وبعد اكتشاف محرك سيرفو اللون ، يمكنك التقاط الشيء ووضعه في الصندوق الخاص به. يمكن استخدامها في مناطق تطبيق مختلفة حيث يكون تحديد اللون وتمييز اللون وفرز الألوان أمرًا مهمًا. تشمل بعض مجالات التطبيق الصناعة الزراعية (فرز الحبوب على أساس اللون) ، وصناعة الأغذية ، وصناعة الماس والتعدين ، وإعادة التدوير وما إلى ذلك. لا تقتصر التطبيقات على هذا ويمكن تطبيقها بشكل أكبر على صناعات مختلفة.
المستشعر الأكثر شيوعًا لاكتشاف الألوان هو مستشعر الألوان TCS3200. استخدمنا سابقًا مستشعر TCS3200 مع Arduino للحصول على مكون RGB (أحمر ، أخضر ، أزرق) من أي لون وقمنا أيضًا بربطه مع Raspberry Pi لاكتشاف لون أي كائن.
هنا في هذا البرنامج التعليمي ، سنصنع آلة لفرز الألوان باستخدام مستشعر الألوان TCS3200 وبعض المحركات المؤازرة ولوحة Arduino. سيتضمن هذا البرنامج التعليمي فرز الكرات الملونة والاحتفاظ بها في مربع الألوان ذي الصلة. سيكون الصندوق في وضع ثابت وسيتم استخدام محرك سيرفو لتحريك يد الفرز لإبقاء الكرة في الصندوق المناسب.
المكونات مطلوبة
- اردوينو UNO
- مستشعر الألوان TCS3200
- أجهزة المحركات
- صداري
- اللوح
كيفية صنع الشاسيه للذراع الآلي لفرز الألوان
لإجراء الإعداد الكامل بما في ذلك الهيكل والذراع والأسطوانة والوسادة ، استخدمنا لوح الشمس الأبيض بسماكة 2 مم. إنه متوفر بسهولة في المتاجر الثابتة. لقد استخدمنا قاطع الورق لقطع لوح Sunboard و FlexKwik أو FeviKwik للانضمام إلى الأجزاء المختلفة.
فيما يلي بعض الخطوات لبناء ذراع فرز الألوان:
1) خذ لوح صن بورد.
2) قم بتقطيع لوح التشمس إلى قطع بعد قياس جميع الجوانب باستخدام مقياس وعلامة كما هو موضح في الشكل.
3) الآن امسك قطعتين من لوح التشمس معًا واسكب قطرة من FeviKwik عليها لتلتصق القطع معًا. استمر في الانضمام إلى القطع باتباع الشكل.
4) بعد ضم كل القطع معًا ، ستبدو آلة فرز الألوان هذه كما يلي:
مستشعر الألوان TCS3200
TCS3200 عبارة عن مستشعر ألوان يمكنه اكتشاف أي عدد من الألوان بالبرمجة الصحيحة. يحتوي TCS3200 على صفيفات RGB (أحمر أخضر أزرق). كما هو موضح في الشكل على المستوى المجهري ، يمكن للمرء أن يرى المربعات المربعة داخل العين على المستشعر. هذه المربعات المربعة عبارة عن صفائف من مصفوفة RGB. يحتوي كل صندوق من هذه الصناديق على ثلاثة مستشعرات ، أحدها لاستشعار شدة الضوء الأحمر ، والآخر لاستشعار شدة الضوء الأخضر والأخير لاستشعار كثافة الضوء الأزرق.
يتم تحديد كل صفيف من مجموعات أجهزة الاستشعار في هذه المصفوفات الثلاثة بشكل منفصل وفقًا للمتطلبات. ومن ثم يُعرف باسم المستشعر القابل للبرمجة. يمكن تمييز الوحدة لاستشعار اللون المحدد وترك الآخرين. يحتوي على مرشحات لغرض التحديد هذا. يوجد وضع رابع يسمى "وضع عدم التصفية" حيث يكتشف المستشعر الضوء الأبيض.
مخطط دائرة فارز لون اردوينو
من السهل جدًا إجراء مخطط الدائرة لهذا Arduino Color Sorter ولا يتطلب الكثير من الاتصالات. التخطيطي ويرد أدناه.
هذه هي الدائرة وراء إعداد آلة فرز الألوان:
برمجة Arduino Uno لفرز الكرات الملونة
تعد برمجة Arduino UNO بسيطة جدًا وتتطلب منطقًا بسيطًا لتبسيط الخطوات المتبعة في فرز الألوان. برنامج كامل مع فيديو توضيحي يتم تقديمه في النهاية.
نظرًا لاستخدام محرك سيرفو ، تعد مكتبة المؤازرة جزءًا أساسيًا من البرنامج. نحن هنا نستخدم محركين مؤازرين. و المؤازرة الأولى سيتم نقل الكرات الملونة من الموقف المبدئي لTCS3200 موقف كاشف ثم ينتقل إلى موقف الفرز حيث سيتم إسقاط الكرة. بعد الانتقال إلى وضع الفرز ، ستسقط المؤازرة الثانية الكرة باستخدام ذراعها إلى دلو اللون المطلوب. شاهد العمل الكامل في الفيديو المقدم في النهاية.
ستكون الخطوة الأولى هي تضمين كل المكتبة وتحديد متغيرات المؤازرة.
#تضمن
يمكن أن يعمل مستشعر الألوان TCS3200 بدون مكتبة لأن هناك حاجة فقط لتردد القراءة من دبوس المستشعر لتحديد اللون. لذلك فقط حدد أرقام التعريف الخاصة بـ TCS3200.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 # مستشعر تعريف Out 8 int تردد = 0 ؛ اللون int = 0 ؛
اجعل دبابيس التحديد كإخراج لأن هذا سيجعل الثنائي الضوئي الملون مرتفعًا أو منخفضًا وسيأخذ دبوس Out لـ TCS3200 كمدخل. سيوفر دبوس OUT التردد. حدد مقياس التردد ليكون 20٪ مبدئيًا.
pinMode (S0 ، الإخراج) ؛ pinMode (S1 ، الإخراج) ؛ pinMode (S2 ، الإخراج) ؛ pinMode (S3 ، الإخراج) ؛ pinMode (sensorOut ، INPUT) ؛ الكتابة الرقمية (S0 ، منخفضة) ؛ الكتابة الرقمية (S1 ، عالية) ؛
يتم توصيل محركات المؤازرة في Pin 9 و 10 من Arduino. و أجهزة الالتقاط والتي سوف التقاط توصيل الكرات لون على دبوس 9 و انخفاض المؤازرة التي سوف اسقاط الكرات لون وفقا للون متصل في Pin10.
pickServo.attach (9) ، dropServo.attach (10) ،
مبدئيًا ، يتم ضبط محرك معزز الانتقاء في الموضع الأولي وهو في هذه الحالة 115 درجة. قد تختلف ويمكن تخصيصها وفقًا لذلك. يتحرك المحرك بعد بعض التأخير إلى منطقة الكاشف وينتظر الكشف.
pickServo.write (115) ، تأخير (600) ؛ لـ (int i = 115 ؛ i> 65 ؛ i-- ) { pickServo.write (i) ؛ تأخير (2) ؛ } تأخير (500)؛
و TCS 3200 يقرأ اللون ويعطي تردد من خارج دبوس.
اللون = DiscoverColor () ؛ تأخير (1000) ؛
اعتمادًا على اللون الذي تم اكتشافه ، يتحرك محرك معزز الإسقاط بزاوية معينة ويسقط كرة اللون إلى الصندوق الخاص بها.
التبديل (اللون) { الحالة 1: dropServo.write (50) ؛ استراحة؛ الحالة 2: dropServo.write (80) ؛ استراحة؛ الحالة 3: dropServo.write (110) ؛ استراحة؛ الحالة 4: dropServo.write (140) ؛ استراحة؛ الحالة 5: dropServo.write (170) ؛ استراحة؛ الحالة 0: كسر ؛ } تأخير (500)؛
يعود محرك المؤازرة إلى الموضع الأولي لاختيار الكرة التالية.
لـ (int i = 65 ؛ i> 29 ؛ i-- ) { pickServo.write (i) ؛ تأخير (2) ؛ } تأخير (300)؛ لـ (int i = 29 ؛ i <115 ؛ i ++) { pickServo.write (i) ؛ تأخير (2) ؛ }
تُستخدم وظيفة DiscoverColor () لقياس التردد وتقارن تردد اللون للوصول إلى نتيجة اللون. تتم طباعة النتيجة على الشاشة التسلسلية. ثم تقوم بإرجاع قيمة اللون للحالات لتحريك زاوية محرك معزز الإسقاط.
int DiscoverColor () {
تعمل الكتابة إلى S2 و S3 (LOW ، LOW) على تنشيط الصمامات الثنائية الضوئية الحمراء لأخذ قراءات كثافة اللون الأحمر.
الكتابة الرقمية (S2 ، منخفضة) ؛ الكتابة الرقمية (S3 ، منخفضة) ؛ التردد = PulseIn (sensorOut، LOW) ؛ int R = التردد ؛ Serial.print ("أحمر =") ؛ Serial.print (تردد) ؛ // طباعة تردد اللون الأحمر Serial.print ("") ؛ تأخير (50) ؛
تعمل الكتابة إلى S2 و S3 (LOW، HIGH) على تنشيط الثنائيات الضوئية الزرقاء لأخذ قراءات كثافة اللون الأزرق.
الكتابة الرقمية (S2 ، منخفضة) ؛ الكتابة الرقمية (S3 ، عالية) ؛ التردد = PulseIn (sensorOut، LOW) ؛ int B = التردد ؛ Serial.print ("أزرق =") ؛ Serial.print (التردد) ؛ Serial.println ("") ؛
تعمل الكتابة إلى S2 و S3 (HIGH، HIGH) على تنشيط الصمامات الثنائية الضوئية الخضراء لأخذ قراءات كثافة اللون الأخضر.
الكتابة الرقمية (S2 ، عالية) ؛ الكتابة الرقمية (S3 ، عالية) ؛ // قراءة تردد الخرج = pulseIn (sensorOut ، LOW) ؛ int G = التردد ؛ Serial.print ("أخضر =") ؛ Serial.print (التردد) ؛ Serial.print ("") ؛ تأخير (50) ؛
ثم تتم مقارنة القيم لاتخاذ قرار اللون. تختلف القراءات باختلاف الإعداد التجريبي حيث تختلف مسافة الاكتشاف لكل شخص عند إجراء الإعداد.
إذا (R <22 & R> 20 & G <29 & G> 27) { color = 1 ؛ // Red Serial.print ("اللون المكتشف =") ؛ Serial.println ("RED") ؛ } إذا (G <25 & G> 22 & B <22 & B> 19) { color = 2؛ // Orange Serial.println ("Orange") ؛ } إذا (R <21 & R> 20 & G <28 & G> 25) { color = 3؛ // Green Serial.print ("اللون المكتشف =") ؛ Serial.println ("أخضر") ؛ } إذا (R <38 & R> 24 & G <44 & G> 30) { color = 4؛ // Yellow Serial.print ("اللون المكتشف =") ؛ Serial.println ("أصفر") ؛ } إذا كانت (G <29 & G> 27 & B <22 & ب> 19) { color = 5 ؛ // Blue Serial.print ("اللون المكتشف =") ؛ Serial.println ("أزرق") ؛ } عودة اللون }
هذا ينهي آلة فرز الألوان باستخدام TCS3200 و Arduino UNO. يمكنك أيضًا برمجته لاكتشاف المزيد من الألوان إذا لزم الأمر. إذا كان لديك أي شك أو كان لديك أي اقتراح ، فاكتب إلى منتدانا أو قم بالتعليق أدناه. تحقق أيضًا من الفيديو أدناه.