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

זרוע רובוטית הנשלטת על ידי Arduino ו- PC: 10 שלבים
זרוע רובוטית הנשלטת על ידי Arduino ו- PC: 10 שלבים

וִידֵאוֹ: זרוע רובוטית הנשלטת על ידי Arduino ו- PC: 10 שלבים

וִידֵאוֹ: זרוע רובוטית הנשלטת על ידי Arduino ו- PC: 10 שלבים
וִידֵאוֹ: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, יולי
Anonim
Image
Image
תיאוריה מאחורי הפרויקט
תיאוריה מאחורי הפרויקט

זרועות רובוטיות נמצאות בשימוש נרחב בתעשייה. בין אם זה לצורך פעולות הרכבה, ריתוך או אפילו אחת משמשת לעגינה ב- ISS (תחנת החלל הבינלאומית), הם עוזרים לבני אדם בעבודה או שהם מחליפים את האדם לגמרי. זרוע שבניתי היא ייצוג קטן יותר של זרוע רובוטית שאמורה לשמש להנעת חפצים. הוא נשלט על ידי arduino pro mini שכבר כולל ספרייה מובנית לשליטה בסרווואים. סרוו נשלטים על ידי PWM (Pulse Width Modulation) שאינו קשה לתכנת אך ספרייה זו מקלה על זה. המשתמש יכול לשלוט בסרוואות אלה על ידי פוטנציומטרים שמיועדים לפעול כמפרידי מתח או מתוכנית במחשב המשתמש ב- 4 מחוונים לשליטה במנועי סרוו.

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

שלב 1: תיאוריה מאחורי הפרויקט

תיאוריה מאחורי הפרויקט
תיאוריה מאחורי הפרויקט

Arduino הוא נהדר בצורה כזו שהיא מציעה ספרייה בחינם לעבודה. עבור פרויקט זה השתמשתי בספריית Servo.h שהופכת את השליטה בסרוווס לקלה הרבה יותר.

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

לשליטה בסרוווס השתמשתי בפוטנציומטרים המשמשים כמפרידי מתח. ללוחות Arduino יש כמה ממירים אנלוגיים/דיגיטליים בהם השתמשתי לפרויקט. בעיקרון arduino עוקב אחר המתח בסיכה האמצעית בפוטנציומטר ואם הוא מסתובב למתח צד אחד הוא 0 וולט (ערך = 0) ובצד השני הוא 5 וולט (ערך = 1023). ערך זה משתנה לאחר מכן מטווח 0 - 1023 ל- 0 - 180 ולאחר מכן הוא מועבר לתפקוד שכבר הוזכר.

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

שלב 2: עיצוב PCB

עיצוב PCB
עיצוב PCB
עיצוב PCB
עיצוב PCB
עיצוב PCB
עיצוב PCB

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

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

שלב 3: הכנת PCB

הכנת PCB
הכנת PCB
הכנת PCB
הכנת PCB
הכנת PCB
הכנת PCB

להכנת PCB אני מציע לך לקרוא את זה.

השתמשתי בשיטת נייר ברזל על מבריק וזה הסתדר מצוין.

ואז הלחמתי חלקים על הלוח המודרני. אתה יכול לראות שהשתמשתי בשקע ארדואינו למקרה שאזדקק לו בעתיד.

שלב 4: עיצוב הזרוע

עיצוב הזרוע
עיצוב הזרוע
עיצוב הזרוע
עיצוב הזרוע
עיצוב הזרוע
עיצוב הזרוע

זה בהחלט לא היה החלק הקשה ביותר בהכנת הפרויקט הזה.

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

שלב 5: הדפסת החלקים

הדפסת החלקים
הדפסת החלקים
הדפסת החלקים
הדפסת החלקים
הדפסת החלקים
הדפסת החלקים

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

שלב 6: לשים את הכל ביחד

לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד
לשים את הכל ביחד

בשלב הזה כפי שהכותרת אומרת חיברתי הכל.

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

כשלב הבא הכנתי כבל סרט שטוח לחיבור שני הלוחות.

בתיבה הראשית הלחמתי חוטים מסיכת VCC של המחבר למעבר ולאחר מכן ל- Vcc של הלוח ומ- GND של הלוח ל- GND של המחבר. אחר כך הדבקתי את המחבר במקום ולוח על עמודים. המחבר מתאים ישר לתוך החור כך שאין צורך בדבק חם.

לאחר מכן, באמצעות ברגים חיברתי את הסרוו התחתון לתחתית הקופסה.

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

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

וכשלב האחרון הנחתי מעט סרט בתחתית הקופסאות כי אחרת הן היו מחליקות.

שלב 7: תכנות Arduino

תכנות ארדואינו
תכנות ארדואינו
תכנות ארדואינו
תכנות ארדואינו
תכנות ארדואינו
תכנות ארדואינו

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

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

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

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

החלק האחרון של התוכנית קורא נתונים מיציאה טורית ומחליט מה לעשות על סמך הנתונים שנשלחו.

על מנת להבין את הקוד באופן מלא, אני מציע לך לבקר באתרים רשמיים של arduino.

שלב 8: תכנות ב- Python

תכנות בפייתון
תכנות בפייתון
תכנות בפייתון
תכנות בפייתון
תכנות בפייתון
תכנות בפייתון

חלק זה בפרויקט זה אינו הכרחי, אך אני חושב שהוא רק נותן ערך רב יותר לפרויקט הזה.

Python מציעה טונות של ספריות לשימוש חופשי, אך בפרויקט זה אני משתמש רק ב- tkinter ובסדרה. Tkinter משמש ל- GUI (ממשק משתמש גרפי) וסידורי כשמו כן הוא משמש לתקשורת טורית.

קוד זה יוצר GUI עם 4 מחוונים בעלי ערך מינימלי של 0 ומקסימום 180. יכול להיות שרמז עבורך שהוא במעלות וכל מחוון מתוכנת לשלוט בסרוו אחד. תוכנית זו היא פשוטה למדי - היא לוקחת את הערך ושולחת אותו לארדואינו. אבל הדרך שבה הוא שולח מעניינת. אם אתה בוחר לשנות את הערך של הסרוו הראשון ל 123 מעלות הוא שולח לערך הארדואינו 1123. המספר הראשון של כל מספר שנשלח הוא מספר איזה סרוו עומד לשלוט בו. לארדואינו יש קוד שיכול לפענח זאת ולהזיז את הסרוו הנכון.

שלב 9: רשימת חלקים

רשימת חלקים
רשימת חלקים
  • Arduino Pro Mini 1 חתיכה
  • סרוו FS5106B 1 חתיכה
  • סרוו Futaba S3003 2 חלקים
  • כותרת סיכה 2x5 חתיכה אחת
  • כותרת סיכה 1x3 6 חלקים
  • קבלים 220uF 3 חלקים
  • מיקרו סרוו FS90 1 יחידה
  • מחבר AWP-10 2 חלקים
  • מחבר FC681492 חלק אחד
  • מתג P-B100G1 1 חתיכה
  • שקע 2x14 1 חתיכה
  • TTL-232R-5v-ממיר 1 יחידה
  • פוטנציומטר B200K 4 חלקים
  • ועוד הרבה ברגים, רפידות ואומים

שלב 10: מחשבות אחרונות

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

מוּמלָץ: