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

מכונת מדינה על ארדואינו - רמזור להולכי רגל: 6 שלבים (עם תמונות)
מכונת מדינה על ארדואינו - רמזור להולכי רגל: 6 שלבים (עם תמונות)

וִידֵאוֹ: מכונת מדינה על ארדואינו - רמזור להולכי רגל: 6 שלבים (עם תמונות)

וִידֵאוֹ: מכונת מדינה על ארדואינו - רמזור להולכי רגל: 6 שלבים (עם תמונות)
וִידֵאוֹ: הרמזור האדום הכי ארוך בעולם 2024, נוֹבֶמבֶּר
Anonim
מכונת מדינה על ארדואינו - רמזור להולכי רגל
מכונת מדינה על ארדואינו - רמזור להולכי רגל

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

אספקה

אתה צריך רק Arduino, כמה לחצנים, נוריות LED, מגשר ונגדים.

חוּמרָה

  • כפתור 2x
  • 2x רמזורים או שאתה יכול להשתמש נוריות עם 220 נגדים אוהם
  • נגדי 2x10k Ohm
  • לוח לחם
  • קַפצָן
  • Arduino Uno/Mega (או כל אחד אחר, שקיבל לפחות 8 GPIO)

תוֹכנָה

  • כלי סטטרט של YAKINDU
  • Eclipse C ++ IDE עבור Arduino

שלב 1: הגדר איך זה עובד: רמזור להולכי רגל

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

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

בנוסף, ישנם כמה אירועי זמן בהתאם לאופן הפעולה של רמזור.

שלב 2: בנה את המעגל

בנה את המעגל
בנה את המעגל

נתחיל בהקמת המעגל. בדוגמה שלי, כפי שאתה יכול לראות בתמונת התצוגה המקדימה, השתמשתי ב- Arduino Mega 2560, אבל כל ארדואינו אחר עם לפחות שמונה GPIO צריך להיות בסדר. בנוסף, קניתי כמה רמזורים 5V באמזון. חפש רק את רמזור ארדואינו. אחרת, אתה יכול פשוט להשתמש בשש נוריות שונות. יתר על כן, אתה צריך שני כפתורי לחיצה ושני נגדי 10k Ohm.

שלוש הנורות השמאליות משמשות לתנועת המכוניות ושלוש הנורות הימניות להולכי הרגל, כאשר הצהוב יכול להצביע על בקשה.

שלב 3: יצירת מכונת המדינה

יצירת מכונת המדינה
יצירת מכונת המדינה

אז, כפי שאתה יכול לראות יש שתי מדינות עיקריות עם חברים מורכבים - מצב מופעל ומצב כבוי. אתה יכול לעבור בין שתי המצבים באמצעות האירוע onOff, המחובר לחצן ON/OFF. במצב ההתחלתי, מצב הכיבוי, שני הנורות הצהובות מתחילות להבהב כל שנייה. לאחר שהרמזור נדלק, הוא מתחיל בבטחה. לאחר 10 שניות יטופל ההתנהגות האופיינית של הרמזורים. הנורית האדומה והצהובה תדלק במצב StreetPrepare והרמזור יהפוך לירוק לאחר 2 שניות נוספות. מכאן והלאה, מכונת המדינה ממתינה לאירוע הבקשה להולכי רגל, המחובר לכפתור השני. לאחר שליחת האירוע הבקשה תסומן על ידי החלפת נורית הצהוב כל שנייה במצב PedWating. 7 שניות לאחר מכן הרמזור יוחלל לצהוב תחילה ולאחר מכן לאדום עד שהולכי הרגל יקבלו את האות ללכת במצב PedestrianGreen. לאחר מכן, PedestrianRed מופעל והמחזור חוזר. ניתן להפריע רק על ידי כיבוי הרמזור שוב.

שלב 4: הפעלת הדוגמא

שלב 5: נוצר קוד C ++

קוד C ++ שנוצר הוא מארז מתג קלאסי להתמודדות עם ההיגיון של מכונת המדינה. זהו רק קטע קוד כיצד הוא נראה:

void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_rea; לשבור; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (נכון); לשבור; } ברירת מחדל: הפסקה; } clearInEvents (); }

שלב 6: קבל את הדוגמה

כל הדוגמה מוכנה להרכבה ולהפעלה. הוא מגיע עם YAKINDU Statechart Tools, שהוא בחינם לשימוש לא מסחרי. לאחר ההורדה, תוכל לייבא את הדוגמה ישירות בכלי:

קובץ -> חדש -> דוגמה -> דוגמאות ל- YAKINDU Statechart -> הבא -> רמזור (C ++) עבור Arduino

> כאן תוכל להוריד את YAKINDU Statechart Tools <<

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

מוּמלָץ: