תוכן עניינים:
- שלב 1: שיפוצים
- שלב 2: תצוגת מזומנים של הסוחר
- שלב 3: מתווה התוכנית
- שלב 4: קוד תקשורת ראשי
- שלב 5: קוד ווידיאו סופי
וִידֵאוֹ: הדרכה להרכבת AVR 11: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
ברוכים הבאים לשיעור 11!
במדריך קצר זה, סוף סוף אנו הולכים לבנות את החלק הראשון של פרויקט הגמר שלנו.
הדבר הראשון שעליך לעשות הוא לעבור לשלב האחרון של הדרכה זו ולצפות בסרטון. ואז תחזור לכאן. [עוצר בזמן שאתה עושה את זה …] בסדר. עכשיו המשך.
אם עוד לא ניחשתם, אנחנו בונים משחק Craps! כמובן, רק בגלל שאני בונה משחק craps בהחלט לא אומר שאתה צריך. אני מקווה שזה מובן מאליו. בכל מקרה כדאי להשתמש במיקרו -בקרים לשליטה בתצוגות מפולחות וכו ', ולתקשר אחד עם השני - זה מה שאנחנו עושים כאן בעיקר. אתה יכול לכתוב קוד כדי להשתמש בהם בכל דרך שאתה אוהב. לעת עתה אני הולך לקודד אותם לשחק craps למרות שאולי אחליט מאוחר יותר לתכנן מחדש את התצוגות המפולחות כדי לעשות משהו אחר.
הסיבה שאני בונה את זה היא כי אני חושב שבסופו של דבר אולי ארצה שולחן מאפים וגאס בגודל מלא ב"מערת הגבר "שלי במרתף ביתי. עם זאת, לאף אחד מהחברים שלי אין מושג איך להתמודד, להבקיע או לשלם על הימורים והטלות. אז הבנתי שיהיה מגניב שהשולחן יעשה עבורנו את כל הסוחר! כאשר אנו מציבים הימור על השולחן נוכל גם ללחוץ על כפתור לחיצה קטן ליד הריבוע שהצ'יפס שלנו מראים כמה מונח שם, ואז המיקרו -בקר יכול לחשב את התשלום עבור אותו ריבוע לאחר הטלת הקוביות ולהציג אותו. אני עדיין לא ממש בטוח איך אני מארגן את ההיבט הזה. מחשבה אחת שהייתה לי היא שכל אדם יתבקש לבצע את כל ההימורים שלו בתורו, כך שהבקר ירשום היכן הכסף של כל אדם לפני הקלטת השחקן הבא וכן הלאה. לאחר מכן, לאחר הגליל, המחשב יכול להציג את התשלומים על כל ריבוע ויכול גם לשמור על סך כל המזומנים עבור כל שחקן.
לאחת מתמונות הכריכה של הדרכה זו פשוט הייתי צריך להשתמש בתמונה שלי מושכת 5 אסים לשולחן הפוקר בווגאס הקיץ. חחח. תפנק אותי.
להלן קישור לאוסף השלם של מדריכי הרכבת AVR שלי:
שלב 1: שיפוצים
במדריך זה נבנה רק את החלק הפשוט ביותר במשחק ה- Craps האחרון. זה נקרא "The Pass Line" ואתה יכול להמר עליו. אתה יכול ללמוד כל מה שאתה צריך לדעת על החלק "קו המעבר" של המשחק על ידי צפייה בסרטון ההדרכה הקצר של 2 דקות שצירפתי לשלב זה.
נבנה תצוגה נוספת בת ארבע ספרות שתעקוב אחר הכסף של הדילר באותו אופן שבו התצוגה הנוכחית בת 4 הספרות שלנו עוקבת אחר הכסף של השחקן. הדילר יתחיל עם $ 20 והשחקן יתחיל עם $ 20 (סך הכסף האפשרי במשחק הוא $ 9999-המקסימום של התצוגות בן 4 הספרות שלנו, אך נזדקק רק $ 20 עבור החלק הראשון של המשחק או אחרת יהיה מייגע בקיצוניות וקשה לנצח או להפסיד בזמן הגון). אם השחקן לוקח את כל כספי הדילר, השחקן מנצח. אם השחקן מאבד את כל כספו אז הדילר מנצח.
איך אתה מנצח או מפסיד כסף? ובכן, מי מכם ששיחקו ב- Craps, ראו אנשים "יורים בקוביות" ברחוב, או ראו אותו משחק נגד הקזינו בווגאס, כבר יידעו. עבור כולכם, הרשו לי לתת לכם תיאור קצר של חלק "קו המעבר" של המשחק אותו נקודד היום.
Craps שיחק במשך מאות שנים, עוד מתקופת מסעי הצלב. הוא שיחק על ידי חיילים בשוחות של מלחמת העולם השנייה, הוא שיחק ברחובות, הוא שיחק בבתי קזינו ובאולמות הימורים. זה התחיל רק בקו המעבר וכל שאר הדברים נוספו אליו מאוחר יותר. אנו נעקוב אחר אותה התקדמות.
הדרך שבה קו המעבר עובד היא כזו. אתה מבצע הימור ואז אתה מגלגל את הקוביות. הגליל הראשון נקרא "גליל החוצה". אם אתה מקבל 2 (עיני נחש), 3 (אייס דוס), או 12 (מכוניות קופסאות) בגלילת היציאה, אתה מאבד את ההימור שלך וזה נקרא "קשקושים". אם אתה מגלגל 7 (טבעי) או 11 (יו, או יו-חיים) אתה מנצח. אם אתה מגלגל מספר אחר כלשהו מספר זה הופך ל"נקודה "שלך. לאחר קביעת "נקודה" אתה ממשיך לגלגל את הקוביות במטרה להכות את הנקודה שוב לפני זריקת 7. אם אתה מקבל את הנקודה שלך לפני זריקה של 7 אתה מרוויח אפילו כסף. אז הימור בדולר זוכה בדולר מהדילר. אם אתה מקבל 7 לפני שהנקודה שלך מתגלגלת, זה נקרא "שבעה בחוץ" ואתה מפסיד את ההימור לדילר.
אחרי זה אתה מתחיל מחדש. הניחו הימור על קו המעבר וגלו את הקוביות, 7 או 11 ניצחונות, 2, 3 או 12 הפסדים.
ישנם עוד הרבה סוגים של הימורים, "אל תעבור", "העברת סיכויים", "אל תעביר סיכויים", "בוא הימור", "אל תבוא הימור", "שדה", "קרן", " דרכים קשות ", וכו 'וכו' וכו 'תוכל למצוא פרטים כאן:
en.wikipedia.org/wiki/Craps
כפי שאמרתי למעלה, לעת עתה, נקודד רק את החלק בקו העובר של המשחק שזה כל מה שהיה להם עוד היום כשהילדים זרקו קוביות על הקיר בשביל כסף הצהריים אחד של השני ולכן כאן נתחיל.
עם זאת, לפני שנתחיל לקודד דברים, אפשר לבנות את תצוגת המזומנים של הסוחר. לשם כך, אני רוצה להשתמש באחד מתצוגות ה -4 ספרות הגדולות יותר שתוכל להשיג מ- Sparkfun או במקומות אחרים. מעתה והלאה אני לא מתכוון לרשום חומרים במדריכים אלה. אם בעצם בנית הכל יחד איתי אז אתה כבר יודע מאיפה להשיג את החומרים ומה הם. אין טעם לי לרשום אותם או כמה הם עולים.
אז בואו לתפוס את אחד מלוחות האב טיפוס שלנו, תצוגה גדולה בת 4 ספרות, עוד ATmega328p לשליטה בתצוגה הזו, ולבנות אותה כמו שעשינו עם גלגלת הקוביות ותצוגת השחקנים לפני כן. כמו כן, נצרף כותרות לכוח חשמל, לתכנות ולתקשורת TWI בדיוק כמו האחרים.
שלב 2: תצוגת מזומנים של הסוחר
אנו בונים את תצוגת הסוחר בדיוק כפי שעשינו עם תצוגת ה -4 ספרות של השחקן במדריך האחרון. ההבדלים היחידים הם שהוא גדול יותר, ויש לו פחות סיכות, אז אנחנו נסדר אותו וחיווט אותו אחרת.
צירפתי תמונה של החיווט של התצוגה הזו. אתה יכול לראות שהוא גדול יותר וכולל פחות סיכות מאשר תצוגת הקופה שלנו. התמונה היא מהדף sparkfun שבו קיבלתי את התצוגה והוא מראה אילו סיכות הן כוח לכל ספרה ואילו סיכות שולטות בכל אחד מהקטעים בספרה.
כרגיל, עליך להתחיל בחיבור התצוגה ללוח הלוח -אב הטיפוס שלך ולבדוק כל קטע כדי להיות בטוח שאתה מבין כיצד הוא מחובר. לאחר מכן עליך לחבר אותו לסיכות של מיקרו -בקר AVR בלוח הלחם שלך ולהפעיל אותו משם עד שכל הקוד שלנו יפעל במדריך זה. לבסוף, בסופו של דבר, עליך לבנות את הלוח החיצוני ולהלחם אותו. לאחר מכן, כאשר תבדוק את המוצר הסופי תדע שכל הבעיות נובעות מעבודת ההלחמה והחיתוך שלך ולא מהקוד. כמו כן, אל תשכח את האקסיומה הידועה מהנגרות "למדוד פעמיים ולחתוך פעם אחת", או במקרה של ייצור לוחות מעגל: "לחתוך פעמיים, להלחם פעם אחת". כפי שאתה יכול לראות בתמונה, סוף סוף נשברתי וקניתי את המצורף המושלם של Dremel לעבודות מסוג זה. "סט נקודת יהלום". זה עלה 5 דולרים אבל זה הרבה פחות מהעלות של טיפול בכעס לניהול כעסים שמגיע עם הפעלת עבודת החיתוך שלי יותר מדי פעמים ברציפות.
אני משתמש בנגדים של 330 אוהם לתצוגה זו. סיכות ה- COM עוברות דרך הנגד ל- GND והעוצמה עוברת לאיזה קטע שתרצו להציג. אני הולך להשתמש PC0 דרך PC3 עבור סיכות COM ו- PB0, PB1, PB2, PB3, PB4, PD5, PD6 ו- PD7 עבור הקטעים.
להלן המפתח למקסם את הסיכויים לתקן אותו:
- למפות את המעגל
- לחתוך את המעגל
- בדוק את החיווט שלך
- חבר את הנגדים, הכובעים ומתנד הקריסטל
- בדוק שוב את החיבורים והחיווט
- חבר את החוטים החיצוניים
- חבר את המיקרו -בקר
- בדוק שוב את החיווט
- צרף את התצוגה בת 4 הספרות
- בדוק כל ספרה עם זוג חוטים מלוח הלחם
- שים אותו בצד וכתוב את הקוד בידיעה שכנראה תצטרך לצבוט דברים מאוחר יותר ובתקווה שלא הסתרת חיבור שצריך לנתק.
הצגתי סדרת תמונות של עבודת החיווט שלי. אנא הבין שאתה חופשי לחבר את שלך בכל דרך שתרצה. סביר מאוד שתוכלו למצוא מפה טובה יותר ממני וכדאי שתשתמשו בה. שום דבר במדריכים אלה אינו תלוי ברכיבים המחוברים שלך, כל עוד יש להם את יציאות הפלט הנכונות. מה שמזכיר לי. שים לב שעכשיו שני כותרות נוסעות ל- SDA ושתי הולכות ל- SCL? למה אתה מניח שעשינו את זה?
כעת, כפי שניתן לראות בקוד המצורף בסוף ההדרכה פשוט גזרתי והדבקתי את הקוד מתצוגת הנגן של ההדרכה האחרונה לקובץ חדש לתצוגת הדילר. אחר כך עברתי ושיניתי את טבלת החיפוש "פלחים" כך שתתאים למפת הסיכות החדשה וציינה כי לתצוגה זו סיכות ה"קום "נטחנות וסיכות הקטע הן 5V במקום להיפך כפי שהיה לתצוגה השנייה.. שיניתי גם אתחול היציאות כדי לשקף את החיווט החדש, שיניתי את הכתובת של תצוגת הקופה ל 0b1000000 כך שגלגל הקוביות יוכל לדבר איתו, שיניתי את תת התוכנית "מחזור" כך שהיא תכבה את PC0 דרך PC3 "com" סיכות כאשר הוא רוצה להפעיל קטע מסוים ושיניתי את ה"ספרה "שתוצג מכיוון שהחיווט החדש כולל את הספרות בסדר ההפוך (אם השארת אותו כפי שהיית וניסית להציג אותו 1234 היה מופיע כ- 4321 במקום זאת).
להלן מפת הרישום החדשה:
(PD7, PD6, PD5, PB4, PB3, PB2, PB1, PB0) = (נקודה עשרונית, c, g, b, f, a, e, d)
כאשר 1 פועל ו- 0 כבוי.
עכשיו בדוק את התצוגה על ידי הגדרת תחילה את הערך המאתחל של המסך למספרים שונים כך שכאשר הוא נדלק הוא יראה אותם. זה יגיד לך אם הכל עובד כמו שצריך.
לאחר מכן שנה את קוד ה- diceroller כך שישתמש בכתובת החדשה עבור העבד, חבר אותם יחד והפעל אותו. זה אמור להתנהג בדיוק כמו שעשינו במדריך האחרון, פרט לכך שגלילות הקוביות מופיעות כעת בתצוגה החדשה.
גדול! כעת אנו מוכנים לכתוב את קוד גליל הקוביות החדש כך שהוא מתקשר הן עם תצוגת השחקן והן עם תצוגת הדילר.
שלב 3: מתווה התוכנית
הדרך שבה הקוד יעבוד למשחק שלנו היא שנשמור את גלגלת הקוביות כאדון ונוסיף את תצוגת הדילר כעבד נוסף. גלגלת הקוביות תשלוט במשחק והיא תשלח את השינויים המתקבלים במזומן לדילר ולשחקן מוצג לאחר כל זריקה. לעת עתה, יהיה לנו רק שההימור על קו המעבר יהיה 10 $ בכל פעם, כך שלא נצטרך להסתבך יותר מדי עם השחקן שישנה את ההימור שלו. מאוחר יותר, לאחר שהמכניקות יפעלו, נוסיף בקר אחר שיהווה מאסטר נוסף שישלוט על ההימורים והתשלומים וגלגל הקוביות שלנו יישאר אמן אך משמש רק להטלת הקוביות. זה יאפשר לנו להיכנס לבוררות TWI, התנגשויות והיבטים חשובים אחרים של תקשורת סדרתית כשיש לכם מספר אדונים ועבדים. כמו כן, נוסיף מספר תצוגות חד-ספרתיות בודדות עם תחתיהם כפתורי לחיצה שיאפשרו לנו להמר על סוגים אחרים של לחמניות, אך כל זה יגיע בהדרכות עתידיות. לעת עתה, אנחנו רק רוצים את גלגל הקוביות כאדון, ושני התצוגות כעבדים. כאשר נלחץ על הכפתור, הקוד יחליט אם לשלם טבע, לקחת כסף מאשכולות, או להסתעף לסדרת לחמניות "נקודה" עד ניצחון או שבעה אאוט.
בואו נכתוב תחילה את שגרת העבדים. אלה פשוטים בכך שכל מה שהם יעשו הוא לצפות בשורת ה- SDA של כתובתם, אם יתקשרו אליהם הם יקראו את המספר החדש להצגה ויציגו אותו. זה הכל! הם אפילו לא צריכים לדבר בחזרה עם המאסטר מכיוון שהמאסטר יעקוב אחר הסיכומים שלהם ויבצע את כל חישובי התשלום לפני שתעדכן אותם. בהדרכות הבאות יהיו לנו עבדים שיכתבו למאסטר (למשל כאשר יהיו לנו תצוגות חד-ספרתיות בעלות 7 ספרות עם כפתורי לחיצה על סכום ההימור, יהיה עליהם לספר למאסטר כמה הימורים על כל תצוגה וכך נזכה פנה אליהם עם כתובת + קריאת קריאה עם המאסטר ב"מצב מקלט ראשי ") אך נגיע לזה בזמן הנכון.
לעת עתה הכל מופעל על ידי לחיצת כפתור הטלת קוביות ואחריה חישוב או לחיצות כפתור נוספות ולבסוף הודעה לכל אחד מהתצוגות עם הסיכומים החדשים שלהם. לאחר כל תשלום יתקיים מבחן כדי לקבוע אם השחקן זכה או הפסיד, במילים אחרות, אם מזומנו של הדילר הופך לאפס לאחר גלגול, או אם מזומן השחקן הופך לאפס לאחר גלגול (לא הדילר או השחקן יכול להיות שלילי מכיוון שהם יורשו להמר רק 10 $ או כל מה שנותר אם זה פחות מ 10 $).
אז ככה זה הולך לעבוד. בואו לקבל קידוד.
שלב 4: קוד תקשורת ראשי
כעת נוכל לכתוב את שגרת התקשורת של גלגל הקוביות. הוא גם כמעט זהה לזה שכתבנו בפעם הקודמת פרט לכך שנתקשר עם שני עבדים שונים ולא רק עם אחד. שימו לב שלכל אחד מהעבדים אנו משתמשים בכתובת אחרת. עליך לשנות את הקוד בעצמך ולאחר מכן פשוט לבדוק אותו עם כל כתובת ולוודא שהוא פועל בדיוק כמו ההדרכה האחרונה למעט עם כל תצוגה נפרדת.
אני אצרף את הקוד לכל רכיב שפשוט מציג את תוצאת הגליל כך שניתן יהיה להשתמש בו כדי לגרום לתצוגות לפעול כראוי ולבדוק את החיווט.
קידוד המשחק אינו מציג דבר חדש בכל הנוגע לפקודות שפת הרכבה או רכיבי מיקרו-בקר AVR ולכן אני לא מרגיש שאני צריך לעבור עליו שורה אחר שורה. בטח שמתם לב שכאשר אנו מציגים משהו חדש אני עובר בכל שורה לפרטי פרטים עד כדי להרגיז אתכם אם לא מרדים אתכם. מצד שני אני לא אעשה את זה אם לא יציג שום דבר חדש. זה המצב היום. אז אני חושב שאתה מוכן עכשיו לשחק עם הקוד, לקרוא את הקוד, לנתח את הקוד, להבין את הקוד, לבקר את הקוד, ללעוג על הקוד ולצחוק על הבחור שכתב את הקוד. אז אני אתן לך להמשיך ולעשות את זה. כמעט בטוח שתמצא מקומות רבים בהם תוכל לשפר או לפחות לפשט את מה שכתבתי.
צירפתי, כרגיל, את הגרסה הסופית של הקוד לשתי התצוגות ולמכשיר בשלב הבא יחד עם סרטון איך אני בודק את הדבר.
שלב 5: קוד ווידיאו סופי
צירפתי את הסרטון ואת 3 התוכניות. תוכל להבחין כי אתה יכול לתקן את ההימור ואת הסוחר המתחיל ואת המזומן השחקן בראש התוכנית עם הצהרות.equ.
במדריך הבא נוסיף את היכולת להמר על דברים שונים שיהפכו את המשחק למרגש יותר. הדבר המעניין בקראפס המודרני הוא שיש לך המון דרכים שונות להמר ולנסות למקסם את הסיכויים שלך. למעשה, Craps הוא משחק הסיכויים הגבוה ביותר בקזינו! … אם אתה יודע איך לשחק את זה. מצד שני, אם אתה לא יודע לשחק אז זה הופך לאחד ממשחקי הסיכויים הנמוכים ביותר.
ברגע שיהיו לנו עוד דברים להמר על הכסף שלנו אז אגדיל את סכום הכסף הכולל במשחק.
אני אמור להיות כיף!
נתראה בפעם הבאה!
מוּמלָץ:
הדרכה להרכבת AVR 2: 4 שלבים
הדרכה להרכבת AVR 2: הדרכה זו היא המשך של " AVR Assembler Tutorial 1 " אם לא עברת את הדרכה 1 עליך לעצור כעת ולעשות זאת תחילה. במדריך זה נמשיך במחקר שלנו על תכנות שפת הרכבה של atmega328p u
הדרכה להרכבת AVR 6: 3 שלבים
הדרכה להרכבת AVR Assembler 6: ברוכים הבאים למדריך 6! ההדרכה של היום תהיה קצרה בה נפתח שיטה פשוטה להעברת נתונים בין atmega328p אחד למשנהו באמצעות שתי יציאות המחברות ביניהן. לאחר מכן ניקח את גלגלת הקוביות משיעור 4 והרשם
הדרכה להרכבת AVR 8: 4 שלבים
הדרכה להרכבת AVR 8: ברוכים הבאים למדריך 8! במדריך קצר זה אנו הולכים לקחת קצת הסחה מהצגת היבטים חדשים של תכנות שפת הרכבה כדי להראות כיצד להעביר את רכיבי האב טיפוס שלנו ל " מודפס " לוח מגעים. ה
הדרכה להרכבת AVR 7: 12 שלבים
מדריך הרכבה AVR Assembler 7: ברוכים הבאים למדריך 7! היום אנו הולכים להראות תחילה כיצד לסנן לוח מקשים ולאחר מכן להראות כיצד להשתמש ביציאות הקלט האנלוגיות לתקשורת עם לוח המקשים. נעשה זאת באמצעות הפרעות וחוט יחיד כמו קֶלֶט. אנו נחווט את לוח המקשים כך ש
הדרכה להרכבת AVR 9: 7 שלבים
הדרכה למרכיבי AVR 9: ברוכים הבאים למדריך 9. היום נראה כיצד לשלוט על תצוגה בת 7 קטעים ותצוגה בת 4 ספרות באמצעות קוד השפה ATmega328P ו- AVR שלנו. במהלך פעולה זו נצטרך לקחת הסחות דעת כיצד להשתמש בערימה