Indholdsfortegnelse:

Raspberry Pi Christmas Tree Light Show: 15 trin (med billeder)
Raspberry Pi Christmas Tree Light Show: 15 trin (med billeder)

Video: Raspberry Pi Christmas Tree Light Show: 15 trin (med billeder)

Video: Raspberry Pi Christmas Tree Light Show: 15 trin (med billeder)
Video: Hubble - 15 years of discovery 2024, November
Anonim
Image
Image

Opdatering: Jeg har lagt en opdateret udvikling af dette træ ud for 2017 på dette instruerbare

Dette projekt indebærer at bruge en Raspberry Pi til at drive 8 stikkontakter, der er forbundet til juletræets lyssæt. AC -lysene er enkle lysfarve i en farve, men for at give lysshowet et mere dynamisk område er der også en 25 programmerbar RGB LED -stjerne. En af fordelene ved at bruge Raspberry Pi i stedet for en Arduino -controller er, at jeg kan køre lyden ud af Raspberry Pi for at få lyset til at blive timet med musik (for ikke at nævne fordelen ved at have en WiFi -forbindelse til at arbejde på softwaren eksternt).

Trin 1: Materialer

Materialer
Materialer

Husk, at materialerne herunder er, hvad jeg brugte til dette projekt. I mange tilfælde kan alternative dele/løsninger bruges.

Her er de materialer, jeg brugte til dette projekt:

For controlleren:

  1. Raspberry Pi (B -model er, hvad jeg brugte)

    • SD kort
    • USB Wifi adapter
  2. SainSmart 8 Channel 5V SSR Modul Board - Amazon

    Jeg undgik de mekaniske relæer, da klikkerens lyd lyder mærkbart og gik til SSR'er. Dette bord er klassificeret op til 2 AMP pr. SSR, hvilket er nok til at drive en række julelys

  3. Jumperwires - Findes billigt på Ebay
  4. JST SM Plug + Beholder - Adafruit
  5. 32ft trådrulle (eller fire 8 ft trådstykker)
  6. Forlængerledning x 8
  7. Strømfordelingsblok x 2 - AdaFruit
  8. Power Strip
  9. Strømforsyninger

    • 5 volt, 3 ampere eller større til at drive lysdioder og Pi
    • 5 volt, 1 ampere eller større for at drive SSR -modul
  10. Kabinet
  11. Højttalere

Til stjernen:

  1. 12 mm RGB LED'er (streng på 25) - AdafruitWS2801 -chip i dette produkt gør det muligt for Pi bare at pulsere strengen en gang i stedet for kontinuerligt at pulsere linjen for at holde LED'erne oplyste.
  2. Plast ABS -ark til at holde lysdioder på plads - Walmart
  3. Lexan -ark til diffuse lysdioder - Lowes
  4. Sort spraymaling
  5. Hvid spraymaling
  6. Træ

Til træet:

  1. Hvid 100 lys streng x 4
  2. Hvid 50 lys streng
  3. Rød 100 lys streng x 2
  4. Grøn 100 lys streng x 2
  5. Blå 100 lyse tråde x 2

Trin 2: Konfigurer Raspberry Pi

Inden jeg dykkede ned i ledningerne, ville jeg først få Pi'en til at køre for at teste komponenterne, da de var forbundet. Denne opsætning blev udført før opsætningen af kabinettet og involverer Raspberry Pi forbundet via USB -strøm til en skærm og et tastatur. Målet er at få systemet konfigureret til det punkt, udviklingen kan fortsætte på Pi i kabinettet.

Standard Pi -installationen har ikke de biblioteker, der er nødvendige for korrekt at køre WS2801 -lysdioderne i stjernen, så jeg installerede AdaFruit Occidentalis -operativsystem på Pi.

Efter Occidnetalis -installationen var der involveret lidt ekstra opsætning:

1) Konfigurer Pi til at starte til et kommandoprompt (ikke GUI -grænsefladen)

2) Konfigurer det trådløse netværksinterface på Pi ved at redigere/etc/network/interfaces. Sørg for at vælge en statisk IP-adresse, så du kan logge ind på en kendt adresse for at arbejde på Pi

3) Installer Telnet og FTP -tjenester.

4) Installer Pygame. Biblioteket bruges i python -scripts til afspilning af MP3/WAV -filer

Detaljerede instruktioner til installation/opsætning kan let findes via internetsøgninger. Der findes masser af ressourcer på Pi online.

Efter dette punkt kan jeg afbryde enhver video ud og tastatur, fordi Pi kan være dig, du kan logge ind eksternt.

Trin 3: Start opsætning af kabinettet

Start opsætning af kabinettet
Start opsætning af kabinettet

Jeg vil ikke gå ind på mange detaljer om, hvordan man bygger kabinettet, da det bare er en kasse lavet af træ. Jeg borede 1,5 diameter holder i enderne af kabinettet. Til højre er hullet, hvor alle forlængerledninger og stjernekabel løber ud, og venstre er hullet, hvor strømstik og lydudgang køres.

De første komponenter, der skal monteres, er strømstik og Raspberry Pi. For at drive Pi bruger jeg den samme 5V transformer til at drive stjernen og Pi (vist med grønt). På grund af dette har jeg strømmen til at gå til en terminalblok (fremhævet hvid), hvor 5V gafler til stjerneledningerne og til Pi

Pin 2 = 5V

Pin 6 = Jord

Når den er tilsluttet, tænd for strømmen, og Pi skal starte op og være tilgængelig via Telnet som opsætning i det foregående trin.

Trin 4: Tilslutning af Raspberry Pi til relæmodulet

Tilslutning af Raspberry Pi til relæmodulet
Tilslutning af Raspberry Pi til relæmodulet

Med alle strømafbrydelser (strømforsyninger og Pi) tilsluttes de 5 volt til de nederste to eksterne strømkildestik. Jeg kørte dette med en dedikeret 5 Volt forsyning tilsluttet strømstikket. Dette er for at Pi ikke har hele belastningen med at køre relæet (bekymringen er 8 samtidige relæer aktiveret) og i stedet bare kan drive en transistor for at aktivere ekstern strøm til relæet.

Bestem nu placeringen af GPIO0 til og med GPIO7 på Raspberry Pi. På min B-model er det:

GPIO0 = Pin 11

GPIO1 = Pin 12

GPIO2 = Pin 13

GPIO3 = Pin 15

GPIO4 = Pin 16

GPIO5 = Pin 18

GPIO6 = Pin 22

GPIO7 = Pin 7

Jord/0V = Pin 6, Pin 9, Pin 14, Pin 20, Pin 25

Da forbindelsen på SSR -modulet er skruet i stolper, trimmede jeg hver jumper til den korrekte størrelse baseret på, hvordan jeg fordelte komponenterne. Tilslut alle 8 input -kanaler samt jord fra Pi'en til kortet. Nålestang hjælper med at sætte jumperne korrekt i Pi -headeren.

Hver kanal har en LED på SSR -modulet, der lyser, når GPIO går højt på Pi. Kør et simpelt testprogram for at kontrollere alle forbindelser, vedhæftet som test.py, hvor hver GPIO0-7 er sat højt i to sekunder.

Trin 5: Klip og forbered forlængerledninger

Klip og forbered forlængerledninger
Klip og forbered forlængerledninger

Skær stikproppen af på hver forlængerledning, og lad den maksimale tilgængelige længde ligge til den afslutte ende af ledningen, da den muligvis skal gå til toppen af træet. På ledningen splittede enderne af ledningen fra hinanden ved at skære det tynde stykke plast, der holdt de to ledninger sammen. Fjern nu enderne, så ca. 1/4 ledning udsættes for skruen på stik.

Brug en Sharpie -markør i hver ende med en ende af ledningen til at skrive tallene 1 til 8, så du let kan identificere, hvilken stik der går til hvilken kanal på SSR -modulet.

Vi har også brug for et stik og også en ekstra ledning til det næste trin, så enten kannibaliser en 9. forlængerledning eller efterlad noget ekstra plads på de 8 forlængerledninger, når du afbryder stikenden.

Trin 6: Tilslutning af AC -forlængerledninger

Tilslutning af AC -forlængerledninger
Tilslutning af AC -forlængerledninger
Tilslutning af AC -forlængerledninger
Tilslutning af AC -forlængerledninger

Næste trin hooks outputenden af SSR -modulet med 8 forlængerledninger. Da mængden af ledninger her meget let kan blive rodet, brugte jeg en strømfordelingsbock og en hæftepistol til at prøve at holde alt på plads.

Når strømmen er slukket, skal du tage den afskårne stikende fra det foregående trin og tilslutte den til strømstikket. Fjern de to andre ender, og slut hver til den øverste og nederste strømfordelingsblok, og hæft disse to forbindelser ned.

Tilslut nu en af de afskårne forlængerledninger fra det foregående trin. I mit tilfælde har jeg et kabinet med et hul på 1,5 diameter, så alle ledninger kan strømme ud, så markeret med grønt er en af ledningerne med den ene ende forbundet til fordelingsblokken og den anden til SSR -modulets outputende. For at fuldføre kredsløbet har vi brug for en meget kortere ledning (vist i blåt), der forbinder den anden fordelingsblok med SSR -modulet. Trim og hæft for at holde alt så pænt som muligt. Ikke kun holder hæftningen tingene pæne, men det tjener også en trækaflastning, så enhver slæbning og trækning, når lysene tilsluttes træet, ikke vil trække forbindelserne ud af komponenterne. Naturligvis skal hæfteklammer ikke gennembore tråden eller isoleringen ved hæftning.

Trin 7: Test AC -tilslutningerne

Test AC -tilslutningerne
Test AC -tilslutningerne
Test AC -tilslutningerne
Test AC -tilslutningerne

I stedet for at tilslutte hele strengen med julelys tilsluttede jeg billige $ 1 natlys til hver forlængerledning for at teste og udvikle animationerne, før træet var oppe. Jeg malede lysene forbundet til ledningerne, der ville styre de røde, grønne, blå lysstrenge.

Kør det samme testprogram, der bruges til at teste SSR -modulet, og sørg for, at hver forbindelse lyser korrekt.

Lysboksen angav, at hver streng ville trække 0,34 ampere, og for de farvede lys ville jeg snore to sæt sammen, hvilket skulle resultere i en samlet trækning på 0,68 ampere. Dette er et godt stykke under SSR -værdien, som er 75 - 200 VAC ved 2 ampere, men jeg ville gerne dobbelttjekke, da sikringen på SSR -modulet er loddet til brættet, hvilket gør det svært at udskifte.

Trin 8: Oprettelse af stjernen

Oprettelse af stjernen
Oprettelse af stjernen
Oprettelse af stjernen
Oprettelse af stjernen
Oprettelse af stjernen
Oprettelse af stjernen
Oprettelse af stjernen
Oprettelse af stjernen

Det første trin i at skabe stjernen er at lave en udskrivbar skabelon, der hjælper med at forme trærammen og plasten. Efter skalering og udskrivning af skabelonen i den passende størrelse tog jeg et stykke 4,25 "x 0,125" træ fra håndværksbutikken og målte den nødvendige afstand til hver side af stjernen. Jeg fasede faktisk ikke nogen af samlingerne, da jeg skar dem, så stjernen skulle understøttes for at holde stykkerne på plads, mens de limede.

Ved at placere skabelonen ned på arbejdsfladen brugte jeg understøtninger til at holde de to træstykker på plads som vist i brunt på billedet. Med træets to kanter rørende blev der påført lim på hver side af fugen. Derefter tog jeg et tyndt stykke balsa og skar en trekant ud for at reparere de to stykker sammen og limede det på stjernen. Grunden til at bruge balsa er, at når først stjernen er solidt sammen, var jeg let i stand til at slibe trekanten ned for at matche stjernens kontur, vist cirkelformet i stjernens billede.

På grund af konstruktionsmetoden måtte jeg vente et par timer på hver samling, før limen tørrede, før jeg flyttede til den næste samling.

Når hele stjernen var dannet, bruger jeg gipsvægspackel til at dække hullerne, hvor to træstykker mødtes ved stjernens spidser.

Jeg limede derefter nogle små propper rundt om indersiden af stjernen for at hjælpe med at sætte LED -enheden på plads, når den indsættes, fremhævet med et rektangel. Jeg tror ikke, at de faktisk er nødvendige, da tyngdekraften gør et stykke arbejde med at holde LED -enheden på plads.

Læg den samlede stjerne oven på Lexan -arket, spor stjernens form og skær stjernen ud af Lexan. Efter at have skåret Lexan -stjernen, skal du kontrollere, at den passer ind i trærammen, og derefter påføre 2 lag hvid spraymaling på den ene side af Lexan og lade tørre i 24 timer. Dette gør det muligt for LED'erne at diffundere samt skjule dem for syn.

For at skjule hætten mellem Lexan -stjernen og trærammen brugte jeg en lille 0,25 "strimmel balsatræ og skar den for at forme og" dække "rammen, så balsaen dækkede hullet.

Til sidst tilføjet en pind/dyvel for at hjælpe med at fastgøre stjernen til træets top.

Trin 9: Opret LED -monteringen

Opret LED -monteringen
Opret LED -monteringen
Opret LED -monteringen
Opret LED -monteringen

Brug den samme skabelon til at danne træstjernen, skær ABS -plastpladen ud i størrelse, men lidt mindre for at kunne indsættes inde i træstjernen. Test, at den sidder godt inde i træstjernen.

Brug derefter skabelonen med huller til at bore de 25 LED -huller. Lysdioderne fra AdaFruit har en silikone flange uden på dem, så de monteres perfekt i huller boret med 12 mm. På billedet kan du se flangen, og jeg har brugt en grøn linje til at angive, hvor ABS -plasten ville gribe ind i flangen for at holde LED'en på plads.

Start på en af spidserne, og arbejd omkring stjernens yderside, og flyt derefter til de inderste 5 beslag for at fuldføre stykket. I mit program har jeg LED -positionerne forbundet som vist numerisk på billedet, hvor 1 er den første LED efter stikket.

Påfør noget elektrisk tape på de røde og blå ender af kablet. De er sekundære input til strøm, som vi ikke vil bruge, og i stedet bruger den rød/blå forbindelse med uret/signalforbindelsen over selve kablet.

Trin 10: Oprettelse af forlængerledning til LED -stjernen

Oprettelse af forlængerledningen til LED -stjernen
Oprettelse af forlængerledningen til LED -stjernen
Oprettelse af forlængerledning til LED -stjernen
Oprettelse af forlængerledning til LED -stjernen

Næste er at oprette et 8 ft kabel til at køre fra kabinettet til stjernen øverst på træet.

Skær 4 stykker af lige længde på 8 ft wire, og brug i den ene ende af kabelbundtet enten elektrisk tape eller lynlåse til at holde bundtet sammen og pænt. Gør dette ned i hele længden af de 4 kabelbundter hvert par centimeter.

I hver ende af bundtet strimler ledningerne og loddet til JST -stik, så ledningen kan forbinde den ene ende til kabinettet og den anden til stjernen. Sørg for at holde ledningernes relative position i den rigtige rækkefølge, så når de tilsluttes stjernen, matcher de blå/grønne/gule/røde forbindelser i den anden ende af kablet. Brug et multimeter til at kontrollere kablet for at sikre, at det er korrekt forbundet.

Trin 11: Koble stjernen til Pi

Led stjernen til Pi
Led stjernen til Pi

Vi skal nu oprette beholderen i kabinettet, hvor stjernen/forlængerledningen kan tilsluttes.

Rød = 5 volt

Blå = Jord

Så vi kan forbinde disse to linjer på JST -stikket til terminalblokken, som Raspberry Pi er forbundet med.

De to andre forbindelser er:

Gul = Data = MOSI = Pin 19

Grøn = Ur = SCLK = Pin 23

Jeg fulgte ledningerne fra AdaFruit's tutorial. Fjern derfor enderne af to jumperkabler, så de kan loddes på JST -stikket.

Når du er sikker på, at ledningerne får de korrekte signaler til lysdioderne, kan du stabilisere stikket i kabinettet til aflastning, så enhver slæbning på forlængerkablet ikke vil rive springerne ud af Pi.

Trin 12: Test LED -stjernen

Test LED -stjernen
Test LED -stjernen
Test LED -stjernen
Test LED -stjernen

Med LED -stjernen forbundet til Pi. Kør et simpelt testprogram for at kontrollere, at belysningen fungerer korrekt. Meget af min kode er tilpasset fra AdaFruit Tutorial samt et forumindlæg på webstedet om tilpasning af tutorial -koden, så den passer til de lysdioder, vi bruger..

Den vedhæftede ledtest.py får stjernen til langsomt at vende sig fra ren blå til ren rød.

Trin 13: Tilslut højttalerne, byg en kabinetstop

Tilslut højttalerne, opbyg en top til kabinettet
Tilslut højttalerne, opbyg en top til kabinettet

Intet særligt her, bare tilslut højttalerne til lyden fra Raspberry Pi, og tilslut dem til strømstikket. En simpel højttaler med lydstyrke kan justeres.

Til toppen ville jeg gerne se ind i kabinettet, så jeg monterede et stykke 8,5 x 11 glas (fra en billedramme) til låget og brugte velcro på toppen, så jeg hurtigt kunne fjerne toppen, hvis det var nødvendigt. En stor del af kabinettet er udsat for 110 VAC, så det er vigtigt for toppen at give beskyttelse mod nogen eller noget mod utilsigtet kontakt.

Trin 14: Tilslut belysningen til træet

Tilslut belysningen til træet
Tilslut belysningen til træet

Jeg valgte kanalernes layout på juletræet for at give mig den maksimale fleksibilitet til at generere forskellige former for bevægelse/effekter. Vedhæftet er et billede af, hvordan jeg lagde belysningen til de 5 hvide tråde. De resterende tre kanaler var hver et sæt af to 100 lyse lys: Rød, Grøn, Blå.

Den særlige forlængerledning, som du tilslutter til hver streng, er ikke kritisk, da jeg i det næste trin kan tilpasse kortlægningen mellem GPIO0-7 og hvilke lys der er på træet.

Trin 15: Indlæs/Opret musik, software, sekvenser…

Image
Image

Der er adskillige julelys -sequencere tilgængelige online til Raspberry Pi, men jeg kodede en simpel fra bunden. Alle sekvenserne blev genereret ved at justere timinger af beats/målinger i Audacity (lydredaktør) til bestemte kommandoer til min sequencer.

rxmas.py

Dette program vælger tilfældigt et statisk layout til træet hvert minut. Jeg har dette script kørende ved opstart af Raspberry Pi (gennem et cron -job) som standardadfærd ved tilslutning af enheden.

xmas.py

Dette er sequencer -programmet, der tager en sekvensfil og en MP3 som input

setup.txt

I det foregående trin gav jeg det layout, jeg brugte til hver logisk kanal. Denne fil tilknytter hver egentlig GPIO0-7 til den logiske kanal. Så i setup.txt, jeg har vedhæftet, driver GPIO0s forlængerledning den logiske kanal 8 (blå), GPIO1 driver den logiske kanal 6 (rød) osv …

test.mp3 / test.txt

Dette er et simpelt testtilfælde for et lydtælling fra numrene 1 til 8 med de tilsvarende lysstrenge tændt

Så for at påberåbe denne eksempeltype:

./xmas.py test.txt test.mp3

carol.txt

Sequencerfilen til jul Sarajevo af Trans-Siberian Orchestra

LetItGo.txt

Sequencerfilen til Let It Go fra Disneys Frozen Movie

russisk.txt

Sequencerfilen til "A Mad Russian's Christmas" af Trans-Siberian Orchestra

Du bliver naturligvis nødt til at levere dine egne LetItGo.mp3- og carol.mp3 -filer! Bare køb dem fra Amazon.

BEMÆRK: Den indlejrede YouTube -video hastighed op til 110% hastighed, så det kan lyde lidt underligt

Få det til at lyse!
Få det til at lyse!

Første præmie i Make it Glow!

Anbefalede: