Sadržaj:

Svjetlosni show božićnog drvca Raspberry Pi: 15 koraka (sa slikama)
Svjetlosni show božićnog drvca Raspberry Pi: 15 koraka (sa slikama)

Video: Svjetlosni show božićnog drvca Raspberry Pi: 15 koraka (sa slikama)

Video: Svjetlosni show božićnog drvca Raspberry Pi: 15 koraka (sa slikama)
Video: ПРОСТОЕ БЛЮДО‼ ПОДОЙДЁТ К МЯСУ РЫБЕ. ХРЕНОВИНА. КОМЕДИЯ 2024, Novembar
Anonim
Image
Image

Ažuriranje: Objavio sam ažuriranu evoluciju ovog stabla za 2017. na ovom uputstvu

Ovaj projekt uključuje korištenje Raspberry Pi za pogon 8 utičnica naizmjenične struje koje su povezane sa svjetlosnim setovima za božićno drvce. AC svjetla su jednostavna jednobojna svjetla, ali za davanje dinamičnijeg raspona svjetlosnoj emisiji postoji i 25 programabilnih RGB LED zvijezda. Jedna od prednosti korištenja Raspberry Pi umjesto Arduino kontrolera je ta što mogu istjerati zvuk iz Raspberry Pi -a kako bi svjetla bila tempirana uz muziku (da ne spominjemo prednost s WiFi vezom za daljinski rad na softveru).

Korak 1: Materijali

Materijali
Materijali

Imajte na umu da su donji materijali ono što sam koristio za ovaj projekt. U mnogim slučajevima mogu se koristiti zamjenski dijelovi/rješenja.

Evo materijala koje sam koristio za ovaj projekt:

Za kontroler:

  1. Raspberry Pi (model B sam koristio)

    • Sd kartica
    • USB WiFi adapter
  2. SainSmart 8 -kanalna 5V SSR Modul ploča - Amazon

    Izbjegao sam mehaničke releje jer će zvuk klika prekidača biti primjetno čujan i otišli smo kao SSR. Ova ploča ima ocjenu do 2 AMP po SSR -u, što je dovoljno za napajanje niza božićnih lampica

  3. Žice za kratkospojnike - mogu se jeftino pronaći na Ebayu
  4. JST SM utikač + utičnice - Adafruit
  5. 32ft rola žice (ili četiri komada od 8 ft žice)
  6. Produžni kabel x 8
  7. Blok za distribuciju energije x 2 - AdaFruit
  8. Razvodnik
  9. Napajanja
    • 5 volti, 3 ampera ili više za pogon LED i pi
    • 5 Volti, 1 Amp ili više za pogon SSR modula
  10. Enclosure
  11. Zvučnici

Za zvezdu:

  1. 12 mm RGB LED diode (niz 25) - čip AdafruitWS2801 u ovom proizvodu omogućava Pi -u da samo mora jednom pulsirati žicu, umjesto da neprestano pulsira liniju kako bi LED diode bile osvijetljene.
  2. Plastični ABS lim za držanje LED dioda na mjestu - Walmart
  3. Lexan lim za difuzne LED diode - Smanjuje
  4. Crna boja u spreju
  5. Bijela boja u spreju
  6. Drvo

Za drvo:

  1. Bijela 100 svijetlih niti x 4
  2. Bijela 50 svijetlih niti
  3. Crvena 100 svijetlih niti x 2
  4. Zelena 100 svijetlih niti x 2
  5. Plava 100 svijetlih niti x 2

Korak 2: Postavite Raspberry Pi

Prije nego što sam zaronio u ožičenje, htio sam prvo pokrenuti Pi i testirati komponente dok su bile povezane. Ovo podešavanje je izvršeno prije postavljanja kućišta i uključuje Raspberry Pi povezan preko USB napajanja na monitor i tastaturu. Cilj je da se sistem konfiguriše tako da razvoj može da se nastavi na Pi u kućištu.

Zadana Pi instalacija nema biblioteke potrebne za pravilno pokretanje WS2801 LED dioda u zvijezdi pa sam na Pi instalirao AdaFruitov operativni sistem Occidentalis.

Nakon instalacije Occidnetalisa, bilo je potrebno dodatno postavljanje:

1) Konfigurirajte Pi za pokretanje iz naredbenog retka (ne GUI sučelja)

2) Postavite bežično mrežno sučelje na Pi uređivanjem/etc/network/sučelja. Odaberite statičku IP adresu kako biste se mogli prijaviti na poznatu adresu za rad na Pi-u

3) Instalirajte Telnet i FTP usluge.

4) Instalirajte Pygame. Biblioteka se koristi u python skriptama za reprodukciju MP3/WAV datoteka

Detaljna uputstva za instalaciju/podešavanje mogu se lako pronaći putem pretraživanja Interneta. Na internetu na internetu postoji mnogo resursa.

Nakon ovog trenutka mogu isključiti bilo koji video izlaz i tastaturu jer se može dogoditi da se Pi prijavite na daljinu.

Korak 3: Počnite s postavljanjem kućišta

Počnite s postavljanjem kućišta
Počnite s postavljanjem kućišta

Neću ulaziti u detalje o tome kako izgraditi kućište jer je to samo kutija od drveta. Izbušio sam držače promjera 1,5 na krajevima kućišta. Desno je rupa u kojoj istječu svi produžni kabeli i zvjezdani kabel, a lijevo je rupa u kojoj se izvode razvodnik i audio izlaz.

Prve komponente za ugradnju su razvodnik i Raspberry Pi. Za napajanje Pi -a koristim isti 5V transformator za napajanje zvijezde i Pi (prikazano zelenom bojom). Zbog toga imam snagu da idem na priključni blok (označen bijelom bojom) gdje se 5V odvaja do ožičenja zvijezde i do Pi

Pin 2 = 5V

Pin 6 = Uzemljenje

Nakon povezivanja uključite napajanje i Pi bi se trebao pokrenuti i biti mu dostupan putem Telneta kao što je postavljeno u prethodnom koraku.

Korak 4: Spajanje Raspberry Pi na relejni modul

Spajanje Raspberry Pi na relejni modul
Spajanje Raspberry Pi na relejni modul

Sa svim isključenim napajanjem (napajanje i Pi), spojite 5 volti na dva donja konektora vanjskog izvora napajanja. Vozio sam ovo s namjenskim napajanjem od 5 V priključenim na razvodnik. To je tako da Pi nema cjelokupno opterećenje za pokretanje releja (zabrinutost je u tome što je uključeno 8 istovremenih releja) i umjesto toga može samo pokrenuti tranzistor za uključivanje vanjskog napajanja releja.

Sada odredite lokaciju GPIO0 preko GPIO7 na Raspberry Pi. Na mom B-modelu to je:

GPIO0 = Pin 11

GPIO1 = Pin 12

GPIO2 = Pin 13

GPIO3 = Pin 15

GPIO4 = Pin 16

GPIO5 = Pin 18

GPIO6 = Pin 22

GPIO7 = Pin 7

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

Budući da je veza na SSR modulu uvrnuta u stupove, obrezao sam svaki kratkospojnik na odgovarajuću veličinu ovisno o tome kako sam razmaknuo komponente. Spojite svih 8 ulaznih kanala, kao i uzemljenje sa Pi na ploču. Kliješta s iglastim nosem pomažu pri pravilnom postavljanju skakača u Pi glavu.

Svaki kanal ima LED na SSR modulu koji će svijetliti kada GPIO pređe visoko na Pi. Pokrenite jednostavan testni program da provjerite sve veze, pričvršćene kao test.py, gdje je svaki GPIO0-7 postavljen visoko na dvije sekunde.

Korak 5: Izrežite i pripremite produžne kabele

Prerežite i pripremite produžne kabele
Prerežite i pripremite produžne kabele

Na svakom produžnom kabelu odrežite kraj utikača ostavljajući maksimalnu raspoloživu dužinu do kraja utikača jer će vjerojatno morati ići do vrha stabla. Na kabelu razdvojite krajeve žice rezanjem tankog komada plastike držeći dvije žice zajedno. Sada skinite krajeve tako da otprilike 1/4 žice bude izloženo za vijke na konektorima.

Upotrijebite Sharpie marker na svakom kraju utičnice s kraja da biste upisali brojeve od 1 do 8 kako biste mogli lako identificirati koja utičnica ide na koji kanal na SSR modulu.

Za sljedeći korak trebat će nam i jedan utikač, a također i neka dodatna žica, pa ili kanibalizirajte 9. produžni kabel ili ostavite malo više prostora na 8 produžnih kabela kada odsiječete kraj utikača.

Korak 6: Spajanje produžnih kabela naizmjenične struje

Spajanje produžnih kabela naizmjenične struje
Spajanje produžnih kabela naizmjenične struje
Spajanje produžnih kabela naizmjenične struje
Spajanje produžnih kabela naizmjenične struje

Sljedeći korak povezuje izlazni kraj SSR modula s 8 produžnih kabela. Budući da se količina žica ovdje može lako zatrpati, upotrijebio sam razvodnu kutiju i pištolj za spajanje kako bih pokušao sve zadržati na mjestu.

Kad je napajanje isključeno, izvadite odsječeni kraj utikača iz prethodnog koraka i priključite ga na razvodnik. Odvojite druga dva kraja i spojite svaki na gornji i donji blok za distribuciju električne energije i spajajte ova dva priključka.

Sada spojite jedan od isječenih produžnih kabela iz prethodnog koraka. U mom slučaju imam kućište s rupom promjera 1,5 za isticanje svih kabela, pa je zelenom bojom istaknut jedan od kabela s jednim krajem spojenim na distribucijski blok, a drugim na izlaznom kraju SSR modula. Za dovršetak kruga potrebna nam je mnogo kraća žica (prikazana plavom bojom) koja povezuje drugi distribucijski blok sa SSR modulom. Obrežite i spajajte kako bi sve bilo što urednije. Ne samo da spajalica održava stvari urednima, već i služi rasterećenje tako da svako povlačenje i povlačenje prilikom spajanja svjetala na stablo neće izvući veze iz komponenti. Nepotrebno je reći da prilikom spajanja nema spajalica koje probijaju žicu ili izolaciju.

Korak 7: Testirajte priključke naizmjenične struje

Testirajte priključke za AC
Testirajte priključke za AC
Testirajte priključke za AC
Testirajte priključke za AC

Umjesto da povežem čitave nizove božićnih svjetiljki, priključio sam jeftine noćne svjetiljke u iznosu od 1 USD na svaki produžni kabel kako bih testirao i razvio animacije prije nego što je drvo podignuto. Oslikao sam svjetla povezana sa žicama koje će kontrolirati crvene, zelene i plave svjetlosne žice.

Pokrenite isti testni program koji se koristi za testiranje SSR modula i provjerite da li svaka veza ispravno svijetli.

Okvir sa svjetlima je pokazivao da će svaki niz vući 0,34 Ampera, a za svjetla u boji namjeravao sam nanizati dva skupa zajedno što bi trebalo rezultirati ukupnim izvlačenjem od 0,68 Ampera. To je znatno ispod ocjene SSR -a koja iznosi 75 - 200 VAC pri 2 ampera, međutim htio sam dvaput provjeriti jer je osigurač na SSR modulu lemljen na ploči što otežava zamjenu.

Korak 8: Stvaranje zvijezde

Stvaranje zvezde
Stvaranje zvezde
Stvaranje zvezde
Stvaranje zvezde
Stvaranje zvezde
Stvaranje zvezde
Stvaranje zvezde
Stvaranje zvezde

Prvi korak u stvaranju zvijezde je izrada predloška za ispis koji će pomoći oblikovanju drvenog okvira i plastike. Nakon skaliranja i ispisa predloška odgovarajuće veličine, uzeo sam komad drveta dimenzija 4,25 "x 0,125" iz zanatske radnje i izmjerio udaljenost potrebnu za svaku stranu zvijezde. Nisam zapravo kosio nijedan spoj dok sam ih rezao, pa je za formiranje zvijezde bila potrebna podrška kako bi komadi ostali na mjestu tokom lijepljenja.

Stavljajući predložak na radnu površinu koristio sam nosače da držim dva komada drveta na mjestu kako je prikazano smeđom bojom na slici. S dodirivanjem dva ruba drva, sa svake strane spoja naneseno je ljepilo. Zatim sam uzevši tanki komad balse izrezao trokut kako bih spojio dva komada i zalijepio ga na zvijezdu. Razlog korištenja balse je taj što sam jednom kad je zvijezda čvrsto spojena, uspio sam lako brusiti trokut prema konturi zvijezde, prikazanoj zaokruženom na slici zvijezde.

Zbog načina izrade morao sam pričekati nekoliko sati na svakom spoju da se ljepilo osuši prije nego što pređem na sljedeći spoj.

Kad se cijela zvijezda formirala, koristim spajalice za suhozid da pokrijem rupe na kojima su se dva komada drveta sastala na vrhovima zvijezde.

Zatim sam zalijepio neke male čepove oko unutrašnjosti zvijezde kako bih pomogao da LED sklop sjedne na mjesto kada je umetnut, istaknut pravokutnikom. Ne vjerujem da su oni zaista potrebni jer gravitacija obavlja posao držanja LED sklopa na mjestu.

Polaganjem sastavljene zvijezde na vrh Lexan lista, ocrtajte oblik zvijezde i izrežite zvijezdu iz Lexana. Nakon rezanja Lexan zvijezde, provjerite da li se uklapa u drveni okvir, a zatim nanesite 2 sloja bijele boje u spreju na jednu stranu Lexana i ostavite da se osuši 24 sata. Ovo omogućava da se LED diode rasprše, kao i da ih sakriju od pogleda.

Da bih sakrio kapu između Lexan zvijezde i drvenog okvira, upotrijebio sam malu traku balsa drva od 0,25 ", izrezao je u oblik i" zatvorio "okvir tako da je balsa prekrila jaz.

Na kraju smo dodali štap/tipla za pričvršćivanje zvijezde na vrh drveta.

Korak 9: Kreirajte LED montažu

Kreirajte LED montažu
Kreirajte LED montažu
Kreirajte LED montažu
Kreirajte LED montažu

Koristeći isti predložak za oblikovanje drvene zvijezde, izrežite ABS plastični lim prema veličini, ali nešto manji da biste ga mogli umetnuti unutar drvene zvijezde. Isprobajte da li se dobro uklapa u drvenu zvijezdu.

I dalje koristeći predložak s mjestima rupa, izbušite 25 LED rupa. AdaFruit LED diode imaju silikonsku prirubnicu s vanjske strane pa se savršeno uklapaju u rupe izbušene na 12 mm. Na slici možete vidjeti prirubnicu, a ja sam koristio zelenu liniju da pokažem gdje bi ABS plastika spojila prirubnicu kako bi LED držala na mjestu.

Počnite s jednim od savjeta i zaobiđite vanjsku stranu zvijezde, a zatim prijeđite na unutarnjih 5 nosača kako biste dovršili komad. U svom programu imam LED položaje ožičene kako je numerički prikazano na slici, pri čemu je 1 prva LED nakon konektora.

Zalijepite električnu traku na crvene i plave krajeve kabela. Oni su sekundarni ulazi za napajanje koje nećemo koristiti, već umjesto toga koristimo crvenu/plavu vezu sa satom/signalnom vezom preko samog kabela.

Korak 10: Stvaranje produžne žice za LED zvijezdu

Stvaranje produžne žice za LED zvijezdu
Stvaranje produžne žice za LED zvijezdu
Stvaranje produžne žice za LED zvijezdu
Stvaranje produžne žice za LED zvijezdu

Slijedi stvaranje kabela od 8 stopa koji će voditi od kućišta do zvijezde na vrhu stabla.

Izrežite 4 komada jednake dužine žice od 8 stopa i na jednom kraju snopa kabela upotrijebite bilo električnu traku ili patentne zatvarače kako bi snop bio zajedno i uredan. Učinite to cijelom dužinom snopa od 4 kabla svakih par centimetara.

Na oba kraja snopa ožičite žice i lemite na JST konektore tako da žica može spojiti jedan kraj s kućištem, a drugi sa zvijezdom. Pazite da odnos žica bude u pravilnom redoslijedu, tako da se plavi/zeleni/žuti/crveni priključci na drugom kraju kabela poklapaju sa zvijezdom. Multimetrom provjerite kabel kako biste provjerili je li pravilno ožičen.

Korak 11: Povežite zvijezdu na Pi

Povežite Zvezdu sa Pi
Povežite Zvezdu sa Pi

Moramo sada stvoriti utičnicu u kućištu za uključivanje zvjezdice/produžne žice.

Crvena = 5 volti

Plava = zemlja

Tako da možemo spojiti ove dvije linije na JST konektoru na terminalni blok na koji je priključeno napajanje Raspberry Pi.

Druge dvije veze su:

Žuta = Podaci = MOSI = Pin 19

Zelena = Sat = SCLK = Pin 23

Pratio sam ožičenje iz AdaFruit vodiča. Odvojite krajeve dva kratkospojna kabela tako da se mogu zalemiti na JST konektor.

Nakon što ste sigurni da će ožičenje dobiti odgovarajuće signale za LED diode, možete pričvrstiti konektor u kućištu radi rasterećenja tako da svako povlačenje produžnog kabela neće istrgnuti skakače iz Pi.

Korak 12: Testirajte LED zvijezdu

Testirajte LED zvijezdu
Testirajte LED zvijezdu
Testirajte LED zvijezdu
Testirajte LED zvijezdu

Sa LED zvijezdom spojenom na Pi. Pokrenite jednostavan testni program da provjerite radi li osvjetljenje ispravno. Veći dio mog koda prilagođen je vodiču AdaFruit, kao i objavi na forumu na web stranici o prilagođavanju koda vodiča LED diodama koje koristimo.

U prilogu ledtest.py zvijezda će polako prelaziti iz čisto plave u čistu crvenu.

Korak 13: Povežite zvučnike, izgradite gornji dio kućišta

Priključite zvučnike, napravite gornji dio kućišta
Priključite zvučnike, napravite gornji dio kućišta

Ovdje nema ničeg posebnog, samo priključite zvučnike u zvuk iz Raspberry Pi -a i priključite ih u utičnicu. Jednostavan zvučnik s pogonom s gumbom za podešavanje glasnoće će raditi.

Za gornji dio htio sam moći pogledati u kućište, pa sam na poklopac montirao komad stakla 8,5 x 11 (s okvira za sliku) i upotrijebio čičak na vrhu kako bih mogao brzo ukloniti vrh ako je potrebno. Veliki dio kućišta ima izložen 110 VAC pa je važno da vrh osigura zaštitu od bilo koga ili bilo čega od slučajnog kontakta.

Korak 14: Spojite rasvjetu na drvo

Spojite rasvjetu na drvo
Spojite rasvjetu na drvo

Odabrao sam raspored kanala na božićnom drvcu kako bih dobio maksimalnu fleksibilnost za generiranje različitih vrsta pokreta/efekata. U prilogu je slika kako sam postavio rasvjetu za 5 bijelih niti. Preostala tri kanala bila su set od dva 100 svjetla svijetle boje: crvena, zelena, plava.

Određeni produžni kabel koji priključujete na svaki pramen nije kritičan jer u sljedećem koraku mogu prilagoditi mapiranje između GPIO0-7 i svjetla na drvetu.

Korak 15: Učitajte/kreirajte muziku, softver, sekvence…

Image
Image

Na mreži su dostupni brojni sekvenci za božićno svjetlo za Raspberry Pi, ali ja sam kodirao jednostavan od nule. Sve sekvence su generirane poravnavanjem vremena otkucaja/mjera u Audacityju (uređivač zvuka) prema određenim naredbama mog sekvencera.

rxmas.py

Ovaj program će nasumično birati statički raspored za drvo svake minute. Ova skripta se pokreće pri pokretanju Raspberry Pi -a (kroz cron posao) kao zadano ponašanje pri uključivanju jedinice.

xmas.py

Ovo je program za sekvence, koji uzima ulazne datoteke i MP3 zapise

setup.txt

U prethodnom koraku sam naveo izgled koji sam koristio za svaki logički kanal. Ova datoteka preslikava svaki stvarni GPIO0-7 u logički kanal. Dakle, u setup.txt -u koji sam priložio produžni kabel GPIO0 vodi logički kanal 8 (plavo), GPIO1 logički kanal 6 (crveno) itd …

test.mp3 / test.txt

Ovo je jednostavan testni slučaj brojača zvuka brojeva od 1 do 8 sa upaljenim ekvivalentnim svjetlosnim žicama

Dakle, za pozivanje ovog primjera upišite:

./xmas.py test.txt test.mp3

carol.txt

Datoteka sekvencera za Božićno Sarajevo, Trans-Siberian Orchestra

LetItGo.txt

Datoteka sekvencera za Let It Go iz Disneyjevog Frozen filma

russian.txt

Datoteka sekvencera za "Ludi ruski Božić" Trans-Sibirskog orkestra

Očigledno ćete morati dostaviti svoje LetItGo.mp3 i carol.mp3 datoteke! Samo ih kupite na Amazonu.

NAPOMENA: Ugrađeni YouTube video je ubrzan do 110% brzine pa može zvučati pomalo čudno

Neka sjaji!
Neka sjaji!

Prva nagrada u kategoriji Make it Glow!

Preporučuje se: