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

Arduino Hangman in Morse: 9 שלבים
Arduino Hangman in Morse: 9 שלבים

וִידֵאוֹ: Arduino Hangman in Morse: 9 שלבים

וִידֵאוֹ: Arduino Hangman in Morse: 9 שלבים
וִידֵאוֹ: Morse Code Converter with arduino 2024, יוני
Anonim
ארדואינו תליין במורס
ארדואינו תליין במורס

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

כל מה שאתה צריך לעקוב אחריו הוא: לוח Arduino. 10 נורות LED חוטים לחיבור הכל. תוספת: אלמנט Piezo (להוספת צליל).

שלב 1: הגדרת נורות ה- LED

הגדרת נורות LED
הגדרת נורות LED

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

שלב 2: הוסף חיישן אור מאולתר

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

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

שלב 3: הוסף את המילון שלך

הוסף את המילון שלך
הוסף את המילון שלך

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

שלב 4: הפוך את האורות לבהירים כברירת מחדל

הפוך את האורות לבהירים כברירת מחדל
הפוך את האורות לבהירים כברירת מחדל
הפוך את האורות לבהירים כברירת מחדל
הפוך את האורות לבהירים כברירת מחדל

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

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

שלב 5: הוספת הקלט

הוספת הקלט
הוספת הקלט

כעת נכתוב את הקוד כדי לבדוק אם השחקן מאיר אור על נורית ה- LED המחוברת ליציאה האנלוגית A0 שלנו, ואם הם מתרגמים אותו לאות הנכונה.

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

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

שלב 6: טיפול בקלט

טיפול בקלט
טיפול בקלט
טיפול בקלט
טיפול בקלט

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

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

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

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

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

שלב 7: הפעלת האותיות הניחשות כראוי

חלוקת האותיות הניחשות כראוי
חלוקת האותיות הניחשות כראוי

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

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

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

שלב 8: סקירת ההתקנה והאיפוס שלנו

סקירת ההתקנה והאיפוס שלנו
סקירת ההתקנה והאיפוס שלנו

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

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

שלב 9: כל המשתנים בתמונה אחת

כל המשתנים בתמונה אחת
כל המשתנים בתמונה אחת

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

עכשיו תהנה לשחק תליין במורס!

מוּמלָץ: