সুচিপত্র:

একটি বাটন দিয়ে আপনার ক্রিসমাস লাইট শো শুরু করুন: 5 টি ধাপ
একটি বাটন দিয়ে আপনার ক্রিসমাস লাইট শো শুরু করুন: 5 টি ধাপ

ভিডিও: একটি বাটন দিয়ে আপনার ক্রিসমাস লাইট শো শুরু করুন: 5 টি ধাপ

ভিডিও: একটি বাটন দিয়ে আপনার ক্রিসমাস লাইট শো শুরু করুন: 5 টি ধাপ
ভিডিও: এমন টয়লেট যা দেখে আপনিও লজ্জায় পড়ে যাবেন ! এসব টয়লেট দেখতেও কপাল লাগে। 2024, জুলাই
Anonim
একটি বোতাম দিয়ে আপনার ক্রিসমাস লাইট শো শুরু করুন
একটি বোতাম দিয়ে আপনার ক্রিসমাস লাইট শো শুরু করুন

সঙ্গীতে সিঙ্ক করা ক্রিসমাস লাইট শো চালানোর সময় আপনি একটি বোতাম টিপে শো শুরু করতে চাইতে পারেন। এই টিউটোরিয়ালটি শুধুমাত্র একটি শো এর জন্য প্রযোজ্য যা ফ্যালকন পাই প্লেয়ার (FPP) এর মাধ্যমে একটি রাস্পবেরি পাইতে চলমান। যদি আপনি FPP চালাচ্ছেন তাহলে আপনি সম্ভবত ফ্যালকন কন্ট্রোলার ব্যবহার করছেন এবং xLights বা LightORama ব্যবহার করে আপনার শোকে ক্রমানুসারে ব্যবহার করছেন। যদি এই শব্দগুলির কোনটিই আপনার কাছে কিছু না বোঝায়, এই টিউটোরিয়ালটি সম্ভবত আপনার মাথার উপর আপাতত সামান্য এবং আপনি এই উইকিটি https://auschristmaslighting.com/wiki/ পড়ে শুরু করুন এবং নীচের মত একটি ফেসবুক গ্রুপে যোগদান করুন

  • xLights:
  • সাধারণ উন্নত ক্রিসমাস লাইট:
  • ফ্যালকন পাই প্লেয়ার:
  • এনক্লোজার/প্রপ আইডিয়া শেয়ারিং:
  • "বিশেষভাবে xLights বা LOR সম্পর্কিত নয়":
  • xLights হলিডে লাইট বিক্রেতারা:
  • এটা আপনার নিজের ক্রিসমাস করুন:

ধাপ 1: অংশ তালিকা

আপনার নিম্নলিখিত আইটেমগুলির প্রয়োজন হবে:

  • একটি বোতাম. আমি এটির চারপাশে একটি LED রিং লাইট ব্যবহার করেছি: [আমাজন]
  • একটি প্রতিরোধক। বিশেষত 200Ω বা তার বেশি (আপনি LED বাটন ব্যবহার করলে এর মধ্যে 2 টি)
  • সংযোগকারী তার। আপনি যে গেজটি ব্যবহার করবেন তা নির্ভর করে আপনার Pi থেকে বাটনটি কতদূর থাকবে তার উপর। আমি আমার পাই থেকে প্রায় 10 ফুট 18awg তার ব্যবহার করেছি এবং এটি নিখুঁতভাবে কাজ করেছে
  • Pi এর GPIO পিনের সাথে একটি তারের সংযোগ করার একটি উপায়। আপনি ব্রেকআউট ব্রেডবোর্ডের সাথে একটি ফিতা কেবল ব্যবহার করতে পারেন, অথবা আপনি আমার মত কিছু মহিলা সংযোগকারী ব্যবহার করতে পারেন। আমাদের কেবল 3 টি তারের প্রয়োজন - গ্রাউন্ড, 5 ভি এবং বোতামের জন্য ডেটা। [আমাজন]
  • (Alচ্ছিক) সহজ রক্ষণাবেক্ষণের জন্য প্রতিটি প্রান্তে একটি জলরোধী সংযোগকারী। আমি 3-পিন সামুদ্রিক গ্রেড সংযোগকারী ব্যবহার করি: [আমাজন]
  • (Alচ্ছিক) তাপ সঙ্কুচিত বাট সংযোগকারী [আমাজন]

ধাপ 2: তারের ডায়াগ্রাম

তারের ডায়াগ্রাম
তারের ডায়াগ্রাম
তারের ডায়াগ্রাম
তারের ডায়াগ্রাম
তারের ডায়াগ্রাম
তারের ডায়াগ্রাম
তারের ডায়াগ্রাম
তারের ডায়াগ্রাম

ছবিগুলি একটি অন্তর্ভুক্ত LED ছাড়া একটি বোতামের জন্য একটি তারের চিত্র এবং একটি LED সহ একটি বোতাম দেখায়। আমি ওয়্যারিং ডায়াগ্রামটি যেভাবে সেট করেছি তা আপনাকে কেবল 3 টি তার দিয়ে একটি বোতাম এবং একটি হালকা (অবিচ্ছিন্নভাবে) চালানোর অনুমতি দেয়।

GPIO পিনের জন্য, pi- এর যেকোনো GPIO পিন বেছে নিন। +5V এবং Gnd পিনগুলিও ব্যবহার করুন। আপনি সম্ভবত 3.3V পিন ব্যবহার করে সরে যেতে পারেন, কিন্তু তারের কয়েক ফুট জুড়ে ভোল্টেজ ড্রপ সিগন্যালটিকে অবিশ্বস্ত করে তুলতে পারে বা LED জ্বালানোর জন্য যথেষ্ট নয়।

দ্রষ্টব্য: 3-পিন সংযোগকারীটি LED রিং লাইট সহ একটি বোতামের জন্য ড্রিল করার জন্য প্রয়োজনীয় গর্তের মধ্যে ফিট হবে না। তাই আপনার ফেসপ্লেটে বোতাম লাগানোর পর সংযোগকারী সংযুক্ত করুন।

ধাপ 3: ফ্যালকন পাই প্লেয়ার বেসিক সেটআপ

দ্রষ্টব্য - FPP ক্রমাগত আপডেট করা হচ্ছে, এবং এটি সম্পূর্ণরূপে সম্ভব যে তারা তাদের স্ক্রিপ্টিং সাপোর্ট উন্নত করবে অথবা তারা একটি ডিফল্ট ফিচার হিসেবে "শুরু করার জন্য পুশ বোতাম" অন্তর্ভুক্ত করবে যার জন্য কম প্রোগ্রামিং প্রয়োজন।

প্রাথমিকভাবে সবকিছু সেট আপ করার জন্য আমি উপরের ভিডিওটি অনুসরণ করেছি।

আমি ভিডিওগুলিকে বিরক্তিকর এবং ধীর মনে করি, তাই এখানে এর একটি সারসংক্ষেপ:

  • ফাইল ম্যানেজার ব্যবহার করে আপনার ক্রম fpp এ আমদানি করুন
  • এর ক্রম সহ একটি প্লেলিস্ট তৈরি করুন। পরবর্তী পদক্ষেপের জন্য প্লেলিস্টকে "প্লেমে" বলা হবে
  • একটি খালি নোটপ্যাড ফাইল খুলুন এবং নিম্নলিখিতটি টাইপ করুন:

    • #!/বিন/শ
    • fpp -P playme
  • এটি আপনার কম্পিউটারে.sh ফাইল হিসেবে সংরক্ষণ করুন
  • FPP এ ফাইল ম্যানেজারে যান এবং আপনার স্ক্রিপ্ট ফাইল আপলোড করুন। "স্ক্রিপ্ট" ট্যাবে যান এবং নিশ্চিত করুন যে এটি আছে
  • অবস্থা/নিয়ন্ত্রণের অধীনে ইভেন্টগুলিতে যান
  • একটি নতুন ইভেন্ট তৈরি করুন। ইভেন্ট আইডি 1/1, ইভেন্টের নাম যাই হোক না কেন, ইফেক্ট সিকোয়েন্স নন, ইভেন্ট স্ক্রিপ্ট
  • ইনপুট/আউটপুট সেটআপের অধীনে যান এবং GPIO ট্রিগারগুলিতে ক্লিক করুন
  • আপনার বোতামটি সংযুক্ত পিনটি টগল করুন। যদি আপনি বোতাম টিপলে এটি কম হয়ে যায় তবে ইভেন্টটিকে ফলিং অপশনে রাখুন, যদি এটি সক্রিয় থাকে তবে ইভেন্টটি রাইজিংয়ে রাখুন।
  • আপনি সমস্ত পরিবর্তন করার পরে এটি পপ আপ সতর্কবার্তা দ্বারা রিবুট বোতামটি ক্লিক করুন

এই সব করার পরে, আপনি আপনার শো শুরু করতে বোতাম টিপতে সক্ষম হওয়া উচিত। উহু!

যাইহোক, এই পদ্ধতির কিছু সীমাবদ্ধতা রয়েছে। যদি আপনি প্লেলিস্ট চলাকালীন আবার বোতাম টিপেন, এটি হয় 1) কিছু করবে না বা 2) FPP ক্র্যাশ করবে এবং আপনার বোতামটি দিয়ে কিছু করতে অস্বীকার করবে যতক্ষণ না আপনি এটি পুনরায় বুট করবেন। সুতরাং যদি আপনি নাটকীয়ভাবে একটি বোতাম ব্যবহার করছেন আপনার কমান্ডে শো চালানোর জন্য, উপরের পদ্ধতিটি আপনার প্রয়োজন হবে।

আপনার যদি আরও কিছু প্রয়োজন হয়, পরবর্তী ধাপে যান

ধাপ 4: আরো শক্তিশালী স্ক্রিপ্ট

নীচে স্ক্রিপ্ট যা আমি অবশেষে এসেছি। আপনি Github এ স্ক্রিপ্টটি এখানে দেখতে পারেন: [Gist. Github]

  • যদি কেউ "রাত" ঘন্টার মধ্যে বোতাম টিপেন তবে এটি টাইগার রাগ (আমার গান 1) বাজাবে এবং তারপরে স্ট্যান্ডবাই সিকোয়েন্সে যাবে যা অসীমভাবে লুপ করে।
  • টাইগার রাগ বাজানোর সময় যদি বোতাম টিপানো হয় তবে এটি আমার দ্বিতীয় গান, হলিউজাহ শুরু করে, এবং তারপর অনির্দিষ্টকালের জন্য স্ট্যান্ডবাই সিকোয়েন্সে যাবে।
  • কিন্তু যদি কেউ দিনের বেলায় বা খুব গভীর রাতে বোতাম টিপেন তবে এটি একবার টাইগার রাগ বাজাবে এবং তারপরে সমস্ত লাইট বন্ধ করে দেবে।

এটি বোতামটি দিনের যে কোনও সময় কাজ করতে দেয় তবে লাইটগুলি সর্বদা থাকতে হবে না। এটি বর্তমানে কোন গানটি চালাচ্ছে, সেই গানটি শেষ করে, এবং "পরবর্তী" গানটি বাজিয়ে 1 টি বোতাম থেকে একাধিক গান চালানোর অনুমতি দেয়।

আপনি FPP- এ স্ক্রিপ্টিং এর জন্য আরো সম্পদ খুঁজে পেতে পারেন: https://github.com/FalconChristmas/fpp-scripts আরো জটিল যুক্তির জন্য শুধু গুগল "ব্যাশ স্ক্রিপ্ট _" যেখানে আপনি আন্ডারস্কোর করার চেষ্টা করছেন। আপনি FPP শেল (ব্যবহারকারীর নাম fpp পাসওয়ার্ড ফ্যালকন) ব্যবহার করে আপনার স্ক্রিপ্ট পরীক্ষা করতে পারেন মৌলিক কমান্ডগুলি নিম্নরূপ।

ক্যাপিটালাইজেশনে মনোযোগ দিন !!

  • ক্যাপিটাল -পি একবার একটি প্লেলিস্ট চালাবে, ছোট হাতের -পি এটি পুনরাবৃত্তি করবে।
  • fpp -v 66 ভলিউম 66% সেট করুন
  • fpp -c stop অবিলম্বে শো বন্ধ করুন
  • fpp -C স্টপ এটি হতে পারে সুন্দরভাবে শো বন্ধ করা
  • fpp -p thisPlaylistName এই প্লেলিস্টনামটি পুনরাবৃত্তি করে (তাই ভূমিকা গানটি একবার বাজলে, তারপর মূল বিষয়গুলি অনির্দিষ্টকালের জন্য পুনরাবৃত্তি হবে।
  • fpp -P thisPlaylistName একবার এই প্লেলিস্টনাম প্লে করে
  • eventScript "$ {MEDIADIR}/scripts/$ {thisScriptVariable}" একটি স্ক্রিপ্ট চালায়। বাম দিকের ক্ষেত্রে এটি কাজ করে যদি আপনার স্ক্রিপ্টের নাম উপরে কোথাও একটি ভেরিয়েবলে সংরক্ষিত থাকে, যেমন thisScriptVariable = "PlayTheSong.sh"

ButtonSuperScript.sh

#!/বিন/শ
###########################################################
#বোতাম টিপলে চালানো হবে।
#আপনার প্রতিটি গানের জন্য দুটি প্লেলিস্ট থাকা উচিত - একটি দিয়ে
# শুধু "প্রথম খেলা" হিসাবে গান এবং মূল কিছুই না,
# এবং আরেকটি গানের সাথে প্রথম প্লে এবং আপনার স্ট্যান্ডবাই
"প্রধান" ক্রম হিসাবে # ক্রম। (অন্তত যদি আপনি চান
# আমি যা করছি তা সঠিকভাবে করতে)
#
#উদাহরণস্বরূপ, যদি আপনার গানটি টাইগার রাগ হয়, আপনার উচিত
# প্লেলিস্ট "TigerRag", "TigerRagStandby", এবং "Standby"
#
###########################################################
# প্লেলিস্ট চালানোর জন্য যদি এটি 6 থেকে 11 এর মধ্যে হয়
NightSong1 = "TigerRagStandby"
নাইটসং 2 = "হ্যালেলুয়াজ স্ট্যান্ডবাই"
নাইটস্ট্যান্ডবাই = "স্ট্যান্ডবাই"
# প্লেলিস্ট দিন বা 11 এর পরে চালানোর জন্য
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
ডে স্ট্যান্ডবাই = "স্ট্যান্ডবাই"
#24-ঘন্টার সময় চালু এবং বন্ধ। আপনি যদি মিনিট চান, শুভকামনা
ঘন্টা = 17
OffHour = 23
###########################################################
# স্ক্রিপ্টের সাহস। #
###########################################################
# আমাদের বর্তমান অবস্থা পান (IDLE = 0, PLAYING = 1, Gracefully Stop = 2)
স্ট্যাটাস = $ (fpp -s | cut -d ',' -f2)
#চলমান প্লেলিস্ট পান এবং 7 টি অক্ষরে ট্রিম করুন
প্লেলিস্ট = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#এটি একটি গান বাজালে "উভয়" হবে, এবং এটি স্ট্যান্ডবাই হলে "সিকোয়েন্স" হবে
#স্ট্যান্ডবাই ক্রম চলছে কিনা তা নির্ধারণ করতে ব্যবহার করা হয়
স্ট্যান্ডবাইস্ট্রিং = $ (fpp -s | cut -d ',' -f5)
#তুলনার জন্য প্লেলিস্টের নামের প্রথম letters টি অক্ষর
#মাত্র 7 অক্ষর যাতে "Song1Standby" এবং "Song1" অভিন্ন হয়
#ঠিক আছে তাই আসলে এটি প্রথম x অক্ষর হওয়া উচিত এবং x আপনার সংক্ষিপ্ত গানের নাম হওয়া উচিত
স্ট্যান্ডবাই প্লেলিস্ট = $ (প্রতিধ্বনি $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
#সামরিক সময়ে বর্তমান ঘন্টা পান
CurrentHour = $ (তারিখ +"%H")
#কিছু জিনিসের অবস্থা মুদ্রণ করুন - "প্রতিধ্বনি" বেশিরভাগ ভাষায় "মুদ্রণ" এর মতো
#বিভিন্ন জিনিস ছাঁটা বা সঠিকভাবে গণনা করা হলে পরীক্ষার জন্য উপকারী
echo CurrentHour হল $ CurrentHour
ইকো রানিং প্লেলিস্ট হল: $ PLAYLIST
echo Song2Playlist হল: $ Song2Playlist
প্রতিধ্বনি স্থিতি হল: $ STATUS
#রাতে ভলিউম 80% সেট করুন, অন্যথায় 100%
#তাই যদি আমি ঘুমিয়ে থাকি তবে এটি তত জোরে নয়
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; তারপর
# fpp -v 100
#অন্যথায়
# fpp -v 80
#ফি
# চেক করুন যে আমরা অর্থপূর্ণ কিছু পেয়েছি
যদি [-z "$ {STATUS}"]; তাহলে
প্রতিধ্বনি "স্থিতি মান সহ ত্রুটি"> এবং 2
প্রস্থান 1
fi
# বর্তমান অবস্থা নিয়ে কাজ করুন
$ {STATUS} কেস
# আইডিএল
0)
#রাতের সময় - স্ট্যান্ডবাই দিয়ে Song1 খেলুন
যদি [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; তাহলে
ইকো প্লেয়িং নাইটসং 1
fpp -c স্টপ
fpp -p "$ {NightSong1}" $ {STARTITEM}
#দিন সময় বা সত্যিই দেরি - একবার গান 1 বাজান তারপর লাইট বন্ধ করুন
অন্য
ইকো প্লেয়িং ডেসং 1
fpp -c স্টপ
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# প্লেসিং বা স্টপিং গ্রেসফুলি (একটি নির্ধারিত প্লেলিস্ট শেষ হয়ে গেলে বোতাম টিপলে সুন্দর হয়)
1 | 2)
#স্ট্যান্ডবাই চলছে - এটি কাজ করে কারণ স্ট্যান্ডবাই আমার একমাত্র অ -মিডিয়া ক্রম
যদি ["$ STANDBYSTRING" == "ক্রম"]; তাহলে
#রাতের সময় - স্ট্যান্ডবাই দিয়ে Song1 খেলুন
যদি [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; তাহলে
রাতের সময় নাইটসং 1 বাজানোর প্রতিধ্বনি
fpp -c স্টপ
fpp -p "$ {NightSong1}"
#দিন বা সত্যিই দেরি - একবার বাঘের রাগ খেলুন তারপর লাইট বন্ধ করুন
অন্য
বাজানো থেকে Daysong1 প্রতিধ্বনি
fpp -c স্টপ
fpp -P "$ {DaySong1}"
fi
#আরো গান সমর্থন করার জন্য, এই বিভাগটি অনুলিপি করুন এবং শেষ অংশে "Song2Playlist" গান#প্লেলিস্টে পরিবর্তন করুন
#Song1 চলছে
elif ["$ PLAYLIST" == "$ Song1Playlist"]; তারপর
#রাতের সময় - স্ট্যান্ডবাই দিয়ে হ্যালেলুজা খেলুন
যদি [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; তাহলে
প্রতিধ্বনি বাজছে হাল্লুজাহ স্ট্যান্ডবাই টাইগার রাগ থেকে
fpp -c স্টপ
fpp -p "$ {NightSong2}"
#দিন সময় বা সত্যিই দেরি - একবার গান 2 খেলুন তারপর লাইট বন্ধ করুন
অন্য
প্রতিধ্বনি বাঘের রাগ থেকে একবার হলিউজাহ বাজানো চলছে
fpp -c স্টপ
fpp -P "$ {DaySong2}"
fi
#লাস্ট গান চলছে - স্ট্যান্ডবাই প্লে করুন
elif ["$ PLAYLIST" == "$ Song2Playlist"]; তারপর
#রাতের সময় - লুপে স্ট্যান্ডবাই খেলুন
যদি [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; তাহলে
পুনরাবৃত্তি স্ট্যান্ডবাই বাজানো প্রতিধ্বনি
fpp -c স্টপ
fpp -p "$ {NightStandby}"
#দিন সময় বা সত্যিই দেরি - একবার স্ট্যান্ডবাই খেলুন
অন্য
স্ট্যান্ডবাই একবার বাজানো প্রতিধ্বনি
fpp -c স্টপ
fpp -P "$ {DayStandby}"
fi
অন্য
echo কিছু কারণে শেষ অন্য কেস কার্যকর করা হয়েছে।
fpp -c স্টপ
fpp -P "$ {DaySong1}"
fi
;;
esac

GitHub দ্বারা raw দিয়ে হোস্ট করা rawButtonSuperScript.sh দেখুন

ধাপ 5: (alচ্ছিক) বোতামের জন্য ফেসপ্লেট

আমি মেকারস্পেসের মাধ্যমে ক্লেমসনে একটি লেজার কাটারের অ্যাক্সেস পেয়েছি, তাই আমি দ্রুত+নকশার জন্য একটি নকশা স্কেচ করেছি। আমার বোতামের মাঝখানে একটি ছিদ্র আছে, শব্দগুলি ক্রিসমাস ফন্টে "পুশ মি" এবং বোতামের চারপাশে স্নোফ্লেক বলে। আমি কিছু কাঠ সাদা আঁকা স্প্রে করেছি এবং তারপর এটি মাস্কিং টেপে coveredেকে রেখেছি (যাতে লেজার কাটার অংশগুলো ঝলসে না যায় যা আমি খোদাই করতে চাই না)। আমি যে ফাইলটি ব্যবহার করেছি তা সংযুক্ত।

প্রস্তাবিত: