- רכיבים נדרשים
- איך מייצרים את השלדה לזרוע רובוטית למיון צבעים
- חיישן צבע TCS3200
- תרשים מעגלים של סדרן צבעים של ארדואינו
- תכנות Arduino Uno למיון כדורים צבעוניים
כפי שהשם מרמז, מיון צבעים הוא פשוט למיין את הדברים לפי הצבע שלהם. ניתן לעשות זאת בקלות על ידי ראייתו, אך כאשר יש יותר מדי דברים למיון וזו משימה שחוזרת על עצמה אז מכונות מיון צבע אוטומטיות מאוד שימושיות. למכונות אלה יש חיישן צבע כדי לחוש את הצבע של כל האובייקטים ולאחר שזיהו את מנוע סרוו הצבעים תפסו את הדבר והכניסו אותו לתיבה בהתאמה. ניתן להשתמש בהם באזורי יישום שונים בהם חשוב זיהוי צבע, הבחנת צבע ומיון צבעים. חלק מאזורי היישום כוללים ענף חקלאות (מיון תבואה על בסיס צבע), תעשיית מזון, תעשיית יהלומים וכרייה, מיחזור וכו '. היישומים אינם מוגבלים לכך וניתן ליישם אותם עוד בענפים שונים.
החיישן הפופולרי ביותר לאיתור הצבעים הוא חיישן הצבע TCS3200. השתמשנו בעבר בחיישן TCS3200 עם Arduino כדי להשיג את רכיב ה- RGB (אדום, ירוק, כחול) מכל צבע וגם ממשק אותו עם Raspberry Pi לזיהוי צבע של כל אובייקט.
כאן במדריך זה נכין מכונת מיון צבעים באמצעות חיישן צבע TCS3200, כמה מנועי סרוו ולוח Arduino. מדריך זה יכלול מיון כדורים צבעוניים ושמירתם בתיבת הצבעים הרלוונטית. התיבה תהיה במצב קבוע ומנוע הסרוו ישמש להזזת יד הסדרן כדי לשמור על הכדור בתיבה הרלוונטית.
רכיבים נדרשים
- ארדואינו UNO
- חיישן צבע TCS3200
- סרוו מוטורס
- מגשרים
- קרש לחם
איך מייצרים את השלדה לזרוע רובוטית למיון צבעים
לצורך ביצוע ההתקנה המלאה כולל שלדה, זרוע, רולר, כרית, השתמשנו בסאנבורד הלבן בעובי 2 מ"מ. ניתן להשיג אותו בקלות בחנויות הנייחות. השתמשנו בחותך נייר כדי לחתוך את גיליון הסאנבורד ואת FlexKwik או FeviKwik לצורך הצטרפות לחלקים השונים.
להלן כמה שלבים לבנות את זרוע מיון הצבעים:
1) קח את גיליון הסאנבורד.
2) חותכים את סדין השמש לחתיכות לאחר מדידת כל הצדדים בקנה מידה וסמן כמוצג באיור.
3) כעת החזיקו את שתי חלקי הסאונד ביחד ושפכו עליו טיפת FeviKwik כדי להדביק את החלקים זה לזה. המשך להצטרף לחתיכות על ידי ביצוע הדמות.
4) לאחר חיבור כל החלקים יחד, מכונת מיון צבעים זו תיראה כך:
חיישן צבע TCS3200
TCS3200 הוא חיישן צבע שיכול לזהות כל מספר צבעים באמצעות תכנות נכון. TCS3200 מכיל מערכי RGB (אדום ירוק כחול). כפי שמוצג באיור ברמה המיקרוסקופית ניתן לראות את התיבות המרובעות בתוך העין על החיישן. תיבות מרובעות אלה הן מערכים של מטריצת RGB. כל אחת מהקופסאות הללו מכילה שלושה חיישנים, האחד מיועד לחישה בעוצמת האור האדומה, האחד מיועד לחישה בעוצמת האור הירוקה והאחרון לחישה בעוצמת האור הכחולה.
כל אחד ממערכי החיישנים בשלושת המערכים הללו נבחר בנפרד בהתאם לדרישה. לפיכך הוא מכונה חיישן לתכנות. ניתן להציג את המודול כדי לחוש את הצבע המסוים ולעזוב את האחרים. הוא מכיל פילטרים למטרת בחירה זו. ישנו מצב קדימה הנקרא ' אין מצב סינון' בו החיישן מזהה אור לבן.
תרשים מעגלים של סדרן צבעים של ארדואינו
דיאגרמת המעגל עבור סדרן הצבעים של Arduino זה די קלה לביצוע ואינה דורשת חיבורים רבים. הסכימה מובאת להלן.
זהו המעגל שמאחורי ההתקנה של מכונת מיון צבעים:
תכנות Arduino Uno למיון כדורים צבעוניים
תכנות Arduino UNO הוא די פשוט ודורש היגיון פשוט כדי לפשט את הצעדים הכרוכים במיון צבעים. תוכנית שלמה עם הדגמה וידאו ניתן בסוף.
מכיוון שמשתמשים במנוע סרוו, כך שספריית סרוו היא חלק חיוני בתוכנית. כאן אנו משתמשים בשני מנועי סרוו. סרוו הראשון יהיה להזיז את הכדורים הצבעוניים מהעמדה המקורית למצב גלאי TCS3200 ולאחר מכן לעבור למיקום מיון לאן הכדור יהיה ירד. לאחר שעבר למצב מיון, הסרוו השני ישליך את הכדור באמצעות זרועו לדלי הצבע הרצוי. ראה את העבודה המלאה בסרטון שניתן בסוף.
השלב הראשון יהיה הכללת הכללת הספרייה והגדרת משתני הסרוו.
#לִכלוֹל
חיישן הצבע TCS3200 יכול לעבוד ללא ספרייה מכיוון שיש צורך רק בתדירות קריאה מפין החיישן כדי להחליט על הצבע. אז פשוט הגדירו את מספרי הסיכות של TCS3200.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int frequency = 0; צבע int = 0;
הפוך את הסיכות הנבחרות כפלט שכן זה יהפוך את פוטודיודת הצבע לגבוהה או נמוכה ולקחת את סיכת ה- Out של TCS3200 כקלט. סיכת ה- OUT תספק תדר. בחר את קנה המידה של התדר כ -20% בהתחלה.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); digitalWrite (S1, HIGH);
מנועי הסרוו מחוברים בסיכה 9 ו -10 בארדואינו. סרוו הטנדר אשר טנדר את הכדורים בצבע מחוברים ליד פין 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 קורא את הצבע ונותן את התדר מהפין החוצה.
color = detectColor (); עיכוב (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); }
הפונקציה detectColor () משמשת למדידת תדירות ומשווה את תדר הצבע כדי להגיע למסקנת הצבע. התוצאה מודפסת על הצג הסדרתי. ואז הוא מחזיר את ערך הצבע עבור מקרים להזזת זווית מנוע הסרוו.
int detectColor () {
כתיבה ל- S2 ו- S3 (LOW, LOW) מפעילה את הפוטודיודות האדומות כדי לקחת את הקריאות לצפיפות צבע אדום.
digitalWrite (S2, LOW); digitalWrite (S3, LOW); תדר = pulseIn (sensorOut, LOW); int R = תדר; Serial.print ("אדום ="); Serial.print (תדר); // הדפסה תדר צבע אדום אדום Serial.print (""); עיכוב (50);
כתיבה ל- S2 ו- S3 (LOW, HIGH) מפעילה את הפוטודיודות הכחולות כדי לקחת את הקריאות לצפיפות צבע כחול.
digitalWrite (S2, LOW); digitalWrite (S3, HIGH); תדר = pulseIn (sensorOut, LOW); int B = תדר; Serial.print ("כחול ="); Serial.print (תדר); Serial.println ("");
כתיבה ל- S2 ו- S3 (HIGH, HIGH) מפעילה את הפוטודיודות הירוקות כדי לקבל את הקריאות לצפיפות צבע ירוקה.
digitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // קריאת תדר תדר המוצא = pulseIn (sensorOut, LOW); int G = תדר; Serial.print ("ירוק ="); Serial.print (תדר); Serial.print (""); עיכוב (50);
ואז משווים את הערכים כדי לקבל את החלטת הצבע. הקריאות שונות בהתקנה ניסיונית שונה מכיוון שמרחק הזיהוי משתנה לכולם בעת ביצוע ההתקנה.
אם (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Serial.print אדום ("צבע מזוהה הוא ="); Serial.println ("אדום"); } אם (G <25 & G> 22 & B <22 & B> 19) { color = 2; // כתום Serial.println ("כתום"); } אם (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Serial.print ירוק ("צבע מזוהה הוא ="); Serial.println ("ירוק"); } אם (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Serial.print צהוב ("צבע מזוהה הוא ="); Serial.println ("צהוב"); } אם (G <29 & G> 27 & B <22 & B> 19) { color = 5; // Serial.print כחול ("צבע מזוהה הוא ="); Serial.println ("כחול"); } צבע החזרה; }
זה מסיים את מכונת מיון הצבעים באמצעות TCS3200 ו- Arduino UNO. אתה יכול גם לתכנת אותו כדי לזהות צבעים נוספים במידת הצורך. אם יש לך ספק או שיש לך הצעה כלשהי, כתוב לפורום או הערה למטה. בדוק גם את הסרטון המופיע להלן.