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

UCL - מוטבע - בחירה ומקום: 4 שלבים
UCL - מוטבע - בחירה ומקום: 4 שלבים

וִידֵאוֹ: UCL - מוטבע - בחירה ומקום: 4 שלבים

וִידֵאוֹ: UCL - מוטבע - בחירה ומקום: 4 שלבים
וִידֵאוֹ: Near-Death Experiences (NDEs) & the Afterlife through history & across cultures: Gregory Shushan PhD 2024, יולי
Anonim
UCL - מוטבע - בחירה ומקום
UCL - מוטבע - בחירה ומקום

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

שלב 1: מחשבים

מחשבים
מחשבים

1x אדריו מגה

2x מנועי צעד (השתמשנו במנוע צעד JLB, דגם 17H1352-P4130)

2x מודול לוח כונן מנוע צעד L298N גשר H כפול H DC עבור Arduino

1 x מנוע סרוו (אין לנו את הנקודה הזו)

נגדים 3x 10k אוהם

2x ריחות ניילון

ספק כוח 1x 12V

קצת עץ למסגרת

חוטים

שלב 2: בנייה

בְּנִיָה
בְּנִיָה
בְּנִיָה
בְּנִיָה
בְּנִיָה
בְּנִיָה

הדבר הראשון במהלך פרצוף הבנייה היה לקבוע את הגודל והצורה של מכונת הבחירה וההרכבה

ראשית אנו בונים את העץ בצורת הבסיס. בנינו את מסגרת הבחירה והמקום שלנו 50 ס"מ על 25 ס"מ על 30 ס"מ. הכל למעט המסגרת, הגשר וזרוע ההרמה, יוצרו עם חיתוך לייזר.

להלן קישור לכל הקבצים

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

20 מ מ

50 מ מ

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

אשר אז הודבק בצורת U. ואז חיברנו את זה לגשר.

תוספת

לוחית אחורית

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

בעת עיצוב זה הקפדנו שהשיניים יישורו זו לזו. אז שני הפריטים נוצרו באותו פרויקט.

שלב 3: קוד

קוד
קוד
קוד
קוד
קוד
קוד

התכנות די פשוטות ומורכבות מ -5 חלקים

  1. הכללת ספריות והתקנת משתנים לשימוש פנימי ו- IO
  2. טען תשומות לרם
  3. Sekvens, בחירת התנועה שאתה רוצה.
  4. בקרת מיקום צעד/סרוו
  5. תפוקה לעולם

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

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

#לִכלוֹל

#לִכלוֹל

const int stepsPerRevolution = 200; // שנה זאת כך שיתאים למספר השלבים לכל מהפכה של המנוע שלך

// אתחל את ספריית המדרגות בפינים 8 עד 11:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); סרוו גריפר; // צור אובייקט סרוו לשליטה בסרוו

הגריפר צריך להתחבר בהגדרת הריק

הגדרת void () {// לאתחל את היציאה הטורית: Serial.begin (9600); Griper.attach (9); // מחבר את הסרוו על סיכה 9 לאובייקט הסרוו

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

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

// ------------------------- קלט ל- RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: בחלק ה- sekvens מהקוד, פשוט עשינו sekvens עם הפקודות Switch ו- case. חלק ה- sekvens פשוט נותן אותות לחלק השליטה במיקום בקוד. ניתן להתאים חלק זה בקלות ליישום שלך או להשתמש כמות שהוא.

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

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

// SP controal X

if (XstepCountXsp ולא דף הבית) {

XstepCount = XstepCount-1; Xstep = -1; XinPos = 0; } אם (XstepCount == Xsp) {Xstep = 0; XinPos = 1; }

5: הוסף את סוף הקוד שהמנועים נשלטים עם פונקציות הליבריי.

// -------------------- פלט ---------------------- // שלב אחד: XStepper.step (Xstep); // שלב שלב אחד: YStepper.step (Ystep);

Griper.write (GripSp);

שלב 4: תוצרת By

casp6099 - קספר הארטונג כריסטנסן

rasm616d - רסמוס הנסן

מוּמלָץ: