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

התחל את מופע אור חג המולד שלך עם לחצן: 5 שלבים
התחל את מופע אור חג המולד שלך עם לחצן: 5 שלבים

וִידֵאוֹ: התחל את מופע אור חג המולד שלך עם לחצן: 5 שלבים

וִידֵאוֹ: התחל את מופע אור חג המולד שלך עם לחצן: 5 שלבים
וִידֵאוֹ: 🔴"𝕯𝖔𝖒𝖎𝖓𝖆𝖗 𝖑𝖔𝖘 𝖛𝖊𝖗𝖇𝖔𝖘 𝖎𝖗𝖗𝖊𝖌𝖚𝖑𝖆𝖗𝖊𝖘: ¡𝖑𝖆 𝖌𝖚í𝖆 𝖉𝖊𝖋𝖎𝖓𝖎𝖙𝖎𝖛𝖆 𝖕𝖆𝖗𝖆 𝖈𝖔𝖓𝖖𝖚𝖎𝖘𝖙𝖆𝖗 𝖑𝖆 𝖌𝖗𝖆𝖒á𝖙𝖎𝖈𝖆 𝖎𝖓𝖌𝖑𝖊𝖘𝖆!" 2024, נוֹבֶמבֶּר
Anonim
התחל את מופע האור שלך לחג המולד עם לחצן
התחל את מופע האור שלך לחג המולד עם לחצן

בעת הפעלת מופע אור חג המולד מסונכרן עם מוזיקה, ייתכן שתרצה להתחיל את ההצגה על ידי לחיצה על כפתור. הדרכה זו ישימה רק להצגה הנשלטת באמצעות נגן Falcon Pi (FPP) הפועל ב- Raspberry Pi. אם אתה מפעיל FPP אז אתה כנראה משתמש בבקרי Falcon ומשתמש ב- xLights או LightORama כדי לבצע סדר בתוכנית שלך. אם אף אחת מהמילים האלה לא אומרת לך משהו, סביר להניח שההדרכה הזו קצת מעל הראש כרגע וכדאי שתתחיל לקרוא את הוויקי הזה https://auschristmaslighting.com/wiki/ ולהצטרף לקבוצת פייסבוק כמו להלן

  • xLights:
  • אורות חג המולד מתקדמים כלליים:
  • נגן Falcon Pi:
  • מתחם/שיתוף רעיונות לאביזרים:
  • "לא ספציפית xLights או LOR הקשורים":
  • ספקי xLights Holiday Light:
  • עשה זאת בעצמך חג המולד:

שלב 1: רשימת חלקים

תזדקק לפריטים הבאים:

  • כפתור. השתמשתי בזה עם נורת טבעת LED סביבו: [אמזון]
  • נגד. רצוי 200Ω או יותר (2 כאלו אם אתה משתמש בלחצן LED) תקן 1/4W או 1/8W בסדר
  • חוט מחבר. המד שאתה צריך להשתמש בו תלוי כמה רחוק הכפתור יהיה מהפי שלך. השתמשתי בחוט 18awg בערך 10 מטרים מהפי שלי וזה עבד ללא רבב
  • דרך לחבר חוט לסיכות ה- GPIO של ה- Pi. אתה יכול להשתמש בכבל סרט עם לוח הלוח המתפרץ, או שאתה יכול פשוט להשתמש בכמה מחברים נקביים כמוני. אנחנו צריכים רק 3 חוטים - הארקה, 5V ונתונים לכפתור. [אֲמָזוֹנָה]
  • (אופציונלי) מחבר עמיד למים בכל קצה לתחזוקה קלה. אני משתמש במחברים 3 פינים בדרגה ימית: [אמזון]
  • (אופציונלי) מחברי התחת לכווץ חום [אמזון]

שלב 2: תרשים חיווט

תרשים חיווט
תרשים חיווט
תרשים חיווט
תרשים חיווט
תרשים חיווט
תרשים חיווט
תרשים חיווט
תרשים חיווט

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

עבור סיכת ה- GPIO, בחר כל אחד מסיכות ה- GPIO בפי. השתמש גם בסיכות +5V ו- Gnd. סביר להניח שתוכל לברוח בעזרת סיכת 3.3V, אך ירידת המתח על פני כמה מטרים של חוט עשויה להפוך את האות לבלתי אמין או לא מספיק כדי להדליק את הנורית.

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

שלב 3: התקנה בסיסית של נגן Falcon Pi

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

עקבתי אחרי הסרטון לעיל כדי שהתחלתי להגדיר הכל.

לדעתי סרטונים משעממים ואיטיים, אז הנה סיכום של זה:

  • ייבא את הרצף שלך ל- fpp באמצעות מנהל הקבצים
  • צור רשימת השמעה עם הרצף בה. בשלבים הבאים הפלייליסט ייקרא "playme"
  • פתח קובץ פנקס ריק והקלד את הדברים הבאים:

    • #!/bin/sh
    • fpp -P משחק
  • שמור אותו כקובץ.sh במחשב שלך
  • עבור אל מנהל הקבצים ב- FPP והעלה את קובץ הסקריפט שלך. עבור לכרטיסייה "סקריפטים" וודא שהיא קיימת
  • תחת סטטוס/שליטה עבור אל אירועים
  • צור אירוע חדש. מזהה אירוע 1/1, שם אירוע מה שלא יהיה, רצף אפקטים NONE, סקריפט אירוע
  • כנסו להגדרת קלט/פלט ולחצו על טריגרים של GPIO
  • החלף את הסיכה שאליה הכפתור שלך מחובר. אם הוא ירד כשאתה לוחץ על הכפתור ואז שים את האירוע על האפשרות Falling, אם הוא פעיל גבוה אז שים את האירוע על Rising.
  • לחץ על כפתור הפעלה מחדש על ידי האזהרה שיופיע לאחר שתבצע את כל השינויים

לאחר שתעשה את כל זה, אתה אמור להיות מסוגל ללחוץ על הכפתור כדי להתחיל את ההופעה שלך. ווהו!

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

אם אתה צריך עוד משהו, המשך לשלב הבא

שלב 4: תסריט חזק יותר

להלן התסריט שבסופו של דבר הגעתי אליו. תוכל לצפות בתסריט ב- Github כאן: [Gist. Github]

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

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

תוכל למצוא משאבים נוספים לסקריפט ב- FPP כאן: https://github.com/FalconChristmas/fpp-scripts לקבלת היגיון מסובך יותר פשוט גוגל "סקריפט bash _" כאשר קו הדגש הוא מה שאתה מנסה לעשות. אתה יכול לבדוק את הסקריפטים שלך באמצעות מעטפת FPP (שם משתמש fpp סיסמא falk) הפקודות הבסיסיות הן כדלקמן.

שימו לב לאותיות רישיות !!

  • Capital -P תשמיע רשימת השמעה פעם אחת, אותיות קטנות -p תחזור עליה.
  • fpp -v 66 הגדר את עוצמת הקול ל -66%
  • fpp -c stop עצור את ההצגה באופן מיידי
  • fpp -C stop זה יכול להיות מופע להפסיק בחינניות
  • fpp -p thisPlaylistName משחק את שם הפלייליסט הזה שוב ושוב (כך שיר ההקדמה מתנגן פעם אחת, ואז הדברים העיקריים יחזרו על עצמם ללא הגבלת זמן.
  • fpp -P thisPlaylistName משחק את שם הפלייליסט הזה פעם אחת
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" מפעיל סקריפט. במקרה משמאל זה עובד אם שמרת את שם התסריט שלך במשתנה אי שם למעלה, כמו thisScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#!/bin/sh
###########################################################
#להפעלה אם לוחצים על הכפתור.
#עליך לכלול שני רשימות השמעה לכל שיר - אחד עם
# רק השיר כ"הצגה ראשונה "ושום דבר מרכזי,
# ועוד אחד עם השיר כמחזה ראשון והמתנה שלך
רצף # כרצף "הראשי". (לפחות אם אתה רוצה
# כדי לעשות בדיוק את מה שאני עושה)
#
#למשל, אם השיר שלך הוא טייגר סמרטוט, היית צריך
# רשימות השמעה "TigerRag", "TigerRagStandby" ו- "Standby"
#
###########################################################
# רשימות השמעה להפעיל אם הן בין 6 ל -11
NightSong1 = "TigerRagStandby"
NightSong2 = "מצב הללויה"
NightStandby = "המתנה"
# רשימות השמעה להפעלה במהלך היום או אחרי 11
DaySong1 = "TigerRag"
DaySong2 = "הללויה"
DayStandby = "המתנה"
#שעות הפעלה וכיבוי בזמן 24 שעות. אם אתה רוצה דקות, בהצלחה
OnHour = 17
מחוץ לשעה = 23
###########################################################
# אומץ של התסריט. #
###########################################################
# קבל את הסטטוס הנוכחי שלנו (IDLE = 0, PLAYING = 1, עצור בחינניות = 2)
STATUS = $ (fpp -s | cut -d ',' -f2)
#קבל את רשימת ההשמעה הפועלת וקטעי עד 7 אותיות
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#זה יהיה "שניהם" אם הוא משמיע שיר, ו"רצף "אם הוא במצב המתנה
#משמש כדי לקבוע אם רצף המתנה פועל
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
#7 אותיות השמות הראשונות של רשימות השמעה להשוואה
#רק 7 אותיות כך ש- "Song1 Standby" ו- "Song1" יהיו זהים
#אוקיי אז בעצם זה צריך להיות הראשון x אותיות ו- x צריך להיות שם השיר הקצר ביותר שיש לך
StandbyPlaylist = $ (הד $ NightStandby | לחתוך -c1-7)
Song1Playlist = $ (הד $ NightSong1 | לחתוך -c1-7)
Song2Playlist = $ (הד $ NightSong2 | לחתוך -c1-7)
STARTITEM = ""
#קבל את השעה הנוכחית בזמן הצבאי
CurrentHour = $ (תאריך +"%H")
#הדפס את הסטטוס של כמה דברים - "הד" הוא כמו "הדפסה" ברוב השפות
#שימושי לבדיקה אם דברים שונים חתוכים או מחושבים נכון
הד CurrentHour הוא $ CurrentHour
echo הפעלת רשימת השמעה היא: $ PLAYLIST
echo Song2Playlist הוא: $ Song2Playlist
הד סטטוס הוא: $ STATUS
#הגדר את עוצמת הקול ל -80% בלילה, 100% אחרת
#אז שאם אני ישן זה לא כל כך חזק
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; לאחר מכן
# fpp -v 100
#אַחֵר
# fpp -v 80
#fi
# בדוק שיש לנו משהו משמעותי
אם [-z "$ {STATUS}"]; אז
הד "שגיאה בערך הסטטוס"> & 2
יציאה 1
פי
# פעל לפי המצב הנוכחי
מארז $ {STATUS} ב
# סרק
0)
#לילה - הפעל את שיר 1 עם המתנה
אם [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; אז
הד Playing NightSong1
fpp -c עצירה
fpp -p "$ {NightSong1}" $ {STARTITEM}
#יום היום או ממש מאוחר - השמע שיר 1 פעם אחת ואז כבה את האורות
אַחֵר
הד PlaySong1
fpp -c עצירה
fpp -P "$ {DaySong1}" $ {STARTITEM}
פי
;;
# משחק או הפסקת חינניות (חינני קורה אם לוחצים על כפתור כאשר רשימת השמעה מתוזמנת מסתיימת)
1 | 2)
#Standby פועל - זה פועל מכיוון שהמתנה היא הרצף הלא מדיה היחיד שלי
אם ["$ STANDBYSTRING" == "רצף"]; אז
#לילה - הפעל את שיר 1 עם המתנה
אם [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; אז
הד Playing NightSong1 למשך הלילה
fpp -c עצירה
fpp -p "$ {NightSong1}"
#יום היום או ממש מאוחר - שחק סמרטוט נמר פעם אחת ואז כבה אורות
אַחֵר
הד PlayingDaySong1 ממשחק
fpp -c עצירה
fpp -P "$ {DaySong1}"
פי
#כדי לתמוך בשירים נוספים, העתק את הקטע הזה ושנה את "Song2Playlist" בקטע האחרון לרשימת השמעה#
#שיר 1 פועל
elif ["$ PLAYLIST" == "$ Song1Playlist"]; לאחר מכן
#לילה - שחקו הללויה עם המתנה
אם [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; אז
הד משחק נגן הללויה מצב של טייגר סמרטוט פועל
fpp -c עצירה
fpp -p "$ {NightSong2}"
#יום היום או ממש מאוחר - הפעל את Song2 פעם אחת ואז כבה את האורות
אַחֵר
הד משחק הללויה פעם מטיגר סמרטוט פועל
fpp -c עצירה
fpp -P "$ {DaySong2}"
פי
#שיר אחרון פועל - שחק סטנדבי
elif ["$ PLAYLIST" == "$ Song2Playlist"]; לאחר מכן
#לילה - הפעל המתנה בלולאה
אם [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; אז
הד השמעת המתנה בשידור חוזר
fpp -c עצירה
fpp -p "$ {NightStandby}"
#יום היום או ממש מאוחר - שחק פעם המתנה
אַחֵר
הד משחק המתנה פעם אחת
fpp -c עצירה
fpp -P "$ {DayStandby}"
פי
אַחֵר
הד מסיבה כלשהי ההרצאה האחרונה שבוצעה.
fpp -c עצירה
fpp -P "$ {DaySong1}"
פי
;;
esac

הצג rawButtonSuperScript.sh המתארח אצל ❤ על ידי GitHub

שלב 5: (אופציונלי) לוח לכפתור

יש לי גישה לחותך לייזר ב- Clemson דרך Makerspace, אז שרטטתי במהירות עיצוב לחיתוך+תחריט. יש חור באמצע לכפתור שלי, המילים אומרות "דחוף אותי" בפונט חג המולד, ופתית שלג סביב הכפתור. ריססתי מעט עץ לבן ואז כיסיתי אותו במסרטייפ (כדי שחותך הלייזר לא יחרב חלקים שאני לא רוצה לחרוט). הקובץ בו השתמשתי מצורף.

מוּמלָץ: