Bilgisayarsız TV için dinamik arka ışık. USB'den ev yapımı TV arka plan aydınlatması. Web kamerasıyla görüntü yakalama

Ekran çerçevesi etrafında dinamik arka aydınlatmaya sahip TV'ler Philips'in imza özelliklerinden biridir. Ve diğerlerinden farklı olarak işe yarıyor. Ancak her şeyin bir bedeli vardır ve Ambilight özellikli ve artırılmış sarmallık özelliğine sahip TV'ler diğer birçok modelden daha pahalıdır.

Rus geliştiriciler, herhangi bir üreticinin monitörlerinin dinamik arka aydınlatmayla donatılmasına olanak sağlayacak bir yöntem önerdiler. Bunu yapmak için cihazı bir servis merkezine götürmenize bile gerek yok: sadece biraz zaman ve azim gerektirir.

Genel olarak bu tür aydınlatma, radyo bileşenleri şeklinde satın alınabilir ve bağımsız olarak yapılandırılabilir. Ancak uygulamanın gösterdiği gibi, bu neredeyse PaintPack'in hazır seçenekleriyle karşılaştırılabilir.

İki ana model mevcuttur: monitör versiyonu (30 LED) ve TV versiyonu (60 LED). Ayrıca çok basit bir tane de var - 10 LED için, ancak yalnızca en küçük monitörler için uygundur.

TV versiyonu harici bir güç kaynağı ile donatılmıştır. Ayrıca, daha büyük bir aydınlatma alanı sağlayan (başka bir deyişle daha geniş ve daha yüksek yanacak) daha fazla sayıda LED'in olması da onun lehinedir. Bu seçenekler herhangi bir nedenle uygun değilse geliştiricilerle iletişime geçebilirsiniz: küçük bir ek ödeme karşılığında değiştirilmiş bir sürüm sunacaklar.

mindrunway.ru

PaintPack aslında her iki taraftan çıkarılabilir LED şeritlerin bağlandığı küçük bir kasadır. Dolgulu kutuda göstergeler ve bir güç konektörünün yanı sıra bir PC'ye bağlanmak için microUSB bulunur. İki cihazı seri olarak bağlamak için bir ana konektör (tescilli) de bulunmaktadır.

Cihaz gövdesi TV'nin veya monitörün arkasına yerleştirilir. Daha sonra LED şeritler talimatlara uygun olarak döşenir, güç bağlanır ve sihir başlar. PaintPack'i bir USB konektörü aracılığıyla bir bilgisayara bağlarken, birlikte verilen programda sürücüleri yüklemeniz ve cihazı yapılandırmanız gerekir.


mysku.ru

Yapılandırma AmbiBox paketi kullanılarak yapılır. “Akıllı Arka Işık” menüsüne gitmeniz, ekran yakalama yöntemini ve programda sunulan çalışma modlarından birini seçmeniz gerekiyor:

  1. Statik arka plan - herhangi bir renk ayarlanabilir, LED parlaklığı ayarlanabilir.
  2. Renkli müzik - arka ışık müziğin sesiyle aynı anda yanıp sönecektir. Arka ışık rengi yeşil-sarı olarak ayarlanmıştır.
  3. Dinamik arka plan - bir rengin diğerine yumuşak akışı.
  4. Ekran yakalama ana çalışma modudur.

Bu mod, izlediğiniz filmlerden ve oyunlardan renk yakalamanıza olanak tanır. Arka ışık rengi ekrandaki görüntüye göre değişecek ve üst, alt ve yan bölgelere (her biri ayrı ayrı) bölünecektir.

PaintPack, resmi Philips analogundan biraz daha yavaş çalışır. Ancak maliyet farkı ve herhangi bir cihazı yükseltme olasılığı dikkate alındığında seçim açıktır.

2007 yılında Philips, inanılmaz derecede basit ama abartmadan muhteşem bir TV arka ışık teknolojisinin patentini aldı. Bu tür uyarlanabilir arka aydınlatma sayesinde karanlıkta izlerken gözler daha az yorulur, varlık etkisi artar, ekran alanı genişler vb. Ambilight yalnızca video ve fotoğraf içerikleri için değil aynı zamanda oyunlar için de geçerlidir. Ambilight, Philips TV'lerin ayırt edici özelliği haline geldi. O zamandan beri Philips, büyük üreticilerin hiçbirinin benzer bir şey yaratarak kutsallığa tecavüz etmeyi düşünmemesi için çok dikkatli davrandı. Bu teknolojiyi lisanslamak muhtemelen mümkün ancak koşullar bir şekilde engelleyici ve diğer piyasa oyuncuları bunu yapmaya özellikle istekli değil. Küçük şirketler de benzer teknolojiyi ayrı kitler halinde sunmaya çalıştı (ve artık bunu yapan şirketler var), ancak Philips'in ceza alması kaçınılmazdı. Yani en iyi durumda, eğer şirket bir şekilde patenti veya türevini yenilemezse, diğer üreticiler ancak 2027 yılında benzer bir şey üretebilecek.

Ancak bu ceza biz sıradan tüketiciler için geçerli değil. Uygun gördüğümüzü yapmakta özgürüz. Bugün size Philips Ambilight (bundan sonra sadece Ambilight olarak anılacaktır) gibi bir TV veya monitör için kendi uyarlanabilir arka ışığınızı nasıl yapacağınızı ayrıntılı olarak anlatacağım. Bazıları için makale yeni bir şey içermeyecek çünkü... Bu tür onlarca proje var, farklı dillerde yüzlerce makale yazıldı ve bunu zaten kendisi için yapan binlerce insan var. Ancak çoğu kişi için bunların hepsi çok ilginç olabilir. Herhangi bir özel beceriye ihtiyacınız yok. Lise 8. sınıf için sadece temel fizik bilgisi. Peki, sadece biraz tel lehimleme.

Neden bahsettiğimi daha iyi anlayabilmeniz için size kendi örneğimi vereceğim. 42" TV'nin gerçek maliyeti yaklaşık 1000 ruble ve 2 saatlik çalışmadır.


Video tüm hisleri ve etkiyi bütünüyle aktarmıyor ancak çocuklar ilk kez ağızları açık oturdular.

Olası uygulama seçenekleri

Ambilight'ı uygulamak için çeşitli seçenekler vardır. Video kaynağına bağlıdırlar.

En ucuz, en basit ve en etkili seçenek, sinyal kaynağı olarak Windows, Mac OS X veya Linux çalıştıran bir bilgisayardır. Fiyatı 70 dolardan başlayan Atom işlemcilerdeki Windows kutuları artık çok yaygın. Hepsi Ambilight'ı uygulamak için idealdir. Birkaç yıldır medya oynatıcı olarak çeşitli Windows kutularını (TV standında) kullanıyorum, küçük bir avuç dolusu inceleme yazdım ve bunların medya içeriği için en iyi TV set üstü kutuları olduğunu düşünüyorum. Bu seçeneğin donanım uygulaması, listelenen tüm işletim sistemleri için aynıdır. Makalede bahsedeceğim bu seçenektir.. Yazılım kısmı Windows sistemiyle ilgili olacak; AmbiBox evrensel bir kontrol programı görevi görecek. Mac OS X ve Linux ile kullanılabilir.

İkinci seçenek, sinyal kaynağının, çok sayıda bulunan Android tabanlı bir medya set üstü kutusu olmasıdır. Bu seçenek en sorunlu olanıdır. İlk olarak, vurgulama yalnızca Kodi medya toplayıcıda (ve onun yan ürünlerinde) çalışacaktır. İkincisi, çoğu durumda, her şey yalnızca donanım video kod çözme devre dışı bırakıldığında çalışır ve bu, çoğu kutu için kabul edilemez. Projenin donanım uygulaması da belirli gereksinimler getirmektedir. Buna değinmeyeceğim ama ilgilendiğiniz spesifik bir şey varsa yorumlarda cevaplamaya çalışacağım.

Üçüncü seçenek ise sinyal kaynağından bağımsız bir çözümdür. Bu en pahalı ama kesinlikle evrensel çözümdür, çünkü... sinyal doğrudan HDMI kablosundan alınır. Bunun için oldukça güçlü bir mikro bilgisayara (Raspberry Pi gibi), bir HDMI ayırıcıya, bir HDMI-RCA AV dönüştürücüye, bir USB 2.0 analog video yakalama cihazına ihtiyacınız olacak. Yalnızca bu seçenekle Ambilight'ı herhangi bir TV set üstü kutusu/alıcısı, Android kutuları, Apple TV, oyun konsolları (örneğin, Xbox One, PlayStation 4) ve HDMI çıkışı olan diğer cihazlarla kullanacağınız garanti edilebilir. 1080p60 desteğine sahip sürüm için bileşenlerin maliyeti (LED şeritsiz) yaklaşık 70 ABD Doları, 2160p60 desteğiyle ise yaklaşık 100 ABD Doları olacaktır. Bu seçenek çok ilginç ama üzerine ayrı bir makale yazılması gerekiyor.

Donanım

Bunu uygulamak için üç ana bileşene ihtiyacınız olacak: kontrol edilebilir bir RGB LED şerit, bir güç kaynağı ve bir Arduino mikro bilgisayarı.

Öncelikle küçük bir açıklama.

WS2811, RGB LED'ler için tek kablolu kontrole sahip (isteğe bağlı bir LED'i adresleyen) üç kanallı bir denetleyici/sürücüdür (yonga). WS2812B, içinde zaten yerleşik bir WS2811 denetleyicisi bulunan SMD 5050 paketindeki bir RGB LED'dir.

Basit olması açısından projeye uygun LED şeritlere WS2811 veya WS2812B adı verilmektedir.

WS2812B şeridi, üzerine WS2812B LED'lerin seri olarak yerleştirildiği bir şerittir. Şerit 5 V voltajla çalışır. Farklı yoğunluklarda LED'lere sahip şeritler vardır. Genellikle: metre başına 144, 90, 74, 60, 30. Farklı koruma dereceleri vardır. Çoğu zaman bunlar şunlardır: IP20-30 (katı parçacıklara karşı koruma), IP65 (toz ve su jetlerine karşı koruma), IP67 (toza karşı koruma ve 1 m derinliğe kadar kısmi veya kısa süreli suya daldırmaya karşı koruma). Siyah beyaz destek.

İşte böyle bir kasetin bir örneği:


WS2811 bandı, üzerine bir WS2811 denetleyicisinin ve bir tür RGB LED'in seri olarak yerleştirildiği bir banttır. 5 V ve 12 V gerilimler için tasarlanmış seçenekler mevcuttur. Yoğunluk ve koruma önceki seçeneğe benzer.

İşte böyle bir kasetin bir örneği:


Aşağıdaki fotoğrafta olduğu gibi büyük ve güçlü LED'lere sahip WS2811 "şeritleri" de vardır. Ayrıca bazı büyük panellerde Ambilight'ı uygulamaya da uygundurlar.


Hangi bandı seçmelisiniz, WS2812B ve WS2811?

Önemli bir faktör, biraz sonra bahsedeceğim bandın güç kaynağıdır.

Evde güç kaynağına uygun bir güç kaynağınız varsa (genellikle güç kaynakları eski veya hasarlı ekipmanlardan dolayı evde bırakılır), o zaman güç kaynağının voltajına göre bir bant seçin, yani. 5 V - WS2812B, 12 V - WS2811. Bu durumda sadece paradan tasarruf edeceksiniz.

Kendi adıma bir tavsiyede bulunabilirim. Sistemdeki toplam LED sayısı 120'den fazla değilse WS2812B. 120'den fazlaysa, 12 V çalışma voltajına sahip WS2811. Bandı güç kaynağına bağlama konusunda bunun neden böyle olduğunu anlayacaksınız.

Hangi düzeyde bant korumasını seçmeliyim?

Çoğu için IP65 uygundur çünkü... Bir tarafı “silikon” (epoksi reçine) ile kaplanmış, diğer tarafı 3M kendinden yapışkanlı yüzey bulunmaktadır. Bu bant bir TV'ye veya monitöre monte edilmeye uygundur ve tozun silinmesi uygundur.

Hangi LED yoğunluğunu seçmeliyim?

Proje için metre başına 30 ila 60 LED yoğunluğuna sahip şeritler uygundur (elbette 144 mümkündür, kimse yasaklamaz). Yoğunluk ne kadar yüksek olursa Ambilight çözünürlüğü (bölge sayısı) ve maksimum genel parlaklık da o kadar yüksek olur. Ancak projede ne kadar çok LED olursa, şeridin güç kaynağı devresinin o kadar karmaşık olacağını ve daha güçlü bir güç kaynağına ihtiyaç duyulacağını düşünmeye değer. Bir projedeki maksimum LED sayısı 300'dür.

Bant satın alma

TV'niz veya monitörünüz duvarda asılıysa ve 4 tarafın da yakınında çok fazla boş alan varsa, maksimum etki için bandın 4 tarafın tamamında çevre boyunca arkaya yerleştirilmesi en iyisidir. TV'niz veya monitörünüz bir stand üzerine kuruluysa veya altta çok az boş alan varsa, bant 3 tarafa (yani bantsız alt tarafa) yerleştirilmelidir.

Kendim için metre başına 30 LED'li beyaz bir WS2812B IP65 şerit seçtim. Zaten uygun bir 5V güç kaynağım vardı. Metre başına 60 mı yoksa 30 LED mi kullanacağıma karar veriyordum, ancak hazır uygulama örneklerini içeren videoyu inceledikten sonra ikincisini seçtim - parlaklık ve çözünürlük bana uygundu ve güç kaynağının düzenlenmesi daha kolaydı ve daha az kablo vardı. Aliexpress'de çok sayıda WS2812B bant bulunmaktadır. 16 dolara 5 metre sipariş ettim. Televizyonum için (42", 3 taraflı) sadece 2 metreye ihtiyacım vardı, yani 10 dolara satın alabilirdim, geri kalan üç metreyi arkadaşıma. Fiyatlar satıcılar arasında sıklıkla değişiyor, çok fazla teklif var, bu yüzden sadece ucuz bir parti seçin Yüksek derecelendirmeye sahip Aliexpress (arama anahtar kelimeleri - WS2812B IP65, WS2811 12V IP65'e gider).




Bant için güç kaynağı satın alma

Güç kaynağı güç ve voltaja göre seçilir. WS2812B için - voltaj 5 V. WS2811 için - 5 veya 12 V. Bir WS2812B LED'in maksimum güç tüketimi 0,3 W'tur. WS2811 için çoğu durumda aynıdır. Onlar. Güç kaynağı gücü en az N * 0,3 W olmalıdır; burada N, projedeki LED sayısıdır.

Örneğin, 42" bir TV'niz var, metre başına 30 LED'li bir WS2812B şerit seçtiniz, 4 tarafta 3 metre şerite ihtiyacınız var. 5 V voltaj ve maksimum 0,3 güce sahip bir güç kaynağına ihtiyacınız olacak. * 30 * 3 = 27 W, yani 5 V / 6 A. Uygulamam yalnızca 3 taraf kullanıyor, toplam 60 LED (tam olarak 57) - güç 18 W'tan, yani 5 V / 4 A.

Eski bir incelemeden kalan ORICO CSA-5U (8 A) çok bağlantı noktalı USB şarj cihazını uzun süre boşta beklettim. Bağlantı noktalarına paralel olarak güç veriliyor (bu çok önemli), bu şarj cihazı benim için bir güç kaynağı olarak ideal, çünkü... Bandı 2 paralel bağlantıyla bağlayacağım (açıklamalar yazının ilerleyen kısımlarında olacak).


Bu şarj cihazına sahip olmasaydım onu ​​seçerdim (bu özel güç kaynağının 2,5 A dahili ile donatıldığı bilgisi var, bu nedenle bu konuyu satıcıyla daha ayrıntılı olarak incelemeniz veya diğer modellere bakmanız gerekiyor) .

Mikro bilgisayar satın almak

Ambilight, Arduino mikro bilgisayarı tarafından kontrol edilecek. Aliexpress'deki Arduino Nano'nun tanesi yaklaşık maliyeti.

Benim seçeneğimin maliyetleri (42" TV için):

10 USD - 2 metre WS2812B IP65 (metre başına 30 LED)
$4 - 5 V / 4 A güç kaynağı (Güç kaynağına hiç para harcamadım, netlik için maliyetini veriyorum)
2,5 ABD Doları - Arduino Nano
-----------
16,5$ veya 1000 ruble

Donanım uygulaması

En önemli şey, bant için güç kaynağını uygun şekilde düzenlemektir. Bant uzun, yüksek akımlarda voltaj düşüyor, özellikle 5 V'ta. Kendi Ambilight'ını yapanlar için ortaya çıkan sorunların çoğu güç kaynağıyla ilgili. Kuralı kullanıyorum - 5 V'ta her 10 W maksimum güç tüketimi ve 12 V'de 25 W güç tüketimi için ayrı bir güç kaynağı yapmanız gerekir. Güç kaynağının uzunluğu (güç kaynağından bandın kendisine) özellikle 5 IN'de minimum düzeyde (rezervsiz) olmalıdır.

Genel bağlantı şeması aşağıdaki gibidir (şema benim versiyonum için güç bağlantısını göstermektedir):


Bandın her iki ucunda da güç sağlanır - iki paralel bağlantı. Örneğin, 4 tarafı da aydınlatıyor olsaydım ve şeridin metre başına 60 LED'i olsaydı (yani maksimum güç 54 W), o zaman aşağıdaki güç kaynağını yapardım:


Bağlantı kabloları uygun şekilde kullanılmalıdır; ölçü (AWG) ne kadar küçük olursa, hesaplanan akım gücü için yeterli olmaları o kadar iyidir.

Banttan iki kişi Arduino'ya gidiyor. Arduino'daki ilgili pime bağlanması gereken GND. Ve altıncı dijital pime 300-550 Ohm'luk bir direnç (tercihen 470 Ohm) aracılığıyla bağlanması gereken DATA. Bir direnciniz yoksa çoğu durumda onsuz her şey yolunda gider, ancak bir dirence sahip olmak daha iyidir. Herhangi bir radyo mağazasından birkaç kopek karşılığında bir direnç satın alabilirsiniz. Arduino mikrobilgisayarının kendisi herhangi bir uygun duruma yerleştirilebilir; birçok kişi bunun için Kinder sürpriz yumurtasını kullanır. DATA bağlantısının minimum uzunluğa sahip olması için Arduino banda mümkün olduğunca yakın yerleştirilmelidir.

Kabloları banda lehimlemek basittir. Ana kural, havya ile temas süresinin minimum düzeyde olmasıdır, havya ile "dalga geçemezsiniz".

Benim durumumda şöyle ortaya çıktı:



Güç için iki adet siyah yüksek kaliteli USB kablosu, bilgisayara bağlanmak için ise beyaz bir kablo kullanıldı. Beyaz ısıyla daralan makaronum bitti, bu yüzden kırmızı olanları kullandım. O kadar "güzel" değil ama bana yakışıyor (zaten televizyonun arkasında gizli).

Önemli bir soru, bandın dik açıyla nasıl büküleceğidir? 60 LED'lik bir şeridiniz varsa, şeridin kesilmesi ve kısa kablolarla bağlanması gerekir (hepsini ısıyla büzüşen bir tüpe yerleştirerek). LED şeritler için özel üç pimli köşe konektörleri satın alabilirsiniz (örneğin resimde 4 pim vardır):


30 LED'lik bir şeridiniz varsa LED'ler arasındaki mesafe büyüktür, kesmeden kolayca köşe yapabilirsiniz. "Silikon" kaplamanın bir parçasını çıkarın, temas yüzeyini yalıtın (bant bile kullanabilirsiniz) ve şemaya göre bükün:

Alıştırma yapmak için bir parça bant kestim. Önemli olan aşırıya kaçmamak - bir kez hafifçe bükün ve hepsi bu. Oradan burada bükmeye gerek yok, bükme çizgisine çok sert basmaya gerek yok.


İşte TV'nin arkasından bir görünüm, tüm kablolar delikten kabine giriyor:

Yazılım bölümü

Bu en basit şeydir.

Arduino mikro bilgisayarını USB üzerinden bağlıyoruz. Sürücü (CH340 seri arayüz) otomatik olarak kurulacaktır. Bu olmazsa, Arduino IDE klasöründe ihtiyacınız olan her şeyi içeren bir Sürücüler klasörü bulunur.

Arduino IDE'yi başlatın ve Adalight.ino dosyasını açın.


Koddaki LED sayısını değiştiriyoruz. 57 yaşındayım.


Araçlar > Pano > Arduino nano
Araçlar > Bağlantı Noktası > COM bağlantı noktasını seçin (istenen seçenek orada olacaktır)

“İndir” düğmesine tıklayın:


İndirme işlemi tamamlandığında program sizi bilgilendirecektir (bu tam anlamıyla birkaç saniyedir).

Hazır. Arduino'nun USB bağlantısını kesip tekrar bağlamanız gerekir. Bant sırayla kırmızı, yeşil ve mavi renkte yanacaktır - Arduino etkinleştirilmiştir ve kullanıma hazırdır.

Programı indirip yükleyin. Programda "Diğer ayarlar"a tıklayın ve cihazı belirtin - Adalight, COM bağlantı noktası ve LED sayısı. Yakalanacak kare sayısını seçin (en fazla 60).


Ardından, “Yakalama Bölgelerini Göster” > “Bölge Kurulum Sihirbazı”na tıklayın. Şerit yapılandırmanızı seçin.


Ayarları Uygula ve Kaydet'i tıklayın. Bu, temel ayarları tamamlar. Daha sonra yakalama bölgelerinin boyutunu deneyebilir, bandın rengini düzeltebilir vb. Programın birçok farklı ayarı vardır.


Bir profili etkinleştirmek için Windows bildirim alanındaki ilgili simgeye (AmbiBox profilleri) çift tıklamanız yeterlidir. Bant hemen yanacaktır. Ayrıca çift tıklayarak da kapatılabilir.

Temelde bu kadar. Sonucu yazının başında gördünüz. Hiçbir şey karmaşık, ucuz ve sağlıklı değil. Eminim daha iyisini yapabilirsiniz, o yüzden el sanatlarınızı yorumlarda paylaşın.

Ambilight teknolojisi

Yukarıda adı geçen şirketin tescilli arka aydınlatma teknolojisi, TV'nin arkasındaki duvara belirli bir şekilde yumuşak bir parıltının yansıtılmasına olanak tanıyan, TV'nin içine yerleştirilmiş özel lambalardan oluşur; bu, görüntünün daha da etkileyici olmasını sağlamak için ekrandaki görüntüyü devam ettiriyor gibi görünmektedir. ekranda olup bitenlerin atmosferi.

Teknolojinin kendisi geçen yüzyılda, bir yandan o zamanki TV alıcılarının parlaklığının yetersiz olması ve izleyicilerin onları izlerken ışıkları kapatması, diğer yandan karanlıkta TV izlemesi nedeniyle doğdu. gözlerde keskin bir gerginlik yaratır, bu da hızlı yorgunluğa ve genel rahatsızlığa neden olur. Çözüm açıktı: yakındaki bir dağınık ışık kaynağının (TV lambaları olarak adlandırılan) varlığı. Bugün Philips araştırma departmanına göre Ambilight teknolojisi bu sorunu çözmek için tasarlandı.

Şu anda, bu teknolojinin zaten 5 nesli (ve çok sayıda modifikasyonu) var; bunlardan son üçü en yaygın olanı:

  • Üç kanallı arka ışık teknolojisi " Ambilight Çevresi"Etki alanını yukarı doğru genişletmek için gövdenin üst kısmında ilave lambalar ve sol, sağ ve üst arka plan lambaları bloğunun ekranın ilgili alanına bağımsız olarak bağlanması.
  • Tam arka ışık teknolojisi " Ambilight Tam Çevresel", ekranın zaten her tarafı lambalarla çevrili. Buna göre lambaların kontrolünden sorumlu işlemci, ekrandaki en az dört görüntü bölgesini analiz ederek arka plan görüntüsünü oluşturur. Daha iyi ışık iletimi için TV gövdesi bir arka panel ekranıyla donatılmıştır.
  • Teknoloji " Ambilight Spektrumu 120’den fazla yeni nesil LED ve gelişmiş görüntü işleme algoritmaları sayesinde “hacimsel” bir görüntü oluşturmanıza olanak sağlayan.

Tüm teknolojiler, bir dereceye kadar, TV'nin arkasından ekranda görüntülenen görüntünün renklerini ve ışık yoğunluğunu tamamlayan dağınık ışık yaratır.

İncelemenin sonunda ne söyleyebilirsiniz? Cihaz şüphesiz ilginç ve denemeye değer, özellikle de üreticinin 30 gün boyunca ücretsiz bir test sürüşü sağladığını düşünürsek, yani cihazı beğenmezseniz iade edebilir ve paranızı geri alabilirsiniz. Bu durumda maliyetleriniz üreticiye gönderilen posta ücretine eşit olacaktır. Ana dezavantajı, cihazın yalnızca yazılımla birlikte çalışmasıdır; bu, dinamik arka ışık efektini elde etmek için bir bilgisayara ihtiyacınız olduğu anlamına gelir.

Sonuçlar

Aslında sonuç şu:

artıları

  • bir bilgisayara bağlı her türlü monitör ve TV ile çalışın;
  • PC donanımı için düşük sistem gereksinimleri;
  • üretici tarafından beyan edilenden farklı olmayan, tamamen uygulanmış işlevsellik;
  • üçüncü taraf yazılım üreticileri de dahil olmak üzere iyi yazılım desteği;
  • ürünü kişiselleştirme ve standart dışı çözümler yaratma yeteneği;
  • Düşük fiyat;
  • malların ödenmesi ve teslimi için geniş olanaklar;
  • kurulum ve konfigürasyon kolaylığı;
  • Rusça konuşan teknik destek hizmeti;
  • üreticinin web sitesinde ayrıntılı metin ve video talimatları;
  • ücretsiz test sürüşü.

Eksileri

  • dinamik arka ışık efektini elde etmek için bir bilgisayar gereklidir;
  • pakette yer alan yazılımın eksikliği, internetten indirme ihtiyacı;
  • kitte talimatların (hatta elektronik) bulunmaması; üreticinin web sitesinde okuma ihtiyacı;
  • LED'ler için bir dizi sabitleme elemanının (çift taraflı bant) bulunmaması;
  • en doğru etkiyi elde etmek için ekranın belirli bir konumuna (duvardan 15-30 cm uzakta) duyulan ihtiyaç;
  • hem ambalajda hem de ürünün kendisinde garanti kartının ve üretici bilgilerinin bulunmaması.

Birkaç yıl önce mySKU'nun, tarafından yayınlanan harika bir incelemesi vardı. Bu inceleme hakkındaki yorumlar da şaşırtıcı - bu sadece çok büyük bir bilgi tabanı (o kadar büyük ki, tarayıcı bu sayfayı zar zor yükleyebiliyor). Zaman geçiyor, bileşenler ucuzluyor, mySKU bu incelemeyi kaçırmış olabilecek yeni bir hedef kitle buluyor. Ayrıca Philips Ambilight gibi bir TV veya monitör için uyarlanabilir arka aydınlatma oluşturma sürecini kendi kelimelerimle anlatmaya karar verdim. Belki birileri incelememi faydalı bulacaktır.

2007 yılında Philips, inanılmaz derecede basit ama abartmadan muhteşem bir TV arka ışık teknolojisinin patentini aldı. Bu tür uyarlanabilir arka aydınlatma sayesinde karanlıkta izlerken gözler daha az yorulur, varlık etkisi artar, ekran alanı genişler vb. Ambilight yalnızca video ve fotoğraf içerikleri için değil aynı zamanda oyunlar için de geçerlidir. Ambilight, Philips TV'lerin ayırt edici özelliği haline geldi. O zamandan beri Philips, büyük üreticilerin hiçbirinin benzer bir şey yaratarak kutsallığa tecavüz etmeyi düşünmemesi için çok dikkatli davrandı. Bu teknolojiyi lisanslamak muhtemelen mümkün ancak koşullar bir şekilde engelleyici ve diğer piyasa oyuncuları bunu yapmaya özellikle istekli değil. Küçük şirketler de benzer teknolojiyi ayrı kitler halinde sunmaya çalıştı (ve artık bunu yapan şirketler var), ancak Philips'in ceza alması kaçınılmazdı. Yani en iyi durumda, eğer şirket bir şekilde patenti veya türevini yenilemezse, diğer üreticiler ancak 2027 yılında benzer bir şey üretebilecek.

Ancak bu ceza biz sıradan tüketiciler için geçerli değil. Uygun gördüğümüzü yapmakta özgürüz. Bugün size Philips Ambilight (bundan sonra sadece Ambilight olarak anılacaktır) gibi bir TV veya monitör için kendi uyarlanabilir arka ışığınızı nasıl yapacağınızı ayrıntılı olarak anlatacağım. Bazıları için makale yeni bir şey içermeyecek çünkü... Bu tür onlarca proje var, farklı dillerde yüzlerce makale yazıldı ve bunu zaten kendisi için yapan binlerce insan var. Ancak çoğu kişi için bunların hepsi çok ilginç olabilir. Herhangi bir özel beceriye ihtiyacınız yok. Lise 8. sınıf için sadece temel fizik bilgisi. Peki, sadece biraz tel lehimleme.

Neden bahsettiğimi daha iyi anlayabilmeniz için size kendi örneğimi vereceğim. 42" TV'nin gerçek maliyeti yaklaşık 1000 ruble ve 2 saatlik çalışmadır.



Video tüm hisleri ve etkiyi bütünüyle aktarmıyor ancak çocuklar ilk kez ağızları açık oturdular.

Olası uygulama seçenekleri

Ambilight'ı uygulamak için çeşitli seçenekler vardır. Video kaynağına bağlıdırlar.

En ucuz, en basit ve en etkili seçenek, sinyal kaynağı olarak Windows, Mac OS X veya Linux çalıştıran bir bilgisayardır. Fiyatı 70 dolardan başlayan Atom işlemcilerdeki Windows kutuları artık çok yaygın. Hepsi Ambilight'ı uygulamak için idealdir. Birkaç yıldır medya oynatıcı olarak çeşitli Windows kutularını (TV standında) kullanıyorum, küçük bir avuç dolusu inceleme yazdım ve bunların medya içeriği için en iyi TV set üstü kutuları olduğunu düşünüyorum. Bu seçeneğin donanım uygulaması, listelenen tüm işletim sistemleri için aynıdır. Makalede bahsedeceğim bu seçenektir.. Yazılım kısmı Windows sistemiyle ilgili olacak; AmbiBox evrensel bir kontrol programı görevi görecek. Mac OS X ve Linux ile kullanılabilir.

İkinci seçenek, sinyal kaynağının, çok sayıda bulunan Android tabanlı bir medya set üstü kutusu olmasıdır. Bu seçenek en sorunlu olanıdır. İlk olarak, vurgulama yalnızca Kodi medya toplayıcıda (ve onun yan ürünlerinde) çalışacaktır. İkincisi, çoğu durumda, her şey yalnızca donanım video kod çözme devre dışı bırakıldığında çalışır ve bu, çoğu kutu için kabul edilemez. Projenin donanım uygulaması da belirli gereksinimler getirmektedir. Buna değinmeyeceğim ama ilgilendiğiniz spesifik bir şey varsa yorumlarda cevaplamaya çalışacağım.

Üçüncü seçenek ise sinyal kaynağından bağımsız bir çözümdür. Bu en pahalı ama kesinlikle evrensel çözümdür, çünkü... sinyal doğrudan HDMI kablosundan alınır. Bunun için oldukça güçlü bir mikro bilgisayara (Raspberry Pi gibi), bir HDMI ayırıcıya, bir HDMI-RCA AV dönüştürücüye, bir USB 2.0 analog video yakalama cihazına ihtiyacınız olacak. Yalnızca bu seçenekle Ambilight'ı herhangi bir TV set üstü kutusu/alıcısı, Android kutuları, Apple TV, oyun konsolları (örneğin, Xbox One, PlayStation 4) ve HDMI çıkışı olan diğer cihazlarla kullanacağınız garanti edilebilir. 1080p60 desteğine sahip sürüm için bileşenlerin maliyeti (LED şeritsiz) yaklaşık 70 ABD Doları, 2160p60 desteğiyle ise yaklaşık 100 ABD Doları olacaktır. Bu seçenek çok ilginç ama üzerine ayrı bir makale yazılması gerekiyor.

Donanım

Bunu uygulamak için üç ana bileşene ihtiyacınız olacak: kontrol edilebilir bir RGB LED şerit, bir güç kaynağı ve bir Arduino mikro bilgisayarı.

Öncelikle küçük bir açıklama.

WS2811, RGB LED'ler için tek kablolu kontrole sahip (isteğe bağlı bir LED'i adresleyen) üç kanallı bir denetleyici/sürücüdür (yonga). WS2812B, içinde zaten yerleşik bir WS2811 denetleyicisi bulunan SMD 5050 paketindeki bir RGB LED'dir.

Basit olması açısından projeye uygun LED şeritlere WS2811 veya WS2812B adı verilmektedir.

WS2812B şeridi, üzerine WS2812B LED'lerin seri olarak yerleştirildiği bir şerittir. Şerit 5 V voltajla çalışır. Farklı yoğunluklarda LED'lere sahip şeritler vardır. Genellikle: metre başına 144, 90, 74, 60, 30. Farklı koruma dereceleri vardır. Çoğu zaman bunlar şunlardır: IP20-30 (katı parçacıklara karşı koruma), IP65 (toz ve su jetlerine karşı koruma), IP67 (toza karşı koruma ve 1 m derinliğe kadar kısmi veya kısa süreli suya daldırmaya karşı koruma). Siyah beyaz destek.

İşte böyle bir kasetin bir örneği:


WS2811 bandı, üzerine bir WS2811 denetleyicisinin ve bir tür RGB LED'in seri olarak yerleştirildiği bir banttır. 5 V ve 12 V gerilimler için tasarlanmış seçenekler mevcuttur. Yoğunluk ve koruma önceki seçeneğe benzer.

İşte böyle bir kasetin bir örneği:


Aşağıdaki fotoğrafta olduğu gibi büyük ve güçlü LED'lere sahip WS2811 "şeritleri" de vardır. Ayrıca bazı büyük panellerde Ambilight'ı uygulamaya da uygundurlar.


Hangi bandı seçmelisiniz, WS2812B ve WS2811?

Önemli bir faktör, biraz sonra bahsedeceğim bandın güç kaynağıdır.

Evde güç kaynağına uygun bir güç kaynağınız varsa (genellikle güç kaynakları eski veya hasarlı ekipmanlardan dolayı evde bırakılır), o zaman güç kaynağının voltajına göre bir bant seçin, yani. 5 V - WS2812B, 12 V - WS2811. Bu durumda sadece paradan tasarruf edeceksiniz.

Kendi adıma bir tavsiyede bulunabilirim. Sistemdeki toplam LED sayısı 120'den fazla değilse WS2812B. 120'den fazlaysa, 12 V çalışma voltajına sahip WS2811. Bandı güç kaynağına bağlama konusunda bunun neden böyle olduğunu anlayacaksınız.

Hangi düzeyde bant korumasını seçmeliyim?

Çoğu için IP65 uygundur çünkü... Bir tarafı “silikon” (epoksi reçine) ile kaplanmış, diğer tarafı 3M kendinden yapışkanlı yüzey bulunmaktadır. Bu bant bir TV'ye veya monitöre monte edilmeye uygundur ve tozun silinmesi uygundur.

Hangi LED yoğunluğunu seçmeliyim?

Proje için metre başına 30 ila 60 LED yoğunluğuna sahip şeritler uygundur (elbette 144 mümkündür, kimse yasaklamaz). Yoğunluk ne kadar yüksek olursa Ambilight çözünürlüğü (bölge sayısı) ve maksimum genel parlaklık da o kadar yüksek olur. Ancak projede ne kadar çok LED olursa, şeridin güç kaynağı devresinin o kadar karmaşık olacağını ve daha güçlü bir güç kaynağına ihtiyaç duyulacağını düşünmeye değer. Bir projedeki maksimum LED sayısı 300'dür.

Bant satın alma

TV'niz veya monitörünüz duvarda asılıysa ve 4 tarafın da yakınında çok fazla boş alan varsa, maksimum etki için bandın 4 tarafın tamamında çevre boyunca arkaya yerleştirilmesi en iyisidir. TV'niz veya monitörünüz bir stand üzerine kuruluysa veya altta çok az boş alan varsa, bant 3 tarafa (yani bantsız alt tarafa) yerleştirilmelidir.

Kendim için metre başına 30 LED'li beyaz bir WS2812B IP65 şerit seçtim. Zaten uygun bir 5V güç kaynağım vardı. Metre başına 60 mı yoksa 30 LED mi kullanacağıma karar veriyordum, ancak hazır uygulama örneklerini içeren videoyu inceledikten sonra ikincisini seçtim - parlaklık ve çözünürlük bana uygundu ve güç kaynağının düzenlenmesi daha kolaydı ve daha az kablo vardı. Aliexpress'de çok sayıda WS2812B bant bulunmaktadır. 16 dolara 5 metre sipariş ettim. Televizyonum için (42", 3 taraflı) sadece 2 metreye ihtiyacım vardı, yani 10 dolara satın alabilirdim, geri kalan üç metreyi arkadaşıma. Fiyatlar satıcılar arasında sıklıkla değişiyor, çok fazla teklif var, bu yüzden sadece ucuz bir parti seçin Yüksek derecelendirmeye sahip Aliexpress (arama anahtar kelimeleri - WS2812B IP65 veya WS2811 12V IP65).




Bant için güç kaynağı satın alma

Güç kaynağı güç ve voltaja göre seçilir. WS2812B için - voltaj 5 V. WS2811 için - 5 veya 12 V. Bir WS2812B LED'in maksimum güç tüketimi 0,3 W'tur. WS2811 için çoğu durumda aynıdır. Onlar. Güç kaynağı gücü en az N * 0,3 W olmalıdır; burada N, projedeki LED sayısıdır.

Örneğin, 42" bir TV'niz var, metre başına 30 LED'li bir WS2812B şerit seçtiniz, 4 tarafta 3 metre şerite ihtiyacınız var. 5 V voltaj ve maksimum 0,3 güce sahip bir güç kaynağına ihtiyacınız olacak. * 30 * 3 = 27 W, yani 5 V / 6 A. Uygulamam yalnızca 3 taraf kullanıyor, toplam 60 LED (tam olarak 57) - güç 18 W'tan, yani 5 V / 4 A.

Eski bir incelemeden kalan ORICO CSA-5U (8 A) çok bağlantı noktalı USB şarj cihazını uzun süre boşta beklettim. Bağlantı noktalarına paralel olarak güç veriliyor (bu çok önemli), bu şarj cihazı benim için bir güç kaynağı olarak ideal, çünkü... Bandı 2 paralel bağlantıyla bağlayacağım (açıklamalar yazının ilerleyen kısımlarında olacak).


Bu şarj cihazına sahip olmasaydım onu ​​seçerdim (ancak yorumlarda içeriye genellikle 2,5 A koyduklarını yazıyorlar, bu nedenle bu konuyu daha ayrıntılı olarak incelemek daha iyidir).

Mikro bilgisayar satın almak

Ambilight, Arduino mikro bilgisayarı tarafından kontrol edilecek. Aliexpress'deki Arduino Nano'nun tanesi yaklaşık maliyeti.

Benim seçeneğimin maliyetleri (42" TV için):

10 USD - 2 metre WS2812B IP65 (metre başına 30 LED)
$4 - 5 V / 4 A güç kaynağı (Güç kaynağına hiç para harcamadım, netlik için maliyetini veriyorum)
2,5 ABD Doları - Arduino Nano
-----------
16,5$ veya 1000 ruble

Donanım uygulaması

En önemli şey, bant için güç kaynağını uygun şekilde düzenlemektir. Bant uzun, yüksek akımlarda voltaj düşüyor, özellikle 5 V'ta. Kendi Ambilight'ını yapanlar için ortaya çıkan sorunların çoğu güç kaynağıyla ilgili. Kuralı kullanıyorum - 5 V'ta her 10 W maksimum güç tüketimi ve 12 V'de 25 W güç tüketimi için ayrı bir güç kaynağı yapmanız gerekir. Güç kaynağının uzunluğu (güç kaynağından bandın kendisine) özellikle 5 IN'de minimum düzeyde (rezervsiz) olmalıdır.

Genel bağlantı şeması aşağıdaki gibidir (şema benim versiyonum için güç bağlantısını göstermektedir):


Bandın her iki ucunda da güç sağlanır - iki paralel bağlantı. Örneğin, 4 tarafı da aydınlatıyor olsaydım ve şeridin metre başına 60 LED'i olsaydı (yani maksimum güç 54 W), o zaman aşağıdaki güç kaynağını yapardım:


Bağlantı kabloları uygun şekilde kullanılmalıdır; ölçü (AWG) ne kadar küçük olursa, hesaplanan akım gücü için yeterli olmaları o kadar iyidir.

Banttan iki kişi Arduino'ya gidiyor. Arduino'daki ilgili pime bağlanması gereken GND. Ve altıncı dijital pime 300-550 Ohm'luk bir direnç (tercihen 470 Ohm) aracılığıyla bağlanması gereken DATA. Bir direnciniz yoksa çoğu durumda onsuz her şey yolunda gider, ancak bir dirence sahip olmak daha iyidir. Herhangi bir radyo mağazasından birkaç kopek karşılığında bir direnç satın alabilirsiniz. Arduino mikrobilgisayarının kendisi herhangi bir uygun duruma yerleştirilebilir; birçok kişi bunun için Kinder sürpriz yumurtasını kullanır. DATA bağlantısının minimum uzunluğa sahip olması için Arduino banda mümkün olduğunca yakın yerleştirilmelidir.

Kabloları banda lehimlemek basittir. Ana kural, havya ile temas süresinin minimum düzeyde olmasıdır, havya ile "dalga geçemezsiniz".

Benim durumumda şöyle ortaya çıktı:



Güç için iki adet siyah yüksek kaliteli USB kablosu, bilgisayara bağlanmak için ise beyaz bir kablo kullanıldı. Beyaz ısıyla daralan makaronum bitti, bu yüzden kırmızı olanları kullandım. O kadar "güzel" değil ama bana yakışıyor (zaten televizyonun arkasında gizli).

Önemli bir soru, bandın dik açıyla nasıl büküleceğidir? 60 LED'lik bir şeridiniz varsa, şeridin kesilmesi ve kısa kablolarla bağlanması gerekir (hepsini ısıyla büzüşen bir tüpe yerleştirerek). LED şeritler için özel üç pimli köşe konektörleri satın alabilirsiniz (örneğin resimde 4 pim vardır):


30 LED'lik bir şeridiniz varsa LED'ler arasındaki mesafe büyüktür, kesmeden kolayca köşe yapabilirsiniz. "Silikon" kaplamanın bir parçasını çıkarın, temas yüzeyini yalıtın (bant bile kullanabilirsiniz) ve şemaya göre bükün:

Alıştırma yapmak için bir parça bant kestim. Önemli olan aşırıya kaçmamak - bir kez hafifçe bükün ve hepsi bu. Oradan burada bükmeye gerek yok, bükme çizgisine çok sert basmaya gerek yok.


İşte TV'nin arkasından bir görünüm, tüm kablolar delikten kabine giriyor:

Yazılım bölümü

Bu en basit şeydir.

Arduino mikro bilgisayarını USB üzerinden bağlıyoruz. Sürücü (CH340 seri arayüz) otomatik olarak kurulacaktır. Bu olmazsa, Arduino IDE klasöründe ihtiyacınız olan her şeyi içeren bir Sürücüler klasörü bulunur.

Arduino IDE'yi başlatın ve Adalight.ino dosyasını açın.


Koddaki LED sayısını değiştiriyoruz. 57 yaşındayım.


Araçlar > Pano > Arduino nano
Araçlar > Bağlantı Noktası > COM bağlantı noktasını seçin (istenen seçenek orada olacaktır)

“İndir” düğmesine tıklayın:


İndirme işlemi tamamlandığında program sizi bilgilendirecektir (bu tam anlamıyla birkaç saniyedir).

Hazır. Arduino'nun USB bağlantısını kesip tekrar bağlamanız gerekir. Bant sırayla kırmızı, yeşil ve mavi renkte yanacaktır - Arduino etkinleştirilmiştir ve kullanıma hazırdır.

Programı indirip yükleyin. Programda "Diğer ayarlar"a tıklayın ve cihazı belirtin - Adalight, COM bağlantı noktası ve LED sayısı. Yakalanacak kare sayısını seçin (en fazla 60).


Ardından, “Yakalama Bölgelerini Göster” > “Bölge Kurulum Sihirbazı”na tıklayın. Şerit yapılandırmanızı seçin.


Ayarları Uygula ve Kaydet'i tıklayın. Bu, temel ayarları tamamlar. Daha sonra yakalama bölgelerinin boyutunu deneyebilir, bandın rengini düzeltebilir vb. Programın birçok farklı ayarı vardır.


Bir profili etkinleştirmek için Windows bildirim alanındaki ilgili simgeye (AmbiBox profilleri) çift tıklamanız yeterlidir. Bant hemen yanacaktır. Ayrıca çift tıklayarak da kapatılabilir.

Temelde bu kadar. Sonucu yazının başında gördünüz. Hiçbir şey karmaşık, ucuz ve sağlıklı değil. Daha iyisini yapabileceğine eminim!

+439 almayı planlıyorum Favorilere ekle İncelemeyi beğendim +270 +577

Tünaydın.

İlk makalem için en başarılı zanaatlarımdan birini seçtim: Philips'in Ambilight'ın HDMI geçişli analogu, bundan sonra bu kompozisyona "Atmosvet" adını vereceğim.

giriiş
PC'den bir görüntü görüntülüyorsanız, internette monitör/TV için Ambilight'ın nasıl yapılacağına dair hazır/açık çözümler ve makaleler bulmak çok zor değildir. Ancak multimedya sistemimde, görüntüleri bir bilgisayardan TV'ye aktarmak kullanım süresinin yalnızca %5'ini alıyor; zamanın çoğunu oyun konsollarından oynuyorum, bu da kendime ait bir şey bulmam gerektiği anlamına geliyor.
İlk veri:
  • 60" Plazma TV
  • Asrock Vision 3D 137B'yi temel alan HTPC
  • Xbox 360
Çoğu cihaz, oyun sırasında bile içerik oynatmak için HDCP kullanır.
Gereklilik:
TV'ye bağlı tüm cihazlar için merkezi Atmosvet desteğinin sağlanması gerekmektedir.
Uygulama
4.5m LED şeridi televizyona nasıl taktığımı ve Arduino ile neler yapılması gerektiğini size anlatmayacağım, bunu baz olarak kullanabilirsiniz.

Tek uyarı:
Ekranın alt kısmında garip titremeler olduğunu fark ettim, ilk başta sinyalde bir hata yaptım, titreşim gidericiyi düzelttim, resmin yeniden boyutlandırmasını değiştirdim ve bir sürü başka şeyi ortaya çıkardım, daha iyi oldu ama titremeye yardımcı olmadı. İzlemeye başladım. Titremenin yalnızca bandın sonunda ve ardından parlak sahneler sırasında olduğu ortaya çıktı. Bir multimetre alarak bandın başındaki, ortasındaki ve sonundaki voltajı ölçtüm ve titremenin nedenini tahmin ettim: bandın başında 4,9V'du (evet, Çin güç kaynağı sapmalı bir voltaj veriyor, bu önemli değil), ortada 4,5 sonunda 4,22 - Voltaj düşüşü çok önemli, sorunu basitçe çözmem gerekiyordu - Güç kaynağından gelen gücü bandın ortasına bağladım ve kabloyu bandın arkasından geçirdim TELEVİZYON. Anında yardımcı oldu, tüm titremeler tamamen durduruldu.

Web kamerasıyla görüntü yakalama
Fikri test etmek ve görselleştirmek için kullanılan ilk test sürümü, bir web kamerası aracılığıyla bir görüntü yakalanarak seçildi), şuna benziyordu:

Düşük renksel geriverim ve yüksek gecikme, bu uygulamanın hiçbir şekilde kullanılamayacağını gösterdi.

Görüntüleri HDMI aracılığıyla yakalayın

Olası seçeneklerin araştırılması sürecinde, en güvenilir ve uygun maliyetli olarak aşağıdaki şema seçildi:

  • Tüm cihazlardan gelen sinyal, HDCP'yi destekleyen 5'i 1 arada bir HDMI anahtarına beslenir
  • Çıkış sinyali, yalnızca HDCP'yi desteklemekle kalmayıp aynı zamanda çıkışta da devre dışı bırakan (Çinliler sayesinde) 1 giriş 2 çıkış HDMI ayırıcıya beslenir.
  • Çıkış sinyallerinden biri TV'ye gider
  • Diğer çıkış HDMI'dan AV'ye dönüştürücüye gider
  • S-Video sinyali ICONBIT'ten yakalama kutusuna gider
  • Yakalama kutusu, TV'deki Arduino denetleyici bandına bağlanan USB aracılığıyla her zaman açık olan bir HTCP'ye bağlanır.

Başlangıçta vahşi ve koltuk değneği gibi görünüyor, ancak:

  • İşe yarıyor.
  • Sonuçta, Çin'den sipariş vermek bana 3-4 bin rubleye mal oldu.

Neden bir HDMI yakalama kartı kullanmadım? Çok basit: En ucuz ve en erişilebilir seçenek Blackmagic Intensity Shuttle'dır, ancak 1080p/60fps sinyaliyle çalışamaz, yalnızca 1080p/30fps ile çalışamaz - ki bu kabul edilemez çünkü... Görüntüyü yakalayabilmek için kare hızını düşürmek istemedim. +bu şeyin maliyeti 10 bin civarında. ruble - bilinmeyen bir sonuçla ucuz değil.

LED arka aydınlatmanın 46x26 çözünürlüğünde renk yakalamak için HDMI'dan S-videoya dönüştürmedeki kayıplar ihmal edilebilir düzeydedir.

Başlangıçta, S-video yakalamak için EasyCap'i kullanmayı denedim (birçok Çin varyasyonu var), ancak mesele şu ki, orada kullanılan çip son derece zayıf ve openCV kullanılarak çalışılamaz.

Tek olumsuzluk, çıkış S-Video sinyalinin kenarlarında siyah şeritler içermesi, gerçek içeriği kesmesi (yaklaşık %2-5), bu şeritleri kaldırmak için çıkış görüntüsünü yakalama kartından kestim, görüntü kaybı Uygulamada bu alanlarda sonucu etkilemedi.

Yazılım
Benim için en ilginç kısım burasıydı çünkü... Donanımla uğraşmayı pek sevmiyorum.

Görüntüyü yakalamak için openCV'yi ve özellikle de .NET sarmalayıcısı emgu CV'yi kullandım.

Ayrıca görüntüyü son işleme tabi tutmak ve renk listesini denetleyiciye göndermeden önce hazırlamak için birkaç farklı teknik kullanmaya karar verdim.

Çerçeve İşleme
1. Yakalanan bir karenin alınması
2. Siyah çizgileri ortadan kaldırmak için çerçeveyi kırpın
Burada her şey basit:
kare.ROI = new Dikdörtgen(8, 8, kare.Genişlik - 8, kare.Yükseklik - 18 - 8);
Üstten 8 piksel, sağdan 8 ve alttan 18 piksel kırpın. (Solda şerit yoktur)
3. Çerçeveyi arka ışık çözünürlüğüne göre yeniden boyutlandıracağız, yanımızda sağlıklı bir fotoğraf taşımamıza gerek yok
Karmaşık bir şey de yok, bunu openCV kullanarak yapıyoruz:
çerçeve.Resize(LedWidth - 2*LedSideOverEdge,
LedHeight - LedBottomOverEdge - LedTopOverEdge,
INTER.CV_INTER_LINEAR);
Dikkatli okuyucu değişkenlerin bolluğunu fark edecektir. Gerçek şu ki, TV çerçevem ​​oldukça büyük, yanlarda 1, üstte 1 ve altta 3 LED kaplıyor, bu nedenle yeniden boyutlandırma ekranın tam karşısında bulunan LED'ler üzerinde yapılıyor ve köşeleri daha sonra ekliyoruz . Yeniden boyutlandırırken LED piksellerin sahip olması gereken ortalama renkleri elde ederiz.
4. LED'leri kırpılmış çerçeveden eşliyoruz
Burada da her şey basit, aptalca her iki tarafa doğru ilerliyoruz ve sırayla 136 değerlik bir diziyi LED'lerin rengiyle dolduruyoruz. Şu anda diğer tüm işlemlerin bir dizi LED ile gerçekleştirilmesi, işlenmesi daha zor olan bir çerçeveye göre daha kolaydır. Ayrıca gelecek için, yakalamanın "derinliği" için bir parametre ekledim (LED'in rengini ortalamak için ekranın kenarından piksel sayısı), ancak son kurulumda daha iyi olduğu ortaya çıktı Onsuz.
5. Renk düzeltmeyi gerçekleştirin (beyaz dengesi/renk dengesi)
Televizyonun arkasındaki duvarlar ahşaptan yapılmış, ahşap sarı, dolayısıyla sarılığı telafi etmem gerekiyor.
var blue = 255.0f/(255.0f + blueLevelFloat)*pixelBuffer[k];
var green = 255.0f/(255.0f + greenLevelFloat)*pixelBuffer;
var red = 255.0f/(255.0f + redLevelFloat)*pixelBuffer;
Genel olarak, renk dengesini başlangıçta bazı açık kaynak düzenleyicilerin kaynak kodundan aldım, ancak beyazı değiştirmedi (beyaz beyaz kaldı), formülleri biraz değiştirdim, yazım hatası yaptım ve tam olarak ihtiyacım olanı elde ettim: renk bileşeninin seviyesi negatifse (nasıl olduğunu anlıyorum - bu rengin eksik olduğunu), o zaman yoğunluğunu ekliyoruz ve bunun tersi de geçerli. Duvarlarım için şu ortaya çıktı: RGB(-30,5,85).

Renk düzeltmede ayrıca her bileşenden 13 çıkararak siyah seviyesi eşitlemesi de yapıyorum (siyah, RGB'de 13,13,13 civarında bir yere gelir).

6. Desatürasyon gerçekleştirin (görüntü doygunluğunu azaltarak)
Son kurulumda desatürasyon kullanmıyorum ama bir noktada gerekli olabiliyor hatta Philips Ambilight gibi renkleri daha “pastel” hale getiriyor. Kodu vermeyeceğim, sadece RGB -> HSL'den dönüştürüp, Doygunluk bileşenini azaltıp RGB'ye geri dönüyoruz.
7. Kırışık Giderici
Öyle oluyor ki giriş görüntüsü "sallanıyor" - inandığım gibi bu, analog sinyale dönüşümün bir sonucudur. İlk başta kendi yöntemimle çözmeye çalıştım, sonra VirtualDub'da kullanılan Defliker filtresinin kaynaklarına baktım, C# ile yeniden yazdım (C++'daydı), işe yaramadığını fark ettim çünkü çok etkileyici kareler arasında titremeyle mücadele ediyor. Sonunda çözümümü bu titreme önleyiciyle birleştirdim ve tuhaf bir şey elde ettim, ancak beklenenden daha iyi çalıştı. Orijinal titreme önleyici yalnızca tüm çerçevenin yoğunluğuyla çalışıyordu; her LED'e ayrı ayrı ihtiyacım var. Orijinal Flicker, yoğunluk değişimini toplam olarak karşılaştırdı, ben renk vektörünün uzunluğunu karşılaştırmayı tercih ediyorum.Orijinal Flicker, yoğunluk değişiminin deltasını önceki kareyle karşılaştırdı, bu uygun değil ve ben bunu ortalama yoğunluk olarak değiştirdim Önceki karelerin penceresindeki değer. Ve bunun sonucunda ilk titreme önleyiciden geriye çok az şey kaldı.
Ana fikir: önceki karelerin ortalama yoğunluğuna dayanarak, yoğunluğu belirli bir eşikten yüksek değilse mevcut karede bir değişiklik yapın (bu eşiğe 25'lik son kurulumda sahibim), eğer eşik aşılırsa, o zaman pencere değişiklik yapılmadan sıfırlanır.
Flicker'ımdan biraz değiştirilmiş (bağlam dışı okunabilirlik için) kod:
Array.Copy(_leds, _ledsOld, _leds.Length); for (var i = 0; i< _leds.Length; i++) { double lumSum = 0; // Calculate the luminance of the current led. lumSum += _leds[i].R*_leds[i].R; lumSum += _leds[i].G*_leds[i].G; lumSum += _leds[i].B*_leds[i].B; lumSum = Math.Sqrt(lumSum); // Do led processing var avgLum = 0.0; for (var j = 0; j < LedLumWindow; j++) { avgLum += _lumData; } var avg = avgLum/LedLumWindow; var ledChange = false; if (_strengthcutoff < 256 && _lumData != 256 && Math.Abs((int) lumSum - avg) >= _strengthcutoff) ( _lumData = 256; ledChange = true; ) // Mevcut led için ayar faktörünü hesaplayın. var ölçek = 1,0; int r, g, b; if (ledChange) ( for (var j = 0; j< LedLumWindow; j++) { _lumData = (int) lumSum; } } else { for (var j = 0; j < LedLumWindow - 1; j++) { _lumData = _lumData; } _lumData = (int) lumSum; if (lumSum >0) ( ölçek = 1,0f/((ortalama+lumToplam)/2); var filt = 0,0f; for (var j = 0; j< LedLumWindow; j++) { filt += (float) _lumData/LedLumWindow; } scale *= filt; } // Adjust the current Led. r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; // save source values var sr = r; var sg = g; var sb = b; var max = r; if (g >maksimum) maksimum = g; eğer (b > maks) maks = b; çift ​​s; if (ölçek*maks > 255) s = 255,0/maks; aksi takdirde s = ölçek; r = (int)(s*r); g = (int) (s*g); b = (int) (s*b); // çift k'yi vurgulamaya devam et; if (sr > _lv) ( k = (sr - _lv)/(double) (255 - _lv); r = (int) ((k*sr) + ((1.0 - k)*r)); ) if ( sg > _lv) ( k = (sg - _lv)/(double) (255 - _lv); g = (int) ((k*sg) + ((1.0 - k)*g)); ) if (sb > _lv) ( k = (sb - _lv)/(double) (255 - _lv); b = (int) ((k*sb) + ((1,0 - k)*b)); ) _leds[i] = Renk .FromArgb(r, g, b); ) /* Geçici yumuşama aşaması. */ if (ledChange || _softening == 0) devam et; var diffR = Math.Abs(_leds[i].R - _ledsOld[i].R); var diffG = Math.Abs(_leds[i].G - _ledsOld[i].G); var diffB = Math.Abs(_leds[i].B - _ledsOld[i].B); r = _leds[i].R; g = _leds[i].G; b = _leds[i].B; int toplam; eğer(farkR< _softening) { if (diffR >(_softening >> 1)) ( toplam = _leds[i].R + _leds[i].R + _ledsOld[i].R; r = toplam/3; ) ) if (diffG< _softening) { if (diffG >(_softening >> 1)) ( toplam = _leds[i].G + _leds[i].G + _ledsOld[i].G; g = toplam/3; ) ) if (diffB< _softening) { if (diffB >(_softening >> 1)) ( toplam = _leds[i].B + _leds[i].B + _ledsOld[i].B; b = toplam/3; ) ) _leds[i] = Color.FromArgb(r, g, b); )
_leds, Renk sınıfından bir LED dizisi olsun, _ledsOld, dönüşümden önceki çerçevenin değerleri olsun, LedLumWindow, yoğunluktaki ortalama değişimi tahmin etmek için önceki karelerin penceresinin genişliği olsun, son kurulumda 100 pencere; yaklaşık 30 kare/sn, 3 saniyeye eşittir. _lumData - önceki karelerin yoğunluk değerleri dizisi.

Sonuçta, bu mekanizma resme daha da hoş beklenmedik sonuçlar verdi; görsel olarak nasıl algılandığını açıklamak zordur, ancak dinamik kontrast gibi gerektiğinde onu daha karanlık, gerektiğinde daha parlak hale getirir. Kırpışma gidericinin amacının sonuçta geniş olduğu ortaya çıktı; yalnızca titremeyi ortadan kaldırmak değil, aynı zamanda genel olarak çıktı rengini hem bileşen hem de pencere içindeki zamana göre dengelemek.

8. LED'lerin komşular tarafından yumuşatılması.
Genel olarak son kurulumda kenar yumuşatmayı pek beğenmedim ve kapattım ama bazı durumlarda faydalı olabiliyor. Burada her LED'in rengini komşularına göre ortalamasını alıyoruz.
var smothDiameter = 2*_smoothRadius + 1; Array.Copy(_leds, _ledsOld, _leds.Length); for (var i = 0; i< _ledsOld.Length; i++) { var r = 0; var g = 0; var b = 0; for (var rad = -_smoothRadius; rad <= _smoothRadius; rad++) { var pos = i + rad; if (pos < 0) { pos = _ledsOld.Length + pos; } else if (pos >_ledsOld.Length - 1) ( pos = pos - _ledsOld.Length; ) r += _ledsOld.R; g += _ledsOld.G; b += _ledsOld.B; ) _leds[i] = Color.FromArgb(r/smothDiameter, g/smothDiameter, b/smothDiameter); )
9. Paket gönderen iş parçacığının onu yakalayıp arka ışık denetleyicisine göndermesi için mevcut durumu kaydedin.
Çerçeveleri işleme ve denetleyiciye paket gönderme sürecini kasıtlı olarak ayırdım: paketler belirli aralıklarla bir kez gönderilir (benim için 40 ms), böylece Arduino öncekini işleyebilir, çünkü 30 ms'den daha sık boğulur, bu yüzden döner kare hızı yakalamaya doğrudan bağımlı olmadığımızı ve bu sürece müdahale etmediğimizi ortaya koyuyor (ancak paket göndermek de zaman kaybına neden oluyor).
Arduino hakkında biraz
Seri üzerinden ağır bir paketi alıp Arduino'ya gönderemezsiniz, çünkü bu, varsayılan HardwareSerial arabelleğinin ötesine geçecek ve sonunu kaybedeceksiniz.
Bu oldukça basit bir şekilde çözülebilir: HardwareSerial arabellek boyutunu, gönderilen paketin tamamını bir dizi renkle sığdıracak kadar büyük bir boyuta ayarlayın; benim için bu 410.
kullanıcı arayüzü
Yazılımın kendisi bir kazanma hizmeti olarak uygulandı, tüm parametreleri yapılandırmak + etkinleştirmek/devre dışı bırakmak için hizmette WebService aracılığıyla hizmetle iletişim kuran bir Web kullanıcı arayüzü oluşturdum. Cep telefonu ekranındaki son arayüz şuna benzer:
Sonuç
Sonuç olarak, sonuç tüm beklentileri karşıladı ve artık konsollarda oyun oynarken oyunun atmosferine daha da fazla kaptırıyorum.

Çalışmanın genel sonucu olarak, atmosfer ışığının şemama göre çalıştığı bir video kaydettim:

Test örneği 1: Pasifik Savaşı, Şangay savaş sahnesi, bu film test etmek ve sergilemek için iyidir, çok sayıda parlak sahne ve flaş, yıldırım çarpması vb.:

Test örneği 2: YouTube'dan sızdırılan bazı MLP videoları, parlak renkli sahneleri (çizgileri beğendim) ve hızlı değişen sahneleri (videonun sonunda gecikmenin etkilerini görebilirsiniz) test etmek için çok uygundur. , yalnızca videoda görünür, ne zaman Bu gerçek izlemede fark edilmez, gecikmeyi video kullanarak ölçmeye çalıştım - 10-20 ms olduğu ortaya çıktı):

Ve son olarak HTPC'nin kaynak tüketimi hakkında şunu belirtmekte fayda var:
HTPC i3'te ASRock Vision 3D'im var, atmosferik ışık hizmeti CPU'nun ve 32 MB RAM'in %5-10'unu tüketiyor.

İlginiz için teşekkür ederim, umarım makalem birine yardımcı olur.

Fok
Konunun devamı:
işletim sistemi

İnternet üzerinden çevrimiçi SMS nasıl alınır? Çevrimiçi SMS almak için, alabileceğiniz özel bir sanal numara sağlayan özel siteler vardır...