Πίνακας περιεχομένων:

Ξεκινήστε την Χριστουγεννιάτικη Έλασή σας με ένα Κουμπί: 5 Βήματα
Ξεκινήστε την Χριστουγεννιάτικη Έλασή σας με ένα Κουμπί: 5 Βήματα

Βίντεο: Ξεκινήστε την Χριστουγεννιάτικη Έλασή σας με ένα Κουμπί: 5 Βήματα

Βίντεο: Ξεκινήστε την Χριστουγεννιάτικη Έλασή σας με ένα Κουμπί: 5 Βήματα
Βίντεο: Έτοιμο σε 5 λεπτά! Χωρίς μαγιά, χωρίς έλαση. Σκόρδο Flatbread Φτιάξτε με υγρή ζύμη! 2024, Ιούλιος
Anonim
Ξεκινήστε την Χριστουγεννιάτικη Έλασή σας με ένα Κουμπί
Ξεκινήστε την Χριστουγεννιάτικη Έλασή σας με ένα Κουμπί

Όταν εκτελείτε μια χριστουγεννιάτικη φωτεινή εκπομπή συγχρονισμένη με μουσική, ίσως θελήσετε να ξεκινήσετε την παράσταση πατώντας ένα κουμπί. Αυτό το σεμινάριο ισχύει μόνο για μια παράσταση που ελέγχεται μέσω του Falcon Pi Player (FPP) που εκτελείται σε Raspberry Pi. Εάν εκτελείτε FPP, πιθανότατα χρησιμοποιείτε χειριστήρια Falcon και χρησιμοποιείτε xLights ή LightORama για να ακολουθήσετε την εκπομπή σας. Εάν καμία από αυτές τις λέξεις δεν σημαίνει τίποτα για εσάς, αυτό το σεμινάριο είναι μάλλον λίγο πάνω από το κεφάλι σας προς το παρόν και θα πρέπει να ξεκινήσετε διαβάζοντας αυτό το wiki 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 του Pi. Μπορείτε να χρησιμοποιήσετε ένα καλώδιο κορδέλας με το ξεμπλοκάρισμα ψωμιού ή μπορείτε να χρησιμοποιήσετε μερικές θηλυκές συνδέσεις όπως έκανα εγώ. Χρειαζόμαστε μόνο 3 καλώδια - Γείωση, 5V και δεδομένα για κουμπί. [Αμαζόνα]
  • (Προαιρετικά) Αδιάβροχος σύνδεσμος σε κάθε άκρο για εύκολη συντήρηση. Χρησιμοποιώ συνδετήρες θαλάσσιου βαθμού 3 ακίδων: [Amazon]
  • (Προαιρετικά) Συνδέσεις θερμικής συρρίκνωσης [Amazon]

Βήμα 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, Όνομα συμβάντος όποιο, Ακολουθία εφέ ΚΑΝΕΝΑ, Σενάριο συμβάντος
  • Μεταβείτε στην ενότητα Ρύθμιση εισόδου/εξόδου και κάντε κλικ στο εικονίδιο ενεργοποίησης 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 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}" Εκτελεί ένα σενάριο. Στην περίπτωση στα αριστερά, λειτουργεί εάν έχετε αποθηκεύσει το όνομα του σεναρίου σας σε μια μεταβλητή κάπου παραπάνω, όπως αυτόScriptVariable = "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
OffHour = 23
###########################################################
# Έντονα σενάρια. #
###########################################################
# Λάβετε την τρέχουσα κατάστασή μας (IDLE = 0, PLAYING = 1, Stoping Gracefully = 2)
ΚΑΤΑΣΤΑΣΗ = $ (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" είναι σαν το "print" στις περισσότερες γλώσσες
#Χρήσιμο για δοκιμή εάν διάφορα πράγματα έχουν κοπεί ή υπολογιστεί σωστά
echo CurrentHour είναι $ CurrentHour
Η λίστα αναπαραγωγής echo Running είναι: $ PLAYLIST
echo Song2Playlist είναι: $ Song2Playlist
Η κατάσταση echo είναι: $ STATUS
#Ρυθμίστε την ένταση στο 80% τη νύχτα, 100% διαφορετικά
#Έτσι, αν κοιμάμαι δεν είναι τόσο δυνατά
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; τότε
# fpp -v 100
#αλλού
# fpp -v 80
#fi
# Ελέγξτε ότι έχουμε κάτι ουσιαστικό
εάν [-z "$ {STATUS}"]; τότε
ηχώ "Σφάλμα με τιμή κατάστασης"> & 2
έξοδος 1
fi
# Ενεργοποιήστε την τρέχουσα κατάσταση
υπόθεση $ {STATUS} σε
# ΑΔΡΑΝΗΣ
0)
#Νύχτα - παίξτε Song1 με αναμονή
εάν [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; τότε
echo Παίζοντας NightSong1
fpp -c στάση
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Ημέρα ή πολύ αργά - παίξτε το τραγούδι 1 μία φορά και μετά σβήστε τα φώτα
αλλού
echo Playing DaySong1
fpp -c στάση
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# ΠΑΙΞΗ ή ΣΤΑΜΑΤΗΣΗ ΧΑΡΙΣΤΙΚΑ (το χαριτωμένο συμβαίνει αν πατηθεί το κουμπί όταν τελειώσει μια προγραμματισμένη λίστα αναπαραγωγής)
1 | 2)
Το #Standby εκτελείται - αυτό λειτουργεί επειδή η αναμονή είναι η μόνη μου ακολουθία εκτός μέσων
εάν ["$ STANDBYSTRING" == "ακολουθία"], τότε
#Νύχτα - παίξτε Song1 με αναμονή
εάν [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; τότε
echo Παίζοντας NightSong1 για νυχτερινή ώρα
fpp -c στάση
fpp -p "$ {NightSong1}"
#Ημέρα ή πραγματικά αργά - παίξτε κουρέλι τίγρης μία φορά και μετά σβήστε τα φώτα
αλλού
echo PlayingDaySong1 από το παιχνίδι
fpp -c στάση
fpp -P "$ {DaySong1}"
fi
#Για να υποστηρίξετε περισσότερα τραγούδια, αντιγράψτε αυτήν την ενότητα και αλλάξτε το "Song2Playlist" στην τελευταία ενότητα σε Songlist#Playlist
Το #Song1 τρέχει
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
#ΤΕΛΕΥΤΑΙΟ ΤΡΑΓΟΥΔΙ ΤΡΕΧΕΙ - ΠΑΙΞΕ ΣΤΑΝΤΜΠΥ
elif ["$ PLAYLIST" == "$ Song2Playlist"]; τότε
#Νυχτερινή ώρα - παίξτε αναμονή σε βρόχο
εάν [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; τότε
ηχώ Αναπαραγωγή αναμονής σε επανάληψη
fpp -c στάση
fpp -p "$ {NightStandby}"
#Ημέρα ή πολύ αργά - παίξτε μια φορά σε αναμονή
αλλού
echo Παίζοντας Standby Once
fpp -c στάση
fpp -P "$ {DayStandby}"
fi
αλλού
echo Για κάποιο λόγο εκτελέστηκε η τελευταία άλλη περίπτωση.
fpp -c στάση
fpp -P "$ {DaySong1}"
fi
;;
esac

προβολή rawButtonSuperScript.sh που φιλοξενείται με ❤ από το GitHub

Βήμα 5: (Προαιρετικό) Πρόσοψη για το κουμπί

Έχω πρόσβαση σε έναν κόφτη λέιζερ στο Clemson μέσω του Makerspace, οπότε σχεδίασα γρήγορα ένα σχέδιο για κοπή+χάραξη. Υπάρχει μια τρύπα στη μέση για το κουμπί μου, οι λέξεις λένε "Push Me" με χριστουγεννιάτικη γραμματοσειρά και μια νιφάδα χιονιού γύρω από το κουμπί. Έβαψα με ψεκασμό λίγο ξύλο λευκό και μετά το σκέπασα με ταινία κάλυψης (έτσι ώστε ο κόφτης λέιζερ να μην καεί τα μέρη που δεν θέλω να χαραχτούν). Επισυνάπτεται το αρχείο που χρησιμοποίησα.

Συνιστάται: