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

[WIP] יצירת Drawbot הנשלטת על ידי סרט מיו: 11 שלבים
[WIP] יצירת Drawbot הנשלטת על ידי סרט מיו: 11 שלבים

וִידֵאוֹ: [WIP] יצירת Drawbot הנשלטת על ידי סרט מיו: 11 שלבים

וִידֵאוֹ: [WIP] יצירת Drawbot הנשלטת על ידי סרט מיו: 11 שלבים
וִידֵאוֹ: 20 самых крутых олигархов в России (2018-2021) 2024, יולי
Anonim
[WIP] יצירת Drawbot הנשלטת על ידי סרט מיו
[WIP] יצירת Drawbot הנשלטת על ידי סרט מיו

שלום לכולם!

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

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

  1. תכנות ממיו למנועים, דרך הארדואינו
  2. עיצוב חשמלי לתרגום הנתונים שלנו לתנועה
  3. עיצוב מכני ליצירת מסגרת בגודל סביר שתקל על התנועה שלנו

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

שלב 1: מה שתכננו לעשות

Image
Image

המטרה שלנו הייתה לשלב את שני המוצרים האלה בצורה שלא ראינו בשימוש בעבר. יצאנו ליצור ממסר חי בין סרט הזרוע Myo שלנו לגרסה משלנו לעיצוב בהשראת AxiDraw של Evid Mad Scientist.

שלב 2: רשימת רכיבי אב טיפוס

2 2 x 4 לוחות עץ 1 חגורת או שרשרת מידות> = 65”4 מסמרים מעץ 3 הילוכים עם שיניים המתאימות לחגורה או לשרשרת 4 3 x 8 צלחות מחוררות קצוות 30 ⅜” מרווחי גומי 8 רצועות בקוטר 1”1 בקוטר 1” דיבל ארוך 1 '8 ברגי Vex 1 "8 ½" ברגי Vex 8 2 "ברגי Vex 8 ¼" מרווחי גומי 48 אגוזים Vex 1 עניבה עם רוכסן קטן

שלב 3: [אב טיפוס] עבודות עץ בעיצוב זרועותינו ורכבתנו

[אב טיפוס] עבודות עץ בעיצוב זרועותינו ורכבתנו
[אב טיפוס] עבודות עץ בעיצוב זרועותינו ורכבתנו

תפסנו שני 2x4 וחתכנו אותם באורכים שווים (33 אינץ ')

בעזרת מסור שולחן עשינו חריץ בצד החלק הצר של הלוחות "עמוק ורוחב" באמצע

חותכים את הדיבל ל -4 חתיכות בגודל 2 אינץ 'ומקדחים חור באמצע הדיבל בקוטר ¼ אינץ' בעזרת מכבש מקדחה

שלב 4: [אב טיפוס] הכנת המרכבה שלנו

[אב טיפוס] הכנת המרכבה שלנו
[אב טיפוס] הכנת המרכבה שלנו
[אב טיפוס] הכנת המרכבה שלנו
[אב טיפוס] הכנת המרכבה שלנו
[אב טיפוס] הכנת המרכבה שלנו
[אב טיפוס] הכנת המרכבה שלנו

באופן אידיאלי נשתמש בשתי חתיכות 7x7 פלדה מחוררת, אך כל מה שהיה לנו לרשותנו היו רצועות 2x7 כך שהברקנו אותן יחד בתצורת "X"

ערמו 5 ממרווחי הגומי ⅜”ואבטחו את פינות הלוחות הקשות זה לזה

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

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

שלב 5: [אב טיפוס] חיבור הכל ביחד

[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד
[אב טיפוס] לשים הכל ביחד

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

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

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

שלב 6: [אב טיפוס] סיים ונע

Image
Image

זה צריך להיות זה, למשוך את החגורה בשילובים שונים ולראות את ההשפעות השונות שיש לה על הזרוע!

שלב 7: תרגום המודל שלנו לעיצוב המוגמר שלנו

תרגום המודל שלנו לעיצוב המוגמר שלנו
תרגום המודל שלנו לעיצוב המוגמר שלנו
תרגום המודל שלנו לעיצוב המוגמר שלנו
תרגום המודל שלנו לעיצוב המוגמר שלנו

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

  1. סוּלָם

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

    1. הדריכות הקשות שלנו לא עברו בקלות על גלילי העצים מעץ בכל הנקודות
    2. פלסטיק על עץ גרם לכך שהגררה לא הייתה מוכנה לזוז במקרים רבים
  3. ממונע

    היינו צריכים להפוך את המערכת לכוחה

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

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

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

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

שלב 8: קידוד

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

1. קבל נתונים ממיו (lua)

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

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

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

2. עבודה סביב הארדואינו (C ++)

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

החלטתי שיש לשמור את פונקציית התור, אם לא ליישם אותה כמו קודם. על מנת לעשות זאת יצרתי וקטור של מערכים. זה איפשר לי לא רק לשמור על רוח העיצוב הקודם שלי ללא פגע, זה גם אומר שלא הייתי צריך לעקוב אחר המקום שלי בקובץ לא לקריאה או לכתיבה. במקום זאת, עכשיו כל מה שהייתי צריך לעשות זה פשוט להוסיף ערך חדש לווקטור שלי אם המשתמש זז (בדיקות מקדימות היו פחות מ -1% מההבדל בגודל הקנבס הן ב- x והן ב- y מהמיקום האחרון שנרשם לא גרם להקלטת נתונים). לאחר מכן אוכל לקחת את הערך הישן ביותר בווקטור שלי ובמכה אחת, לשלוח אותו לשלט המנוע, לכתוב אותו לקובץ שלנו ולאחר מכן להסיר אותו מהווקטור שלי. זה ניקה הרבה מהחששות שלי לגבי הפעלת זרם IO קבוע.

שלב 9: חשמל

Image
Image
חַשׁמַלִי
חַשׁמַלִי

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

חומרים בהם השתמשתי:

2 x מנועי צעד

1 x לוח לחם

1 x ארדואינו (אונו)

2 x מנהל התקן IC L293DE

40 x חוטי מגשר

2 x מאווררים

1. חיבור מנועי צעד ומאוורר ללוח הלחם

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

אזהרה/טיפ:

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

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

2. קוד ארדואינו

זה החלק הקל!

פתח את Arduino IDE עבור לכרטיסייה "קובץ" ואז הורד לכרטיסייה "דוגמה" אשר תיפתח עוד יותר ותראה לך לשונית "צעד" ואז ברצונך לפתוח את "Stepper_OneStepAtATime"

זה יטען מראש קוד דוגמה שהוא כמעט plug-and-play לחיווט arduino/מנוע. נצטרך לבצע התאמות קטנות מכיוון שנפעיל שני מנועים אותם אציג בהמשך. ייתכן שיהיה עליך לבצע התאמות קלות בהתאם לסיכות שהחלטת להשתמש בהן, מכיוון ש- Arduino IDE כברירת מחדל לסיכות 8-11.

הקוד שבו השתמשתי כדי לגרום לשני המנועים לנוע ב"סנכרון "נמצא להלן:

//#לִכלוֹל

const int stepsPerRevolution = 200;

Stepper myStepper1 (stepsPerRevolution, 9, 10, 11, 12);

Stepper myStepper2 (stepsPerRevolution, 4, 5, 6, 7);

int stepCount = 0;

הגדרת void () {// לאתחל את היציאה הטורית: Serial.begin (9600); }

לולאת חלל () {

myStepper1.step (1);

Serial.print ("צעדים:");

Serial.println (stepCount);

stepCount ++;

עיכוב (0.5);

myStepper2.step (1); עיכוב (0.5); }

3. בעיות אפשריות

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

וודא שהנהג שבו אתה משתמש מסוגל לשלוט במנוע

בדוק את המספר הסידורי ובדוק את המפרט שלו

נתקלתי בבעיה של חוט מגשר מת, מה שגרם למנועים שלי להסתובב בצורה מוזרה

הייתי צריך להשתמש במולטימטר כדי לבדוק כל חוט

ותמיד בדוק שוב בקוד שלך אם יש שגיאות קטנות כמו החמצת סיום ";" פקודה

שלב 10: מכני

מֵכָנִי
מֵכָנִי
מֵכָנִי
מֵכָנִי
מֵכָנִי
מֵכָנִי
מֵכָנִי
מֵכָנִי

1. חומר

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

השתמשנו ביריעות אלומיניום 032 מד שנחתכו לגודל 9.125 "x 17.5" ועקבנו אחר התבנית מהציור המוצג בשלב הקודם.

2. ייצור

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

עבור העיקולים הגדולים השתמשנו בטניסמית בגלל הדיוק הגבוה שלו.

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

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

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

3. החגורה

לחגורות השתמשנו בכמה חגורות מדפסת תלת מימד ישנות שהצלחנו להציל.

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

ההילוכים הירוקים ותבליני העץ הוחלפו במיסבי דיסק עם מכונות כביסה רחבות במיוחד המשמשות כדי למנוע מהחגורה להחליק ממקומה.

4. כרכרה

ולבסוף הכרכרה עשויה דף בגודל 5 "x 5" מאלומיניום 032, עם מקדחה לחורים לאן נועדו הברגים והתקעים המתאימים. המרחק ישתנה בהתאם לרוחב המסילה שלך וכמה מרווח יש לך על מכונות הכביסה שלך.

שלב 11: השתקפויות

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

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

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

מוּמלָץ: