Innholdsfortegnelse:

Raspberry Pi Christmas Tree Light Show: 15 trinn (med bilder)
Raspberry Pi Christmas Tree Light Show: 15 trinn (med bilder)

Video: Raspberry Pi Christmas Tree Light Show: 15 trinn (med bilder)

Video: Raspberry Pi Christmas Tree Light Show: 15 trinn (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Image
Image

Oppdatering: Jeg har lagt ut en oppdatert evolusjon av dette treet for 2017 på denne instruerbare

Dette prosjektet innebærer å bruke en Raspberry Pi til å drive 8 stikkontakter som er koblet til juletters lyssett. AC -lysene er enkle lysfarger i én farge, men for å gi lysshowet et mer dynamisk område er det også en 25 programmerbar RGB LED -stjerne. En av fordelene med å bruke Raspberry Pi i stedet for en Arduino -kontroller er at jeg kan kjøre lyden ut av Raspberry Pi for å få timene til å stemme med musikk (for ikke å snakke om fordelen med å ha en WiFi -tilkobling for å jobbe med programvaren eksternt).

Trinn 1: Materialer

Materialer
Materialer

Husk at materialene nedenfor er det jeg brukte til dette prosjektet. I mange tilfeller kan alternative deler/løsninger brukes.

Her er materialene jeg brukte til dette prosjektet:

For kontrolleren:

  1. Raspberry Pi (B -modell er det jeg brukte)

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

    Jeg unngikk de mekaniske reléene ettersom klikkelyden til bryteren vil være merkbart hørbar, og gikk vi SSR -er. Dette brettet er klassifisert opp til 2 AMP per SSR, som er nok til å drive en rekke julelys

  3. Jumperwires - Finnes billig på Ebay
  4. JST SM Plug + Beholder - Adafruit
  5. 32ft wire -wire (eller fire 8 ft wire)
  6. Forlengelseskabel x 8
  7. Strømfordelingsblokk x 2 - AdaFruit
  8. Power Strip
  9. Strømforsyninger

    • 5 volt, 3 ampere eller mer for å drive lysdioder og Pi
    • 5 volt, 1 ampere eller mer for å drive SSR -modulen
  10. Innhegning
  11. Høyttalere

For stjernen:

  1. 12 mm RGB -lysdioder (streng på 25) - AdafruitWS2801 -brikken i dette produktet gjør at Pi bare må pulsere strengen en gang i stedet for å kontinuerlig pulsere linjen for å holde lysdiodene opplyste.
  2. Plast ABS -ark for å holde lysdioder på plass - Walmart
  3. Lexan -ark for diffuse lysdioder - Lowes
  4. Svart spraymaling
  5. Hvit spraymaling
  6. Tre

For treet:

  1. Hvit 100 lys streng x 4
  2. Hvit 50 lys streng
  3. Rød 100 lys streng x 2
  4. Grønn 100 lys streng x 2
  5. Blå 100 lyse tråder x 2

Trinn 2: Sett opp Raspberry Pi

Før jeg dykket ned i ledningene, ønsket jeg å få Pi -en i gang først for å teste komponentene etter hvert som de var tilkoblet. Dette oppsettet ble utført før oppsettet av kabinettet, og involverer Raspberry Pi koblet via USB -strøm til en skjerm og et tastatur. Målet er å få systemet konfigurert til det punktet utviklingen kan fortsette på Pi i kabinettet.

Standard Pi -installasjonen har ikke bibliotekene som trengs for å kjøre WS2801 -lysdiodene riktig i stjernen, så jeg installerte AdaFruit Occidentalis -operativsystem på Pi.

Etter Occidnetalis -installasjonen var det et lite ekstra oppsett involvert:

1) Konfigurer Pi for å starte opp til en ledetekst (ikke GUI -grensesnittet)

2) Sett opp det trådløse nettverksgrensesnittet på Pi ved å redigere/etc/network/interfaces. Sørg for å velge en statisk IP-adresse slik at du kan logge deg på en kjent adresse for å jobbe med Pi

3) Installer Telnet og FTP -tjenester.

4) Installer Pygame. Biblioteket brukes i python -skriptene for å spille MP3/WAV -filer

Detaljerte instruksjoner for installasjon/oppsett kan lett bli funnet gjennom Internett -søk. Det finnes mange ressurser på Pi online.

Etter dette punktet kan jeg koble fra hvilken som helst video ut og tastatur fordi Pi kan være du kan logge på eksternt.

Trinn 3: Begynn å sette opp kabinettet

Begynn å sette opp kabinettet
Begynn å sette opp kabinettet

Jeg vil ikke gå inn på mange detaljer om hvordan man bygger skapet, da det bare er en eske laget av tre. Jeg boret 1,5 diameter holder på endene av kabinettet. Til høyre er hullet der alle skjøteledningene og stjernesnoren løper ut og venstre er hullet der strømlisten og lydutgangen kjøres.

De første komponentene som skal monteres er strømlisten og Raspberry Pi. For å drive Pi bruker jeg den samme 5V -transformatoren for å drive stjernen og Pi (vist i grønt). På grunn av dette har jeg strøm til en rekkeklemme (markert hvit) der 5V gaffler til stjernekablene og til Pi

Pin 2 = 5V

Pin 6 = bakken

Når den er tilkoblet, slå på strømmen og Pi skal starte opp og være tilgjengelig via Telnet som oppsettet i forrige trinn.

Trinn 4: Koble Raspberry Pi til relemodulen

Koble Raspberry Pi til relemodulen
Koble Raspberry Pi til relemodulen

Når all strøm er slått av (strømforsyninger og Pi), kobler du de 5 voltene til de to nederste eksterne strømkontaktkontaktene. Jeg kjørte dette med en dedikert 5 Volt -forsyning koblet til strømuttaket. Dette er slik at Pi ikke har hele belastningen på å drive reléet (bekymringen er 8 samtidige releer aktivert) og i stedet bare kan kjøre en transistor for å koble ekstern strøm til reléet.

Bestem nå plasseringen av GPIO0 til og med GPIO7 på Raspberry Pi. På min B-modell 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

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

Siden tilkoblingen på SSR -modulen er skrudd inn stolper, trimmet jeg hver jumper til riktig størrelse basert på hvordan jeg fordelte komponentene. Koble alle 8 inngangskanalene og bakken fra Pi til brettet. Nåletang hjelper deg med å sette hopperne ordentlig inn i Pi -hodet.

Hver kanal har en LED på SSR -modulen som lyser når GPIO går høyt på Pi. Kjør et enkelt testprogram for å kontrollere alle tilkoblingene, vedlagt som test.py, hvor hver GPIO0-7 er satt høyt i to sekunder.

Trinn 5: Klipp og forbered skjøteledninger

Klipp og forbered skjøteledninger
Klipp og forbered skjøteledninger

Kutt av pluggenden på hver skjøteledning, og la maksimal tilgjengelig lengde ligge til ledningen i ledningen, ettersom den muligens må gå til toppen av treet. På ledningen deles endene av ledningen fra hverandre ved å kutte den tynne plastbiten som holder de to ledningene sammen. Fjern nå endene slik at omtrent 1/4 ledning blir utsatt for skruen på kontaktene.

Bruk en Sharpie -markør på hver ende med enden av ledningen for å skrive tallene 1 til 8, slik at du enkelt kan identifisere hvilken kontakt som går til hvilken kanal på SSR -modulen.

Vi trenger også en plugg og litt ekstra ledning for neste trinn, så enten kannibaliser en 9. skjøteledning eller la det være litt ekstra plass på de 8 skjøteledningene når du kutter av pluggenden.

Trinn 6: Koble til skjøteledningene

Koble til skjøteledningene
Koble til skjøteledningene
Koble til skjøteledningene
Koble til skjøteledningene

Neste trinn kroker utgangsenden av SSR -modulen med 8 skjøteledninger. Siden mengden ledninger her kan bli veldig rotete, brukte jeg en strømfordelingsbock og en stiftpistol for å prøve å holde alt på plass.

Når strømmen er slått av, tar du den avsluttede pluggenden fra forrige trinn og kobler den til strømuttaket. Strip de to andre endene og koble hver til den øvre og nedre strømfordelingsblokken og stift disse to tilkoblingene.

Koble nå til en av de kuttede skjøteledningene fra forrige trinn. I mitt tilfelle har jeg et kabinett med et 1,5 diameter hull for at alle ledningene skal strømme ut, så markert med grønt er en av ledningene med den ene enden koblet til fordelingsblokken og den andre til utgangsenden av SSR -modulen. For å fullføre kretsen trenger vi en mye kortere ledning (vist i blått) som kobler den andre fordelingsblokken til SSR -modulen. Trim og stift for å holde alt så pent som mulig. Ikke bare holder stiftet ting pent, men det tjener også en strekkavlastning slik at eventuell slep og trekking ved tilkobling av lysene til treet ikke vil trekke forbindelsene ut av komponentene. Unødvendig å si at stiftingen ikke trenger å stikke hull i ledningen eller isolasjonen.

Trinn 7: Test AC -tilkoblingene

Test AC -tilkoblingene
Test AC -tilkoblingene
Test AC -tilkoblingene
Test AC -tilkoblingene

I stedet for å koble til fulle strenger med julelys, koblet jeg til billige nattlykter på $ 1 til hver skjøteledning for å teste og utvikle animasjonene før treet var oppe. Jeg malte lysene som var koblet til ledningene som skulle kontrollere de røde, grønne og blå lysstrengene.

Kjør det samme testprogrammet som ble brukt til å teste SSR -modulen, og kontroller at hver tilkobling lyser som den skal.

Lysboksen indikerte at hver streng ville trekke 0,34 ampere, og for de fargede lysene skulle jeg snøre to sett sammen, noe som skulle resultere i en total trekning på 0,68 ampere. Dette er godt under vurderingen til SSR som er 75 - 200 VAC ved 2 ampere, men jeg ønsket å dobbeltsjekke ettersom sikringen på SSR -modulen er loddet til brettet, noe som gjør det vanskelig å bytte ut.

Trinn 8: Opprette stjernen

Å lage stjernen
Å lage stjernen
Å lage stjernen
Å lage stjernen
Å lage stjernen
Å lage stjernen
Å lage stjernen
Å lage stjernen

Det første trinnet i å lage stjernen er å lage en utskrivbar mal for å forme trerammen og plasten. Etter skalering og utskrift av malen i passende størrelse tok jeg et stykke 4,25 "x 0,125" tre fra håndverksbutikken og målte avstanden som var nødvendig for hver side av stjernen. Jeg faset faktisk ikke noen av leddene da jeg klippet dem, så det ble nødvendig å støtte stjernen for å holde bitene på plass mens de limte.

Når jeg plasserte malen på arbeidsflaten, brukte jeg støtter for å holde de tre trebitene på plass som vist i brunt på bildet. Med de to kantene på treverket som rørte, ble det påført lim på hver side av skjøten. Deretter tok jeg et tynt stykke balsa og skar ut en trekant for å reparere de to delene og limte det på stjernen. Årsaken til å bruke balsa er at når stjernen er godt festet, klarte jeg lett å slipe trekanten ned for å matche stjernens kontur, vist sirklet inn i stjernebildet.

På grunn av konstruksjonsmetoden måtte jeg vente noen timer på hver ledd for at limet skulle tørke før jeg flyttet til neste ledd.

Når hele stjernen var dannet, bruker jeg gipsspon for å dekke hullene der to trebiter møttes på stjernespissene.

Jeg limte deretter inn noen små stoppere rundt innsiden av stjernen for å hjelpe til med å sette LED -enheten på plass når den ble satt inn, markert med et rektangel. Jeg tror ikke at de faktisk er nødvendige da tyngdekraften gjør en jobb med å holde LED -enheten på plass.

Legg den sammensatte stjernen på toppen av Lexan -arket, spor formen på stjernen og kutt ut stjernen fra Lexan. Etter å ha kuttet Lexan -stjernen, må du kontrollere at den passer inn i trerammen, og deretter påføre 2 strøk hvit spraymaling på den ene siden av Lexan og la den tørke i 24 timer. Dette gjør at lysdiodene kan diffundere, så vel som å skjule dem for syn.

For å skjule hetten mellom Lexan -stjernen og trerammen brukte jeg en liten 0,25 "stripe balsatre og klippet den for å forme og" dekke "rammen slik at balsa dekket hullet.

Til slutt la du til en pinne/dyvel for å feste stjernen til tretoppen.

Trinn 9: Lag LED -monteringen

Lag LED -monteringen
Lag LED -monteringen
Lag LED -monteringen
Lag LED -monteringen

Ved å bruke den samme malen for å danne trestjernen, skjærer du ut ABS -plastarket i størrelse, men litt mindre for å kunne settes inn i trestjernen. Test ut at den sitter godt inne i trestjernen.

Deretter bruker du fortsatt malen med hullplasseringer, og borer de 25 LED -hullene. Lysdiodene fra AdaFruit har en silikonflens på utsiden av dem, slik at de monteres perfekt i hull boret på 12 mm. På bildet kan du se flensen, og jeg har brukt en grønn linje for å indikere hvor ABS -plasten ville gripe inn flensen for å holde LED -en på plass.

Start med en av tipsene og arbeid rundt utsiden av stjernen, og flytt deretter til de 5 innerste festene for å fullføre stykket. I programmet mitt har jeg LED -posisjonene koblet som vist numerisk på bildet, med 1 som den første LED etter kontakten.

Påfør litt elektrisk tape på den røde og blå enden av kabelen. De er sekundære innganger for strøm som vi ikke vil bruke, og bruker i stedet den røde/blå tilkoblingen med klokke/signaltilkoblingen over selve kabelen.

Trinn 10: Opprette forlengelsestråden for LED -stjernen

Opprette forlengelsestråden for LED -stjernen
Opprette forlengelsestråden for LED -stjernen
Opprette forlengelsestråden for LED -stjernen
Opprette forlengelsestråden for LED -stjernen

Neste er å lage en 8 fot kabel for å løpe fra kabinettet til stjernen på toppen av treet.

Klipp 4 like lange stykker på 8 fot wire og i den ene enden av kabelbunten bruker du enten elektrisk tape eller glidelåser for å holde bunten sammen og pen. Gjør dette nedover hele lengden på de 4 kabelbuntene hvert par centimeter.

I hver ende av buntlisten fjernes ledningene og loddetinnet til JST -kontaktene, slik at ledningen kan koble den ene enden til kabinettet og den andre til stjernen. Sørg for å holde ledningenes relative posisjon i riktig rekkefølge, slik at når blått/grønt/gult/rødt er koblet til stjernen, matcher den i den andre enden av kabelen. Bruk et multimeter for å kontrollere kabelen for å kontrollere at den er koblet ordentlig.

Trinn 11: Koble stjernen til Pi

Koble stjernen til Pi
Koble stjernen til Pi

Vi må nå lage en beholder i kabinettet for at stjernen/forlengelseskabelen skal plugges inn.

Rød = 5 volt

Blå = bakken

Så vi kan koble disse to linjene på JST -kontakten til terminalblokken som Raspberry Pi -strømmen er koblet til.

De to andre forbindelsene er:

Gul = Data = MOSI = Pin 19

Grønn = Klokke = SCLK = Pin 23

Jeg fulgte ledningene fra AdaFruits opplæring. Fjern deretter enden av to startkabler slik at de kan loddes på JST -kontakten.

Når du er sikker på at ledningene vil få de riktige signalene til lysdiodene, kan du stabilisere kontakten i kabinettet for strekkavlastning, slik at eventuell trekking på skjøteledningen ikke vil rive hopperne ut av Pi.

Trinn 12: Test LED -stjernen

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

Med LED -stjernen koblet til Pi. Kjør et enkelt testprogram for å kontrollere at belysningen fungerer som den skal. Mye av koden min er tilpasset fra AdaFruit -opplæringen, samt et foruminnlegg på nettstedet om tilpasning av opplæringskoden for å passe til lysdiodene vi bruker.

Vedlagte ledtest.py vil få stjernen til å vende seg sakte fra rent blått til rent rødt.

Trinn 13: Koble til høyttalerne, bygg en topp på kabinettet

Koble høyttalerne, bygg en topp på kabinettet
Koble høyttalerne, bygg en topp på kabinettet

Ikke noe spesielt her, bare fest høyttalerne til lyden fra Raspberry Pi, og koble dem til strømuttaket. En enkel drevet høyttaler med volumjusteringsknapp fungerer.

For toppen ønsket jeg å kunne se inn i kabinettet, så jeg monterte et stykke 8,5 x 11 glass (fra en bilderamme) på lokket og brukte borrelås på toppen slik at jeg raskt kunne fjerne toppen om nødvendig. En stor del av kabinettet har 110 VAC eksponert, så det er viktig for toppen å gi beskyttelse mot noen eller noe mot utilsiktet kontakt.

Trinn 14: Koble belysningen til treet

Koble belysningen til treet
Koble belysningen til treet

Jeg valgte oppsett av kanaler på juletreet for å gi meg maksimal fleksibilitet til å generere forskjellige typer bevegelser/effekter. Vedlagt er et bilde av hvordan jeg la belysningen til de 5 hvite trådene. De resterende tre kanalene var hver et sett med to 100 lyse lys: rødt, grønt, blått.

Den spesielle skjøteledningen du kobler til hver streng er ikke kritisk, da jeg i neste trinn kan tilpasse kartleggingen mellom GPIO0-7 og hvilke lys som er på treet.

Trinn 15: Last inn/lag musikk, programvare, sekvenser…

Image
Image

Det er mange julelyssekvenser tilgjengelig online for Raspberry Pi, men jeg kodet en enkel fra bunnen av. Alle sekvensene ble generert ved å stille opp timinger av beats/tiltak i Audacity (lydredigerer) til bestemte kommandoer til min sequencer.

rxmas.py

Dette programmet vil tilfeldig velge et statisk oppsett for treet hvert minutt. Jeg har dette skriptet som kjører ved oppstart av Raspberry Pi (gjennom en cron -jobb) som standardatferd når jeg kobler til enheten.

xmas.py

Dette er sequencer -programmet, som tar en sekvensfil og en MP3 som innganger

setup.txt

I forrige trinn ga jeg oppsettet jeg brukte for hver logiske kanal. Denne filen tilordner hver faktiske GPIO0-7 til den logiske kanalen. Så i setup.txt jeg har vedlagt, driver GPIO0s skjøteledning logisk kanal 8 (blå), GPIO1 driver logisk kanal 6 (rød), etc …

test.mp3 / test.txt

Dette er et enkelt testtilfelle for et lydtall fra tallene 1 til 8 med de tilsvarende lysstrengene lyser

Så for å påberope denne eksempeltypen:

./xmas.py test.txt test.mp3

carol.txt

Sequencerfilen til Christmas Sarajevo av Trans-Siberian Orchestra

LetItGo.txt

Sequencerfilen for Let It Go fra Disneys Frozen Movie

russisk.txt

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

Du må selvsagt levere dine egne LetItGo.mp3- og carol.mp3 -filer! Bare kjøp dem fra Amazon.

MERK: Den innebygde YouTube -videoen har hastighet på opptil 110% hastighet, så det kan høres litt rart ut

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

Førstepremie i Make it Glow!

Anbefalt: