İçindekiler:

Raspberry Pi Yılbaşı Ağacı Işık Gösterisi: 15 Adım (Resimlerle)
Raspberry Pi Yılbaşı Ağacı Işık Gösterisi: 15 Adım (Resimlerle)

Video: Raspberry Pi Yılbaşı Ağacı Işık Gösterisi: 15 Adım (Resimlerle)

Video: Raspberry Pi Yılbaşı Ağacı Işık Gösterisi: 15 Adım (Resimlerle)
Video: Abdulaziz Bilan Veb-dasturlashni O'rganing | 5 - Dars | html 2024, Kasım
Anonim
Image
Image

Güncelleme: Bu Ağacın 2017 için güncellenmiş bir evrimini bu eğitici https://www.instructables.com/id/LED-Christmas-Tree-With-Video-Projector-Rasp-Pi/ adresinde yayınladım

Bu proje, Noel Ağacı ışık setlerine bağlı 8 AC çıkışını çalıştırmak için bir Raspberry Pi kullanmayı içerir. AC ışıkları, basit tek renkli ışık dizileridir, ancak ışık gösterisine daha dinamik bir aralık vermek için ayrıca 25 adet programlanabilir RGB LED yıldızı vardır. Arduino denetleyicisi yerine Raspberry Pi kullanmanın faydalarından biri, ışıkların müzikle zamanlamasını sağlamak için sesi Raspberry Pi'den çıkarabilmemdir (yazılım üzerinde uzaktan çalışmak için bir WiFi bağlantısına sahip olmanın avantajından bahsetmiyorum bile).

Adım 1: Malzemeler

Malzemeler
Malzemeler

Aşağıdaki malzemelerin bu proje için kullandığım malzemeler olduğunu unutmayın. Birçok durumda alternatif parçalar/çözümler kullanılabilir.

İşte bu proje için kullandığım malzemeler:

Kontrolör için:

  1. Raspberry Pi (B Modeli benim kullandığım şey)

    • Hafıza kartı
    • USB Wifi Adaptörü
  2. SainSmart 8 Kanal 5V SSR Modül Kartı - Amazon

    Anahtarın tıklama sesi belirgin şekilde duyulacağından mekanik rölelerden kaçındım ve SSR'lere gittik. Bu kart, bir dizi Noel ışığına güç sağlamak için yeterli olan SSR başına 2 AMP'ye kadar derecelendirilmiştir

  3. Atlama telleri - Ebay'de ucuza bulunabilir
  4. JST SM Fiş + Prizler - Adafruit
  5. 32 ft tel rulosu (veya dört adet 8 ft tel parçası)
  6. Uzatma Kablosu x 8
  7. Güç dağıtım bloğu x 2 - AdaFruit
  8. Güç şeridi
  9. Güç kaynakları

    • LED'leri ve Pi'yi sürmek için 5 Volt, 3 Amper veya üzeri
    • SSR modülünü sürmek için 5 Volt, 1 Amp veya daha fazla
  10. muhafaza
  11. Hoparlörler

yıldız için:

  1. 12 mm RGB LED'ler (25 Dizi) - Bu üründeki AdafruitWS2801 yongası, LED'leri yanık tutmak için sürekli olarak çizgiyi vurmak yerine Pi'nin sadece diziyi bir kez darbe yapmasına izin verir.
  2. LED'leri yerinde tutmak için plastik ABS Levha - Walmart
  3. LED'leri dağıtmak için Lexan levha - Alçaklar
  4. Siyah Sprey Boya
  5. Beyaz Sprey Boya
  6. Odun

Ağaç için:

  1. Beyaz 100 hafif iplik x 4
  2. Beyaz 50 hafif iplik
  3. Kırmızı 100 ışık demeti x 2
  4. Yeşil 100 ışık demeti x 2
  5. Mavi 100 ışık teli x 2

2. Adım: Raspberry Pi'yi kurun

Kablo tesisatına dalmadan önce, bileşenleri bağlı olduklarında test etmek için önce Pi'yi çalıştırıp çalıştırmak istedim. Bu kurulum, kasa kurulumundan önce yapıldı ve USB gücüyle bir monitöre ve klavyeye bağlanan Raspberry Pi'yi içeriyor. Amaç, muhafazadaki Pi üzerinde geliştirmenin devam edebileceği noktaya yapılandırılan sistemi almaktır.

Varsayılan Pi kurulumu, yıldızdaki WS2801 LED'lerini düzgün bir şekilde sürmek için gereken kitaplıklara sahip değildir, bu yüzden AdaFruit'in Occidentalis işletim sistemini Pi'ye kurdum.

Occidnetalis kurulumundan sonra biraz ekstra kurulum yapıldı:

1) Pi'yi bir Komut İstemine önyükleme yapacak şekilde yapılandırın (GUI arayüzünü değil)

2) /etc/network/interfaces dosyasını düzenleyerek kablosuz ağ arayüzünü Pi üzerinde kurun. Pi üzerinde çalışmak üzere bilinen bir adreste oturum açabilmeniz için statik bir IP adresi seçtiğinizden emin olun.

3) Telnet ve FTP servislerini kurun.

4) Pygame'i yükleyin. Kütüphane, MP3/WAV dosyalarını oynatmak için python betiklerinde kullanılır.

Kurulum/kurulum için ayrıntılı talimatlar, İnternet aramalarıyla kolayca bulunabilir. Pi'de çevrimiçi olarak birçok kaynak var.

Bu noktadan sonra herhangi bir video çıkışını ve klavyeyi çıkarabilirim çünkü Pi'ye uzaktan giriş yapabilirsiniz.

3. Adım: Muhafazayı Kurmaya Başlayın

Muhafazayı Kurmaya Başlayın
Muhafazayı Kurmaya Başlayın

Sadece tahtadan yapılmış bir kutu olduğu için muhafazanın nasıl inşa edileceğine dair fazla ayrıntıya girmeyeceğim. Kasanın uçlarına 1.5 çapında tutucular açtım. Sağda tüm uzatma kablolarının ve yıldız kablosunun çıktığı delik, solda ise uzatma kablosu ve ses çıkışının çıktığı delik.

Monte edilecek ilk bileşenler, anahtarlı uzatma kablosu ve Raspberry Pi'dir. Pi'ye güç sağlamak için, yıldıza ve Pi'ye güç sağlamak için aynı 5V transformatörü kullanıyorum (yeşil renkle gösterilmiştir). Bu nedenle, 5V'nin yıldız kablolarına ve Pi'ye çatallandığı bir terminal bloğuna (beyaz vurgulanmış) giden gücüm var.

Pim 2 = 5V

Pim 6 = Toprak

Bağlandıktan sonra gücü açın ve Pi'nin açılması ve önceki adımda kurulum olarak Telnet üzerinden erişilebilir olması gerekir.

Adım 4: Raspberry Pi'yi Röle Modülüne Bağlama

Raspberry Pi'yi Röle Modülüne Bağlama
Raspberry Pi'yi Röle Modülüne Bağlama

Tüm Güç Kapalıyken (Güç Kaynakları ve Pi), 5 Volt'u alttaki iki harici güç kaynağı konektörüne bağlayın. Bunu, anahtarlı uzatma kablosuna bağlı özel bir 5 Volt besleme ile sürdüm. Bu, Pi'nin röleyi sürmenin tüm yüküne sahip olmaması (endişe 8 eşzamanlı rölenin devreye girmesidir) ve bunun yerine röleye harici güç sağlamak için sadece bir transistörü çalıştırabilmesidir.

Şimdi Raspberry Pi'de GPIO0 ile GPIO7 arasındaki yerini belirleyin. B-Modelimde bu:

GPIO0 = Pim 11

GPIO1 = Pin 12

GPIO2 = Pim 13

GPIO3 = Pin 15

GPIO4 = Pim 16

GPIO5 = Pim 18

GPIO6 = Pim 22

GPIO7 = Pim 7

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

SSR Modülündeki bağlantı direklere vidalandığından, bileşenleri nasıl ayırdığıma bağlı olarak her bir jumper'ı uygun boyuta kestim. 8 giriş kanalının tümünü ve ayrıca Pi'den panoya toprak bağlayın. İğne uçlu pense, jumperların Pi başlığına düzgün bir şekilde oturmasına yardımcı olur.

Her kanalın SSR Modülünde, GPIO Pi'de yükseldiğinde yanacak bir LED vardır. Her bir GPIO0-7'nin iki saniye boyunca yüksek olarak ayarlandığı test.py olarak eklenmiş tüm bağlantıları kontrol etmek için basit bir test programı çalıştırın.

Adım 5: Uzatma Kablolarını Kesin ve Hazırlayın

Uzatma Kablolarını Kes ve Hazırla
Uzatma Kablolarını Kes ve Hazırla

Her bir uzatma kablosunun fişi ucunu kesin, mümkün olan maksimum uzunluğu kablonun soketli ucuna bırakarak, muhtemelen ağacın tepesine gitmesi gerekeceğinden. Kablo üzerinde, iki kabloyu bir arada tutan ince plastik parçayı keserek telin uçlarını ayırın. Şimdi uçları, konektörlerdeki vida için yaklaşık 1/4 tel açıkta kalacak şekilde soyun.

SSR modülünde hangi soketin hangi kanala gittiğini kolayca belirleyebilmeniz için 1'den 8'e kadar sayıları yazmak için kablonun her iki ucundaki soketli uçta bir Sharpie işaretleyici kullanın.

Ayrıca bir sonraki adım için bir fişe ve ayrıca bir miktar ekstra kabloya ihtiyacımız olacak, bu nedenle ya 9. uzatma kablosunu yok edin ya da fiş ucunu keserken 8 uzatma kablosunda fazladan boşluk bırakın.

Adım 6: AC Uzatma Kablolarını Bağlama

AC Uzatma Kablolarını Bağlama
AC Uzatma Kablolarını Bağlama
AC Uzatma Kablolarını Bağlama
AC Uzatma Kablolarını Bağlama

Sonraki adım, SSR modülünün çıkış ucunu 8 uzatma kablosuyla bağlar. Buradaki kablo miktarı çok kolay bir şekilde dağınık olabileceğinden, her şeyi yerinde tutmak için bir güç dağıtım kutusu ve bir zımba tabancası kullandım.

Güç kapalıyken, önceki adımdaki kesilmiş fiş ucunu alın ve çoklu prize takın. Diğer iki ucu soyun ve her birini üst ve alt güç dağıtım bloğuna bağlayın ve bu iki bağlantıyı aşağıya doğru zımbalayın.

Şimdi önceki adımdaki kesilmiş uzatma kablolarından birini bağlayın. Benim durumumda, tüm kabloların dışarı akması için 1,5 çapında bir deliğe sahip bir muhafazam var, bu nedenle yeşil renkle vurgulanan, bir ucu dağıtım bloğuna ve diğer ucu SSR modülünün çıkış ucuna bağlı olan kablolardan biridir. Devreyi tamamlamak için diğer dağıtım bloğunu SSR modülüne bağlayan çok daha kısa bir kabloya (mavi ile gösterilen) ihtiyacımız var. Gerilim azaltma, böylece ışıkları ağaca bağlarken herhangi bir çekme ve çekme, bağlantıları bileşenlerin dışına çekmeyecektir. Zımbalama sırasında, zımba teli veya yalıtımı delemez.

7. Adım: AC Bağlantılarını Test Edin

AC Bağlantılarını Test Edin
AC Bağlantılarını Test Edin
AC Bağlantılarını Test Edin
AC Bağlantılarını Test Edin

Noel Işıklarının tam dizilerini bağlamak yerine, ağaç dikilmeden önce animasyonları test etmek ve geliştirmek için her uzatma kablosuna 1 dolarlık ucuz gece ışıkları bağladım. Kırmızı, Yeşil, Mavi ışık dizilerini kontrol edecek kablolara bağlı ışıkları boyadım.

SSR modülünü test etmek için kullanılan aynı test programını çalıştırın ve her bağlantının düzgün şekilde yandığından emin olun.

Işık kutusu, her bir dizinin 0.34 Amper çekeceğini ve renkli ışıklar için, toplamda 0.68 Amperlik bir çekişle sonuçlanması gereken iki seti birbirine bağlayacaktım. Bu, 2 Amperde 75 - 200 VAC olan SSR derecesinin oldukça altındadır, ancak SSR modülündeki sigorta karta lehimlendiğinden değiştirmeyi zorlaştırdığı için iki kez kontrol etmek istedim.

Adım 8: Yıldızı Oluşturma

Yıldızı Yaratmak
Yıldızı Yaratmak
Yıldızı Yaratmak
Yıldızı Yaratmak
Yıldızı Yaratmak
Yıldızı Yaratmak
Yıldızı Yaratmak
Yıldızı Yaratmak

Yıldızı yaratmanın ilk adımı, ahşap çerçeveyi ve plastiği şekillendirmeye yardımcı olacak yazdırılabilir bir şablon yapmaktır. Şablonu ölçeklendirip uygun boyutta yazdırdıktan sonra, zanaat mağazasından bir parça 4.25" x 0.125" tahta aldım ve yıldızın her iki tarafı için gereken mesafeyi ölçtüm. Aslında, onları keserken hiçbir eklemde eğim yapmadım, bu nedenle, yapıştırma sırasında parçaları yerinde tutmak için yıldızı oluşturmak için destek gerekliydi.

Şablonu çalışma yüzeyine yerleştirirken, iki tahta parçasını resimde kahverengi ile gösterildiği gibi yerinde tutmak için destekler kullandım. Ahşabın iki kenarı birbirine değecek şekilde, derzin her iki tarafına yapıştırıcı uygulandı. Sonra ince bir balsa parçası alarak iki parçayı birleştirmek için bir üçgen kesip yıldıza yapıştırdım. Balsa kullanmamın nedeni, yıldız sıkıca bir araya geldiğinde üçgeni, yıldızın görüntüsünde daire içine alınmış olarak gösterilen, yıldızın dış hatlarına uyacak şekilde kolayca zımparalayabilmemdir.

Yapım yöntemi nedeniyle, bir sonraki derze geçmeden önce yapıştırıcının kuruması için her bir derzde birkaç saat beklemek zorunda kaldım.

Tüm yıldız oluştuktan sonra, yıldızın uçlarında iki parça ahşabın birleştiği boşlukları kapatmak için alçıpan dolgu kullanıyorum.

Daha sonra, LED düzeneğinin yerleştirildiğinde yerine oturmasına yardımcı olmak için yıldızın iç kısmına bazı küçük tıpalar yapıştırdım, bir dikdörtgenle vurgulandı. Yerçekimi LED düzeneğini yerinde tutma işini yaptığı için gerçekten gerekli olduklarına inanmıyorum.

Birleştirilen yıldızı Lexan tabakasının üzerine yatırın, yıldızın şeklini izleyin ve yıldızı Lexan'dan kesin. Lexan yıldızını kestikten sonra, ahşap çerçeveye oturduğundan emin olun ve ardından Lexan'ın bir tarafına 2 kat beyaz sprey boya uygulayın ve 24 saat kurumasını bekleyin. Bu, LED'lerin dağılmasına ve görünümden gizlenmesine olanak tanır.

Kapağı Lexan yıldızı ile ahşap çerçeve arasına gizlemek için 0,25 inçlik küçük bir balsa ağacı şeridi kullandım ve balsanın boşluğu kapatması için çerçeveyi şekillendirip "kapak" olarak kestim.

Sonunda, yıldızı ağacın tepesine tutturmak için bir çubuk/dübel eklendi.

Adım 9: LED Montajını Oluşturun

LED Montajını Oluşturun
LED Montajını Oluşturun
LED Montajını Oluşturun
LED Montajını Oluşturun

Ahşap yıldızı oluşturmak için aynı şablonu kullanarak, ABS plastik levhayı, ahşap yıldızın içine yerleştirebilmek için biraz daha küçük boyutta kesin. Ahşap yıldızın içine iyi oturduğunu test edin.

Ardından, delik konumlu şablonu kullanmaya devam ederek 25 LED deliği delin. AdaFruit'in LED'lerinin dış kısmında silikon bir flanş bulunur, böylece 12 mm'de delinmiş deliklere mükemmel şekilde monte edilirler. Resimde flanşı görebilirsiniz ve ben, LED'i yerinde tutmak için ABS plastiğinin flanşı nereye bağlayacağını belirtmek için yeşil bir çizgi kullandım.

Uçlardan birinden başlayın ve yıldızın dış çevresinde çalışın, ardından parçayı tamamlamak için iç 5 yuvaya geçin. Programımda, konektörden sonraki ilk LED olmak üzere, resimde sayısal olarak gösterildiği gibi kablolanmış LED konumlarına sahibim.

Kablonun kırmızı ve mavi uçlarına biraz elektrik bandı uygulayın. Bunlar, kullanmayacağımız güç için ikincil girişlerdir ve bunun yerine kablonun kendisi üzerinden saat/sinyal bağlantısı ile kırmızı/mavi bağlantıyı kullanırlar.

Adım 10: LED Star için Uzatma Kablosunun Oluşturulması

LED Yıldız için Uzatma Kablosu Oluşturma
LED Yıldız için Uzatma Kablosu Oluşturma
LED Yıldız için Uzatma Kablosu Oluşturma
LED Yıldız için Uzatma Kablosu Oluşturma

Ardından, muhafazadan ağacın tepesindeki yıldıza kadar uzanan 8 ft'lik bir kablo oluşturuyor.

4 eşit uzunlukta 8 ft tel parçası kesin ve kablo demetinin bir ucunda demeti bir arada ve düzenli tutmak için elektrik bandı veya fermuar kullanın. Bunu, her birkaç inçte bir 4 kablo demetinin tüm uzunluğu boyunca yapın.

Paketin her iki ucunda kabloları soyun ve JST konektörlerine lehimleyin, böylece tel bir ucunu muhafazaya ve diğerini yıldıza bağlayabilir. Kabloların göreceli konumlarını, yıldıza takıldığında Mavi/Yeşil/Sarı/Kırmızı bağlantıların kablonun diğer ucunda eşleşmesi için doğru sırada tuttuğunuzdan emin olun. Kablonun doğru şekilde bağlandığından emin olmak için kabloyu kontrol etmek için bir multimetre kullanın.

Adım 11: Yıldızı Pi'ye bağlayın

Yıldızı Pi'ye bağlayın
Yıldızı Pi'ye bağlayın

Şimdi yıldız/uzatma kablosunun takılması için muhafazada yuva oluşturmamız gerekiyor.

Kırmızı = 5 Volt

Mavi = Zemin

Böylece JST konektöründeki bu iki hattı Raspberry Pi'nin gücünün bağlı olduğu terminal bloğuna bağlayabiliriz.

Diğer iki bağlantı şunlardır:

Sarı = Veri = MOSI = Pin 19

Yeşil = Saat = SCLK = Pim 23

AdaFruit'in eğitimindeki kablolamayı takip ettim. Bu nedenle, JST konektörüne lehimlenebilmeleri için iki atlama kablosunun uçlarını soyun.

Kablolamanın LED'lere doğru sinyalleri alacağından emin olduktan sonra, uzatma kablosundaki herhangi bir çekişin jumperları Pi'den koparmaması için gerilim azaltma için muhafazadaki konektörü sabitleyebilirsiniz.

Adım 12: LED Yıldızı Test Edin

LED Yıldızı Test Edin
LED Yıldızı Test Edin
LED Yıldızı Test Edin
LED Yıldızı Test Edin

LED yıldızı Pi'ye bağlıyken. Aydınlatmanın düzgün çalıştığını doğrulamak için basit bir test programı çalıştırın. Kodumun çoğu AdaFruit Eğitimi'nden ve web sitesinde öğretici kodunu kullandığımız LED'lere uyacak şekilde uyarlamayla ilgili bir forum gönderisinden uyarlanmıştır.

Ekli ledtest.py, yıldızın yavaşça saf maviden saf kırmızıya dönmesini sağlar.

Adım 13: Hoparlörleri Bağlayın, Bir Muhafaza Üstü Oluşturun

Hoparlörleri Bağlayın, Bir Muhafaza Üstü Oluşturun
Hoparlörleri Bağlayın, Bir Muhafaza Üstü Oluşturun

Burada özel bir şey yok, sadece hoparlörleri Raspberry Pi'den gelen sese takın ve güç şeridine takın. Ses ayar düğmesi olan basit bir elektrikli hoparlör çalışacaktır.

Üst kısım için muhafazanın içine bakabilmek istedim, bu yüzden kapağa 8,5 x 11 cam parçası (resim çerçevesinden) monte ettim ve gerekirse üst kısmı hızlıca çıkarabilmem için üstte Velcro kullandım. Muhafazanın büyük bir kısmı 110 VAC'ye maruz kaldığından, üst kısmın herhangi birinden veya herhangi bir şeyden yanlışlıkla temasa karşı koruma sağlaması önemlidir.

Adım 14: Aydınlatmayı Ağaca Bağlayın

Aydınlatmayı Ağaca Bağlayın
Aydınlatmayı Ağaca Bağlayın

Noel Ağacı'ndaki kanalların düzenini, bana farklı türde hareketler/efektler oluşturmak için maksimum esneklik sağlamak için seçtim. Ekli, 5 beyaz şerit için aydınlatmayı nasıl düzenlediğimin bir resmi. Kalan üç kanalın her biri iki 100 açık renkli ışıktan oluşuyordu: Kırmızı, Yeşil, Mavi.

Her bir ipliğe taktığınız özel uzatma kablosu kritik değildir, çünkü bir sonraki adımda GPIO0-7 ile ağaçta hangi ışıkların olduğu arasındaki eşleştirmeyi özelleştirebilirim.

Adım 15: Müzik, Yazılım, Diziler Yükleyin/Oluşturun…

Image
Image

Raspberry Pi için çevrimiçi olarak çok sayıda Noel ışığı sıralayıcı var, ancak ben sıfırdan basit bir tane kodladım. Tüm diziler, Audacity'deki (ses düzenleyici) vuruşların/ölçülerin zamanlamaları sıralayıcımdaki belirli komutlara göre sıralanarak oluşturuldu.

rxmas.py

Bu program, her dakika ağaç için rastgele bir statik düzen seçecektir. Birimi prize takarken varsayılan davranış olarak Raspberry Pi'nin başlangıcında (bir cron işi aracılığıyla) bu komut dosyasını çalıştırıyorum.

noel.py

Bu, bir dizi dosyası ve bir MP3'ü girdi olarak alan sıralayıcı programdır.

setup.txt

Bir önceki adımda, her mantıksal kanal için kullandığım düzeni sağladım. Bu dosya, her gerçek GPIO0-7'yi mantıksal kanala eşler. Eklediğim setup.txt dosyasında, GPIO0'ın uzatma kablosu mantıksal kanal 8'i (Mavi), GPIO1 mantıksal kanal 6'yı (Kırmızı) vb. çalıştırıyor…

test.mp3 / test.txt

Bu, eşdeğer ışık dizilerinin yandığı 1'den 8'e kadar olan sayıların ses sayımının basit bir test durumudur.

Bu örnek türünü çağırmak için:

./xmas.py test.txt test.mp3

carol.txt

Trans-Sibirya Orkestrası tarafından Noel Saraybosna için sıralayıcı dosyası

LetItGo.txt

Disney'in Karlar Ülkesi Filminden Let It Go için sıralayıcı dosyası

rus.txt

Trans-Sibirya Orkestrası tarafından "A Mad Russian's Christmas" için sıralayıcı dosyası

Açıkça kendi LetItGo.mp3 ve carol.mp3 dosyalarınızı sağlamanız gerekecek! Sadece onları Amazon'dan satın alın.

NOT: Gömülü YouTube videosu %110 hıza kadar hızlandırıldığından kulağa biraz tuhaf gelebilir

Parlatın!
Parlatın!

Make it Glow'da Birincilik Ödülü!

Önerilen: