- חומרים נדרשים
- מושגים של עוקב אחר הקו
- הסבר מעגל
- עבודה של רובוט עוקב קו באמצעות MSP430
- תרשים מעגל
- הסבר על תכנות
רובוט חסידי הקו הוא אחד מפרויקטים הרובוטיים הפופולריים בקרב סטודנטים ומתחילים בגלל פשטותו. זה עוקב אחר קו, שחור או לבן, תלוי איך אתה מתכנת את המיקרו-בקר שלך. כאן אנו מייצרים רובוט עוקב קווים באמצעות לוח הזנק של MSP430 מבית Texas Instruments, העוקב אחר הקו השחור. אם אתה חדש במשטח ההשקה של MSP430, אנא קרא את ההדרכה שלנו להתבונן בו עם MSP430.
חומרים נדרשים
- MSP430G2 LaunchPad מטקסס אינסטרומנטס
- מודול נהג המנוע L298D
- חוטי חיבור
- מודולי חיישן IR
- צ'ייסיס, גלגל, רכבת הרים
- אנרג'יה IDE
- ספק כוח (3.3 וולט) ו -5 וולט -12 וולט
מושגים של עוקב אחר הקו
מושג של חסיד קווים קשור לאור. השתמשנו בהתנהגות האור במשטח שחור ולבן. כאשר האור נופל על משטח לבן הוא יחזיר כמעט מלא ובמקרה של משטח שחור האור נקלט במשטח שחור. התנהגות מוסברת זו של האור משמשת ברובוט העוקב אחר הקו.
ברובוט העוקב אחר מבוסס MSP430 זה השתמשנו במשדרי IR ובמקלטים המכונים גם דיודות צילום. הם משמשים למשלוח וקבלת אור. IR משדר אורות אינפרא אדום. כאשר קרני אינפרא אדום נופלות על משטח לבן, הוא מוחזר לאחור ונלכד על ידי פוטודיודות אשר מייצרות שינויים במתח. כאשר אור IR נופל על משטח שחור, האור נספג על ידי המשטח השחור ואין קרניים מוחזרות לאחור, ולכן דיודת הצילום אינה מקבלת שום אור או קרניים. למידע נוסף על חיישני IR, עקוב אחר הקישור.
כאן ברובוט העוקב אחר מבוסס MSP430 זה כאשר החיישן חש משטח לבן אז MSP מקבל 1 כקלט וכאשר חוש קו שחור MSP מקבל 0 כקלט.
הסבר מעגל
אנו יכולים לחלק את כל רובוט העוקבים אחר חלקים שונים כמו קטע חיישנים, קטע בקרה ומקטע נהג.
קטע חיישן: קטע זה מכיל דיודות IR, פוטנציומטר, קומפרטר (מגבר אופ) ומנורות LED. פוטנציומטר משמש להגדרת מתח התייחסות במסוף אחד של המשווה וחיישני IR חשים את הקו ומספקים שינוי במתח במסוף השני של המשווה. ואז משווה משווה בין שני המתחים ויוצר אות דיגיטלי בפלט. כאן במעגל זה השתמשנו בשני משווים לשני חיישנים. LM358 משמש כמשווה. ל- LM358 שני מגברים אופטיים עם רעש נמוך.
מדור בקרה: MSP430 Launchpad משמש לבקרה על כל התהליך של הרובוט העוקב אחר הקו. יציאות המשווים מחוברות לסיכה דיגיטלית P1_3 ו- P1_4 של MPS430 Launchpad. MSP430 Launchpad קורא את האותות האלה ושולח פקודות למעגל הנהג לעוקב קו הכונן.
קטע נהג: קטע הנהג כולל נהג מנועי ושני מנועי DC. נהג מנוע משמש להנעת מנועים מכיוון ש- MSP430 Launchpad אינו מספק מספיק מתח וזרם למנוע. אז הוספנו מעגל נהג מנוע כדי לקבל מספיק מתח וזרם עבור המנוע. כאן השתמשנו במנהל ההתקן L298d לנהיגת מנועי DC. MSP430 Launchpad שולח פקודות לנהג המנוע הזה ואז הוא מניע מנועים.
פיתחנו רובוטים של קו עוקבים באמצעות מיקרו-בקר שונה:
- רובוט עוקב קו באמצעות מיקרו-בקר 8051
- רובוט עוקב קו באמצעות ארדואינו
- רובוט עוקב קו באמצעות פטל פטל
- רובוט עוקב קו באמצעות מיקרו-בקר PIC
עבודה של רובוט עוקב קו באמצעות MSP430
עבודה של חסיד קווים מעניינת מאוד. רובוט העוקב אחר קו חשה בקו שחור באמצעות חיישן ואז שולח את האות ל- MSP430 Launchpad. ואז MSP430 Launchpad מניע את המנוע בהתאם לפלט החיישנים.
כאן בפרויקט זה אנו משתמשים בשני מודולי חיישני IR כלומר חיישן שמאלי וחיישן ימני. כאשר חיישן שמאל וגם ימין מרגיש לבן אז הרובוט מתקדם.
אם החיישן השמאלי מגיע על קו שחור אז הרובוט פונה לצד שמאל.
אם החיישן הימני חש קו שחור אז הרובוט יפנה לצד ימין עד ששני החיישן יגיעו למשטח לבן. כשמשטח לבן מגיע הרובוט מתחיל להתקדם שוב.
אם שני החיישנים מגיעים על קו שחור, הרובוט עוצר.
תרשים מעגל
המעגל לרובוט העוקב אחר MSP430 זה פשוט מאוד. תפוקת המשווים מחוברת ישירות למספר הסיכה הדיגיטלי של ה- MSP430 Launchpad p1_3 ו- P1_4. וסיכת הקלט של הנהג המנוע IN1, IN2, IN3 ו- IN4 מחוברים בסיכה הדיגיטלית P1_5, P2_0, P2_1, P2_2 של MSP430 Launchpad בהתאמה. מנוע אחד מחובר בסיכת הפלט של מנהל ההתקן OUT1 ו- OUT2, ומנוע אחר מחובר ב- OUT3 ו- OUT4. כאן השתמשנו באספקת 3.3v להפעלת כל המעגל למעט מודול נהג המנוע. סיפקנו 8V למודול נהג המנוע. המשתמש יכול להשתמש ב- 5v-12v.
אתה יכול גם לבנות מודול IR משלך, כמו שבניתי ב- Perf Board. להלן המעגל למודול IR:
הסבר על תכנות
תוכנית ווידאו מלאה ניתן למצוא בסוף מאמר זה.
בתוכנית, קודם כל, אנו מגדירים את סיכת הכניסה והפלט עבור חיישן ומנועים. לאחר מכן הגדירו כמה פקודות מאקרו לכיוון של עוקב הקו ואז כתבו הנחיה לבחירת פלט חיישן
הערה: החיישן עשוי להיות פעיל נמוך או פעיל גבוה אז בדוק תחילה מהי תפוקת החיישן ואז בחר הנחיה על ידי הערה או ביטול תגובה של ActiveLowMode . עבור HIGH פעיל, הגבלמאקרו activeLowMode .
# הגדר l_sensor P1_3 # הגדר r_sensor P1_4 int סיכות = {P1_5, P2_0, P2_1, P2_2}; # הגדר קדימה 0x05 # הגדר שמאל 0x06 # הגדר ימינה 0x09 # הגדר עצור 0x00 // # הגדר activeLowMode #ifdef activeLowMode int res = {קדימה, שמאלה, ימינה, עצור}; #else int res = {עצור, ימינה, שמאלה, קדימה}; # endif
לאחר מכן, בפונקציית ההתקנה , אנו נותנים כיוון לחיישן ולסיכת המנוע. ואז בפונקציית הלולאה , אנו בודקים כניסות ושולחים פלט למודול נהג המנוע להפעלת המנועים.
הגדרת חלל () { עבור (int i = 0; i <4; i ++) pinMode (סיכות, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } loop loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); עבור (int i = 0; i <4; i ++) digitalWrite (סיכות, (res >> i) & 0x01); }
ישנם ארבעה תנאים בעוקב השורה שאנו קוראים באמצעות MSP430 Launchpad. השתמשנו בשני חיישנים כלומר החיישן השמאלי והחיישן הימני.
תנאים: תפוקה אקטיבית של HIGH
קֶלֶט |
תְפוּקָה |
תְנוּעָה של רובוט |
||||
חיישן שמאלי |
חיישן ימני |
מנוע שמאלי |
מנוע נכון |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
תפסיק |
0 |
1 |
1 |
0 |
0 |
0 |
פנה ימינה |
1 |
0 |
0 |
0 |
1 |
0 |
פונה שמאלה |
1 |
1 |
1 |
0 |
1 |
0 |
קָדִימָה |
התוכנית נכתבת על פי תנאי הטבלה לעיל. עיין בסרטון הקוד וההפגנה המלא להלן.