תוכן עניינים:

זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש: 5 שלבים (עם תמונות)
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש: 5 שלבים (עם תמונות)

וִידֵאוֹ: זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש: 5 שלבים (עם תמונות)

וִידֵאוֹ: זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש: 5 שלבים (עם תמונות)
וִידֵאוֹ: Lesson 95: Using L293D 4 DC Motors Shield for Arduino UNO and Mega | Arduino Step By Step Course 2024, יולי
Anonim
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש
זרוע רובוטית נשלטת על ידי Arduino עם 6 דרגות חופש

אני חבר בקבוצת רובוטיקה ובכל שנה הקבוצה שלנו משתתפת בפייר מיני-מייקר שנתי. החל משנת 2014, החלטתי לבנות פרויקט חדש לאירוע של כל שנה. באותו זמן, היה לי כחודש לפני האירוע לחבר משהו ולא ידעתי מה אני רוצה לעשות.

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

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

כנהוג בדרך כלל, יש יותר בסיפור וכמה גלגולים למבנה שנדחס למה שאתה רואה להלן. אם יש לך עניין בסיפור האחורי, תוכל למצוא עוד כאן:

שלב 1: מה שאתה צריך - חומרה ואלקטרוניקה

מה שאתה צריך - חומרה ואלקטרוניקה
מה שאתה צריך - חומרה ואלקטרוניקה
מה שאתה צריך - חומרה ואלקטרוניקה
מה שאתה צריך - חומרה ואלקטרוניקה

מעצב הפרויקטים המקורי חי באירופה ולאחר מכן השתמש במידות מטריות ובחומרים הנפוצים שם. למשל לוח העיתונות שבה השתמש לגוף היה ברמה של עובי 5 מ"מ. חומר דומה כאן בארה"ב הוא 1/8 "שהוא בעובי של כ -3.7 מ"מ. זה השאיר פער בפתחים שתוכננו במקור להתקנת עיתונות. במקום לתקן את הציורים פשוט השתמשתי בדבק גורילה כדי לאבטח את המפרקים האלה.

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

  • 22 - M3 x 0.5 x 23 מ"מ
  • 15 - מרווחי M3 x 15 מ"מ
  • 40 - ברגי M3
  • אגוזי משושה M3
  • ברגים 25 מ"מ
  • 1 - אביב
  • קלטת הרכבה דו צדדית
  • 5 - סרוו טאואר פרו 5010 SG 5010
  • 1 - סרוו מיני TowerPro SG92R
  • 1 - סרוו מיני SG90 TowerPro
  • כותרת סיכה ישרה 2.54 מ"מ
  • 1 - קרש לחם בגודל חצי
  • 1 - חוטי מגשר 'הארכה' נקבה/זכר - 40 x 6 אינץ '
  • 1 - 12 "x 24" גיליון כחול אקרילי כחול או חתיכות הלייזר מחברת השירות המועדפת עליך
  • 2 - 3 מ"מ x 20 מ"מ + 4 מ"מ x 5 מ"מ מפרקי מיסבים משותפים מודפסים בתלת -ממד (ראה להלן)
  • 1 - לוח בקרה *ראה הערה בסעיף החיווט
  • 1 - LED RGB מפוזר (תלת צבעוני) 10 מ"מ
  • 1 - ארדואינו אונו
  • 1 - תקן LCD 16x2 + תוספות - לבן על כחול
  • 1 - תרמיל LCD בעל אופי i2c / SPI
  • 1-מנהל התקן PWM/סרוו של 16 ערוצים Adafruit עם 16 ערוצים
  • 1 - MCP3008 - 8 ערוצים ADC של 10 סיביות עם ממשק SPI
  • 3 - חיישן מודול פריצה של JoyStick *ראה הערה בסעיף החיווט
  • ג'ק חבית DC
  • מתאם AC ל DC
  • כבלי מאריך סרוו - אורכים שונים

כמעט כל החלקים לזרוע זו נחתכו מאקריליק בגודל 1/8 אינץ '. עם זאת, יש להדפיס את שני המרווחים המפרקים. כמו כן, המקור שתוכנן קרא לשני בסיסי המרווח המשותפים להיות בגובה 7 מ"מ לציר הנושא. כשהתחלתי להרכיב את הזרוע העליונה מהר מאוד התברר שאלו גבוהים מדי בגלל גובה סרוו הטאוור פרו. הייתי צריך לייצר מסבים חדשים עם בסיס בגובה של 3 מ"מ בלבד, שאגב, עדיין היה קצת גבוה מדי אבל ניתן לניהול. תרצה לשים לב לגובה היחסי של סרווס שלך ולחשב את המרחק בין שתי הזרועות התחתונות:

גובה סרוו + קרן סרוו + מיסב משותף + סרט דו צדדי = 47 מ"מ +/- 3 מ"מ.

שלב 2: הרכבת זרוע

הרכבת זרוע
הרכבת זרוע
הרכבת זרוע
הרכבת זרוע
הרכבת זרוע
הרכבת זרוע
הרכבת זרוע
הרכבת זרוע

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

  1. חבר את סרוו הבסיס לצלחת הבסיס העליונה באמצעות ברגים M3 25 מ מ ואומים משושה. לא להדק יותר מדי! הערה: ייתכן שתרצה ליישם את החוטים במנעול חזק כדי למזער את התרופפות האגוזים במהלך השימוש.
  2. אם אתה משתמש ברשימת החלקים שיש לי למעלה, לאחר מכן תרצה להרכיב את 5 מרווחי הבסיס על ידי השחלת 2 כל אחד מ- M3 x 0.5 x 23 מ"מ ביחד ולאחר מכן לחבר אותם לצלחת הבסיס העליונה עם אגוזים משושה.
  3. חבר את צלחת הבסיס התחתונה לסטנדים עם 5 ברגי M3.
  4. חבר את לוח הכתף לשתי לוחות ההרכבה של סרוו באמצעות דבק בטוח אקרילי. השתמשתי כאן בדבק גורילה. הערה: לכל אחת משתי לוחות הסרוו יש חור מאחור המאפשר הכנסת מרווח חיזוק המחבר ביניהן. וודא שהחורים מסתדרים בקו אחד!* בזמן שהדבק נגיש לך, קדימה והצטרף לצלחת ההרכבה של פרק כף היד עם הלוח הראשי של האחיזה.* לחלופין, תוכל גם להדביק את צלחת סרוו פרק כף היד לשתי צלחות מפרק כף היד. לא עשיתי זאת בבחירה לאחד אותם יחד עם עמידות כמתואר להלן.
  5. חבר את מכלול הכתפיים שנרפא כעת לסרוו הבסיס. השתמשתי בקרן הרחבה ביותר הכלולה בסרוו שהייתה קרן ההרכבה של שש הגבעולים.
  6. הוספת מסגרת הזרוע התחתונה לסרווס הכתפיים יכולה להיות מסובכת. אני מציע לאבטח את הקרניים למסגרות הזרוע התחתונה לפני שתמשיך. הערה: הקפד לרכז את סרווייך למכלול הכתפיים לפני הצמדתם למסגרת. שני סרוו אלה חייבים לנוע בבת אחת ואם הם אינם מיושרים יגרום לכל הפחות לרעוד סרוו, ואם הם מיושרים מספיק, הם עלולים לפגוע במסגרת או בסרווס. * כל סרוו הכתפיים מותקנים עם הסוגריים שלהם בצד האחורי של לוחות ההרכבה במקום להעביר את הסרוואות דרך הצלחות - זה יאפשר לך לדחוף את הצופר על פיר הסרוו בזווית ולאבטח את הבורג. עדיין לא אבטח את הסרוו לצלחת ההרכבה. * לאחר מכן, הוסף את סרוו הפנימי והרכב את הזרוע

  7. הרכיבו את מסגרת הזרוע העליונה ואת סרוווס על ידי דחיפת הסרוווס דרך הרווחים בזרועות ולאחר מכן הכנסת המרווחים בין שתי לוחות הזרוע העליונה ואבטחו בעזרת ברגי M3.
  8. הוסף סרט דבק דו צדדי לחלק האחורי של המרווח למפרק המרפק וקצץ את העודף.
  9. חבר את המרווח לתחתית הסרוו שישמש כמפעיל המרפק.
  10. החלק את מכלול הזרוע העליונה למסגרת הרכבה של הזרוע התחתונה והדק את ברגי קרן הסרוו.
  11. הוסף עמידות לחיזוק בין שתי לוחות זרוע תחתונה. השתמשתי בשניים במקום בארבע כדי להוריד את המשקל.
  12. הוסף סרט דבק דו צדדי לחלק האחורי של מרווח מפרק כף היד העליונה וחתוך את העודף.
  13. חבר את המרווח לתחתית הסרוו שישמש כמפעיל מפרק כף היד.
  14. חבר את צלחת כף היד החיצונית לקרן סרוו פרק כף היד ואבטח בעזרת בורג קרן.
  15. הרכיב את צלחת סרוו מפרק כף היד עם שתי הלוחות ומפרקי הידיים.
  16. אבטח את סרוו פרק כף היד על צלחת הסרוו בעזרת לוחית סרוו סרוו.
  17. יהיה עליך לאבטח את קרן פרק כף היד אל הסרוו לפני שתחבר את מכלול האוחז לאותו צופר בשל פתיחת בורג קרן שנחסם.
  18. הרכיב באופן רופף את חלקי האחיזה להתאמה לפני הצמדת קרן סרוו האחיזה לסרוו. זה יאפשר לך מקום לדפוק את הצופר בשלב הקודם.
  19. חבר את קרן האחיזה לסרוו שלה והדק עוד יותר את הברגים המחזיקים את מפרקי האחיזה. הערה: אין להדק את האומים והברגים הללו במלואם מכיוון שהם צריכים להיות רופפים על מנת לאפשר לתפס לזוז.

שלב 3: חיווט ולוח הבקרה

לוח חיווט ולוח הבקרה
לוח חיווט ולוח הבקרה
לוח חיווט ולוח הבקרה
לוח חיווט ולוח הבקרה
לוח חיווט ולוח הבקרה
לוח חיווט ולוח הבקרה

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

יש 3 קבוצות של רכיבים:

  1. קלט - פריטים אלה לוקחים מידע מהמשתמש ומורכבים מהג'ויסטיקים ומ- mcp3008 ADC.
  2. פלט - פריטים אלה מעבירים נתונים לעולם על ידי הצגת סטטוס למשתמש או עדכון סרוו עם נתוני מיקום. פריטים אלה הם מסך ה- LCD, תרמיל ה- LCD, ה- RGB LED, לוח הנהג של סרוו ולבסוף סרוווס.
  3. עיבוד - ה- Arduino עוטף את הקבוצה האחרונה שלוקחת את הנתונים מהתשומות ודוחפת את הנתונים החוצה לפלט בהתאם להוראות הקוד.

סכמטי Fritzing לעיל מפרט את חיבורי הפינים לכל הרכיבים.

תשומות

נתחיל עם התשומות. הג'ויסטיקים הם מכשירים אנלוגיים - כלומר הם מציגים מתח משתנה ככניסה לארדואינו. לכל אחד משלושת הג'ויסטיקים יש שתי יציאות אנלוגיות ל- X ו- Y (למעלה, למטה, ימינה שמאלה), מה שהופך סך הכל 6 כניסות ל- Arduino. בעוד של- Arduino Uno יש 6 כניסות אנלוגיות זמינות, עלינו להשתמש בשניים מהסיכות הללו לתקשורת I2C למסך ובקר הסרוו.

בגלל זה, שילבתי את הממיר האנלוגי לדיגיטלי MCP3008 (ADC). שבב זה מקבל עד 8 כניסות אנלוגיות וממיר אותן לאות דיגיטלי מעל סיכות התקשורת SPI של ה- Arduino כדלקמן:

  • סיכות MCP 1-6> יציאות משתנות של ג'ויסטיק האגודל
  • סיכות MCP 7 & 8> אין חיבור
  • פין MCP 9 (DGND)> קרקע
  • פין MCP 10 (CS/SHDN)> סיכה Uno 12
  • פין MCP 11 (DIN)> סיכה אונו 11
  • פין MCP 12 (DOUT)> סיכה אונו 10
  • פין MCP 13 (CLK)> סיכה אונו 9
  • סיכה MCP 14 (AGND)> קרקע
  • פין MCP 15 & 16> +5V

חיבורי הג'ויסטיק בסכימה מוצגים רק כדוגמה. תלוי אילו ג'ויסטיקים קונים וכיצד הם מותקנים, החיבורים שלך עשויים להיות שונים משלי. מותגים שונים של הג'ויסטיק עשויים להיות בעלי pinout שונה והם עשויים לכוון את X ו- Y באופן שונה. מה שחשוב הוא להבין מה כל קלט ב- ADC מייצג. כל סיכה מייצגת את הקשרים הבאים בקוד שלי:

  • סיכה 1 - הבסיס - נתונים אנלוגיים על סיכה זו יסובבו את הסרוו הנמוך ביותר ברובוט
  • סיכה 2 - הכתף - נתונים אנלוגיים על סיכה זו יסובבו את שני סרוויים מעל סרוו הבסיס
  • פין 3 - המרפק - נתונים אנלוגיים על סיכה זו יסובבו את הסרוו הבא מעל סרוו הכתפיים
  • סיכה 4 - UP/DN פרק כף היד - נתונים אנלוגיים על סיכה זו יסובבו את סרוו פרק כף היד, ירימו ויורידו את מכלול האחיזה.
  • סיכה 5 - הגריפר - נתונים אנלוגיים על סיכה זו יפתחו ויסגרו את הלוחץ
  • סיכה 6 - סובב פרק כף היד - נתונים אנלוגיים על סיכה זו יסובבו את האוחז

הערה: בעת רכישה והרכבה של ג'ויסטיק האגודל המוזכרים ברשימת החלקים, זכור כי כיוון המודולים עשוי להיות שונה משלי, בדוק את יציאות x ו- y לחיבור תקין ל- ADC. כמו כן, אם אתה משתמש בלוח הבקרה המודפס בתלת מימד שלי, חורי ההרכבה עשויים להתקזז משלי.

יציאות

בקר ה- PWM/סרוו של Adafruit הופך את הפרויקט לסופר פשוט. פשוט חבר את סרוווס לכותרות הסרווו וכל חיבורי החשמל והאות מטופלים. אלא אם כן תמצא סרוו עם לידים ארוכים במיוחד, תרצה לקבל קבוצה של הארכות כבלי סרוו באורכים משתנים כך שכל כבלי הסרוו שלך יגיעו ללוח הבקר שלך.

סרוו מחוברים באופן הבא:

  • עמדה 0 - סרוו בסיס
  • מיקום 1 - סרוו כתף (סרוו Y כבל)
  • עמדה 2 - סרבו המרפק
  • עמדה 3 - סרוו פרק כף היד 1
  • עמדה 4 - סרוו גריפר
  • מיקום 5 - סרוו יד 2

בנוסף, VCC ו- V + מחוברים שניהם ל -5 וולט ו- GND מחובר לקרקע.

הערה 1: הערה אחת גדולה כאן: מתח האספקה לכל הפרויקט נכנס דרך בלוק מסוף החשמל בלוח הבקרה של סרוו. סיכת V+ בבקר סרוו מספקת למעשה חשמל מהבלוק המסוף לשאר המעגל. אם אתה צריך לתכנת את ה- Uno שלך, אני ממליץ בחום לנתק את סיכת V+ לפני חיבור ה- Uno למחשב שלך מכיוון שהשיכה הנוכחית מסרוווס עלולה לפגוע ביציאת ה- USB שלך.

הערה 2: אני משתמש במתאם קיר של 6V AC ל- DC כדי להפעיל את הפרויקט. אני ממליץ על מתאם שיכול לספק זרם של 4A לפחות, כך שכאשר אחד או יותר מהשרווסים נקשרים, העלייה הפתאומית בזרם לא תשחים את המערכת שלך ותאפס את הארדואינו שלך.

מסך LCD 16X2 מחובר לתרמיל ה- Adafruit LCD על מנת לנצל את ממשק I2C שכבר נמצא בשימוש על ידי בקר הסרוו. ה- SCL בבקר סרוו ו- CLK בתרמיל מתחברים שניהם ל- Pin A5 ב- Uno. באופן דומה, ה- SDA בבקר ה- Servo ו- DAT על התרמיל מתחברים שניהם ל- Pin A4 ב- Uno. בנוסף, 5V מחובר ל- +5 וולט ו- GND מחובר לקרקע. LAT על התרמיל אינו מחובר לשום דבר.

לבסוף, נורית ה- RGB מחוברת לסיכות 7 (אדום), 6 (ירוק) ו -5 (כחול) ב- Uno. רגל הקרקע של ה- LED מחוברת ל- Ground באמצעות נגד של 330Ohm.

מעבד

אחרון חביב, שאר חיבורי הארדואינו שלא מופיעים לעיל הם כדלקמן: פין 5V מחובר ל- +5 וולט ו- GND מחובר לקרקע.

בהתקנה שלי השתמשתי במסילות הצדדיות של לוח הלחם כדי לקשור את כל קווי החשמל והקרקע יחד כמו גם את סיכות I2C לכל המכשירים.

שלב 4: קוד

קוד
קוד

כאמור, אני במקור בונה את הפרויקט הזה כהדגמה עבור Maker Faire המקומי שלי. התכוונתי שזה יהיה משהו לילדים ולמבוגרים לשחק איתו בזמן שהותנו בדוכן שלנו. כפי שמתברר, זה היה הרבה יותר פופולרי ממה שדמיינתי - עד כדי כך שילדים נלחמו על זה. לכן, כשהגיע הזמן לכתוב מחדש, שילבתי "מצב הדגמה" שמיישם מגבלת זמן.

הזרוע יושבת שם ומחכה שמישהו יזיז ג'ויסטיק וכשהם עושים זאת, היא מתחילה טיימר של 60 שניות. בתום 60 השניות, הוא מפסיק לקחת קלט מהמשתמש ו"נוח "למשך 15 שניות. תשומת לב קצרה היא מה שהן, תקופת מנוחה זו הפחיתה מאוד את הטענה לזמן המקל.

פעולה בסיסית

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

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

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

שלב 5: קישורים ומשאבים

הפניות לזרוע

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

תוכנות ליבריז

  • משאבי בקר PWM/סרוו של Adafruit
  • ספריית MCP3008
  • גיליון נתונים MCP3008

לוח בקרה וקוד

  • ציור Tinkercad של הלוח שהכנתי
  • מאגר הקוד הנוכחי

מוּמלָץ: