רובוט עוקב קו הוא רובוט פשוט אך מרתק לרוב התלמידים / חובבים לבנות. במדריך זה נלמד כיצד עובד רובוט עוקב קו וכיצד נוכל לבנות כזה באמצעות מיקרו-בקר PIC16F877A PIC. PIC16F877A הוא MCU רב תכליתי 40 פינים מבית Microchip, השתמשנו ב- IC זה בסדרת הדרכות PIC המלאה שלנו. אם אתה חדש, כאן כדאי לך לעיין במדריכי PIC אלה כדי ללמוד את הבסיס של IC זה וכיצד להעלות תוכניות למיקרו-בקר. מכיוון שכבר סיקרנו מידע זה בהדרכות שלנו, נדלג עליהם בהסבר שלהלן.
אם אתם מעוניינים ברובוטיקה, עליכם להכיר היטב את השם " Line Robot Follower ". רובוט זה מסוגל לעקוב אחר קו, פשוט באמצעות זוג חיישנים ומנועים. הרובוט הזה נותן לך מקום להתפתחות אינסופית ורובוטים כמו Kiva (רובוט מחסני אמזון) הם דוגמה לכך. אתה יכול גם לבדוק את הרובוטים האחרים שלנו שעוקבים אחר הקווים:
- רובוט עוקב קו באמצעות מיקרו-בקר 8051
- רובוט עוקב קו באמצעות ארדואינו
- רובוט עוקב קו באמצעות פטל פטל
חומרים נדרשים:
- PIC16F877A
- חיישן IR (2Nos)
- מנוע הילוכים DC (2Nos)
- נהג מנוע L293D
- שזלולות (ניתן לבנות בעצמכם גם באמצעות קרטונים)
- בנק כוח (כל מקור כוח זמין)
מושגים של עוקב אחר הקו
רובוט עוקב הקו מסוגל לעקוב אחר קו בעזרת חיישן IR. לחיישן זה משדר IR ומקלט IR. משדר ה- IR (IR LED) משדר את האור והמקלט (פוטודיודה) ממתין שהאור המשודר יחזור חזרה. אור IR יחזור רק אם הוא מוחזר על ידי משטח. בעוד שכל המשטחים אינם מחזירים אור IR, רק משטח הצבע הלבן יכול לשקף אותם לחלוטין ומשטח הצבע השחור יתבונן בהם לחלוטין כפי שמוצג באיור למטה. למידע נוסף על מודול חיישני IR כאן.
כעת נשתמש בשני חיישני IR כדי לבדוק אם הרובוט נמצא במסלול עם הקו ובשני מנועים כדי לתקן את הרובוט אם הוא יוצא מחוץ למסלול. מנועים אלה דורשים זרם גבוה וצריכים להיות דו כיווניים; לפיכך אנו משתמשים במודול נהג מנוע כמו L293D. נצטרך גם מיקרו-בקר כמו PIC כדי להנחות את המנועים על בסיס הערכים של חיישן ה- IR. דיאגרמת גוש פשוטה של אותה מוצגת להלן.
שני חיישני IR אלה יוצבו אחד משני צידי הקו. אם אף אחד מהחיישנים לא מזהה קו שחור אותם, המיקרו-בקר PIC מורה למנועים להתקדם כפי שמוצג להלן.
אם החיישן השמאלי מגיע לקו שחור, המיקרו-בקר מורה לרובוט לפנות שמאלה על ידי סיבוב הגלגל הימני לבדו.
אם החיישן הימני מופיע בקו שחור, המיקרו-בקר מורה לרובוט לפנות ימינה על ידי סיבוב הגלגל השמאלי לבדו.
אם שני החיישנים מגיעים על קו שחור, הרובוט עוצר.
בדרך זו הרובוט יוכל לעקוב אחר הקו מבלי לצאת מחוץ למסלול. עכשיו בואו נראה איך המעגל והקוד נראים.
תרשים מעגל והסבר:
תרשים המעגל השלם עבור רובוט עוקב קו מבוסס PIC זה מוצג להלן
במעגל פועלים שני חיישני IR וזוג מנועי הילוך DC יחד עם מודול מנוע כמנוע לעיל. מודול מנהל התקן המנוע המשמש בפרויקט זה הוא L293D, נצטרך נהג מנוע מכיוון שסיכת הפלט של מיקרו-בקר PIC אינה יכולה לספק מספיק זרם בכדי להניע את המנועים. מודול זה יופעל ישירות ממקור החשמל (5V) כפי שמוצג במעגל. למודול ארבעה פינים (שניים לכל מנוע) המחוברים ל- PIC כדי לשלוט בכיוון המנועים. יש לנו גם שני חיישני IR המשמשים ככניסה למיקרו-בקר PIC. חיישנים אלה יעלו גבוה (1) אם הם נמצאים מעל משטח לבן ויהיו נמוכים (0) כאשר הם נמצאים מעל משטח שחור. חיבורי הסיכה המלאים מודגמים בטבלה שלהלן.
S.No |
מחובר מ |
מחובר ל |
1 |
חיישן IR השאיר סיכה |
RD2 (סיכה 21) |
2 |
חיישן IR ישר החוצה סיכה |
RD3 (סיכה 22) |
4 |
מנוע 1 ערוץ סיכה |
RC4 (סיכה 23) |
5 |
מנוע 1 סיכה של ערוץ B |
RC5 (סיכה 25) |
6 |
מנוע 2 ערוץ סיכה |
RC6 (סיכה 26) |
7 |
מוט 2 ערוץ B סיכה |
RC7 (סיכה 27) |
בחומרה האמיתית השתמשתי בבנק כוח שייתן פלט של +5 וולט ישירות דרך יציאת ה- USB שלו; לפיכך עקפתי את ויסות המתח 7805 והפעלתי את ה- PIC, החיישנים והמנועים באמצעות אותם. אתה יכול לעשות את אותו הדבר להשתמש בסוללה 12V יחד עם הרגולטור כפי שמוצג במעגל.
תכנות PIC מיקרו-בקר:
ברגע שאתה מוכן עם החומרה שלך הגיע הזמן להתחיל לתכנת. התוכנית המלאה של זה פרויקט רובוט נגרר בעקבותיו PIC הקו ניתנת בסוף דף זה. עם זאת נתחים חשובים מוסברים להלן.
אתחל את סיכות הקלט / פלט בשורות הבאות. 2 סיכות חיישן ה- IR משמשות כקלט וארבע סיכות המנוע משמשות כסיכות יציאה.
TRISD2 = 1; TRISD3 = 1; // אמבטיה סיכות חיישן IR מוכרזות כקלט TRISC4 = 0; TRISC5 = 0; // סיכות מנוע 1 שהוכרזו כפלט TRISC6 = 0; TRISC7 = 0; // מנוע 2 פינים שהוכרזו כפלט
כעת עלינו לקרוא את המצב של חיישן ה- IR ולשלוט על המנוע בהתאם. לדוגמא אם שני החיישנים גבוהים (לא מופיעים תחת קו שחור) אז נעביר את שני המנועים קדימה כפי שמוצג בתוכנית למטה.
אם (RD2 == 1 && RD3 == 1) // שניהם חיישנים לא מעל קו balck {RC4 = 0; RC5 = 1; // מנוע 1 קדימה RC6 = 1; RC7 = 0; // מנוע 2 קדימה}
אם החיישן השמאלי עולה על הקו השחור, אנו מבצעים סיבוב ימינה על ידי החזקת המנוע 1 דומם וסיבוב המנוע 2 לכיוון קדימה. סוג זה של סיבוב נקרא סיבוב דיפרנציאלי.
אחרת אם (RD2 == 0 && RD3 == 1) // החיישן השמאלי נמצא מעל קו שחור {RC4 = 1; RC5 = 1; // מנוע 1 עצור RC6 = 1; RC7 = 0; // מנוע 2 קדימה}
באופן דומה, אם החיישן הימני מגיע מעל הקו השחור , הבוט נועד לפנות שמאלה על ידי החזקת המנוע השני דומם וסיבוב המנוע הראשון לבדו בכיוון קדימה כמוצג להלן.
אחרת אם (RD2 == 1 && RD3 == 0) // החיישן הימני נמצא מעל קו שחור {RC4 = 0; RC5 = 1; // מנוע 1 קדימה RC6 = 1; RC7 = 1; // מנוע 2 עצור}
לבסוף אם שני החיישנים מגיעים תחת קו שחור אז הגיע הזמן לעצור את הבוט. ניתן לעשות זאת על ידי הפיכת כל הפינים של שני המנועים לגבוהים. הקוד לעשות את אותו הדבר מוצג להלן
אחרת // שניהם חיישן מעל קו שחור {RC4 = 1; RC5 = 1; // מנוע 1 עצור RC6 = 1; RC7 = 1; // מנוע 2 עצור}
זה התוכנית מוכנה וניתן להעלות אותה ל- PIC באמצעות כל מתכנת כמו PicKit.
עוקב קו PIC בפעולה:
לאחר שהחומרה והקוד מוכנים, הגיע הזמן לפעולה כלשהי. כפי שנאמר קודם השתמשתי בבנק כוח להפעלת הבוט, ולכן כל שעלי לעשות הוא פשוט לחבר את בנק הכוח לבוט שמוגדרת החומרה והקוד כבר הועלה.
לוח ה- PIC Perf נוצר עבור סדרת ההדרכה שלנו ב- PIC, בה למדנו כיצד להשתמש במיקרו-בקר PIC. כדאי לחזור לאותם מדריכי PIC Microcontroller באמצעות MPLABX ו- XC8 אם אינך יודע כיצד לצרוב תוכנית באמצעות פיקיט 3, מכיוון שאדלג על כל המידע הבסיסי הזה.
כעת, פשוט הפעל את הבוט מעל קו שחור ועליך לצפות בו בעקבות השורה.
אתה עלול להיתקל בקשיים מסוימים בהתחלה במקרה זה קרא עוד. אם הגלגלים מסתובבים בניגוד, פשוט מחליפים את הקוטביות של המנוע שגלגלו מסתובב בכיוון ההפוך. אם הבוט חורג מהקו, החלף את חיישן ה- IR והכל צריך להיות טוב.
את העבודה המלאה של הבוט ניתן למצוא בסרטון הבא. מקווה שאהבתם את הפרויקט ונהניתם לבנות משהו דומה. אם יש לך בעיה לגרום לזה לעבוד, תוכל לפרסם אותם בסעיף ההערות למטה כדי לפתור את הבעיה או להשתמש בפורומים שלנו כדי לדון בתכנים טכניים.