Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד"— Μεταγράφημα παρουσίασης:

1 בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד
פרויקט גמר המעבדה לבקרה ורובוטיקה בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד מגישים: אבי שלום ושי סולימני מנחים: קובי כוחיי וסרגיי גננדר

2 הכנסת זווית ומרחק בעזרת ה- Pocket PC קביעת PWM מתאים לכל מנוע
אופן פעולת המערכת הכנסת זווית ומרחק בעזרת ה- Pocket PC קריאת מידע מה - Encoderים לבקר שליחת המידע לבקר קביעת PWM מתאים לכל מנוע הנעת המנועים

3 מבנה החומרה קומה 0 – מנועים,Encoderים וצמדים אופטיים. קומה 3 –
סוללות ו- PocketPC קומה 1 – שליטה על המנועים – Driverים ומייצבי מתח קומה 2 – בקר

4 שלבי הפרויקט 1. בניית חומרת הרובוט - גוף, מנועים , Driverים ,חיישנים.
2. לימוד תכונות הבקר Pic18f4431 . 3. הבנת התנועה הוקטורית הפיסיקלית. 4. מימוש התנועה הוקטורית בעזרת תכנות הבקר. 5. כתיבת ספרית תקשורת טורית (DLL) למחשב כף יד. 6. שליטה על תנועת הרובוט באמצעות מחשב כף יד. 7. קבלת מספר פקודות ע"י הרובוט לביצוע משימה.

5 שלב התכנון בחירת Driver בחירת המנועים בחירת ה- Encoderים בחירת גלגלים
המטרה הייתה לבחור רכיב שיספק מספיק זרם להנעת מנועי ה- DC. בחירת המנועים בשלב הראשון נתבקשנו להניע את הרובוט בעזרת מנועי לגו, דבר שהתגלה כבעיה. בחירת מנועי DC רובסטיים יותר. בחירת ה- Encoderים בשלב הראשון השתמשנו בשקפים פשוטים – תוצאות לא מדויקות בשלב הבא ייצרנו Encoderים קשיחים – תוצאות מהימנות. בחירת גלגלים בגלל אופן התנועה הייחודי של הרובוט נדרשנו לבחור בגלגלי OMNI. הגלגלים הנבחרים הוחלפו בגלגלים בעלי ציפוי גומי למניעת החלקה.

6 גלגלי ה- OMNI גלגלי ה OMNI הם גלגלים מיוחדים מכיוון שהם מסוגלים לנוע בחופשיות בשני כיוונים: כמו כל גלגל רגיל בהתאם לסיבוב המנוע, או בניצב לכיוון המנוע בעזרת הגלגלים הקטנים שנמצאים בהיקף. לרובוט בעל גלגלים רגילים יש רק 2 מתוך 3 דרגות חופש שניתן לשלוט עליהן: קדימה / אחורה וסיבוב (רוטציה). אי היכולת לנוע לצדדים גורמת לרובוט להיות איטי יותר, ופחות יעיל בתנועה לעבר המטרה. לעומת זאת, בעזרת גלגלי ה OMNI, הרובוט מסוגל לנוע בכיוון שרירותי באופן רציף מבלי לשנות את כיוון הגלגלים.

7 שלב התכנון - המשך בחירת הבקר
נבחר בקר MICROCHIP 18F4431 בגלל היתרונות הבאים: מספר רב של יציאות PWM ייעודיות להפעלת מנועים. היחיד עם יותר משתי יציאות. כניסות ייעודיות לבקרה על מנועים וגלאים אנלוגיים. יכולת חישוב גבוהה בסדר גודל מסדרה קודמת וזיכרון רב יותר המאפשרים כתיבת אלגוריתמים ברמה גבוהה יותר.

8 חישוב המהירות חישוב המהירות של המנוע התבצע ע"י ספירת מספר פסי ה - Encoder העוברים בצמד האופטי בפרק זמן קבוע. יצירת פרק הזמן הקבוע מתבצעת בעזרת אחד מהטיימרים של הבקר.

9 עקרון התנועה – המודל הפיסיקלי
לאחר קריאת מאמרים העוסקים בתנועת רובוט בעל שלושה גלגלי OMNI קבועים, בנינו מערכת משוואות לכל מנוע. בעזרת מערכת המשוואות הנ"ל אנו גורמים לרובוט לנוע בכיוון הרצוי ללא סיבובו. צורת התנועה היא צורה וקטורית כמתואר בשקף הבא:

10 המודל הפיסיקלי – חישוב הזווית
הרובוט בנוי כך ששלושת גלגליו מקובעים בזוית של °120 בין גלגל לגלגל , ויוצרים זוויות של °30 °150 , °270 יחסית לציר ה- 0. - + B A α C

11 חישוב הזווית -המשך תוצאת המשוואות הנ"ל נותנת מספר בין 0 ל- 1.
מספר זה מייצג את אחוז המהירות ממהירותו המקסימאלית של כל מנוע. ע"פ תוצאת החישוב נותנים PWM מתאים למהירות היחסית של כל מנוע. לאחר מכן דואגים לשמירת מהירות זו קבועה בעזרת שיטת בקרה שתוסבר בהמשך.

12 המודל הפיסיקלי – חישוב המרחק
חישוב המרחק התבצע ע"י חיבור וקטורי של רכיבי x,y של הגלגלים השונים. דגימת המרחק שעבר כל גלגל מתבצעת בכל מחזור זמן. נוסחת החישוב : - + B A α C

13 כיולים ומדידות בתחילת העבודה עבדנו עם מנועי LEGO. בגלל אופי מנועי ה- DC, אין שני מנועים זהים. משום כך נאלצנו לבצע כיולים לכל מנוע בנפרד. יתרה מזאת, בכל כיוון סיבוב של המנוע (קדימה או אחורה) הקריאות היו שונות. שלב 1: ביצענו כיולים לכל מנוע ללא עומס כאשר הרובוט הוחזק באוויר - הבעיה שנוצרה היא כתוצאה מהתעלמות מהחיכוך והמשקל של הרובוט כאשר הוא על הרצפה. שלב 2: הכיול התבצע על הרצפה כאשר הרובוט הסתובב סביב עצמו בעזרת שלושת המנועים – הבעיה שנוצרה היא שהמדידות שהתקבלו לא היו מדויקות היות ושני המנועים האחרים עזרו למנוע הנמדד.

14 כיולים ומדידות - המשך שלב 3: הסענו את הרובוט בקווים ישרים כאשר בכל תנועה רק שני מנועים עבדו אך לא עזרו אחד לשני – בשלב זה הבנו שהמנוע מתנהג בקירוב בצורה לינארית רק עבור ערכי PWM נמוכים, אולם בערכים אלו המנועים לא הצליחו להזיז את הרובוט. שלב 4: לאחר החלפת המנועים למנועים רובסטיים יותר, קיבלנו בכיולים תוצאות טובות יותר שניתן היה לעבוד איתן.

15 כיולים ומדידות - המשך Motor 3 Motor 2 Motor 1 PWM Backwards - 0
Forward - 1 85 83 89 87 4 84 82 86 3.8 80 81 3.6 78 3.4 77 79 76 3.2 74 3 73 71 75 2.8 70 67 72 2.6 66 64 69 63 2.4 61 58 2.2 55 52 56 51 2 47 44 46 43 1.8 39 34 41 35 1.6 23 33 29 28 26 1.4 14 18 13 12 1.2

16 אלגוריתם הפעולה הסבר על ה- flow 1. קבלת רצף פקודות מה- PocketPC.
2. ביצוע פענוח של הפקודות (Parsing) והעברת הפרמטרים (זווית ומרחק) לפונקציות המתאימות. 3. מציאת המהירות הרצויה לאחר הכנסת הזווית למשוואות מציאת המהירות ע"פ הזוית. 4. מציאת המהירות המתאימה מתוך מערך הכיולים לאותו מנוע. 5. קביעת PWM מתאים לכל מנוע. 6. שמירה על מהירות המנוע בעזרת מנגנון הבקרה. 7. דגימת המרחק עד להגעה למרחק הרצוי.

17 פרוטוקול התקשורת XXX,YYY,$,XXX,YYY,$.....@
שליחת הודעות מה- PocketPC לעבר הבקר בצורה הבאה: מרחק (סנטימטרים) זווית (מעלות) סימן שרשור סימן סיום ושליחה

18 תרשים זרימה פסיקות התחלה תוכנית ראשית קבלת פסיקה TMR5
קבלת פסיקה מאחד המנועים קידום מונה ticks של הגלגל איפוס דגל הפסיקה עדכון מבנה הנותנים של הגלגל קבלת פקודה חישוב זווית ומרחק פענוח פקודה חישוב כיוון סיבוב גלגל ע"פ זווית מציאת PWM מתוך טבלה שליחת PWM למנוע הפעלת TMR5 התחלה האם הוכרז סיום? תוכנית ראשית לא כן תרשים זרימה קבלת פסיקה TMR5 קידום מונה פסיקות TMR5 חישוב שגיאת כל מנוע עבר פרק זמן רצוי? האם השגיאה 0? חישוב מרחק שינוי PWM למנוע האם המרחק הרצוי? עצירת מנועים ודיווח סיום לא כן

19 אופן הבקרה הבקר שבו השתמשנו הינו בקר הגבר מהצורה הבאה: מנוע בקר
מס' פסים רצוי מס' פסים מצוי זווית רצויה שגיאה מנוע PWM יחידת חישוב בקר אנקודר + - (תוכנה) (תוכנה)

20 פונקצית הספריה (DLL) לתקשורת טורית
ע"מ ליצור את התקשורת בין ה- PocketPC לבקר נדרש לכתוב פונקציית ספריה שתדע לפתוח פורט טורי ב- PocketPC ותשלח את ההודעה לבקר בפרוטוקול התקשורת הנכון. הספריה נכתבה בשפת C# בעזרת visual studio 2003 בגלל מערכת ההפעלה הישנה על ה- PocketPC. בגלל מודולריות הספריה ניתן להשתמש בה בכל פרויקט שמשתמש ב- PocketPC לתקשורת טורית. בכדי שממשק המשתמש יהיה יותר נוח יצרנו אפליקציה שבה ניתן להזין נתונים ביתר קלות.

21 סרטון

22 שיפורים נדרשים לרובוט אין דרך לדעת על מיקומו בעולם או על טעות שעשה במהלך תנועתו. הסטייה הקטנה ביותר תגרום לו לא להגיע למרחק ולזווית הרצויים. נדרש להוסיף חיישנים נוספים ע"מ לתקן את הטעויות ולהפוך אותו למדויק יותר.

23 בעיות שעלו בעיה פתרון לא ניתן היה לדעת מה מתרחש בתוך הבקר
נכתבה פונקצית תקשורת סריאלית ל- debug. נמצא סימולאטור שמדמה את הבקר בתוכנה מנועי הלגו לא היו מספיק חזקים ומדויקים ע"מ לבצע איתם את מיפוי המהירויות הוחלפו המנועים למנועים רובסטיים יותר. בעיות של קצרים במעגלים גרמו לעבודת debug מיותרת. מעבר למעגלים מודפסים גלגלי ה- OMNI הראשונים החליקו וגרמו לקריאות לא מהימנות מעברים לגלגלי OMNI עם ציפוי גומי כאשר הבקר עבד עם bootloader הפסיקות לא הגיעו בקצב מהיר מספיק הורדת ה- bootloader וטעינת התוכנה דרך demoboard.

24 תודות לקובי כוחי מהנדס המעבדה: לאורלי ויגדרזון לסרגיי גננדר לבית מלאכה
עזרה בבחירת הפרויקט בתכנון הרובוט התמודדות בשטח עם בעיות חומרה. הכוונה בבחירת הרכיבים לאורלי ויגדרזון סבלה אותנו וסבלה מאיתנו עזרה בחומרה ותגובות בזמן אפס לבקשות שלנו לסרגיי גננדר תמיכה בחלק התיכנותי של הפרוייקט לבית מלאכה על שרות מסור ומהיר בפתרונות יצירתיים בחומרה


Κατέβασμα ppt "בניית רובוט במבנה משולש הנשלט ע"י מחשב כף יד"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google