İlan

Birkaç ay önce $3000 gök gürültüsü ve şimşek ruh lamba üreticisi topluluğunda viral gitti. Şaşırtıcı derecede güzel bir ışıktı, ancak fiyat etiketi, akıl sağlığı bozulmamış olan herkesin erişemeyeceği bir yerde bıraktı. Bugün yapacağımız şey tam olarak aynı değil - bir sanat eseri yerine daha pratik bir şey yapıyoruz, ancak çok daha serin ve daha özelleştirilebilir olacak.

Odanızda zaten kullanmayı tercih ettiğiniz iyi bir çift hoparlörünüzün olduğu ve hoparlörlerin bir lambaya yerleştirilmesinin biraz garip olduğu varsayımı üzerine konuşmacıları atlamayı seçtim. Bunun yerine, yıldırımın gerçek bir fırtınadan veya PC'nizden veya stereodan çalınan bir film müziğinden yıldırımın otomatik olarak yüksek seslere tepki vermesini sağlayacak bir mikrofon ekleyeceğim.

Ayrıca bir dizi tam RGB Neopixel LED (WS2812B) kullanacağız, böylece beyaz dışında renkler üretebilir ve her piksel üzerinde kontrol sahibi olabiliriz.

Uyarı: Bu projede kullandığım güç kaynağında, canlı bir AC kablosuna bağlanan vidalı terminaller var. Bir fişi kablolama konusunda emin değilseniz, lütfen tamamen kapalı bir güç kaynağı satın aldığınızdan emin olun. En azından PSU'yu güvenli bir proje kutusuna koymanız gerekir.

instagram viewer

Adım 0: Giriş

İşte bitmiş projenin bir demo videosu. Standart yıldırımdan trippy asit bulutuna ve uzaktan kumandadan seçilebilen renk solması durum lambasına kadar birkaç farklı mod uyguladım.

Gereken tam kod ve kitaplıklar şu adresten indirilebilir: bu Github deposu.

Adım 1: İhtiyacınız Olacak

Ses Reaktif Yıldırım bulut lamba malzemeleri ile bir Bulut Lamba Nasıl Yapılır
  • WS2812B ip, genellikle 5 metre için yaklaşık 50 $ fiyatlandırılır. Başka bir Neopixel dizisi varsa endişelenmeyin, FastLED tarafından neredeyse kesinlikle desteklenmektedir ancak kablo tesisatınız farklı olabilir (sinyale ek olarak bir senkronizasyon hattına ihtiyacınız olabilir, çünkü misal).
  • 5V, 10A + güç kaynağı - Her biri $ 11 için 15A birim aldım. 120-240V AC giriş alırlar ve tüm piksellerimizi tam parlaklıkta ve Arduino'da güçlendirmek için daha fazla olacak ağır bir 5V çıkış üretirler.
  • Elektrik kabloları, fiş ve inline anahtarı
  • Proje muhafazası
  • İki Arduinos. 10 $ Funduino klonları iyi. İkincisi uzaktan kumanda için gereklidir, birincisi ana mantığı ve LED'leri kontrol eder.
  • İki 2.2k (veya yaklaşık) Ohm dirençleri - kesin değer çok önemli değil, 1.5k ila 47k civarında çalışmalıdır.
  • Breadboard
  • TSOP4838 IR alıcı
  • IR uzaktan kumanda - Her biri yaklaşık 2 $ için toplu olarak satın aldım, ancak herhangi bir uzaktan kumanda kod değişiklikleri ile çalışmalıdır.
  • Büyük mikrofon modülü
  • Tabanınızı kesmek için MDF odunu ve bir yapbozun hurdaya alınması
  • Polistiren ambalaj malzemesi / kutu ekleri.
  • Polipropilen pamuk yastık doldurma. Birkaç korkunç eski minderden fazlasıyla çektim. Bu bir seçenek değilse, yaklaşık 10 $ karşılığında yeni bir tane satın alabilmeli veya daha ucuz pamuk yünü de kullanabilmelisiniz. Her ikisiyle de denedim - pamuk yünü onu kızdırmak için daha fazla çalışmaya ihtiyaç duydu ve kabarık değildi, ama bir tutamda işe yarayacak.
  • Bulutu asmak için zincir ve kancalar - 5 kg'dan fazla dayanmalıdır.
  • Düşük sıcaklık ayarlı tutkal tabancası
  • Sprey tutkal - bu ile doldurmayı bulutunuza yapıştırmak daha kolaydır, ancak bir tutkal tabancası da işe yarayabilir.

Toplam maliyeti yaklaşık 100 $ araçları dahil değil, ama bunların çoğu evin etrafında scrounged. Tüm elektronik bileşenler yaygın olarak bulunur; mikrofon bir sensör kitinde bulunabilir veya ayrı olarak satın alınabilir.

Adım 2: Tabanı kesin

Ses Reaktif Yıldırım bulut lamba 1 ile bir Bulut Lamba inşa nasıl tabanı kesme

Bir yapbozla MDF hurda parçasından kaba bir taban kesin - kesin şekil açıktır, ancak bir nedenden dolayı bir bulut beynimde şekillendirilmiş bir fasulye. Asmak için buna bazı kancalar ekleyeceğiz, ancak aksi takdirde üzerine inşa etmek için sağlam bir temel sağlıyor. Merkezi alan elektronik, PSU ve zinciri teslim etmek için ayrılacaktır, bu nedenle en azından proje kasanızı çevreleyen bazı kancalarla yerleştirmek için yeterli alanınız olduğundan emin olun.

Adım 3: Polistiren Tabakası

Polistiren üzerine Ses Reaktif Yıldırım bulut lamba 2 katman ile bir Bulut Lamba Nasıl Yapılır

Bu en zor ve yaratıcı adım, ancak gerçekten sağlam bir şey yaratıyoruz ve kinda sorta LED şeridi üzerine yapıştırmak için bulut şeklinde. Tutkal tabancanızda düşük ısı ayarı kullanarak büyük polistiren parçalarını tabana (ve altına) yapıştırın. Düşük bir ayarınız yoksa, ısı tabancasını kapatın ve yapıştırmaya çalışmadan önce biraz soğumasını bekleyin. Sıcaklık çok yüksekse, ambalaj malzemesinde erimiş olursunuz.

Bir sonrakini yapıştırmadan önce her parçanın sağlam olduğundan emin olun ve yeterli olmamasından daha fazla yapıştırmak en iyisidir.

Yine, elektronik, zincir ve kancalara uyacak şekilde bulutun içinde yeterince büyük bir boşluk bırakmayı unutmayın.

Adım 4: 3D Bulut Şekli Oluşturma

Nasıl bir bulut oyma ses reaktif yıldırım bulut lamba 3 ile bir bulut lamba kurmak

Kaba bir 3D bulut şekli elde edene kadar köşeleri yuvarlayarak ve gereksiz malzemeleri keserek bulutunuzu düzgünleştirmek için bir oyma bıçağı kullanın. Bunun ne kadar kaba olduğu önemli değil, çünkü daha sonra doldurmadaki her şeyi ele alacağız - hataları kolayca gizleyebilirsiniz.

Adım 5: Kancaları Düzeltin, Düzenleyin

Nasıl bir bulut lamba ses reaktif yıldırım bulut lamba 4 sprey beyaz ile inşa

Son olarak, bulut boşluğunun her köşesinden üç veya dört kancayı MDF tabanına sabitleyin. MDF'nin doğrudan vidalanması zor olduğu için küçük bir pilot delik açmanız gerekecektir.

Aynı zamanda, düzgün bir renk tabanı sağlamak için her şeye basit bir beyaz sprey boya kat verdim, ancak aslında gerekli olduğundan emin değilim.

Adım 6: LED Şeritleri Tutkallayın

Nasıl bir bulut lamba ses reaktif yıldırım bulut lamba 5 şeritler ile tutkal led şeritler

LED'lere tutkal uygulamadan önce, yeni bir şeritten başlayın veya toplamda kaç LED'iniz olduğunu sayın - daha sonra programlama adımında kaç tane kullandığınızı bulmanız gerekir. Bulutunuzun yan tarafında küçük bir delik açın ve LED şeridinizin başlangıcını oluşturan telleri bulut boşluğuna sokun. Doğru uçtan başladığınıza çok dikkat edin - LED şeritleri yöne duyarlıdır, bu nedenle sinyal oklarının boşluktan uzağa baktığından emin olun.

Yavaşça çalışarak, alt kısmı örtmek için şeridi tabana doğru çekmeden önce LED pikselleri polistiren tabanına dairesel bir şekilde yapıştırın. Yine - burada mükemmel olmanıza gerek yok, çünkü her şeyi dağıttıktan ve doldurma ile boğduktan sonra, her şey yine de oldukça çarpıcı görünüyor.

Ana gövdeyi iki kez çevreleyen toplam 85 LED veya 2,5 metrenin biraz üzerinde kullandım ve alt tarafta tek bir LED dizisi kullandım.

Adım 7: Bağlantı Şeması

Ses Reaktif Yıldırım bulut lamba bağlantı şeması ile bir Bulut Lamba Nasıl Yapılır

Kablolama karmaşıktır, ancak bölümlere kolayca ayrılır.

İlk olarak, güç kaynağını tercihen ayrı bir proje durumunda kablolayın ve sabitleyin. Size canlı AC kablolarının güvenliği hakkında konuşmayacağım, bu yüzden bu parçayı ele alabileceğinizi ve bunun 5V ve GND hattınız olduğunu varsayacağım.

ÖNEMLİ: Arduino'yu programlarken ve test ederken, güç kaynağınızdaki 5V Arduino'lardan ( GND'lerin hepsi bağlı olsa da) - Arduino, verilen 5V'yi kullanırken sadece LED şeridine güç sağlamalıdır. USB. Programlamayı bitirdiğinizde, USB bağlantısı kesilmelidir ve Arduino'ya artık 5V sağlamaz - bu noktada, beslemenizdeki 5V'yi, cihazın sol tarafındaki 5V rayına bağlamalısınız. breadboard.

Her Arduino'dan toprak ve 5V pinleri breadboard'un sol yan raylarına bağlayarak başlayın. İster harici PSU, isterse USB bunlardan birine takılı olsun, aynı güç kaynağını paylaşacaklar.

Ardından, I2C kablolama bölümünü tamamlayın - bu, iki Arduino'muzun iletişim kurmasını sağlar. Her iki Arduino'dan A4 pimlerini breadboard üzerindeki tek bir sıraya alın, ardından o sıradan 5V raya 2.2k direnç bağlayın. A5 için tekrarlayın, ayrı bir sıraya bağlayın, tekrar başka bir 2.2k direnç ile 5V'a bağlayın.

Sonraki IR alıcısını bağlayın - başka bir modeliniz varsa pin yapılandırmasını kontrol edin, ancak temel olarak sinyal pimi bir Arduino'da D11'e gitmelidir. Yükle thundercloud_ir_receiver.ino bu Arduino'ya (buradaki tüm kodlar), artık ihtiyaç duymadığımız için USB bağlantısını kesin.

Diğer Arduino'da, Veri Girişi LED şeridinizin başlangıcından D6'ya kadar sinyal pimi. LED'lerinizden gelen GND tüm Arduinos ile ortak olmalıdır, ancak bu noktada 5V doğrudan PSU'dan gelecektir.

Ayrıca bu Arduino'da mikrofon modülünü A0'a takın. Diğerini yükle thundercloud.ino hata ayıklama işlemi sırasında USB'yi şimdilik bağlı tutun. Değiştirerek başlayın NUM_LEDS değişken.

Adım 8: Dolgu üzerine tutkal

Nasıl bir bulut lamba ses reaktif yıldırım bulut lamba 7 ile doldurma üzerine yapıştırma

Son adım olarak, doldurmanıza yapıştırın. Burada özel bir teknik yok - sadece bulutu bir tutkal tabakası ile püskürtün ve bir avuç dolusu kapın. Bununla birlikte, yüzey alanını artırmak için daha önce alay ettiyseniz, doldurma ile çalışmak daha kolaydır.

Benim yaptığım uzaktan kumandayı kullandıysanız, STROBE düğmesi onu uzaktan tepkili bulut moduna geçirir; FLASH, trippy renk modudur ve FADE, yavaş soluk renk ruh hali lambasıdır.

Adım 9: Kod Açıklaması

Ses Reaktif Yıldırım asit bulut demosu ile bir Bulut Lambası Nasıl Oluşturulur

Neden iki Arduino? Hem kızılötesi alıcı programlama hem de WS2818B piksel sürücü kitaplığı zamanlamaya çok duyarlıdır - zamanlama gecikirse IR sinyali bozulur. Her devreye kendi mikro denetleyicisini vererek ve I2C protokolü üzerinden konuşmalarına izin vererek, zamanlamanın her biri için mükemmel olmasını sağlayabiliriz. Kendi mikro denetleyicileri yerleşik olarak ayrı IR modülleri de bulabilirsiniz, ancak araştırmalarım, bunların basit bir Arduino klonundan ve IR LED'den daha pahalı olduğunu keşfetti. Thundercloud_ir_receiever açıklama gerektirmemelidir, ancak önce I2C temel bilgilerini okumak isteyebilirsiniz.

Ana yıldırım denetleyicisinde, AÇIK gibi farklı çalışma modları tanımlarız (yıldırım efektleri ses değildir etkin), BULUT (yıldırım yalnızca ses etkinleştirilir), ACID (bulut trippy renkleri gösterir) veya basit tek renk modları. Yeni bir mod tanımlamak için Sıralama önce konsolu açın ve eşlemek için bir uzaktan kumanda düğmesi bulun - her uzaktan basışta bir hata ayıklama satırı yazdırılmalıdır. İçinde receiveEvent () yönteminde, bu tuş basımlarını bir modla eşleştiriyoruz, bu yüzden buraya ek bir anahtar ifadesi ekleyin. Son olarak, ana döngü () Bu mod seçimlerini farklı ekran işlevlerine yönlendiriyoruz.

Mikrofon düzeltme kodu başlangıçta Adafruit çıkışlı - İhtiyacımız için basitleştirdim ve ortalama gürültüden daha yüksek bir ses duyulduğunda bir tetikleyici ekledim.

Adım 10: Yıldırım Modları

Ses Reaktif Yıldırım bulut lamba demosu ile bir Bulut Lamba Nasıl Yapılır

Yıldırım ekranları, yeterince gerçekçi veya en azından göze hoş gelen bir şey elde etmek için üç farklı yıldırım türünü birleştirir. İlk tip Çatlak ()Burada her LED 10-100 ms arasında kısa bir süre açık kalır. İkinci tip yuvarlanma() - Her LED'in% 10 aktivasyon şansına sahip olduğu ve tüm döngü her döngü arasında 5-100 ms gecikme ile 2-10 kez tekrarlanır. Üçüncü tür thunderburst ()Her biri 10-20 LED arasında olan şeridin iki farklı bölümünü seçen bu bölümler kısa bir süre 3-6 kez yanıp söner. Tek tek LED'lerin nasıl etkinleştirildiğini görmek için bu yöntemleri ayrıntılı olarak inceleyin - HSV renk tekerleği boyunca kullanılır (böylece beyaz H = 0, S = 0, V = 255'tir). Yeni yıldırım ekranlarını değiştirmenizi veya yazmanızı, ardından istediğiniz bir şeyi yaparsanız bunları yorumlarda paylaşmanızı öneririm.

Yıldırım her tetiklendiğinde veya döngü çalıştığında, bulut üç yıldırım tipi arasında rastgele seçim yapar. Son olarak, Sıfırla() yöntemi tüm ışıkları kapatır, aksi takdirde önceki durumlarını “hatırlar”.

Sorular veya sorunlar - lütfen yorumlara ulaşın; size yardımcı olmak için elimden geleni yapacağım. Bir Github hesabınız varsa, hata veya sorun yayınlamaktan çekinmeyin sorunları izci yerine. Herhangi bir değişiklik yaptıysanız veya bazı yeni aydınlatma işlevleri yazdıysanız, lütfen kodunuzun bağlantısını öz veya pastebin.

James Yapay Zeka alanında lisans derecesine sahiptir ve CompTIA A + ve Network + sertifikalıdır. MakeUseOf'un baş geliştiricisi ve boş zamanlarını VR paintball ve boardgames oynayarak geçiriyor. Çocukluğundan beri bilgisayar yapıyor.