فهرست مطالب:

نمایش نور کریسمس خود را با یک دکمه شروع کنید: 5 قدم
نمایش نور کریسمس خود را با یک دکمه شروع کنید: 5 قدم

تصویری: نمایش نور کریسمس خود را با یک دکمه شروع کنید: 5 قدم

تصویری: نمایش نور کریسمس خود را با یک دکمه شروع کنید: 5 قدم
تصویری: آیا س*کس از پشت را دوست دارید ؟😱😂😂😱(زیرنویس فارسی) 2024, جولای
Anonim
نمایش نور کریسمس خود را با یک دکمه شروع کنید
نمایش نور کریسمس خود را با یک دکمه شروع کنید

هنگام اجرای یک نمایش نور کریسمس با موسیقی همگام ، ممکن است بخواهید با فشار دادن یک دکمه برنامه را شروع کنید. این آموزش فقط برای نمایش هایی که از طریق Falcon Pi Player (FPP) که روی Raspberry Pi اجرا می شود کنترل می شود. اگر از FPP استفاده می کنید ، احتمالاً از کنترلرهای Falcon استفاده می کنید و از xLights یا LightORama برای ترتیب برنامه خود استفاده می کنید. اگر هیچ یک از این کلمات برای شما معنایی ندارند ، احتمالاً این آموزش در حال حاضر کمی بر سر شما آمده است و باید با خواندن این ویکی https://auschristmaslighting.com/wiki/ و پیوستن به یک گروه فیس بوک مانند زیر شروع کنید.

  • xLights:
  • چراغهای کریسمس عمومی پیشرفته:
  • پخش کننده Falcon Pi:
  • محوطه/اشتراک ایده ایده:
  • "به طور خاص xLights یا LOR مرتبط نیست": اما
  • فروشندگان xLights Holiday Light:
  • خودتان آن را کریسمس انجام دهید:

مرحله 1: لیست قطعات

شما به موارد زیر نیاز دارید:

  • یک دکمه. من از این یکی با چراغ حلقه LED در اطراف آن استفاده کردم: [آمازون]
  • یک مقاومت ترجیحا 200Ω یا بیشتر (اگر از دکمه LED استفاده می کنید 2 عدد) استاندارد 1/4W یا 1/8W خوب است
  • سیم اتصال. سنجی که باید استفاده کنید بستگی به فاصله دکمه از Pi شما دارد. من از سیم 18awg در فاصله 10 فوتی Pi خودم استفاده کردم و بدون عیب کار کرد
  • راهی برای اتصال سیم به پین های GPIO Pi. می توانید از کابل روبان با نان برد برک آوت استفاده کنید ، یا می توانید از اتصالات زن مانند من استفاده کنید. ما فقط به 3 سیم - زمین ، 5 ولت و داده برای دکمه نیاز داریم. [آمازون]
  • (اختیاری) یک اتصال ضد آب در هر طرف برای نگهداری آسان. من از اتصال دهنده های درجه 3 دریایی استفاده می کنم: [آمازون]
  • (اختیاری) اتصال دهنده های حرارتی کوچک شونده [آمازون]

مرحله 2: نمودار سیم کشی

نمودار سیم کشی
نمودار سیم کشی
نمودار سیم کشی
نمودار سیم کشی
نمودار سیم کشی
نمودار سیم کشی
نمودار سیم کشی
نمودار سیم کشی

تصاویر یک نمودار سیم کشی برای یک دکمه بدون LED همراه و یک دکمه با LED را نشان می دهد. نحوه تنظیم نمودار سیم کشی به شما امکان می دهد یک دکمه و چراغ (به طور مداوم روشن) را فقط با 3 سیم اجرا کنید.

برای پین GPIO ، هر یک از پایه های GPIO را روی pi انتخاب کنید. از پین های +5V و Gnd نیز استفاده کنید. احتمالاً می توانید با استفاده از پین 3.3V از این مشکل خلاص شوید ، اما افت ولتاژ در چند فوت سیم ممکن است سیگنال را غیرقابل اعتماد کرده یا برای روشن کردن LED کافی نباشد.

توجه: کانکتور 3 پین از طریق سوراخی که برای ایجاد یک دکمه با چراغ حلقه LED نیاز دارید ، قرار نمی گیرد. بنابراین پس از قرار دادن دکمه در صفحه خود ، کانکتور را وصل کنید.

مرحله 3: راه اندازی اساسی Falcon Pi Player

توجه - FPP دائماً در حال به روز رسانی است و این امکان وجود دارد که آنها پشتیبانی از اسکریپت نویسی خود را بهبود بخشند یا "دکمه شروع به کار" را به عنوان یک ویژگی پیش فرض که نیاز به برنامه نویسی کمتری دارد ، قرار دهند.

من ویدیوی بالا را برای تنظیم همه چیز در ابتدا دنبال کردم.

من فیلم ها را خسته کننده و کند می دانم ، بنابراین خلاصه ای از آن در اینجا آمده است:

  • دنباله خود را با استفاده از مدیریت فایل به fpp وارد کنید
  • یک لیست پخش با دنباله ای در آن ایجاد کنید. در مراحل بعدی لیست پخش "playme" نامیده می شود
  • یک فایل خالی از دفترچه یادداشت را باز کرده و موارد زیر را تایپ کنید:

    • #!/bin/sh
    • fpp -P playme
  • آن را به عنوان یک فایل.sh در رایانه خود ذخیره کنید
  • در FPP به مدیریت فایل بروید و فایل اسکریپت خود را بارگذاری کنید. به برگه "Scripts" بروید و مطمئن شوید که آنجا وجود دارد
  • در بخش وضعیت/کنترل به رویدادها بروید
  • یک رویداد جدید ایجاد کنید. شناسه رویداد 1/1 ، نام رویداد هرچه باشد ، دنباله اثر هیچ ، اسکریپت رویداد
  • به قسمت Input/Output Setup بروید و GPIO triggers را کلیک کنید
  • پین را فشار دهید که دکمه شما به آن متصل است. اگر وقتی دکمه را فشار می دهید کم شود ، رویداد را در گزینه Falling قرار دهید ، اگر فعال باشد ، رویداد را در Rising قرار دهید.
  • روی دکمه راه اندازی مجدد با هشدار بعد از انجام همه تغییرات ظاهر می شود

پس از انجام همه اینها ، باید بتوانید دکمه را فشار دهید تا نمایش شما شروع شود. وووو!

با این حال ، این روش محدودیت هایی دارد. اگر دکمه را دوباره فشار دهید در حالی که لیست پخش در حال اجرا است ، یا 1) هیچ کاری انجام نمی دهد یا 2) FPP را خراب می کند و تا زمانی که سیستم را راه اندازی مجدد نمی کنید از انجام هر کاری با دکمه خودداری می کند. بنابراین اگر فقط از یک دکمه به عنوان شیوه ای نمایشی برای نمایش برنامه خود استفاده می کنید ، روش فوق تنها چیزی است که شما نیاز دارید.

اگر به چیز بیشتری نیاز دارید ، به مرحله بعدی بروید

مرحله 4: یک اسکریپت قوی تر

در زیر فیلمنامه ای است که در نهایت به آن رسیدم. می توانید اسکریپت را در Github در اینجا مشاهده کنید: [Gist. Github]

  • اگر کسی دکمه را در ساعات "شب" فشار دهد ، Tiger Rag (آهنگ من 1) را پخش می کند و سپس به دنباله آماده به کار می رود که بی نهایت حلقه می شود.
  • اگر دکمه در حالی که Tiger Rag در حال پخش است فشار داده شود ، آهنگ دوم من ، Hallelujah ، شروع می شود و سپس به طور نامحدود به سکانس آماده به کار می رود.
  • اما اگر کسی دکمه را در طول روز یا خیلی دیر شب فشار دهد ، Tiger Rag یک بار پخش می شود و سپس همه چراغ ها را خاموش می کند.

این اجازه می دهد تا دکمه در هر زمان از روز کار کند اما لامپ ها نباید همیشه روشن باشند. همچنین با تشخیص اینکه کدام آهنگ در حال پخش است ، پایان دادن به آن آهنگ و پخش آهنگ "بعدی" امکان پخش چندین آهنگ از 1 دکمه را فراهم می کند.

می توانید منابع بیشتری را برای اسکریپت نویسی در FPP در اینجا پیدا کنید: https://github.com/FalconChristmas/fpp-scripts برای منطق پیچیده تر ، کافی است "bash script _" را در گوگل جستجو کنید ، در این قسمت سعی کنید انجام دهید. می توانید اسکریپت های خود را با استفاده از FPP Shell (نام کاربری fpp password falcon) آزمایش کنید. دستورات اساسی به شرح زیر است.

به حروف بزرگ توجه کنید !!

  • Capital -P یک بار یک لیست پخش ، حروف کوچک -p آن را تکرار می کند.
  • fpp -v 66 تنظیم حجم روی 66٪
  • fpp -c توقف فوراً نمایش را متوقف کنید
  • fpp -C توقف این ممکن است توقف نمایش با ظرافت باشد
  • fpp -p thisPlaylistName این PlaylistName را به صورت تکراری پخش می کند (بنابراین آهنگ مقدماتی یک بار پخش می شود ، سپس موارد اصلی به طور نامحدود تکرار می شوند.
  • fpp -P thisPlaylistName یکبار این PlaylistName را پخش می کند
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" یک اسکریپت را اجرا می کند. در صورتی که نام اسکریپت خود را در یک متغیر در بالا ذخیره کرده اید ، مانند thisScriptVariable =”PlayTheSong.sh” ، در مورد سمت چپ کار می کند.

ButtonSuperScript.sh

#!/bin/sh
###########################################################
در صورت فشردن دکمه ، #اجرا شود.
#برای هر آهنگ باید دو لیست پخش داشته باشید - یکی با
# فقط آهنگ به عنوان "اولین نمایشنامه" و هیچ چیز اصلی ،
# و دیگری با آهنگ به عنوان اولین پخش و آماده به کار
# دنباله به عنوان دنباله "اصلی". (حداقل اگر می خواهید
# برای انجام دقیق کاری که من انجام می دهم)
#
#به عنوان مثال ، اگر آهنگ شما Tiger Rag است ، باید داشته باشید
# لیست پخش "TigerRag" ، "TigerRagStandby" ، و "Standby"
#
###########################################################
اگر بین 6 تا 11 باشد ، # لیست پخش اجرا می شود
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "آماده به کار"
# لیست پخش برای اجرا در طول روز یا بعد از 11
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
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 حرف به طوری که "Song1Standby" و "Song1" یکسان هستند
#خوب پس در واقع باید اولین حرف x باشد و x کوتاهترین نام آهنگی باشد که دارید
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#ساعت فعلی را به وقت نظامی بدست آورید
CurrentHour = $ (تاریخ +"٪ H")
#وضعیت برخی چیزها را چاپ کنید - "اکو" در اکثر زبانها مانند "چاپ" است
در صورت برش دادن یا محاسبه موارد مختلف ، برای آزمایش مفید است
echo 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}"] ؛ پس
echo "خطا در مقدار وضعیت"> و 2
خروج 1
fi
# بر اساس وضعیت فعلی عمل کنید
مورد $ {STATUS} در
# IDLE
0)
#شب هنگام - Song1 را در حالت آماده به کار پخش کنید
اگر [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ سپس
echo Playing NightSong1
fpp -c توقف
fpp -p "$ {NightSong1}" $ {STARTITEM}
زمان #روز یا واقعاً دیر - آهنگ 1 را یکبار پخش کنید و چراغ ها را خاموش کنید
دیگری
echo Playing DaySong1
fpp -c توقف
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# پخش یا توقف بسیار خوب (اگر دکمه را هنگامی که یک لیست پخش برنامه ریزی شده به پایان می رسد فشار دهید) زیبا اتفاق می افتد)
1 | 2)
#حالت آماده به کار در حال اجرا است - این کار می کند زیرا حالت آماده به کار تنها سکانس غیر رسانه ای من است
اگر ["$ STANDBYSTRING" == "دنباله"] ؛ سپس
#شب زمان - Song1 را در حالت آماده به کار پخش کنید
اگر [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ سپس
پژواک پخش NightSong1 برای شب
fpp -c توقف
fpp -p "$ {NightSong1}"
به وقت روز یا واقعاً دیر - یکبار پارچه ببر بازی کنید و چراغ ها را خاموش کنید
دیگری
echo PlayingDaySong1 از پخش
fpp -c توقف
fpp -P "$ {DaySong1}"
fi
برای پشتیبانی از آهنگهای بیشتر ، این قسمت را کپی کرده و "Song2Playlist" را در قسمت آخر به آهنگ#لیست پخش تغییر دهید
#آهنگ 1 در حال اجرا است
elif ["$ PLAYLIST" == "$ Song1Playlist"] ؛ سپس
#شبانه - بازی Hallelujah با حالت آماده به کار
اگر [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ سپس
echo Playing HallelujahStandby from Tiger Rag در حال اجرا است
fpp -c توقف
fpp -p "$ {NightSong2}"
زمان #روز یا واقعاً دیر - یکبار Song2 را پخش کنید و سپس چراغ ها را خاموش کنید
دیگری
echo Playing Hallelujah ერთხელ از Tiger Rag در حال اجرا است
fpp -c توقف
fpp -P "$ {DaySong2}"
fi
#آخرین آهنگ در حال اجرا است - PLAY STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"] ؛ سپس
زمان شب - آماده به کار در حالت حلقه
اگر [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour] ؛ سپس
اکو پخش آماده به کار در تکرار
fpp -c توقف
fpp -p "$ {NightStandby}"
زمان #روز یا واقعاً دیر - یکبار در حالت آماده باش بازی کنید
دیگری
echo Playing Standby Once
fpp -c توقف
fpp -P "$ {DayStandby}"
fi
دیگری
echo به دلایلی آخرین مورد دیگر اجرا شد.
fpp -c توقف
fpp -P "$ {DaySong1}"
fi
;;
esac

مشاهده rawButtonSuperScript.sh با ❤ توسط GitHub میزبانی شده است

مرحله 5: (اختیاری) صفحه نمایشی دکمه

من از طریق Makerspace به یک برش لیزری در Clemson دسترسی دارم ، بنابراین به سرعت طرحی را برای برش+اچ ترسیم کردم. در وسط یک سوراخ برای دکمه من وجود دارد ، کلمات با فونت کریسمس می گویند "Push Me" و یک دانه برف در اطراف دکمه وجود دارد. من مقداری چوب را با رنگ سفید رنگ آمیزی کردم و سپس آن را با نوار ماسک پوشاندم (به طوری که برش لیزری قطعاتی را که نمی خواهم حک شوند ، نسوزاند). فایلی که استفاده کردم ضمیمه شده است.

توصیه شده: