Inhoudsopgave:
- Stap 1: Onderdelenlijst
- Stap 2: Bedradingsschema
- Stap 3: Falcon Pi Player basisconfiguratie
- Stap 4: Een robuuster script
- Stap 5: (Optioneel) Frontplaat voor de knop
Video: Start je kerstlichtshow met een knop: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Wanneer u een kerstlichtshow uitvoert die is gesynchroniseerd met muziek, wilt u misschien de show starten door op een knop te drukken. Deze tutorial is alleen van toepassing op een show die wordt bestuurd via Falcon Pi Player (FPP) op een Raspberry Pi. Als je FPP gebruikt, gebruik je waarschijnlijk Falcon-controllers en gebruik je xLights of LightORama om je show te sequencen. Als geen van deze woorden iets voor je betekent, is deze tutorial waarschijnlijk een beetje over je hoofd voor nu en moet je beginnen met het lezen van deze wiki https://auschristmaslighting.com/wiki/ en lid worden van een Facebook-groep zoals hieronder
- xLights:
- Algemene geavanceerde kerstverlichting:
- Falcon Pi-speler:
- Behuizing/prop idee delen:
- "Niet specifiek xLights of LOR Related":
- xLights Holiday Light-verkopers:
- Doe het zelf kerst:
Stap 1: Onderdelenlijst
Je hebt de volgende items nodig:
- Een knop. Ik gebruikte deze met een LED-ringlicht eromheen: [Amazon]
- Een weerstand. Bij voorkeur 200Ω of meer (2 hiervan als je de LED-knop gebruikt) Standaard 1/4W of 1/8W is prima
- Aansluitdraad. De meter die u moet gebruiken, hangt af van hoe ver de knop van uw Pi verwijderd is. Ik gebruikte 18awg-draad voor ongeveer 10 voet van mijn Pi en het werkte perfect
- Een manier om een draad aan te sluiten op de GPIO-pinnen van de Pi. Je kunt een lintkabel gebruiken met het breakout-broodbord, of je kunt gewoon wat vrouwelijke connectoren gebruiken zoals ik deed. We hebben slechts 3 draden nodig - aarde, 5V en gegevens voor de knop. [Amazone]
- (Optioneel) Een waterdichte connector aan elk uiteinde voor eenvoudig onderhoud. Ik gebruik 3-pins connectoren van maritieme kwaliteit: [Amazon]
- (Optioneel) Krimpkousen [Amazon]
Stap 2: Bedradingsschema
De afbeeldingen tonen een bedradingsschema voor een knop zonder meegeleverde LED, en een knop met een LED. Door de manier waarop ik het bedradingsschema heb opgezet, kun je een knop en een lampje (continu aan) gebruiken met slechts 3 draden.
Kies voor de GPIO-pin een van de GPIO-pinnen op de pi. Gebruik ook de +5V- en Gnd-pinnen. Je zou waarschijnlijk weg kunnen komen met het gebruik van de 3,3V-pin, maar de spanningsval over enkele meters draad kan het signaal onbetrouwbaar maken of niet genoeg zijn om de LED te laten oplichten.
OPMERKING: De 3-pins connector past niet door het gat dat u moet boren voor een knop met het LED-ringlicht. Bevestig de connector dus nadat u de knop in uw frontplaat hebt geplaatst.
Stap 3: Falcon Pi Player basisconfiguratie
OPMERKING - FPP wordt voortdurend bijgewerkt en het is heel goed mogelijk dat ze hun ondersteuning voor scripts zullen verbeteren of dat ze "drukknop om te starten" als een standaardfunctie zullen opnemen die minder programmeerwerk vereist.
Ik volgde de bovenstaande video om in eerste instantie alles in te stellen.
Ik vind video's saai en traag, dus hier is een samenvatting ervan:
- Importeer uw reeks naar fpp met behulp van de bestandsbeheerder
- Maak een afspeellijst met de volgorde erin. Voor de volgende stappen wordt de afspeellijst "playme" genoemd
-
Open een leeg Kladblok-bestand en typ het volgende:
- #!/bin/sh
- fpp -P playme
- Sla het op als een.sh-bestand op je computer
- Ga naar de bestandsbeheerder in FPP en upload je scriptbestand. Ga naar het tabblad " Scripts " en zorg ervoor dat het daar is
- Ga onder Status/Control naar Evenementen
- Maak een nieuw evenement aan. Gebeurtenis-ID 1/1, gebeurtenisnaam wat dan ook, effectvolgorde GEEN, gebeurtenisscript
- Ga onder Input/Output Setup en klik op GPIO-triggers
- Wissel de pin waaraan uw knop is gekoppeld. Als het laag wordt wanneer u op de knop drukt, zet u de gebeurtenis op de optie Dalend, als het hoog actief is, zet u de gebeurtenis op Stijgend.
- Klik op de knop Opnieuw opstarten bij de waarschuwing die verschijnt nadat u alle wijzigingen hebt aangebracht
Nadat je dit allemaal hebt gedaan, zou je op de knop moeten kunnen drukken om je show te starten. Woehoe!
Deze methode heeft echter enkele beperkingen. Als je nogmaals op de knop drukt terwijl de afspeellijst bezig is, doet hij ofwel 1) niets of 2) crasht FPP en weigert iets met je knop te doen totdat je hem opnieuw opstart. Dus als je alleen een knop gebruikt als een dramatische manier om je show op commando af te spelen, is de bovenstaande methode alles wat je nodig hebt.
Als je nog iets nodig hebt, ga dan verder met de volgende stap
Stap 4: Een robuuster script
Hieronder staat het script waar ik uiteindelijk op uitkwam. Je kunt het script hier op Github bekijken: [Gist. Github]
- Als iemand tijdens de "nacht"-uren op de knop drukt, wordt Tiger Rag (my Song1) afgespeeld en gaat hij naar de standby-reeks die oneindig doorloopt.
- Als de knop wordt ingedrukt terwijl Tiger Rag speelt, begint mijn tweede nummer, Hallelujah, en gaat dan voor onbepaalde tijd naar de standby-reeks.
- Maar als iemand overdag of heel laat op de knop drukt, speelt hij één keer Tiger Rag en gaan dan alle lichten uit.
Hierdoor kan de knop op elk moment van de dag werken, maar hoeven de lichten niet altijd aan te zijn. Het maakt het ook mogelijk om meerdere nummers vanaf 1 knop af te spelen door te identificeren welk nummer momenteel wordt afgespeeld, dat nummer te beëindigen en het "volgende" nummer af te spelen.
Je kunt hier meer bronnen vinden voor scripting in FPP: https://github.com/FalconChristmas/fpp-scriptsVoor meer gecompliceerde logica google je gewoon op "bash script _" waar underscore is wat je probeert te doen. U kunt uw scripts testen met de FPP Shell (gebruikersnaam fpp wachtwoord falcon) De basiscommando's zijn als volgt.
Let op hoofdletters!!
- Hoofdletter -P zal een afspeellijst één keer afspelen, kleine letters -p zullen deze herhalen.
- fpp -v 66 Volume instellen op 66%
- fpp -c stop Stop de show onmiddellijk
- fpp -C stop Dit kan een mooie stop zijn
- fpp -p thisPlaylistName Speelt thisPlaylistName bij herhaling af (dus het intronummer wordt één keer afgespeeld, waarna het hoofdgedoe voor onbepaalde tijd wordt herhaald.
- fpp -P thisPlaylistName Speelt thisPlaylistName één keer af
- eventScript "${MEDIADIR}/scripts/${thisScriptVariable}" Voert een script uit. In het geval aan de linkerkant werkt het als je je scriptnaam ergens hierboven hebt opgeslagen in een variabele, zoals thisScriptVariable=”PlayTheSong.sh”
KnopSuperScript.sh
#!/bin/sh |
########################################################### |
#Wordt uitgevoerd als de knop wordt ingedrukt. |
#Je zou voor elk nummer twee afspeellijsten moeten hebben - één met |
# alleen het nummer als "First play" en niets in het hoofd, |
# en nog een met het nummer als eerste spel en je standby |
# reeks als de "Hoofd" reeks. (Als je wilt tenminste |
# om precies te doen wat ik doe) |
# |
#Als je nummer bijvoorbeeld Tiger Rag is, zou je moeten hebben |
# afspeellijsten "TigerRag", "TigerRagStandby" en "Standby" |
# |
########################################################### |
# Afspeellijsten die moeten worden uitgevoerd als deze tussen 6 en 11 is |
NightSong1="TigerRagStandby" |
NightSong2="HallelujaStand-by" |
NachtStandby="Standby" |
# Afspeellijsten die overdag of na 11 uur kunnen worden afgespeeld |
DaySong1="Tijgerrag" |
DaySong2="Halleluja" |
DayStandby="Standby" |
#Aan en uit tijden in 24-uurs tijd. Als je minuten wilt, veel succes |
OnHour=17 |
OffHour=23 |
########################################################### |
# Lef van het script. # |
########################################################### |
# Krijg onze huidige status (IDLE=0, PLAYING=1, Gracefully Stoppen=2) |
STATUS=$(fpp -s | knippen -d', ' -f2) |
#Verkrijg de lopende afspeellijst en trim tot 7 letters |
PLAYLIST=$(fpp -s | knippen -d', ' -f4 | knippen -c1-7) |
#Dit is "beide" als het een nummer afspeelt, en "sequence" als het stand-by is |
#gebruikt om te bepalen of de standby-reeks actief is |
STANDBYSTRING=$(fpp -s | knippen -d', ' -f5) |
#Eerste 7 letters van namen van afspeellijsten ter vergelijking |
#Slechts 7 letters zodat "Song1Standby" en "Song1" identiek zijn |
#Oké, dus eigenlijk zouden het de eerste x letters moeten zijn en x de kortste naam van het nummer dat je hebt |
StandbyPlaylist=$(echo $NightStandby| cut -c1-7) |
Song1Playlist=$(echo $NightSong1| cut -c1-7) |
Song2Playlist=$(echo $NightSong2| cut -c1-7) |
STARTITEM="" |
#Krijg het huidige uur in militaire tijd |
CurrentHour=$(datum +"%H") |
#Print de status van sommige dingen - "echo" is als "afdrukken" in de meeste talen |
#Nuttig om te testen of verschillende dingen correct zijn bijgesneden of berekend |
echo CurrentHour is $CurrentHour |
echo De lopende afspeellijst is: $PLAYLIST |
echo Song2Playlist is: $Song2Playlist |
echo Status is: $STATUS |
#Stel het volume 's nachts in op 80%, anders 100% |
#Zodat als ik slaap het niet zo luid is |
#if [$CurrentHour -lt $OffHour -a $CurrentHour -ge 11]; dan |
# fpp -v 100 |
#anders |
# fpp -v 80 |
#fi |
# Controleer of we iets zinvols hebben |
als [-z"${STATUS}"];dan |
echo"Fout met statuswaarde">&2 |
uitgang 1 |
fi |
# Handel naar de huidige status |
case${STATUS}in |
# INACTIEF |
0) |
#Nachttijd - speel Song1 met stand-by |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];dan |
echo NightSong spelen1 |
fpp -c stop |
fpp -p "${NightSong1}"${STARTITEM} |
#Overdag of heel laat - speel nummer 1 één keer en doe dan de lichten uit |
anders |
echo Spelen DaySong1 |
fpp -c stop |
fpp -P "${DaySong1}"${STARTITEM} |
fi |
;; |
# GRAAG AFSPELEN of STOPPEN (gracieus gebeurt als op de knop wordt gedrukt wanneer een geplande afspeellijst eindigt) |
1 | 2) |
#Standby is actief - dit werkt omdat standby mijn enige niet-mediasequentie is |
if ["$STANDBYSTRING"=="reeks"];dan |
#Nachttijd - speel Song1 met stand-by |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];dan |
echo NightSong1 spelen voor de nacht |
fpp -c stop |
fpp -p "${NightSong1}" |
#Overdag of heel laat - speel een keer tiger rag en doe dan de lichten uit |
anders |
echo PlayingDaySong1 van afspelen |
fpp -c stop |
fpp -P "${DaySong1}" |
fi |
#Om meer nummers te ondersteunen, kopieert u deze sectie en wijzigt u "Song2Playlist" in de laatste sectie in Song#Playlist |
#Song1 loopt |
elif ["$PLAYLIST"=="$Song1Playlist"];dan |
#Nachttijd - speel Hallelujah met stand-by |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];dan |
echo Hallelujah wordt afgespeeld Standby van Tiger Rag draait |
fpp -c stop |
fpp -p "${NightSong2}" |
#Overdag of heel laat - speel Song2 één keer en doe dan de lichten uit |
anders |
echo Een keer Hallelujah spelen van Tiger Rag draait |
fpp -c stop |
fpp -P "${DaySong2}" |
fi |
#LAATSTE NUMMER DRAAIT - SPEEL STANDBY |
elif ["$PLAYLIST"=="$Song2Playlist"];dan |
#Nachttijd - speel stand-by in lus |
if [$CurrentHour-lt$OffHour-a$CurrentHour-ge$OnHour];dan |
echo Stand-by afspelen bij herhalen |
fpp -c stop |
fpp -p "${NightStandby}" |
#Overdag of heel laat - speel één keer stand-by |
anders |
echo Eenmaal in stand-by afspelen |
fpp -c stop |
fpp -P "${DayStandby}" |
fi |
anders |
echo Om de een of andere reden is de laatste elsecase uitgevoerd. |
fpp -c stop |
fpp -P "${DaySong1}" |
fi |
;; |
esac |
bekijk rawButtonSuperScript.sh gehost met ❤ door GitHub
Stap 5: (Optioneel) Frontplaat voor de knop
Ik heb toegang tot een lasersnijder bij Clemson via de Makerspace, dus ik heb snel een ontwerp geschetst om te snijden + etsen. Er is een gat in het midden voor mijn knoop, de woorden zeggen "Push Me" in een kerstlettertype en een sneeuwvlok rond de knoop. Ik heb wat hout wit gespoten en daarna bedekt met plakband (zodat de lasersnijder geen delen verschroeit die ik niet wil laten etsen). Het bestand dat ik heb gebruikt is bijgevoegd.
Aanbevolen:
Kerstlichtshow gesynchroniseerd met muziek! - Ajarnpa
Kerstlichtshow gesynchroniseerd met muziek!: In deze instructable laat ik je zien hoe je een kerstlichtshow kunt maken die is gesynchroniseerd met kerstmuziek met behulp van RGB-pixels. Laat je niet afschrikken door die naam! Het is niet zo moeilijk om dit te leren. Ik waarschuw je echter dat dit behoorlijk kan zijn
Een toepassing van een uitschuifbare knop met vibratiefeedback - Ajarnpa
Een toepassing van een uitschuifbare knop met vibratiefeedback: In deze tutorial laten we je eerst zien hoe je een Arduino Uno kunt gebruiken om een vibratiemotor te besturen via een uitgebreide knop. De meeste tutorials over drukknoppen hebben betrekking op de knop op het fysieke breadboard, terwijl in deze tutorial de knop
Een knop Kopie naar klembord op een webpagina plaatsen: 5 stappen (met afbeeldingen)
Een knop Kopie naar klembord op een webpagina plaatsen: dit klinkt misschien eenvoudig, en ik zie er misschien gek uit als ik het op Instructables zet, maar in werkelijkheid is het niet zo eenvoudig. Er is CSS, JQuery, HTML, wat fancy javascript, en, ach, je weet wel
Start uw diavoorstelling met vakantiefoto's met een vleugje magie! 9 stappen (met afbeeldingen)
Lanceer uw diavoorstelling met vakantiefoto's met een vleugje magie!: In de loop der jaren heb ik de gewoonte ontwikkeld om een klein beeldje mee te nemen op reis: ik koop vaak een kleine, lege artoy (zoals die op de foto) en verf het past bij de vlag en het thema van het land dat ik bezoek (in dit geval Sicilië). T
Verander de Start-knop in Windows XP: 5 stappen
Wijzig de startknop in Windows XP: In deze stapsgewijze handleiding kunt u de tekst in uw startknop wijzigen in wat u maar wilt