Სარჩევი:

დაიწყეთ საშობაო სინათლის ჩვენება ღილაკით: 5 ნაბიჯი
დაიწყეთ საშობაო სინათლის ჩვენება ღილაკით: 5 ნაბიჯი

ვიდეო: დაიწყეთ საშობაო სინათლის ჩვენება ღილაკით: 5 ნაბიჯი

ვიდეო: დაიწყეთ საშობაო სინათლის ჩვენება ღილაკით: 5 ნაბიჯი
ვიდეო: ჯონ გოლდტვეიტი - “გულის გაწმენდა” - აუდიო წიგნი 2024, ნოემბერი
Anonim
დაიწყეთ საშობაო სინათლის ჩვენება ღილაკით
დაიწყეთ საშობაო სინათლის ჩვენება ღილაკით

მუსიკის სინქრონიზებული საშობაო მსუბუქი შოუს გაშვებისას შეიძლება დაგჭირდეთ შოუს დაწყება ღილაკზე დაჭერით. ეს გაკვეთილი გამოიყენება მხოლოდ შოუსთვის, რომელიც კონტროლდება Falcon Pi Player (FPP) საშუალებით, რომელიც მუშაობს ჟოლოს პიზე. თუ თქვენ იყენებთ FPP– ს, თქვენ ალბათ იყენებთ Falcon კონტროლერებს და იყენებთ xLights ან LightORama– ს თქვენი შოუს თანმიმდევრობით. თუკი არცერთი თქვენგანი არაფერს ნიშნავს თქვენთვის, ეს სახელმძღვანელო ალბათ ახლა უკვე თქვენს თავზეა და თქვენ უნდა დაიწყოთ ამ ვიკის წაკითხვით https://auschristmaslighting.com/wiki/ და შეუერთდეთ ფეისბუქის ჯგუფს, როგორც ქვემოთ

  • xLights:
  • ზოგადი მოწინავე საშობაო ნათურები:
  • Falcon Pi Player:
  • დანართი/იდეის გაზიარება:
  • "კონკრეტულად xLights ან LOR დაკავშირებული": მაგრამ
  • xLights Holiday Light გამყიდველები:
  • გააკეთე შენი თავი შობა:

ნაბიჯი 1: ნაწილების სია

თქვენ დაგჭირდებათ შემდეგი ნივთები:

  • Ღილი. მე გამოვიყენე ეს ერთი LED ბეჭდის შუქით მის გარშემო: [Amazon]
  • რეზისტორი. სასურველია 200Ω ან მეტი (აქედან 2 თუ იყენებთ LED ღილაკს) სტანდარტული 1/4W ან 1/8W კარგია
  • შემაერთებელი მავთული. ლიანდაგი, რომელიც უნდა გამოიყენოთ, დამოკიდებულია იმაზე, თუ რამდენად შორს იქნება ღილაკი თქვენი Pi- დან. მე გამოვიყენე 18awg მავთული ჩემი Pi– დან დაახლოებით 10 ფუტის მანძილზე და ის მუშაობდა უზადოდ
  • გზა მავთულის დასაკავშირებლად Pi- ს GPIO ქინძისთავებთან. თქვენ შეგიძლიათ გამოიყენოთ ლენტი კაბელი ბრეაკოუტ ბორბლით, ან შეგიძლიათ გამოიყენოთ რამდენიმე ქალი კონექტორი, როგორც მე გავაკეთე. ჩვენ გვჭირდება მხოლოდ 3 მავთული - სახმელეთო, 5 ვ და მონაცემები ღილაკზე. [ამაზონი]
  • (სურვილისამებრ) წყალგაუმტარი კონექტორი თითოეულ ბოლოზე მარტივი მოვლისთვის. მე ვიყენებ 3-პინიან საზღვაო კლასის კონექტორებს: [Amazon]
  • (სურვილისამებრ) სითბოს შემცირების კონდახის კონექტორები [ამაზონი]

ნაბიჯი 2: გაყვანილობის დიაგრამა

გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა

სურათებზე ნაჩვენებია გაყვანილობის დიაგრამა ღილაკზე ჩართული LED- ის გარეშე და ღილაკი LED- ით. გაყვანილობის დიაგრამის დაყენების საშუალება გაძლევთ საშუალებას გაუშვათ ღილაკი და შუქი (უწყვეტად ჩართული) სულ რაღაც 3 მავთულით.

GPIO პინისთვის შეარჩიეთ ნებისმიერი GPIO ქინძისთავი პიზე. ასევე გამოიყენეთ +5V და Gnd ქინძისთავები. თქვენ ალბათ გაექცევით 3.3V პინის გამოყენებით, მაგრამ ძაბვის ვარდნამ მავთულის რამდენიმე ფუტზე შეიძლება სიგნალი არასანდო გახადოს ან არ იყოს საკმარისი LED- ის გასანათებლად.

შენიშვნა: 3 პინიანი კონექტორი არ ჯდება იმ ხვრელში, რომლის გასხვლაც გჭირდებათ ღილაკზე LED რგოლის შუქით. ასე რომ, მიამაგრეთ კონექტორი მას შემდეგ, რაც ღილაკს დააყენებთ თქვენს სახეზე.

ნაბიჯი 3: Falcon Pi Player ძირითადი დაყენება

შენიშვნა - FPP მუდმივად განახლდება და სავსებით შესაძლებელია, რომ ისინი გააუმჯობესებენ სკრიპტირების მხარდაჭერას ან შეიცავდნენ "ღილაკს დასაწყებად" როგორც ნაგულისხმევ ფუნქციას, რომელიც მოითხოვს ნაკლებ პროგრამირებას.

მე მივყევი ზემოთ მოცემულ ვიდეოს, რომ თავიდანვე დამეწყო ყველაფერი.

მე ვხედავ ვიდეოებს მოსაწყენად და ნელა, ასე რომ აქ არის მისი მოკლე შინაარსი:

  • იმპორტი თქვენი მიმდევრობა fpp ფაილ მენეჯერის გამოყენებით
  • შექმენით დასაკრავი სია თანმიმდევრობით. შემდეგი ნაბიჯებისთვის დასაკრავ სიას დაერქმევა "playme"
  • გახსენით ცარიელი რვეულის ფაილი და ჩაწერეთ შემდეგი:

    • #!/bin/sh
    • fpp -P თამაში
  • შეინახეთ.sh ფაილი თქვენს კომპიუტერში
  • გადადით ფაილ მენეჯერზე FPP– ში და ატვირთეთ თქვენი სკრიპტის ფაილი. გადადით "სკრიპტების" ჩანართზე და დარწმუნდით, რომ ის იქ არის
  • სტატუსის/კონტროლის ქვეშ გადადით მოვლენებზე
  • შექმენით ახალი ღონისძიება. ღონისძიების ID 1/1, ღონისძიების სახელი რაც არ უნდა იყოს, ეფექტის თანმიმდევრობა არა, მოვლენის სკრიპტი
  • გადადით Input/Output Setup და დააწკაპუნეთ GPIO გამომწვევებზე
  • გადართეთ პინზე, რომელზედაც მიმაგრებულია ღილაკი. თუ ის დაბლა დაიწევს ღილაკზე დაჭერისას, განათავსეთ ღონისძიება 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 უფრო რთული ლოგიკისთვის უბრალოდ google”bash script _” სადაც ხაზგასმა არის ის, რასაც ცდილობ. თქვენ შეგიძლიათ შეამოწმოთ თქვენი სკრიპტები FPP Shell (მომხმარებლის სახელი fpp პაროლი falcon) გამოყენებით ძირითადი ბრძანებები შემდეგია.

მიაქციეთ ყურადღება კაპიტალიზაციას !!

  • Capital -P ითამაშებს დასაკრავ სიას ერთხელ, მცირე ასო -p გაიმეორებს მას.
  • fpp -v 66 ხმის დაყენება 66%
  • fpp -c შეჩერება დაუყოვნებლივ შეაჩერე შოუ
  • fpp -C გაჩერება ეს შეიძლება იყოს stop show მოხდენილად
  • 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 = "ალილუია"
DayStandby = "ლოდინი"
#ჩართვის და გამორთვის დრო 24 საათის განმავლობაში. თუ წუთი გინდათ, წარმატებებს გისურვებთ
საათზე = 17
OffHour = 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")
#დაბეჭდე ზოგიერთი ნივთის სტატუსი - "ექო" ბევრ ენაზე ჰგავს "ბეჭდვას"
#გამოსაყენებლად გამოსადეგი თუ სხვადასხვა რამ მოჭრილია ან სწორად არის გათვლილი
ექო 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]; მაშინ
echo Playing NightSong1
fpp -c გაჩერება
fpp -p "$ {NightSong1}" $ {STARTITEM}
#დღის დრო ან მართლაც გვიან - ითამაშეთ სიმღერა 1 ერთხელ და შემდეგ გამორთეთ შუქი
სხვა
echo Playing DaySong1
fpp -c გაჩერება
fpp -P "$ {DaySong1}" $ {STARTITEM}
ფი
;;
# დაკვრა ან შეჩერება მადლიერად (მოხდენილი მოხდება, თუ ღილაკი დაჭერილია დაგეგმილი დასაკრავი სიის დამთავრებისას)
1 | 2)
#ლოდინის რეჟიმი მუშაობს - ეს მუშაობს იმიტომ, რომ ლოდინი არის ჩემი ერთადერთი არამედიური თანმიმდევრობა
თუ ["$ STANDBYSTRING" == "თანმიმდევრობა"]; მაშინ
#ღამის დრო - ითამაშე სიმღერა 1 ლოდინის რეჟიმში
თუ [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; მაშინ
echo Playing NightSong1 ღამის განმავლობაში
fpp -c გაჩერება
fpp -p "$ {NightSong1}"
#დღის დრო ან მართლაც გვიან - ითამაშეთ ვეფხვის ქსოვილი ერთხელ და შემდეგ გამორთეთ შუქები
სხვა
echo PlayingDaySong1 თამაშიდან
fpp -c გაჩერება
fpp -P "$ {DaySong1}"
ფი
#მეტი სიმღერის მხარდასაჭერად დააკოპირეთ ეს განყოფილება და შეცვალეთ "Song2Playlist" ბოლო ნაწილში სიმღერის#დასაკრავი სიის
#სიმღერა 1 გადის
elif ["$ PLAYLIST" == "$ Song1Playlist"]; შემდეგ
#ღამის დრო - ითამაშე ალილუია ლოდინით
თუ [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; მაშინ
echo Playing HallelujahStandby საწყისი Tiger Rag გადის
fpp -c გაჩერება
fpp -p "$ {NightSong2}"
#დღის დრო ან მართლაც გვიან - ითამაშეთ Song2 ერთხელ და შემდეგ გამორთეთ შუქი
სხვა
echo Playing Hallelujah ერთხელ Tiger Rag გადის
fpp -c გაჩერება
fpp -P "$ {DaySong2}"
ფი
#ბოლო სიმღერა ტარდება - ითამაშეთ standby
elif ["$ PLAYLIST" == "$ Song2Playlist"]; შემდეგ
#ღამის დრო - ითამაშეთ ლოდინის რეჟიმში
თუ [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; მაშინ
ექო განმეორებით ლოდინის თამაში
fpp -c გაჩერება
fpp -p "$ {NightStandby}"
#დღის დრო ან მართლაც გვიან - ითამაშეთ ლოდინის რეჟიმში ერთხელ
სხვა
echo Playing ლოდინის ერთხელ
fpp -c გაჩერება
fpp -P "$ {DayStandby}"
ფი
სხვა
ექო რატომღაც ბოლო სხვა საქმე შესრულებულია.
fpp -c გაჩერება
fpp -P "$ {DaySong1}"
ფი
;;
ესაკი

rawButtonSuperScript.sh- ის ნახვა GitHub– ით

ნაბიჯი 5: (სურვილისამებრ) ღილაკი ღილაკზე

მე მაქვს წვდომა კლემსონის ლაზერულ საჭრელზე Makerspace– ის საშუალებით, ასე რომ, მე სწრაფად შევადგინე დიზაინი მოჭრის+ეტჩისთვის. შუაში არის ხვრელი ჩემს ღილაკზე, ნათქვამია საშობაო შრიფტით "Push Me" და ღილაკის გარშემო ფიფქია. მე სპრეით შევიღებე ხის თეთრს და შემდეგ გადავიფარე მასკირების ლენტით (ისე, რომ ლაზერულმა საჭრელმა არ გაწვას ნაწილები, რომელთა ამოღებაც არ მინდა). ფაილი, რომელსაც ვიყენებ, თან ერთვის.

გირჩევთ: