במדריך זה אנו מתכננים לתכנן זרוע רובוטית מבוססת Arduino Uno מכמה קרטונים ומנועי סרוו. הליך הבנייה השלם הוסבר בהרחבה בהמשך. כאן בפרויקט זה מתוכנת Arduino Uno לשלוט במנועי סרוו המשמשים כחיבורי זרוע רובוטית. התקנה זו נראית גם כמנוף רובוטי או שאנחנו יכולים להמיר אותו למנוף על ידי ביצוע כמה שינויים קלים. פרויקט זה יעזור למתחילים שרוצים ללמוד לפתח רובוט פשוט בעלות נמוכה או סתם רוצים ללמוד לעבוד עם מנועי ארדואינו וסרוו.
ניתן לשלוט על זרוע רובוטית זו של ארדואינו על ידי ארבעה פוטנציומטר המחוברים אליה, כל פוטנציומטר משמש לשליטה על כל סרוו. אתה יכול להזיז סרווים אלה על ידי סיבוב הסירים כדי לבחור חפץ כלשהו, עם תרגול מסוים תוכל לבחור ולהעביר את האובייקט בקלות ממקום אחד לאחר. השתמשנו כאן בסרוו מומנט נמוך אך אתה יכול להשתמש בסרווו חזקים יותר כדי לבחור חפצים כבדים. התהליך כולו הודגם היטב בסרטון שבסופו. בדוק גם כאן את פרויקטי הרובוטיקה האחרים שלנו.
רכיבים נדרשים
- ארדואינו אונו
- קבלים 1000uF (4 חתיכות)
- קבלים 100nF (4 חתיכות)
- מנוע סרוו (SG 90 - ארבע חתיכות)
- סיר 10K - נגד משתנה (4 חתיכות)
- ספק כוח (5V - רצוי שניים)
מנוע סרוו
ראשית נדבר קצת על סרוו מוטורס. מנועי סרוו משמשים בעיקר כאשר יש צורך בתנועת פיר או במיקום מדויק. אלה אינם מוצעים ליישומים במהירות גבוהה. מנועי סרוו מוצעים לשימוש במהירות נמוכה, מומנט בינוני ויישום מיקום מדויק. אז מנועים אלה הם הטובים ביותר לעיצוב זרוע רובוטית.
מנועי סרוו זמינים בצורות ובגדלים שונים. אנו הולכים להשתמש במנועי סרוו קטנים, כאן אנו משתמשים בארבעה סרוו SG90. במנוע סרוו יהיו בעיקר חוטים, אחד מהם הוא למתח חיובי, אחר הוא לקרקע והאחרון הוא להגדרת מיקום. החוט האדום מחובר לחשמל, החוט השחור מחובר לקרקע וחוט הצהוב מחובר לאות. עברו על הדרכה זו של בקרת מנוע סרוו באמצעות Arduino כדי ללמוד עוד על כך. בארדואינו יש לנו ספריות שהוגדרו מראש לשליטה על סרוו, ולכן קל מאוד לשלוט על סרוו, אותו תלמד יחד עם מדריך זה.
בניית זרוע רובוטית
קח משטח שטוח ויציב, כמו שולחן או לוח כרטיסים קשיח. הבא במקום מנוע סרוו באמצע והדבק אותו במקום. וודא שמידת הסיבוב היא באזור המוצג באיור. סרוו זה משמש כבסיס זרוע.
הניחו פיסת קרטון קטנה על גבי סרוו ראשון ואז הניחו את סרוו השני על פיסת הלוח הזו והדביקו אותו במקום. סיבוב סרוו חייב להתאים לתרשים.
קח כמה קרטונים וחתוך אותם לחתיכות בגודל 3 ס"מ x 11 ס"מ. וודא שהחתיכה לא מתרככת. חותכים חור מלבני בקצה אחד (השאירו 0.8 ס"מ מלמטה) מספיק בכדי להתאים סרוו אחר ובקצה אחר התאימו היטב את ציוד ה סרוו בעזרת ברגים או באמצעות דבק. ואז התאם את הסרוו השלישי בחור הראשון.
כעת גזרו חתיכת קרטון נוספת באורכים המוצגים באיור למטה והדביקו ציוד נוסף בתחתית החלק הזה.
כעת הדבק את סרוו הרביעי והאחרון בקצה היצירה השנייה כפי שמוצג באיור.
עם זה, שתי חלקים יחד נראים.
כאשר אנו מצמידים את ההתקנה הזו לבסיס היא אמורה להיראות,
זה כמעט גמור. אנחנו רק צריכים להכין את הוו לתפוס ולבחור את האובייקט כמו יד רובוטית. עבור וו, גזור עוד שתי חתיכות של לוח כרטיס באורך 1 ס"מ x 7 ס"מ ו -4 ס"מ x 5 ס"מ. הדביקו אותם יחד כמוצג באיור והדביקו את הציוד הסופי בקצה.
הרכיבו את החלק הזה ועליו סיימנו לבנות את הזרוע הרובוטית שלנו .
בכך הושלם עיצוב הזרוע הרובוטי הבסיסי שלנו וכך בנו את הזרוע הרובוטית בעלות הנמוכה שלנו. כעת חבר את המעגל בקרש לחם לפי דיאגרמת המעגל.
תרשים מעגלים והסבר עבודה:
חיבור המעגל לזרוע רובוטית Arduino Uno מוצג להלן.
המתח על פני נגדים משתנים אינו ליניארי לחלוטין; זה יהיה רעשני. אז כדי לסנן את הרעש הזה, קבלים ממוקמים על פני כל נגדים כפי שמוצג באיור.
כעת נזין את המתח שמספק הנגד המשתנה (מתח המייצג בקרת מיקום) לערוצי ADC של ארדואינו. אנו הולכים להשתמש בארבעה ערוצי ADC של UNO מ- A0 ל- A3 לשם כך. לאחר אתחול ה- ADC יהיה לנו ערך דיגיטלי של סירים המייצגים את המיקום הדרוש למשתמש. ניקח ערך זה ונשווה אותו למיקום סרוו.
ל- Arduino שישה ערוצי ADC. השתמשנו בארבעה לזרוע הרובוטית שלנו. ה- UNO ADC הוא ברזולוציה של 10 סיביות ולכן הערכים השלמים נעים בין 0-1023 (2 ^ 10 = 1024 ערכים). המשמעות היא שהיא תמפה את מתח הכניסה בין 0 ל -5 וולט לערכים שלמים בין 0 ל 1023. כך לגבי כל (5/1024 = 4.9mV) ליחידה. למידע נוסף על מיפוי רמות המתח באמצעות ערוצי ADC בארדואינו כאן.
כעת, כדי ש- UNO ימיר אות אנלוגי לאות דיגיטלי, עלינו להשתמש בערוץ ADC של Arduino Uno, בעזרת הפונקציות הבאות:
1. AnalogRead (סיכה); 2. אנלוגי התייחסות (); 3. analogReadResolution (ביטים);
לערוצי ADC של Arduino יש ערך הפניה ברירת מחדל של 5V. זה אומר שאנחנו יכולים לתת מתח כניסה מרבי של 5V להמרת ADC בכל ערוץ קלט. מכיוון שחיישנים מסוימים מספקים מתח מ- 0-2.5 וולט, כך שעם הפניה של 5 וולט אנו מקבלים דיוק נמוך יותר, כך שיש לנו הוראות המאפשרות לנו לשנות את ערך הייחוס הזה. אז לשינוי ערך הייחוס יש לנו "analogReference ();"
כברירת מחדל אנו מקבלים את רזולוציית ה- ADC המקסימלית בלוח שהיא 10 ביט, ניתן לשנות את הרזולוציה הזו באמצעות הוראות ("analogReadResolution (bits);").
במעגל היד הרובוטי שלנו, השארנו את מתח הייחוס הזה כברירת מחדל, כך שנוכל לקרוא ערך מערוץ ADC על ידי קריאה ישירה לפונקציה "analogRead (pin);", כאן "pin" מייצג את הפין שבו חיברנו את האות האנלוגי, נניח אנחנו רוצים לקרוא את "A0". ניתן לאחסן את הערך מ- ADC למספר שלם כ- int SENSORVALUE0 = analogRead (A0); .
עכשיו בואו נדבר על SERVO, ל- Arduino Uno יש תכונה שמאפשרת לנו לשלוט על מיקום הסרווו על ידי מתן ערך התואר בלבד. נניח שאם אנו רוצים שהסרוו יהיה בגיל 30, נוכל לייצג ישירות את הערך בתוכנית. קובץ הכותרת של SERVO ( Servo.h ) דואג לכל חישובי יחס החובה באופן פנימי.
#לִכלוֹל
כאן הצהרה ראשונה מייצגת את קובץ הכותרת לשליטה במנוע SERVO. אמירה שנייה היא מתן שם לסרוו; אנחנו משאירים את זה כמו servo0 כמו שאנחנו הולכים להשתמש בארבע. הצהרה שלישית קובעת היכן מחובר סיכת אות הסרוו; זה חייב להיות סיכת PWM. כאן אנו משתמשים ב- PIN3 לסרוו ראשון. הצהרה רביעית נותנת פקודות למיקום מנוע סרוו במעלות. אם נותנים לו 30, המנוע הסרובי מסתובב 30 מעלות.
כעת, יש לנו מיקום סרוו SG90 בין 0 ל -180 וערכי ADC הם בין 0-1023. נשתמש בפונקציה מיוחדת שתואמת את שני הערכים באופן אוטומטי.
sensorvalue0 = מפה (sensorvalue0, 0, 1023, 0, 180);
הצהרה זו ממפה את שני הערכים באופן אוטומטי ושומרת את התוצאה במספר השלם 'סרוווואל 0' .
כך שלטנו ב- Servos בפרויקט הזרוע הרובוטית שלנו באמצעות Arduino. בדוק את הקוד המלא למטה.
כיצד להפעיל זרוע רובוטית:
ישנם ארבעה סירים המסופקים למשתמש. ועל ידי סיבוב ארבעת הסירים הללו, אנו מספקים מתח משתנה בערוצי ה- ADC של UNO. אז הערכים הדיגיטליים של Arduino הם בשליטת המשתמש. ערכים דיגיטליים אלה ממופים כדי להתאים את מיקום מנוע הסרוו, ומכאן שמיקום הסרוו הוא בשליטה על המשתמש ועל ידי סיבוב המשתמשים בסירים אלה יכול להזיז את מפרקי הזרוע הרובוטית ויכול לבחור או לתפוס כל חפץ.