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

רובוט ארדואינו אוטו עם מכונת מדינה: 4 שלבים
רובוט ארדואינו אוטו עם מכונת מדינה: 4 שלבים

וִידֵאוֹ: רובוט ארדואינו אוטו עם מכונת מדינה: 4 שלבים

וִידֵאוֹ: רובוט ארדואינו אוטו עם מכונת מדינה: 4 שלבים
וִידֵאוֹ: בקרת תהליכים ממוחשבת - בקרת מוכנות ארדוינו, חלק ב | הנדסת מכונות לכיתות י,יא,יב 2024, נוֹבֶמבֶּר
Anonim
Image
Image

סקירת פרוייקט

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

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

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

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

אספקה

אוטו רובוט או זובי רובוט

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

כלי סטטרט של YAKINDU

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

Eclipse C ++ IDE עבור תוסף Arduino

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

שלב 1: הגדרת הכל

הבנת אופן הממשק של אוטו
הבנת אופן הממשק של אוטו

לאחר התקנת ה- IDE, הפעל אותו והגדר סביבת עבודה בכל מקום במחשב (ההתקנה זהה לשימוש בפעם הראשונה ב- Eclipse). כאשר התוכנית החלה במלואה, לחץ על דף הפתיחה ולחץ על 'קובץ -> חדש -> דוגמה …' ולאחר מכן בחר 'דוגמאות YAKINDU Statechart', המתן מעט וחפש את "מערכות משובצות -> זווי (C ++)" דוגמא.

חשוב: לחץ על הלחצן הימני העליון בשם 'התקן תלות …'! זה מתקין הכל בשבילך, כך שאתה לא צריך לדאוג לספריות, תוספים וכדומה. הורד את הדוגמה, עקוב אחר ההוראות בדוגמה "מערכות משובצות -> זווי (C ++)" ולאחר מכן המשך בשלב הבא.

שלב 2: הבנת אופן הממשק של אוטו

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

בתמונה, אתה יכול לראות שכתבתי כמה דברים על המעברים; ה- "after X s" די מסביר את עצמו וה"תמיד "רק אומר שהוא מגיע לשם מיד לאחר סיום הקוד מהמדינה. המשמעות של "ערך /" היא שצריך לבצע את הקוד מיד לאחר הכניסה למדינה.

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

ניתן להשתמש במילות המפתח הבאות להגדרת דברים לשימוש מכונת המדינה:

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

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

פעולות, שייווצרו לשיטות וירטואליות C ++ ליישום

מִמְשָׁק:

const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 פעולה zowi_init (YL: שלם, YR: מספר שלם, RL: שלם, RR: שלם) פעולה zowi_home () פעולה zowi_putMouth (mouthType: integer) פעולה zowi_sing (שם שם: שלם) פעולה zowi_walk (שלבים: אמיתי, T: מספר, dir: שלם) פעולה zowi_shakeLeg ()

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

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

שלב 3: מילוי החסר

מילוי החסר
מילוי החסר

לאחר שינוי דברים בדגם תוכל ללחוץ באמצעות לחצן העכבר הימני על "zowiSCT.sgen -> צור קוד חפצי קוד". זה יוצר את הפונקציות הווירטואליות ב- C ++, המוצהרות במכשיר המדינה לתיקיה "src-gen", אותן אנו מיישמים באמצעות C ++ רגיל.

פשוט צור את שני הקבצים האלה בתיקייה "src" כדי לקבל את הפונקציונליות שאנו רוצים מאת אוטו.

ראשית Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); וירטואלי ~ Impl (); void zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); void zowi_home (); void zowi_putMouth (sc_integer mouthType); void zowi_sing (sc_integer songName); void zowi_walk (sc_real steps, sc_integer T, sc_integer dir); void zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

לאחר מכן ה- Impl.cpp

#כלול "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = Zowi new (); Impl:: Impl () {} Impl:: ~ Impl () {} void Impl:: zowi_home () {zowi.home (); } void Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } void Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } void Impl:: zowi_sing (sc_integer songName) {zowi.sing (שם שם); } void Impl:: zowi_walk (sc_real steps, sc_integer T, sc_integer dir) {zowi.walk (צעדים, T, dir); } void Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

שלב 4: ביצוע ריקוד אוטו

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

אם אתה רוצה, אתה יכול לבדוק כמה דוגמאות אחרות: YAKINDU Statechart Tools

מוּמלָץ: