תוכן עניינים:
וִידֵאוֹ: רובוט ארדואינו אוטו עם מכונת מדינה: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
סקירת פרוייקט
בפרויקט זה, אני רוצה להראות לך דרך לתכנת את רובו אוטו, שהוא רובוט 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
מוּמלָץ:
אוטו רובוט: 11 שלבים
אוטו רובוט: Nano ATmega328 Nano Shield I/OMini כבל USB מיני -סרוו SG -SR044 ברגים קטנים זמזם 5V (אם יש לך מארז סוללה עם מתג הדלקה וכיבוי, אין צורך במתג) מחברי כבלים נקבה -נקבה 4 מארז סוללות AA4 סוללות AA קטנות
מכונת מדינה על ארדואינו - רמזור להולכי רגל: 6 שלבים (עם תמונות)
מכונת מדינות בארדואינו - רמזור להולכי רגל: היי, אני הולך להראות לכם כיצד לתכנת רמזור להולכי רגל עבור ארדואינו ב- C ++ באמצעות מכונת מדינה סופית באמצעות YAKINDU Statechart Tools. זה יוכיח את העוצמה של מכונות מדינה ויכול לשמש כתוכנית להמשך
מכונת מדינה ורב משימות בארדואינו עם מרחיבי SPI: 3 שלבים
מכונת מדינה ורב -משימות בארדואינו עם מרחיבי SPI: בשבוע שעבר ביקשתי ליצור מערכת לניווט זיקוקים עם ארדואינו. זה היה צריך כ -64 יציאות כדי לשלוט בשריפות. אחת הדרכים לעשות זאת היא להשתמש במרחיבי IC. אז 2 פתרונות זמינים:- מרחיב I2C אך הוא זקוק למהפך כאשר אתה עושה
Arduino PLC 32 קלט/פלט+מכונת מדינה+SCADA או HMI: 8 שלבים
Arduino PLC 32 I/O+State Machine+SCADA או HMI: דרכים רבות לתכנת, לשלוט ולפקח על מערכת תעשייתית עם arduino
[רובוט ארדואינו] כיצד ליצור רובוט לכידת תנועה - רובוט אגודל - מנוע סרוו - קוד מקור: 26 שלבים (עם תמונות)
[רובוט ארדואינו] כיצד ליצור רובוט לכידת תנועה | רובוט אגודל | מנוע סרוו | קוד מקור: רובוט אגודל. השתמש בפוטנציומטר של מנוע סרוו MG90S. זה מאוד כיף וקל! הקוד פשוט מאוד. זה בסביבות 30 קווים בלבד. זה נראה כמו לכידת תנועה. אנא השאר כל שאלה או משוב! [הוראה] קוד מקור https: //github.c