Elektronik / Embedded / Mobil Cihazlar
Arduino Ambilight Ve Breadboard'a Taşımak
Arduino Ambilight Ve Breadboard'a Taşımak
-
Şu da ilk yaptığımda çektiğim bir vidyo sonra ince ayar yaparak çok daha başarılı bir hale getirdim https://streamable.com/fay9u
Öncelikle, evet biliyorum başka bir döküman hazırlamam gerekiyor ama iş güçle uğraşırken vakit bulamadım. Bu dökümanı nasıl yazdın derseniz şöyle ki uzun zamandır arduino ambilight kullanıyordum zaten, geçende aklıma düştü bunu sabit bir devre yapayım arduinoyuda oradan kurtarayım. Madem bunu yapıyorum, döküman haline de getireyim hem diğer dökümana ısınma olur.
Bu proje iki aşamadan oluşuyor:
1. aşamada Arduino ambilight yani fakir ambilightı yapacağız oldukça basit bir şey zaten.
2. aşamada yaptığımız protipi pertinaksa taşıyacağız.
İlk aşama için gereken malzeme listesi:
- 1 adet Arduino. Bende bir sürü uno olduğu için uno kullandım ama nano da kullanılabilir.
- ws2801 ve ws2811 vb. programlanabilir RGB led. Bunu monitörün arkasına yapıştıracağız. Ben bunu almıştım vaktinde 21" monitörüme gayet uygun oldu. https://www.aliexpress.com/item/DC5V-1M-3M-5M-ws2801-External-2801-ic-Individually-addressable-5050-smd-rgb-strip-32leds-m/32435881580.html?spm=a2g0s.9042311.0.0.wxlniz
- 5 volt DC adaptör. Ledler için. PC'nizdeki boş bir molexi de kullanabilirsiniz.
- Jumper kablo vs.
WS2801'de 4 pin mevcut. Led strip'in iki ucunda da konnektör var bu konnektörlere jumper kablo sokabilirsiniz. Elektrik bağlamak için kolaylık olsun diye güç ve toprak pinlerini her iki uçta da çatallamışlar. Ben stripin bir ucundaki ekstra kırmızı ve siyah kabloyu adaptöre diğer ucundaki konnektörü arduinoya bağladım öyle işime geldiği için. Konnektöre jumper kablo sokabilirsiniz.
5v adaptörün jakını koparıp ledin çatallanmış elektrik kablolarına bağlıyoruz. İsterseniz lehimleyin, makaronlayın ya da benim gibi üşengeçseniz kabloları burup izola bantlayın. Kırmızı 5V (Vcc), siyah toprak (Gnd) tabiki.
Konnektördeki pinler ise: Siyah 5V (çatal kabloda kırmıız) , Mavi clock, Kırmızı data, Yeşil toprak (çatal kabloda siyah). Evet 5v ve toprak renkleri çatal kabloadan farklı. Çin malı olduğu için neden böyle saçma bir şey yaptıklarını sorgulamıyoruz. Gücü adaptörden çatal kabloyla verdiğimiz için buradaki siyah kabloyu kullanmıyoruz. Yeşil kabloyu arduinodaki herhangi bir toprak yani GND pinine takıyoruz. Kırmızı kabloyu arduino 11. pine, mavi kabloyu 13. pine takıyoruz. Ben led konnektöründen arduinoya jumper kablolar ile bağladım.
Arduinoya şu linkteki kodu yükleyeceğiz: https://drive.google.com/open?id=1xLZEe4TUe8-2AIDx0MCYzUjbqtbICVq_
ws2801 için kodda yapmanız gereken tek değişiklik #define NUM_LEDS 44 satırında 44 yerine kullandığınız led sayısını yazmak.
Arduino ile işimiz bu kadar. İşin PC tarafında bir kaç seçenek var en popüler ikisi unofficial Prismatik (https://github.com/psieg/Lightpack/releases) ve Ambibox (http://www.ambibox.ru/en/index.php/Main_Page). Ben performansını daha iyi bulduğum için Ambibox'u tercih ediyorum ve onu anlatacağım.
Ambibox'u kurup açtıktan sonra Intelligent backlight display panelinde aşağıdaki more settingse tıklıyoruz. Buradan device olarak Adalight seçiyoruz. Port olarak da Arduino'nun pcye bağlı olduğu portu seçiyoruz. Number of zones kısmına led sayımızı giriyoruz. Order of colors kısmına renk sırasını giriyoruz. Bu sıra aldığınız ledlerde farklı olabilir benimkinde RBG. Aldığınız ledde yazıyor olabilir renk sırası, yoksa statik background modunda sabit bir renk seçip ledler doğru renk olana kadar deneyerek bulabilirsiniz sırayı.
Ambibox'un 5 modu var. Static background ledleri istediğiniz bir renkte sabit tutar. Dinamik background modunda ledler belirlediğiniz hızda renk değiştirir. Color music modunda ledler sese göre tepki verir. Plugins içerisinde de bir color music plugini var bu biraz daha detaylı, bazı parametreleri kendiniz seçebiliyorsunuz. Son olarak Screen capture ekrandaki görüntüyü yakalayarak ledlerin rengini ayarlayan asıl modumuz. Screen capture için ekranda görüntü yakalanacak alanları belirlememiz gerekiyor. Bunun için Show areas of capture butonuna basıyoruz ve karşımıza led sayımız kadar kutu çıkıyor. Kutuları keyfinize göre yerleştirebilirsiniz ben 32 led ve 1280x720 çözünürlük kullandığım için 32 adet 120x119 kutuyu ekrana aşadağıdaki resimdeki gibi dizdim. Bu normal profil, bir de film profili yaptım onda fimlerdeki üst ve alttaki siyah boşlukları hesapa katarak dizdim kutuları. Use backlight checkboxundan ambilightı kapatıp açabiliyoruz.
Additional configuring of zones kısmında her kutucuğun ayrı ayrı veya hepsinin birlikte renk düzeltmelerini yapabiliyoruz. Buna ek olarak sensitivity, dynamics, smoothing, hue, saturation, gamma correction gibi parametler de var bu sayfada. Bunları kullandığınız ledlere ve keyfinize göre ayarlayıp en iyi renk performansını yakalamaya çalışıyorsunuz
Voila! Ambilightla film izlemenin keyfini çıkarın
-
Aslında sadece ikinci aşamayı yazacaktım ama birinciyi de yazayım belki bir işe yarar dedim. Arduino ambilight bana yeter diyenlerin burdan sonrasına ihtiyacı yok. Arduino prototiplemeden sonra breadboarda ya da pertinaksa nasıl taşınır merak ediyorsanız okuyabilirsiniz.
Bunlarla uğraşırken döküman hazırlamak aklımda yoktu o yüzden her aşamanın fotosu yok ayrı ayrı malesef biraz hayal gücünüzü kullanmanız gerekecek.
Ben ambilight'ı uzun zamandır kullanıyorum ama bir süredir bir arduinonun ambilighta bağlı mahsur kalmış olması aklıma takılıyordu. Elimde bozulmuş Arduinoalardan kalma bir kaç Atmel chip de varken ben bu arduinoyu serbest bırakırım deyip işe kalkıştım.
Bu aşama için gereken malzemeler.
- Atmel Atmega 328p mikroçip. Arduinodan çıkartıp kullanabilirsiniz ya da ayrı satın alabilirsiniz. Dikkat etmeniz gereken şey arduino kodlarını kullanabilmeniz için çipte arduino bootloader yüklü olması gerekiyor. Hazır bootloader yüklü çip de satın alabilirsiniz, ya da çipe arduino ile bootloader yükleyebilirsiniz (konumuz olmadığı için anlatmıyorum) Not: Atmega 328p bu iş için fazla aslında. Ben elimde olduğu için kullandım, sıfırdan yapmak isteyen ATtiny falan düşünebilir.
- 28 pin dip soket (opsiyonel)
- Breadboard
- 16 mhz kristal
- 2 x 22pF kapasitör
- USB to TTL çevirici (Ben zaten elimde olan bir adet dandik pl2303'ü kullandım (https://www.hobidevre.com/PL2303-USB-TTL?gclid=CjwKCAjw8r_XBRBkEiwAjWGLlFJE3ulUghPmerJT4Ovryop4lbrr2kZUv2oMl9Rfbi7PrDBq5KARfBoCOYwQAvD_BwE) PL2303 driverı sıkıntı çıkarabiliyor Windows 10'da şu driverı kullanabilirsiniz http://wp.brodzinski.net/wp-content/uploads/2014/10/IO-Cable_PL-2303_Drivers-Generic_Windows_PL2303_Prolific.zip
- Bir adet 10k direnç.
- Bir adet tact switch (opsiyonel)
Arduino bildiğiniz üzere aslında Atmega328 çip için bir breakout board. Atmega328 çip ise çalışmak için iki şeye ihtiyaç duyuyor 5V ve kristal. Önce şunu belirteyim çipin pinleri ile arduinonun pinleri bire bir eşleşmiyor. Bu yüzden hangi pin neye denkgeliyor aşağıdaki resimden bakabilirsiniz.
Atmega 3289 5 volt ile çalışıyor. Bu projede zaten usb interface kullancağımız için 5 volt elektriği oradan alacağız. Başka usb kullanmayacağınız projelerde 5v adaptör veya voltaj regülatörüyle 9v, 12v vb güç kullanabilirsiniz.
Önce çipi breadboardın ortasına yerleştiriyoruz. Bir kenara pl2303'ü yerleştiriyoruz. pl2303'ün 5 voltundan breadboard'ın kırmızı + railine, toprağından (GND) breadboardın - railine kablo atıyoruz. Hatta breadboardın iki tarafındaki güç railleri arasına köprü atıyoruzki daha rahat çalışalım.
Çipin 1. pinden yani reset piniyle + raili (5V) arasına 10k direnc atıyoruz ki (pullup resistör) normal çalışma esnasında çip resetlenmesin.
7. pinden + railine (5V)
8. pinden - railine (toprak, GND)
20. pinden + railine (5V)
21. pinden + railine (5V)
22. pinden - railine (toprak, GND)
kablo atıyoruz. Benim yaptığım alttaki fotoda ledler falan var ama onlar tamamen experimentaldi. Blinkled programını denemek için kullandım. Bu projede ihtiyacımız yok.
Çipin hemen üstüne tact buttonumuzu yerleştiriyoruz. Tact buttonu çipe yazılım yüklemeden hemen önce arduinoyu resetlemek için kullanıyoruz. Çipe sonradan yazılım atmak gibi bir düşünceniz yoksa, hatta belki usb interface bile kullanmayacaksanız bunu atlayabilirsiniz.
Tact buttonun sol alt bacağından çipin 1. pinine yani reset pinine kablo atıyoruz. Sol üst bacağından - railine (toprak, GND) kablo atıyoruz.
9. ve 10. pinler arasına 16 mhz kristali bağlıyoruz ve kristalin her iki bacağından - railine (toprak, GND) kablo atıyoruz.
Son olarak çipin 2. pininden (RX) pl2303'ün TX pinine, çipin 3. pininden (TX) pl2303'ün RX pinine kablo atıyoruz.
Artık breadboardımızda çalışan bir arduino var. USB interfaceimiz olduğu için çipe Arduino Ide ile yazılım atabilirsiniz. Yazılım yüklemeye başlamadan hemen önce bir kere reset butonuna basmanız gerek. Veya yazılımı arduinoda attıktan sonra çipi breadboarda aktarabilirsiniz. Önceki aşamada kırmızı data kablosunu 11. pine, mavi clock kablosunu 13. pine takmıştık. Yukarıdaki pinouttan görebileceğiniz gibi arduino 11. pin atmega328 çipte 17. pine, arduino 13. pin ise çipte 19. pine denk geliyor. Bu kabloları da bağladığımız zaman ambilight projesini breadboarda aktarmış oluyoruz.
Son olarak, breadboardu da nihayetinde özgürlüğüne kavuşturmam gerektiği için buradaki prototipi pertinaksa (perfboard) aktardım. Bundan sonrası lehim işleri. Usülen parçaları pertinaksa geçirip doğru layoutu tasarlamanız gerekiyor işte hangi parça nerde dursa daha iyi olur, nereye körpü atmalı, nereye jumper kablo yapmalı gibi. Yok eğer benim gibiyseniz rastgele monte edip her yere jumper kablo atarak, kartı çevirmeye de usenip kabloları alta lehimleyerek oldukça çirkin bir devre yapabilirsiniz. Evde heryer dişi pin olduğu için bir kenara ground, data ve clock yolları için 3 adet dişi pin attım. Bağlantı şeması breadboardla aynı. Böylece bir şeyler kurcalamak dışında uğraşmanıza değmeyecek ikinci aşamayı da bitirmiş olduk. Çünkü sırf pl2303 ve atmega çipi almaya kalksanız klon arduino uno'dan pahalıya gelecektir. Benim elimde bulunan malzemelerdi, sizin elinizde yoksa hiç uğraşmayıp 1. aşamada bırakabilirsiniz.
-
Bro, cok guzel olmus. Biraz yogunluk azalsin, aynisini yapacagim. Video cok hosuma gitti. Ben de evde duran birkac usb kamerayla security survelliance sistem yaptim eve. Onun dokumanini yazayim bari, senden ozendim.
Bir de tahribata, instructables gibi bir DIY bolumu acilsa cok faydali olur diye dusunuyorum.
-
Eyy şeyh sen kimsin yaaa ? :D Açın şu foruma Ardu bölümü Allah için.
Eline sağlık hocam on numara olmuş.
dcpromo tarafından 08/May/18 08:42 tarihinde düzenlenmiştir -
-
ilteris bunu yazdı
Eyy, şeyh, sen kimsin yaaa ? :D
Açın şu foruma Ardu bölümünü Allah için.Eline sağlık @KrypT dostum. on numara olmuş.
@KrypT : "sesimizi duyup ,acarlar belki :D "
"Herkes projelerini yazsın; arduino olsun her yer. "
Hepsini okuyamadım ama: Kimi yerlerde yaptığın, Parantez İçi Açıklamalar, Bold(Koyu) kısımlar, Yabancı Dille yapılmış Tanımlar, şahane.
Sanki bu yazı her neyse, Tam da Onun için yazılmış gibi. ``7)
Post Malone, RocksSTARs (ReMiX). d, dd, pp, P.
RitmFarbRacourci tarafından 08/May/18 12:18 tarihinde düzenlenmiştir -
krypt bunu yazdı
kendi projem yok sağdan soldan baka baka yapıyorum ben. Temel seviyedeyim hobi olarakdan beginner seviyesindeyim. Amma ve lakin fritzingden çizip ortalık projelere kendi yorumumuzu / mu katıp konu açabilirim. Bokunu çıkarmayın deyip banlamazlar heralde demi :D