תוכן עניינים:
- שלב 1: חומרים
- שלב 2: חיבור
- שלב 3: יצירת הגיון של קוד MATLAB לשימוש חיישנים
- שלב 4: בדיקת הקוד והרובוט
- שלב 5: זיהוי שגיאה
- שלב 6: מסקנה
וִידֵאוֹ: Roomba Parking Pal: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
פרויקט זה משתמש ב- Roomba לתכנות iRobot Create, ב- MATLAB r2018a ובנייד MATLAB. בשימוש בשלושת המדיומים הללו ובידע שלנו על קידוד, תיכנתנו את iRobot Create לפרש צבעים ולהשתמש בחיישנים המשולבים להשלמת משימות. פרויקטים אלה תלויים בתקשורת Raspberry Pi ו- MATLAB לביצוע משימות אלה.
שלב 1: חומרים
1. iRobot צור רובוט
2. MATLAB r2018a
3. פטל פטל
4. מודול מצלמה
5. מעמד מייצב מצלמה מודפס תלת-ממדי
6. סמארטפון עם מותקן MATLAB
7. מחשב נייד/מחשב עם מותקן MATLAB
שלב 2: חיבור
שלב זה עוסק בחיבור ה- Raspberry Pi לרובוט, שנית חיבור הרובוט למחשב שלכם וחיבור הסמארטפון למחשב.
החלק הקל ביותר בתהליך זה הוא חיבור ה- Raspberry Pi לרובוט שלך, מכיוון שה- Raspberry Pi מותקן בחלקו העליון של הרובוט. יש כבל מהרובוט שכל מה שאתה צריך לעשות הוא לחבר את הצד של ה- Raspberry Pi.
השלב הבא הוא חיבור הרובוט למחשב שלך כך שתוכל להריץ פקודות לביצוע הרובוט. הדבר הראשון שעליך לעשות הוא לחבר את המחשב שלך לרשת האלחוטית שהרומבה שלך יוצר. כעת, מומלץ להשתמש בסמל הגדר נתיב ב- MATLAB כדי להגדיר את הנתיב כך שתוכל להשתמש בפונקציות בארגז הכלים של Roomba מ- MATLAB. בכל פעם שאתה מתחיל ומסיים את השימוש ברובוט, עליך לבצע איפוס קשה של "שני אצבעות", מה שאומר שאתה מחזיק את כפתורי העגינה ומזהה במשך עשר שניות עד שהאור מתעמעם ומצביע על שחרור. הצלחת עם האיפוס הקשה הזה אם אתה שומע את הרובוט משחק בקנה מידה קצר. בשלב הבא עליך להתחבר לרומבה באמצעות שורת קוד כמו "r = roomba (x)", כאשר 'x' הוא המספר המיועד לרובוט שיש לך.
לבסוף, עליך להוריד את MATLAB לנייד בכל מכשיר נייד שבו תשתמש בפרויקט זה, ויישום זה זמין הן במכשירי Android והן ב- Apple. לאחר התקנת היישום, יהיה עליך להיכנס באמצעות אישוריך. לאחר מכן עליך לחבר התקן זה למחשב שלך, באמצעות הכרטיסייה שכותרתה "עוד" -> לאחר מכן לחץ על "הגדרות" -> ולאחר מכן לחץ על "הוסף מחשב" זה אמור להציג את המסך המוצג בתמונות למעלה. לאחר שתראה זאת השלב הבא שעליך לעבור הוא פשוט לחבר ולחטוף את המידע שהוא מבקש. לאחר שתתחבר בהצלחה, תוכל להתקשר לפונקציות שאתה מגדיר במחשב שלך בטלפון כדי לשלוט ברובוט שלך.
שלב 3: יצירת הגיון של קוד MATLAB לשימוש חיישנים
יהיה קל יותר ליצור את הקוד כאשר רובו נמצא בתוך לולאת while, כך שהרומבה תוכל לעדכן כל הזמן ערכים תקפים שהוא מסתכל עליהם. אם יש שגיאה, MATLAB תציג שגיאה והיכן שהיא מופיעה בקוד, מה שהופך את פתרון הבעיות לפשוט יחסית.
קוד זה תוכנן ב- M2020a MATLAB ומשתמש בארגזי הכלים הסטנדרטיים, ארגז הכלים iRobot Create, וכן ארגז הכלים הנייד של MATLAB. הרומבה המשמשת בדוגמה זו מסומנת כ- 26, וצריך להפעיל את r = roomba (26) רק פעם אחת כדי לתקשר באופן מלא עם הרומבה.
קוד:
פונקציה חנאית (x) אם x == 1
r = roomba (26) % מתחבר ל- roomba
בעוד שזה נכון
r.setDriveVelocity (.05,.05) % מגדיר את roomba למהירות נסיעה איטית יותר
bump = r.getBumpers % מקבל את הנתונים מחיישני הבליטות
cliff = r.getCliffSensors % מקבל את הנתונים מחיישני המצוק
light = r.getLightBumpers % מקבל את הנתונים מחיישני בליטות האור
img = r.getImage;% קורא את המצלמה מהרובוט
red_mean = ממוצע (ממוצע (img (:,:, 1))) % קורא את הכמות הממוצעת של הפיקסלים האדומים
green_mean = ממוצע (ממוצע (img (:,:, 2))) % קורא את הכמות הממוצעת של פיקסלים ירוקים
blue_mean = ממוצע (ממוצע (img (:,:, 3))) % קורא את הכמות הממוצעת של הפיקסלים הכחולים
אם bump.front == 1 %קורא חיישני בליטה קדמית
r.stop %מפסיק את roomba
msgbox ('נתיב סתום!', 'הודעת עוזר חניה') % מציג הודעה שאומרת שהנתיב סתום שבירה % מסיימת את הלולאה
elseif green_mean> 150
r.stop %מפסיק את roomba
cont = questdlg ('המשך?', 'נתיב הושלם') %מציג תיבת שאלות המבקשת להמשיך
אם המשך == 'כן'
parkassist (1) %מפעיל מחדש את הקוד
אַחֵר
סוֹף
break % מסיים את הלולאה
elseif red_mean> 140
r.turnAngle (45) %הופך את החדר 45 מעלות
r.timeStart %מתחיל מונה זמן
בעוד שזה נכון
r.setDriveVelocity (.05,.05) %מגדיר את מהירות החדר
time = r.timeGet %מקצה את הזמן למשתנה
bump = r.getBumpers % מקבל את הנתונים מחיישני הבליטות
cliff = r.getCliffSensors % מקבל את הנתונים מחיישני המצוק
light = r.getLightBumpers % מקבל את הנתונים מחיישני בליטות האור
img = r.getImage;% קורא את המצלמה מהרובוט
red_mean = ממוצע (ממוצע (img (:,:, 1))) % קורא את הכמות הממוצעת של הפיקסלים האדומים
green_mean = ממוצע (ממוצע (img (:,:, 2))) % קורא את הכמות הממוצעת של פיקסלים ירוקים
blue_mean = ממוצע (ממוצע (img (:,:, 3))) % קורא את הכמות הממוצעת של הפיקסלים הכחולים
אם blue_mean> 120
r.moveDistance (-0.01) % מזיז את החדר לאחור שיר מרחק מוגדר Play (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % מנגן סולם מוזיקלי עולה
msgbox ('נמצאו מים!', 'הודעת עוזר חניה') % מציג הודעה המציינת כי נמצאו מים r.turnAngle (-80) % מסתובב roomba 80 מעלות
break % מסתיים הלולאה הנוכחית
elseif light.rightFront> 25 || light.leftFront> 25 %קורא חיישני בליטות אור
r.moveDistance (-0.01) % מזיז את החדר לאחור מרחק מוגדר
r.turnAngle (-35) % מסובב את החדר 35 מעלות
break %מסתיים הלולאה הנוכחית
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %קורא את שני חיישני המצוק
r.moveDistance (-0.1) % מזיז את roomba לאחור מרחק מוגדר
r.turnAngle (-80) %מסתובב roomba 80 מעלות
break % מסתיים הלולאה הנוכחית
אחר זמן> = 3
r.stop %מפסיק את roomba
contin = questdlg ('התחנה חינם, המשך?', 'הודעת עוזר החניה') %שואלת אם החדר צריך להמשיך אם contin == 'כן'
r.turnAngle (-90) % מסובב את החדר 90 מעלות
parkassist (1) %מפעיל מחדש את הפונקציה
אַחֵר
r.stop % עוצר את החדר
סוֹף
אַחֵר
סוֹף
סוֹף
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %קורא את שני חיישני המצוק
r.moveDistance (-0.1) %מזיז את roomba לאחור מרחק מוגדר
r.turnAngle (-90) %מסתובב roomba 90 מעלות
elseif cliff.rightFront <2500 %קורא את חיישן המצוק הנכון
r.turnAngle (-5) %מסובב מעט את הרומבה בכיוון ההפוך של חיישן המצוק
elseif cliff.leftFront <2500 %קורא את חיישן המצוק השמאלי
r.turnAngle (5) %מסובב מעט את הרומבה בכיוון ההפוך של חיישן המצוק
אַחֵר
סוֹף
סוֹף
סוֹף
שלב 4: בדיקת הקוד והרובוט
לאחר פיתוח הקוד, השלב הבא היה בדיקת הקוד והרובוט. מכיוון שיש הרבה התאמות שונות שניתן לבצע בקוד, כגון הזווית שהרובוט מסובב, המהירות שהוא נע והספים לכל צבע, הדרך הטובה ביותר להבין את הערכים האלה עבור הרובוט שלך היא לבדוק אותם ותשתנה תוך כדי. עבור כל יום עבודה שהיה לנו, כל הזמן שינינו את הערכים האלה מכיוון שחלקם מסתמכים על הסביבה שבה הרובוט שלך פועל. הדרך הטובה ביותר שמצאנו הייתה למקם את החדר על הנתיב שאתה רוצה שהוא ימשיך, ותהיה לו מחסום גבוה מספיק כדי שהמצלמה לא תוכל לזהות צבעים שאתה לא רוצה שהיא תעשה. השלב הבא הוא תן לו לרוץ והראה לו את הצבעים שאתה רוצה, כאשר אתה רוצה שהוא ישלים את המשימה הזו. תוך כדי תנועה, אם אתה רואה בעיה הדבר הטוב ביותר לעשות הוא לדחוף את הפגוש הקדמי פנימה, לגרום לו לעצור, ולאחר מכן שנה את הפרמטר שהתקשת איתו.
שלב 5: זיהוי שגיאה
עם סיום כל פרויקט, תמיד יש מקורות טעויות. מבחינתנו, חווינו טעות בעובדה הפשוטה שהרובוט אינו מדויק בזווית שבה הוא מסתובב, כך שאם אתה אומר לו להסתובב 45 מעלות זה לא יהיה מדויק. מקור שגיאה נוסף עבורנו היה שלפעמים הרובוט מתקלקל, וקשה לך לאפס אותו לפני שהוא עובד שוב. מקור השגיאה האחרון העיקרי עבורנו היה שלאותו קוד לא תהיה אותה השפעה על רובוטים שונים, ולכן ייתכן שיהיה עליך להתאזר בסבלנות ולהתאים אותו בהתאם.
שלב 6: מסקנה
עכשיו יש לך את כל הכלים לשחק עם החדר שלך, מה שאומר שאתה יכול לתמרן את הקוד בכל מקרה שאתה רוצה להשיג את המטרות שאתה רוצה. זה אמור להיות החלק הטוב ביותר של היום שלך, אז תהנה וסע בבטחה!
מוּמלָץ:
Roomba Bot the Bulider: 5 שלבים (עם תמונות)
Roomba Bot the Bulider: Bot the Builder הוא רומבה, שעם " תופס " המחובר לחזית יוכל להזיז אובייקטים מסביב. הקוד איתו מוגדר להקליט את התנועה הראשונה בעזרת תיבת GUI שתוכל לשלוט בה בלחיצת העכבר בלבד. אחרי
Roomba מבוקרת MATLAB: 5 שלבים
Roomba מבוקרת MATLAB: מטרתו של פרויקט זה היא להשתמש ב- MATLAB וכן ברובוט שניתן לתכנת iRobot. הקבוצה שלנו שילבה את כישורי הקידוד שלנו כדי ליצור סקריפט MATLAB שמשתמש בפונקציות רבות של iRobot, כולל חיישני המצוק, חיישני הפגוש
MIDI Pod-Pal: 4 שלבים
MIDI Pod-Pal: *** UPDATE 4/22/'21 ****** הוספתי סכמטי מלא המציג את כל החיווט לסיוע בבנייה. *** לא אכנס לכמות מגוחכת של עומק כאן על חלק הבנייה, הכוונה שלי הייתה להציג דוגמה נוספת לבניית MI מבוסס Arduino
רובוט Roomba נשלט בדפדפן עם פטל דגם 3 A+: 6 שלבים (עם תמונות)
רובוט Roomba נשלט בדפדפן עם פטל דגם 3 A+: סקירה הוראה זו תתמקד כיצד ניתן לתת לרומבה מתה מוח חדש (Raspberry Pi), עיניים (מצלמת רשת) ודרך לשלוט בהכל מדפדפן אינטרנט. יש הרבה פריצות Roomba המאפשרות שליטה באמצעות הממשק הטורי. אני לא
פרויקט Roomba MATLAB: 5 שלבים
פרויקט Roomba MATLAB: התוכנית הנוכחית שיש לנאס"א עבור רובר המאדים היא שהיא תהיה אספן נתונים ותסתובב סביב מאדים, ותאסוף דגימות של האדמה שתחזיר לכדור הארץ, כך שמדענים יוכלו לראות אם היו צורות חיים קודמות כוכב הלכת. נוֹסָף