جدول المحتويات:

ابدأ عرض ضوء عيد الميلاد الخاص بك باستخدام زر: 5 خطوات
ابدأ عرض ضوء عيد الميلاد الخاص بك باستخدام زر: 5 خطوات

فيديو: ابدأ عرض ضوء عيد الميلاد الخاص بك باستخدام زر: 5 خطوات

فيديو: ابدأ عرض ضوء عيد الميلاد الخاص بك باستخدام زر: 5 خطوات
فيديو: شرح Capcut كاب كت للمبتدئين كامل 2024 - Video editing 🔥 2024, يوليو
Anonim
ابدأ عرض ضوء عيد الميلاد الخاص بك باستخدام زر
ابدأ عرض ضوء عيد الميلاد الخاص بك باستخدام زر

عند تشغيل عرض ضوئي لعيد الميلاد متزامن مع الموسيقى ، قد ترغب في بدء العرض بالضغط على زر. هذا البرنامج التعليمي قابل للتطبيق فقط للعرض الذي يتم التحكم فيه من خلال Falcon Pi Player (FPP) الذي يعمل على Raspberry Pi. إذا كنت تقوم بتشغيل FPP ، فمن المحتمل أنك تستخدم وحدات تحكم Falcon وتستخدم xLights أو LightORama لتسلسل عرضك. إذا لم تكن أي من هذه الكلمات تعني لك شيئًا ، فمن المحتمل أن يكون هذا البرنامج التعليمي فوق رأسك قليلاً في الوقت الحالي ويجب أن تبدأ بقراءة هذا الويكي https://auschristmaslighting.com/wiki/ والانضمام إلى مجموعة Facebook كما هو موضح أدناه

  • xLights:
  • أضواء عيد الميلاد المتقدمة العامة:
  • Falcon Pi Player:
  • مشاركة فكرة الضميمة / الدعامة:
  • "ليست خاصة بـ xLights أو LOR ذات صلة":
  • بائعو xLights Holiday Light:
  • افعلها بنفسك عيد الميلاد:

الخطوة 1: قائمة الأجزاء

ستحتاج إلى العناصر التالية:

  • الزر. لقد استخدمت هذا مع مصباح حلقي LED حوله: [Amazon]
  • مقاوم. يفضل 200 درجة أو أكثر (2 من هؤلاء إذا كنت تستخدم زر LED) المعيار 1 / 4W أو 1 / 8W جيد
  • سلك الموصل. يعتمد المقياس الذي يجب استخدامه على مدى بُعد الزر عن Pi. لقد استخدمت سلك 18awg لحوالي 10 أقدام من Pi الخاص بي وعمل بشكل لا تشوبه شائبة
  • طريقة لتوصيل سلك بدبابيس GPIO في باي. يمكنك استخدام كبل شريطي مع لوحة توصيل الدوائر ، أو يمكنك فقط استخدام بعض الموصلات الأنثوية كما فعلت. نحتاج فقط إلى 3 أسلاك - أرضي ، و 5 فولت ، وبيانات للزر. [أمازون]
  • (اختياري) موصل مقاوم للماء على كل طرف لسهولة الصيانة. أستخدم موصلات من الدرجة البحرية ذات 3 سنون: [Amazon]
  • (اختياري) موصلات الانكماش الحراري [أمازون]

الخطوة 2: مخطط الأسلاك

الاسلاك الرسم البياني
الاسلاك الرسم البياني
الاسلاك الرسم البياني
الاسلاك الرسم البياني
الاسلاك الرسم البياني
الاسلاك الرسم البياني
الاسلاك الرسم البياني
الاسلاك الرسم البياني

تُظهر الصور مخططًا للأسلاك لزر بدون مؤشر LED وزر بمصباح LED. تسمح لك طريقة إعداد مخطط الأسلاك بتشغيل زر وضوء (باستمرار) بثلاثة أسلاك فقط.

بالنسبة إلى دبوس GPIO ، اختر أيًا من دبابيس GPIO الموجودة على pi. استخدم دبابيس + 5V و Gnd أيضًا. من المحتمل أن تفلت من استخدام دبوس 3.3 فولت ، لكن انخفاض الجهد عبر عدة أقدام من الأسلاك قد يجعل الإشارة غير موثوقة أو لا تكون كافية لإضاءة مؤشر LED.

ملاحظة: لن يتلاءم الموصل ذي الثلاثة سنون من خلال الفتحة التي تحتاجها للحفر بحثًا عن زر بمصباح حلقة LED. لذا قم بتوصيل الموصل بعد وضع الزر في واجهة الجهاز.

الخطوة 3: الإعداد الأساسي لبرنامج Falcon Pi Player

ملاحظة - يتم تحديث FPP باستمرار ، ومن الممكن تمامًا أن يقوموا بتحسين دعم البرمجة النصية أو أنهم سيشملون "زر الضغط للبدء" كميزة افتراضية تتطلب برمجة أقل.

لقد اتبعت الفيديو أعلاه للحصول على كل شيء في البداية.

أجد مقاطع الفيديو مملة وبطيئة ، فإليك ملخصًا لها:

  • استيراد التسلسل الخاص بك إلى fpp باستخدام مدير الملفات
  • قم بإنشاء قائمة تشغيل بالتسلسل الموجود فيها. بالنسبة للخطوات التالية ، ستطلق على قائمة التشغيل اسم "playme"
  • افتح ملف Notepad فارغًا واكتب ما يلي:

    • #! / بن / ش
    • fpp -P playme
  • احفظه كملف.sh على جهاز الكمبيوتر الخاص بك
  • انتقل إلى مدير الملفات في FPP وقم بتحميل ملف البرنامج النصي الخاص بك. انتقل إلى علامة التبويب "البرامج النصية" وتأكد من وجودها
  • ضمن الحالة / التحكم ، انتقل إلى الأحداث
  • أنشئ حدثًا جديدًا. معرف الحدث 1/1 ، اسم الحدث أيا كان ، تسلسل التأثير لا شيء ، البرنامج النصي للحدث
  • انتقل ضمن إعداد الإدخال / الإخراج وانقر فوق مشغلات GPIO
  • قم بتبديل الدبوس المرفق به الزر. إذا كانت ستنخفض عند الضغط على الزر ، فضع الحدث على خيار الهبوط ، وإذا كانت نشطة عالية ، فضع الحدث على ارتفاع.
  • انقر فوق زر إعادة التشغيل من خلال التحذير الذي ينبثق بعد إجراء جميع التغييرات

بعد القيام بكل هذا ، يجب أن تكون قادرًا على الضغط على الزر لبدء عرضك. رائع!

ومع ذلك ، فإن هذه الطريقة لها بعض القيود. إذا قمت بالضغط على الزر مرة أخرى أثناء تشغيل قائمة التشغيل ، فإما أن 1) لن تفعل أي شيء أو 2) ستعطل FPP وترفض فعل أي شيء باستخدام الزر حتى تعيد تشغيله. لذلك إذا كنت تستخدم زرًا فقط كطريقة درامية لتشغيل برنامجك عند الأمر ، فستكون الطريقة المذكورة أعلاه هي كل ما تحتاجه.

إذا كنت بحاجة إلى شيء آخر ، فانتقل إلى الخطوة التالية

الخطوة 4: نص أكثر قوة

يوجد أدناه النص الذي وصلت إليه في النهاية. يمكنك عرض البرنامج النصي على Github هنا: [Gist. Github]

  • إذا ضغط شخص ما على الزر خلال ساعات "الليل" ، فسيتم تشغيل Tiger Rag (أغنية 1 الخاصة بي) ثم ينتقل إلى تسلسل الاستعداد الذي يتكرر بلا حدود.
  • إذا تم الضغط على الزر أثناء تشغيل Tiger Rag ، فسيبدأ أغنيتي الثانية ، Hallelujah ، ثم ينتقل إلى تسلسل الاستعداد إلى أجل غير مسمى.
  • ولكن إذا ضغط شخص ما على الزر أثناء النهار أو في وقت متأخر جدًا من الليل ، فسوف يلعب Tiger Rag مرة واحدة ثم يطفئ كل الأضواء.

يسمح هذا للزر بالعمل في أي وقت من اليوم ولكن لا يجب أن تكون الأضواء مضاءة طوال الوقت. كما يسمح بتشغيل أغانٍ متعددة من زر واحد عن طريق تحديد الأغنية التي يتم تشغيلها حاليًا وإنهاء تلك الأغنية وتشغيل الأغنية "التالية".

يمكنك العثور على المزيد من الموارد للبرمجة النصية في FPP هنا: https://github.com/FalconChristmas/fpp-scripts للحصول على منطق أكثر تعقيدًا فقط google “bash script _” حيث الشرطة السفلية هي ما تحاول القيام به. يمكنك اختبار البرامج النصية الخاصة بك باستخدام FPP Shell (اسم المستخدم fpp password falcon) الأوامر الأساسية هي كما يلي.

انتبه إلى الكتابة بالأحرف الكبيرة !!

  • سوف يقوم Capital -P بتشغيل قائمة التشغيل مرة واحدة ، بينما يقوم الحرف الصغير -p بتكرارها.
  • fpp -v 66 ضبط الصوت على 66٪
  • fpp -c وقف العرض على الفور
  • fpp -C stop قد يكون هذا إيقاف العرض برشاقة
  • fpp -p يقوم thisPlaylistName بتشغيل thisPlaylistName عند التكرار (بحيث يتم تشغيل أغنية المقدمة مرة واحدة ، ثم يتم تكرار العناصر الرئيسية إلى أجل غير مسمى.
  • fpp -P thisPlaylistName يقوم بتشغيل thisPlaylistName مرة واحدة
  • eventScript "$ {MEDIADIR} / scripts / $ {thisScriptVariable}" يقوم بتشغيل البرنامج النصي. في الحالة الموجودة على اليسار ، يعمل إذا كان لديك اسم البرنامج النصي الخاص بك محفوظًا في متغير في مكان ما أعلاه ، مثل thisScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#! / بن / ش
###########################################################
# ليتم تشغيلها إذا تم الضغط على الزر.
# يجب أن يكون لديك قائمتا تشغيل لكل أغنية - واحدة بها
# مجرد الأغنية باعتبارها "التشغيل الأول" ولا شيء رئيسي ،
# وأخرى مع الأغنية كأول تشغيل واستعداد
# التسلسل باعتباره التسلسل "الرئيسي". (على الأقل إذا كنت تريد
# لأفعل الشيء الذي أفعله بالضبط)
#
# على سبيل المثال ، إذا كانت أغنيتك Tiger Rag ، فيجب أن يكون لديك
# قوائم تشغيل "TigerRag" و "TigerRagStandby" و "الاستعداد"
#
###########################################################
# قوائم التشغيل للتشغيل إذا كانت بين 6 و 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "الاستعداد"
# قوائم تشغيل يتم تشغيلها خلال النهار أو بعد 11
DaySong1 = "TigerRag"
DaySong2 = "هللويا"
DayStandby = "الاستعداد"
# مرات وإيقاف في توقيت 24 ساعة. إذا كنت تريد دقائق ، ونتمنى لك التوفيق
OnHour = 17
ساعات العمل = 23
###########################################################
# أحشاء النص. #
###########################################################
# احصل على حالتنا الحالية (الخمول = 0 ، اللعب = 1 ، التوقف برشاقة = 2)
الحالة = $ (fpp -s | cut -d '،' -f2)
# احصل على قائمة التشغيل الجارية وقم بقصها إلى 7 أحرف
قائمة التشغيل = $ (fpp -s | cut -d '،' -f4 | cut -c1-7)
# سيكون هذا "كلاهما" إذا كان يتم تشغيل أغنية ، و "تسلسل" إذا كان في وضع الاستعداد
# تستخدم لتحديد ما إذا كان تسلسل الاستعداد قيد التشغيل
وضع الاستعداد = $ (fpp -s | cut -d '،' -f5)
# أول 7 أحرف من أسماء قوائم التشغيل للمقارنة
# 7 أحرف فقط بحيث تكون "Song1Standby" و "Song1" متطابقتين
# حسنًا ، في الواقع يجب أن يكون أول حرف x وأن يكون x هو أقصر اسم أغنية لديك
قائمة التشغيل الاحتياطية = $ (echo $ NightStandby | قطع -c1-7)
Song1Playlist = $ (echo $ NightSong1 | قص -c1-7)
Song2Playlist = $ (echo $ NightSong2 | قص -c1-7)
STARTITEM = ""
# احصل على الساعة الحالية في الوقت العسكري
CurrentHour = $ (التاريخ + "٪ H")
# طباعة حالة بعض الأشياء - "صدى" مثل "طباعة" في معظم اللغات
# مفيد للاختبار إذا تم قص العناصر المختلفة أو حسابها بشكل صحيح
صدى CurrentHour هو $ CurrentHour
صدى تشغيل قائمة التشغيل: $ PLAYLIST
صدى 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)
#Night time - العب Song1 مع وضع الاستعداد
إذا [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ ثم
صدى اللعب NightSong1
وقف fpp -c
fpp -p "$ {NightSong1}" $ {STARTITEM}
# يوم أو متأخر حقًا - قم بتشغيل الأغنية 1 مرة واحدة ثم قم بإطفاء الأنوار
آخر
صدى يوم اللعب 1
وقف fpp -c
fpp -P "$ {DaySong1}" $ {STARTITEM}
فاي
;;
# اللعب أو الإيقاف بشكل رقيق (يحدث بشكل رشيق إذا تم الضغط على الزر عند انتهاء قائمة التشغيل المجدولة)
1 | 2)
#Standby قيد التشغيل - هذا يعمل لأن الاستعداد هو تسلسل غير الوسائط الوحيد
إذا ["$ STANDBYSTRING" == "تسلسل"] ؛ إذن
#Night time - العب Song1 مع وضع الاستعداد
إذا [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ ثم
صدى اللعب NightSong1 ليلا
وقف fpp -c
fpp -p "$ {NightSong1}"
#Day time أو متأخر حقًا - العب tiger rag مرة واحدة ثم قم بإطفاء الأنوار
آخر
صدى playDaySong1 من اللعب
وقف fpp -c
fpp -P "$ {DaySong1}"
فاي
# لدعم المزيد من الأغاني ، انسخ هذا القسم وغيّر "Song2Playlist" في القسم الأخير إلى Song # Playlist
# Song1 قيد التشغيل
إليف ["$ PLAYLIST" == "$ Song1Playlist"] ؛ ثم
#Night time - العب Hallelujah مع وضع الاستعداد
إذا [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ ثم
صدى اللعب هللويا الاستعداد من تايجر راج قيد التشغيل
وقف fpp -c
fpp -p "$ {NightSong2}"
#Day time أو متأخر حقًا - قم بتشغيل Song2 مرة واحدة ثم قم بإطفاء الأنوار
آخر
صدى لعب هللويا مرة واحدة من Tiger Rag قيد التشغيل
وقف fpp -c
fpp -P "$ {DaySong2}"
فاي
# آخر أغنية قيد التشغيل - العب في وضع الاستعداد
إليف ["$ PLAYLIST" == "$ Song2Playlist"] ؛ ثم
#Night time - تشغيل وضع الاستعداد في حلقة
إذا [$ 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 ، لذلك قمت بسرعة برسم تصميم للقطع + الحفر. هناك ثقب في المنتصف لزرّي ، الكلمات تقول "Push Me" بخط عيد الميلاد ، وندفة ثلجية حول الزر. لقد قمت برش بعض الخشب باللون الأبيض ثم غطيته بشريط لاصق (حتى لا يحرق قاطع الليزر الأجزاء التي لا أريد حفرها). الملف الذي استخدمته مرفق.

موصى به: