תוכן עניינים:
- אספקה
- שלב 1: בנייה
- שלב 2: חיווט
- שלב 3: תורת השליטה
- שלב 4: שימוש ב- MPU 6050
- שלב 5: קידוד
- שלב 6: הליך כוונון PID
- שלב 7: סיכום
וִידֵאוֹ: רובוט לאיזון עצמי דו גלגלי: 7 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
מדריך זה יעבור את תהליך התכנון והבנייה של רובוט איזון עצמי. הערה, אני רק רוצה לומר שרובוטים באיזון עצמי אינם מושג חדש והם נבנו ותועדו על ידי אחרים. אני רוצה לנצל הזדמנות זו כדי לשתף אתכם בפרשנות שלי לרובוט הזה.
מהו רובוט איזון עצמי?
רובוט איזון עצמי הוא מערכת המשתמשת בנתוני מדידה אינרציאליים, שנאספו מחיישן המשולב, כדי להתאים את מיקומו באופן רציף כדי להישאר זקוף.
איך זה עובד?
אנלוגיה פשוטה שיש לקחת בחשבון היא מטוטלת הפוכה. כאשר מרכז המסה נמצא מעל נקודת הציר. עם זאת, במקרה שלנו, אנו מגבילים את המטוטלת לדרגת חופש אחת על ידי ציר סיבוב אחד, במקרה שלנו ציר הסיבוב של שני הגלגלים. מכיוון שכל הפרעה תגרום לנפילת הרובוט, אנו זקוקים לשיטה לשמירה על איזון פעיל של הרובוט. כאן נכנס לאלגוריתם הלולאה הסגורה (בקר PID) שלנו, הידיעה לאיזה כיוון הרובוט שלנו נופל, נוכל להתאים את כיוון הסיבוב של המנועים שלנו כדי לשמור על איזון המערכת.
כיצד פועל אלגוריתם הלולאה הסגורה?
העיקרון הבסיסי בשמירה על איזון הרובוט הוא, אם הרובוט נופל קדימה הוא יפצה על ידי הזזת תחתית הרובוט קדימה כדי לתפוס את עצמו ולכן ישמור אנכי. באופן דומה, אם הרובוט נופל לאחור הוא יפצה על ידי הזזת תחתית הרובוט לאחור כדי לתפוס את עצמו.
לכן, עלינו לעשות שני דברים כאן, ראשית, עלינו לחשב את זווית הנטייה (גליל) שהרובוט חווה וכתוצאה מכך, עלינו לשלוט בכיוון הסיבוב של המנועים.
כיצד נמדוד את זווית הנטייה?
כדי למדוד את זווית הנטייה נשתמש ביחידת מדידת אינרציה. מודולים אלה משלבים מד תאוצה וג'ירוסקופ.
- מד התאוצה הוא מכשיר אלקטרומגנטי המודד את התאוצה הנכונה, זוהי האצת הגוף במסגרת מנוחה מיידית.
- ג'ירוסקופ הוא מכשיר אלקטרומכני שמודד את מהירות הזווית ומשמש לקביעת כיוון המכשיר.
עם זאת, הבעיה בשימוש בחיישנים כאלה היא ש:
- מד התאוצה רועש מאוד אך עקבי לאורך זמן, הזווית משתנה עם תנועות אופקיות פתאומיות
- ערך הג'ירוסקופ, לעומת זאת, ייסחף עם הזמן, אך בתחילה הוא מדויק למדי
לצורך ההנחיה הזו, אני לא מתכוון ליישם פילטר במקום שימוש בעיבוד התנועה הדיגיטלית המשולבת (DMP). אחרים השתמשו במסנן משלים כדי לקבל אות חלק, אתה יכול לבחור את השיטה שאתה אוהב. כשהרובוט מתאזן עם כל יישום.
אספקה
חלקים:
- Arduino Pro Mini 3.3V 8 עם 8 Mhz ATMEGA328
- FT232RL 3.3V 5.5V FTDI USB למודול מתאם סידורי TTL
- מודול GY-521 עם MPU-6050
- זוג מנוע N20 מיקרו הילוך 6V - 300 סל"ד
- נהג מנוע L298N
- ממיר DC ל- DC LM2596S
- סוללה (סוללת ליתיום נטענת 9.7V)
- רצועת סוללה
- שני מעגלי PCB עם אב טיפוס
- חוטי מגשר זכר ונקבה
כלים:
- מלחם והלחמה
- מרחק ניילון מרווח משושה
- סט מברג מדויק
- מדפסת תלת מימד
שלב 1: בנייה
מכיוון שהייתה לי גישה למדפסת תלת מימד החלטתי להדפיס את המארז בתלת מימד ולהשתמש בסטנדים כדי לחבר הכל ביחד.
הרובוט מורכב מ -4 שכבות
- השכבה התחתונה מחברת את המנועים ויש לה נקודות הרכבה עבור מודול נהג המנוע L298N
- השכבה הבאה מכילה את לוח האב טיפוס עם ה- Arduino pro mini וכותרות מולחמות אליו
- השכבה השלישית מתקינה את ה- IMU
- השכבה העליונה, אותה אני מכנה "שכבת הפגוש", חורכת את הסוללה, ממיר הכסף ומתג כספי
עקרון העיצוב העיקרי שלי היה לשמור על הכל מודולרי. הסיבה לכך הייתה אם משהו השתבש באחד המרכיבים יכולתי להחליף אותו בקלות או אם הייתי צריך רכיב לפרויקט אחר אני יכול בקלות לקחת אותו מבלי לדאוג שלא אוכל להשתמש במערכת שוב.
שלב 2: חיווט
הלחמתי כמה כדורי כותרת נקבה ללוח פרפר כדי להתאים את סיכות הכותרת מיני Arduino pro mini. בעקבות זאת, הלחמתי כותרת גברית סיכה את הלוח כדי לאפשר גישה לקלט/פלט. שאר הרכיבים הורכבו על המסגרת המודפסת בתלת -ממד וחוברו באמצעות חוטי מגשר.
שלב 3: תורת השליטה
כעת נעבור לגרעין הפרויקט. על מנת לשמור על איזון הרובוט, עלינו לייצר אות בקרה מתאים להנעת המנועים בכיוון הנכון ובמהירות הנכונה כדי לשמור על הרובוט מאוזן ויציב. לשם כך נשתמש באלגוריתם פופולרי של לולאת הבקרה המכונה בקר PID. כפי שמראה ראשי התיבות יש שלושה מונחים לבקר זה, אלה המונחים הפרופורציונליים, האינטגרליים והנגזרים. כל אחד מהם מלווה במקדמים הקובעים את השפעתם על המערכת. לרוב החלק הגוזל ביותר זמן ביישום הבקר הוא כוונון הרווחים לכל מערכת ייחודית כדי לקבל את המענה האופטימלי ביותר.
- המונח הפרופורציונלי מכפיל ישירות את השגיאה כדי לתת פלט, כך שככל שהשגיאה גדולה יותר כך התגובה גדולה יותר
- המונח האינטגרלי יוצר תגובה המבוססת על הצטברות של השגיאה כדי לצמצם את הטעות במצב יציב. ככל שהמערכת לא מאוזנת יותר מהר המנועים יגיבו
- המונח הנגזר הוא הנגזרת של השגיאה המשמשת לחיזוי התגובה העתידית ובכך היא מפחיתה את התנודה עקב מעבר יתר של המצב היציב.
העיקרון הבסיסי של אלגוריתם זה הוא לחשב באופן רציף את זווית הנטייה שהיא ההבדל בין המיקום הרצוי למיקום הנוכחי, זה ידוע בשם השגיאה. לאחר מכן הוא משתמש בערכי שגיאה אלה ומחשב את סכום התגובות הפרופורציונאליות, האינטגרליות והנגזרות כדי לקבל פלט, שהם אותות הבקרה הנשלחים אל המנועים. כתוצאה מכך, אם השגיאה גדולה אות הבקרה הנשלח למנועים יסובב את המנועים במהירות גבוהה כדי להגיע למצב מאוזן. באופן דומה, אם השגיאה קטנה אות הבקרה יסובב את המנועים במהירות נמוכה כדי לשמור על איזון הרובוט.
שלב 4: שימוש ב- MPU 6050
ספריית MPU6050
github.com/jrowberg/i2cdevlib/tree/master/…
כיול קיזוז לא כל החיישנים הם העתקים מדויקים זה מזה. כתוצאה מכך, אם תבדוק שני MPU 6050 אתה עשוי לקבל ערכים שונים עבור מד התאוצה והג'ירוסקופ כאשר הם ממוקמים עדיין על אותו משטח. כדי להתגבר על קיזוז הזווית הקבוע הזה עלינו לחגוג כל חיישן בו אנו משתמשים. הפעלת תסריט זה:
www.i2cdevlib.com/forums/topic/96-arduino-…
נכתב על ידי לואיס רודנס, נקבל קיזוז. ניתן לבטל את טעויות הקיזוז על ידי הגדרת ערכי הקיזוז בשגרת ההתקנה ().
שימוש במעבד התנועה הדיגיטלית
ה- MPU6050 מכיל DMP (מעבד תנועה דיגיטלית).
מהו DMP? אתה יכול לחשוב על ה- DMP כמיקרו-בקר המשולב המעבד את התנועה המורכבת מג'ירוסקופ 3 הצירים ומד התאוצה 3-צירים על סיפון ה- mpu6050, תוך שימוש באלגוריתמים של היתוך תנועה משלו. הורדת העיבוד שאחרת יבוצע על ידי הארדואינו
איך להשתמש בזה? כדי להבין כיצד להשתמש ב- DMP עברו את הסקיצה לדוגמא MPU6050_DMP6 המגיעה עם ספריית MPU6050 (ב- Arduino IDE: קובץ-> דוגמה-> MPU6050-> MPU6050_DMP6). זו גם הזדמנות טובה לבדוק שהחיישן שלך אכן עובד והחיווט תקין
שלב 5: קידוד
השתמשתי ב- Arduino IDE ובממשק FTDI לתכנת ה- Arduino pro mini.
בעזרת הסקיצה לדוגמא (MPU6050_DMP6) המגיעה עם ספריית MPU6050 כקוד הבסיס שלי הוספתי פונקציות PID () ו- MotorDriver ().
הוסף את הספרייה
- MPU6050: כדי להשתמש בחיישן MPU6050 נצטרך להוריד את ספריית המפתחים I2C מג'ף רווברג ולהוסיף אותה לתיקיית "הספריות" של Arduino שנמצאת בקבצי התוכנית במחשב שלך.
- Wire: אנו זקוקים גם לספריית Wire כדי לאפשר לנו לתקשר עם מכשירי I2C.
קוד פסבדו
כלול ספריות:
- Wire.h
- MPU6050
- I2Cdev.h
אתחל משתנים, קבועים ואובייקטים
להכין ()
- הגדר מצב סיכה לשליטה במנועים
- הגדר מצב סיכה עבור נורית הסטטוס
- אתחל את MPU6050 והגדר ערכי קיזוז
PID ()
חישוב ערך PID
MotorDriver (תגובת PID)
השתמש בערך PID כדי לשלוט במהירות ובכיוון המנועים
לולאה ()
- קבל נתונים מ- DMP
- קרא ל- PID () פונקציות של MotorDriver ()
שלב 6: הליך כוונון PID
זהו החלק המייגע ביותר בפרויקט ודורש מעט סבלנות אלא אם כן יתמזל מזלכם. להלן השלבים:
- הגדר את המונח I ו- D ל- 0
- החזקת הרובוט, התאימו את P כך שהרובוט רק יתחיל להתנדנד סביב מיקום האיזון
- עם ערכת P, הגדל את I כך שהרובוט יאיץ מהר יותר כשהוא לא מאוזן. כאשר P ואני מכוונים כראוי, הרובוט אמור להיות מסוגל לאזן את עצמו במשך כמה שניות לפחות, עם תנודה מסוימת
- לבסוף, הגדל D להפחית את התנודה
אם הניסיון הראשון אינו נותן תוצאות משביעות רצון, חזור על השלבים עם ערך שונה של P. שים לב כי תוכל לכוונן את ערכי ה- PID לאחר מכן, כדי להגדיל עוד יותר את הביצועים. הערכים כאן תלויים בחומרה, אל תתפלאו אם תקבלו ערכי PID גדולים מאוד או קטנים מאוד.
שלב 7: סיכום
מנועי המיקרו הילוכים בהם השתמשו היו להאט את התגובה להפרעות גדולות ובהינתן שהמערכת הייתה קלה מדי לא הייתה מספיק אינרציה כדי להשיג את אפקט המטוטלת הרצוי, כך שאם הרובוט יטה קדימה הוא היה נוטה בזווית ומרוץ קדימה. לבסוף, גלגלים מודפסים בתלת מימד היו בחירה גרועה מכיוון שהם ממשיכים להחליק.
הצעות לשיפור:
- מנועים מהירים יותר עם מומנט גבוה יותר, כלומר עבור מנועי DC גבוה יותר דירוג המתח והמומנט הגבוה יותר
- להשיג סוללה כבדה יותר או פשוט להזיז את המסה קצת יותר גבוה
- החלף את הגלגלים המודפסים בתלת -ממד עם גומי כדי לקבל יותר אחיזה
מוּמלָץ:
רובוט גלגלי Mecanum Omni עם מנועי צעד GRBL מגן ארדואינו: 4 שלבים
רובוט גלגלי Mecanum Omni עם מנועי Stepper GRBL Arduino Shield: Mecanum Robot - פרויקט שרציתי לבנות מאז שראיתי אותו בבלוג המכטרוניקה של דג'אן: howtomechatronics.com Dejan באמת עשה עבודה טובה המכסה את כל ההיבטים מחומרה, הדפסה תלת מימדית. , אלקטרוניקה, קוד ואפליקציית אנדרואיד (MIT
בנה צעצוע רובוט גלגלי בעלות נמוכה: 9 שלבים
בנה צעצוע רובוט גלגלי בעלות נמוכה: במדריך זה ניתן להכין צעצוע רובוט גלגלי בעלות נמוכה שתוכל להכין לעצמך או לילדים שלך. אני יכול להבטיח לך, הילדים שלך יזכרו את זה לכל החיים שעשית להם צעצוע. צעצוע ייראה בערך כמו תמונה מצורפת ו
רובוט איזון עצמי דו גלגלי: 4 שלבים
רובוט איזון עצמי דו גלגלי: לעניות דעתי אתה לא יוצר אמיתי, אלא אם אתה לא בונה רובוט איזון עצמי דו גלגלי משלך.:-) אז הנה … והכי חשוב, זה עובד !!! הפרויקט הזה נראה פשוט מאוד. במקום זאת, זה דורש רמה טובה של ידע
רובוט לאיזון עצמי: 6 שלבים (עם תמונות)
רובוט לאיזון עצמי: במדריך זה נראה לך כיצד לבנות את הרובוט המאזן את עצמו שיצרנו כפרויקט בית ספר. זה מבוסס על כמה רובוטים אחרים, כגון nBot ועוד מדריך. ניתן לשלוט ברובוט באמצעות סמארטפון אנדרואיד vi
יצירת קבצי zip וחילוץ עצמי של חילוץ עצמי: 3 שלבים
יצירת קבצי zip וחילוץ עצמי שחולצים: צור קבצי zip וחילוף עצמי של חילוץ עצמי קבל קודם כל עותק של winrar. פשוט גוגל אותו הורד והתקן. הפעל winrar לתמונות ברזולוציה טובה יותר וזכה ב- rar כנס לכאן