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

צריח פורטל 2 - שליטה בצריח ראשי: 9 שלבים (עם תמונות)
צריח פורטל 2 - שליטה בצריח ראשי: 9 שלבים (עם תמונות)

וִידֵאוֹ: צריח פורטל 2 - שליטה בצריח ראשי: 9 שלבים (עם תמונות)

וִידֵאוֹ: צריח פורטל 2 - שליטה בצריח ראשי: 9 שלבים (עם תמונות)
וִידֵאוֹ: Part 02 - Of Human Bondage Audiobook by W. Somerset Maugham (Chs 17-28) 2024, יולי
Anonim
Image
Image

פרויקט זה הוא הרחבה או רמיקס של צריח הפורטל המקורי שלי על מדריכים (פורטל 2-צריח-אקדח). הוא יכול לשמש גם כבקר זול לשליטה בכל דבר שמשתמש בשבב הרדיו nRF24L01. מסך ה- LCD שימושי במיוחד בעת התאמה אישית.

(מסתבר שהוא די שימושי בבדיקה מתי מכשירי הקשר שלי יוצרים ומאבדים חיבורים עם שאר nRF24L01 ב"רשת ". אני יכול להסתובב ולצפות במסך התצוגה המציג את מצב החיבור של מכשירי הרדיו! די מועיל להתאמת הגדרות ואימות. טווח!)

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

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

שליטה ידנית: אז ברגע שהכנפיים פתוחות, הייתי רוצה לשלוט במגרש ובציר. 2 צירים = ג'ויסטיק, אז שליטה בג'ויסטיק וכמה כפתורי לחיצה. לחיצה על כפתור 1 יורה את הצריח, ואולי לחיצה על כפתור 2 תגרום לו לומר אחת מאמרותיו. נשמע טוב! פשוט מספיק…

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

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

שלב 1: שילוב הרדיו בצריחים

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

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

שלב 2: (מחדש) חיווט של הצריחים

(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים
(מחדש) חיווט הצריחים

או - או…

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

למי שרוצה ליצור "צריח רדיו" וכבר בנה את הדור הקודם … מצטער …

עכשיו, ביצעתי את השינוי הזה כמה פעמים ומסתבר שהתהליך לא רע. זה אמנם כרוך בחזרה, אבל הצלחתי לבטל את החיבורים הקיימים לננו ולאחר מכן להתחבר מחדש לפינים המתאימים בלי יותר מדי צער. הוספתי את 7 החוטים לשבב הרדיו ל- nRF24L01 (5 חוטי comm, 3v ו- GND), ואז חיברתי את הקצוות האחרים ל- Nano.

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

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

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

שלב 3: רכיבי חשמל MTC

רכיבי חשמל MTC
רכיבי חשמל MTC
רכיבי חשמל MTC
רכיבי חשמל MTC
רכיבי חשמל MTC
רכיבי חשמל MTC

לאחר סידור הצריחים, הגיע הזמן לעשות MTC.

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

  • Arduino Nano 0.96”LCD, (SSD1306) השתמשתי בגרסה הכחולה/צהובה
  • ג'ויסטיק קטן (HW-504) מודול ג'ויסטיק 5V PS
  • מתג החלפה (dx-004) 22 מ"מ * 13 מ"מ
  • רדיו - (nRF24L01)
  • כפתורי 12 מ"מ (CLT1088 לכפתורים צבעוניים, PBS-33B לשחור)
  • ברגים 2 מ"מ (סט ברגים להברקה עצמית, מבחר ראש ראש פאן).
  • נוריות 5 מ"מ לבחירתך עבור אינדיקטורים. (אל תשתמש בנורות בהירות !!)
  • מחבר סוללה 9V כללי עם צמות
  • סוללת 9V (השתמש במכשיר טוב אחד, לא אחד מזן החנויות של הדולר שלא תמיד יכול לספק מספיק כוח לפרויקטים האלה!)
  • השתמשתי בחוט כרוך בסיליקון. אני אוהב להשתמש בו לפרויקטים האלה.

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

שלב 4: חלקים מודפסים בתלת מימד

חלקים מודפסים בתלת מימד
חלקים מודפסים בתלת מימד
חלקים מודפסים בתלת מימד
חלקים מודפסים בתלת מימד
חלקים מודפסים בתלת מימד
חלקים מודפסים בתלת מימד

עיצבתי את ה- MTC באמצעות פיוז'ן, בדומה לאופן שבו עשיתי את עיצוב הצריח.

המכלול המודפס דורש רק 3 חלקים:

  • פאנל עליון (גרסה 1 או 2)
  • דיור תחתון
  • רצועת LCD

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

הג'ויסטיק ותצוגת ה- LCD צריכים ברגים של 2 מ"מ (אורך 5 מ"מ) כדי להחזיק אותם בצלחת העליונה. ללוח הג'ויסטיק יש חורים גדולים, אז הרגשתי שאני צריך מכונות כביסה קטנות כדי לוודא שהברגים לא ימשכו.

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

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

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

מכיוון שכל החיווט מתבצע על הצלחת העליונה, החלק התחתון הוא למעשה רק מכסה המוחזק לצלחת העליונה עם ברגים ארוכים יותר של 2 מ מ (כמות: 4).

במקום אפשרות "דלת סוללה", פשוט שילבתי את הסוללה בצלחת העליונה. המשמעות היא הסרת 4 הברגים שמחזיקים את החלק התחתון למעלה כדי להחליף סוללה, אך מכיוון שניתן להפעיל אותו גם באמצעות כבל USB, לא סוף העולם. הצלחת העליונה עשויה עם מערכת מחזיקי סוללות 9V שאמורה להיות מספיק יציבה לשימוש חוזר, אינה מסובכת מדי אך מונעת מהסוללה לנוע.

הדפסתי את הצלחת העליונה בשני צבעים כפי שניתן לראות בתמונות. אני משתמש ב- Prusa i3 Mk2 ללא האפשרות הרב צבעונית, אך משתמש בכלי ההדפסה הצבעונית שלהם (https://www.prusaprinters.org/color-print/) כדי לשנות את הצבע באמצע התהליך. בדוק את השכבה שהטקסט עוצר והופך להיות מוצק, והפוך אותה לשכבת המעבר. וואלה! טקסט צבעוני!

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

שלב 5: הרכבה חשמלית

הרכבה חשמלית
הרכבה חשמלית
הרכבה חשמלית
הרכבה חשמלית
הרכבה חשמלית
הרכבה חשמלית
הרכבה חשמלית
הרכבה חשמלית

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

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

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

שלב 6: קוד

קוד עבור MTC, צריח אדום, צריח לבן וצריח כחול עכשיו למעלה

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

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

כללתי את הקוד "צריח w רדיו אופציה" המתאים במבנה הזה, כשהם עובדים יחד. בניית צריח אופציות הרדיו לדף בניית הצריח יהפוך אותו מוכן לשימוש עם ה- MTC, או לשיטת הבקרה האחרת שלך nRF24L01.

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

שלב 7: תפריט MTC - ניווט

תפריט MTC - ניווט
תפריט MTC - ניווט
תפריט MTC - ניווט
תפריט MTC - ניווט
תפריט MTC - ניווט
תפריט MTC - ניווט

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

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

כל הצריחים המחוברים באופן פעיל חייבים להיות במצב "מוכן" לפני שה- MTC יוכל לשלוט בצריחים.

השתמש בג'ויסטיק (למעלה ולמטה) כדי לעבור בין אפשרויות התפריט:

  • אַריָה
  • לְשׂוֹחֵחַ
  • מדריך ל

בחר באפשרות הרצויה באמצעות כפתור 'X', או על ידי לחיצה על הג'ויסטיק כלפי מטה.

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

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

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

לחיצה על כפתור '<' או חזרה תבטל את שלושת המצבים הללו, תסגור את הצריחים ותחזור לתפריט הראשי.

אם ברצונך לראות את מצב החיבור של נחיל הצריחים שלך (מוגבל כרגע ל -3), לחץ על כפתור 'T' בתפריט הראשי. תועבר למסך "סטטוס צריח", שם תוכל לראות את מצב החיבור של כל צריח.

כאשר אתה נמצא במסך "סטטוס צריח", תראה את הסטטוס של כל צריח.

  • מוכן - מוכן לשליטה
  • עסוק - צריח עסוק בל"טפל "במישהו
  • לא זמין - MTC לא יכול להתחבר לצריח הזה

לחץ על הלחצן '<' כדי לחזור לתפריט הראשי.

שלב 8: התאמה אישית של הקוד

התאמה אישית של הקוד
התאמה אישית של הקוד

צילום המסך המוצג כאן מראה על מה בוהה זמן רב מדי … 4 סקיצות בכל פעם! מי אמר שניפוי באגים זה לא כיף!

הקוד מספק את השליטה והאפשרויות המוצגות למעלה, אך מה לגבי התאמה אישית של הקוד?

כמובן! אבל יש כאן כמות לא מבוטלת, אז הנה כמה הנחיות או טיפים.

טיפ 1 - שינוי רצף "צ'אט". שינוי זה מתרחש בקוד הצריח.

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

שינוי רצף הצ'אט באמצעות מבנה הקידוד המסופק יכול להתבצע בצורה די פשוטה, בתנאי שתבצע את השיטה הנהוגה בקוד. באמצעות קובצי הקול המסופקים, ממשחק פורטל 2, יהיה עליך לשנות רק את הטבלה (chatSayings ).

בחר את הפתגם לצריח הרגיל או לצריח הפגום. האמרה היא קובץ ה- mp3 המזוהה על ידי "00XX -" ואחריו טקסט המתאר את האמירה. המספר הוא החלק החשוב. צריח מס '1 ישתמש בערך XX זה בטבלה. צריח מס '2 יקדם את ערך ה- XX ב-' 1 ', והצריח מספר 3 יקדם את ערך ה- XX ב-' 2 '. כך, למשל, אם היית בוחר את הביטוי "0040 - סליחה", והיית רוצה שצריח מס '3 יאמר זאת, היית מחדיר "240" לטבלה ברצף הנכון. אם הצריח מספר 1 היה אומר זאת, היית מחדיר "40" לשולחן.

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

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

אם (i> = 43) {// סוף הרצף

הערך של i כאן יצטרך להיות מוגדר למספר האמרות בטבלת chatSayings.

כדי לומר אמירות מותאמות לחלוטין, (היכן שהכיף האמיתי מתחיל!), יהיה עליך להגדיר את הביטויים בקבצים ממוספרים ולדעת את משך הזמן הדרוש להפעלת הקובץ. שמור את הקובץ בתיקיית "mp3" בספריית השורש של כרטיס ה- SD בשיטת ארבע הספרות ("0001", "0002" וכו '). לאחר מכן רשום את הזמן באלפיות השנייה שלוקח לקובץ ההפעלה. הכנס ערכים אלה בטבלה המתאימה.

אז לביטוי שנשמר בשם "0037 - [הביטוי שלך]", שלוקח 5400 אלפיות השנייה, היית שם '37' בטבלת chatSayings במיקום המתאים (ומוסיף את הקידומת בהתאם לצריח שאומר it) ו- 5400 בטבלת NormaTimings באותו מיקום (כגון פריט חמישי בכל טבלה).

כעת, כאשר הערך של 'i' עולה, הקוד ישמיע 0037 במשך 5400 אלפיות השנייה.

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

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

המשמעות היא שאתה יכול להתמקד בכתיבת תסריט במקום קידוד!

אם למישהו יש דרך טובה יותר לעשות זאת, אשמח לשמוע !!

שלב 9: סיכום

סיכום
סיכום

אז זה לקח יותר זמן ממה שחשבתי, אבל אני די מדגדג מהתוצאה. חלק משגרת הצ'אט עדיין מצחיקות אותי!

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

אשמח גם לראות רעיונות אחרים המשולבים ב- MTC ובשליטה על הצריחים!

אני מקווה שסיפקתי פלטפורמה למעצבים ומתקנים אחרים לשימוש / גניבה / למידה. יכולתי לראות שזה משמש כדי לעזור לאנשים ללמוד לקודד. הסר קטע מה- MTC ו/או הצריח, כמו "מצב ידני" למשל, וגרם לתלמידים לפתח דרך משלהם לשלב שליטה ידנית!

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

בהצלחה ותהנה בבניית צבא צריחים משלך!

מוּמלָץ: