İçindekiler:

Bluetooth Üzerinden DIY Kontrolü RGB LED Rengi: 5 Adım
Bluetooth Üzerinden DIY Kontrolü RGB LED Rengi: 5 Adım

Video: Bluetooth Üzerinden DIY Kontrolü RGB LED Rengi: 5 Adım

Video: Bluetooth Üzerinden DIY Kontrolü RGB LED Rengi: 5 Adım
Video: SP110E - Bluetooth üzerinden Adreslenebilir (ARGB) led kontrolü 2024, Temmuz
Anonim
Bluetooth Üzerinden DIY Kontrolü RGB LED Rengi
Bluetooth Üzerinden DIY Kontrolü RGB LED Rengi

Akıllı ampullerin popülaritesi son zamanlarda artıyor ve giderek akıllı ev araç setinin önemli bir parçası haline geliyor. Akıllı ampuller, kullanıcının akıllı telefonundaki özel bir uygulama ile ışığını kontrol etmesini sağlar; uygulama arayüzünden ampul açılıp kapatılabilir ve renk değiştirilebilir. Bu projede Bluetooth üzerinden manuel buton veya mobil uygulama ile kontrol edilebilen akıllı ampul kontrolörü yaptık. Bu projeye biraz yetenek katmak için, kullanıcının uygulama arayüzünde bulunan renk listesinden bir aydınlatma rengi seçmesine izin veren bazı özellikler ekledik. Ayrıca, renk efektleri oluşturmak ve her yarım saniyede bir aydınlatmayı değiştirmek için bir "otomatik karıştırma"yı etkinleştirebilir. Kullanıcı, üç temel renk (kırmızı, yeşil, mavi) için dimmer olarak da kullanılabilen bir PWM özelliğini kullanarak kendi renk karışımını oluşturabilir. Ayrıca devreye harici butonlar ekledik ki kullanıcı manuel moda geçebilsin ve harici bir butondan ışık rengini değiştirebilsin.

Bu Eğitilebilirlik iki bölümden oluşur; GreenPAK™ tasarımı ve Android uygulaması tasarımı. GreenPAK tasarımı, iletişim için bir UART arayüzünün kullanılmasına dayanmaktadır. UART, çoğu Bluetooth modülünün yanı sıra WIFI modülleri gibi diğer çevre birimlerinin çoğu tarafından desteklendiği için seçilir. Sonuç olarak GreenPAK tasarımı birçok bağlantı türünde kullanılabilir.

Bu projeyi oluşturmak için SLG46620 CMIC, bir Bluetooth modülü ve bir RGB LED kullanacağız. GreenPAK IC, bu projenin kontrol çekirdeği olacak; bir Bluetooth modülünden ve/veya harici düğmelerden veri alır, ardından doğru aydınlatmayı görüntülemek için gerekli prosedürü başlatır. Ayrıca PWM sinyalini üretir ve bunu LED'e verir. Aşağıdaki Şekil 1 blok şemasını göstermektedir.

Bu projede kullanılan GreenPAK cihazı, bir IC'de bir SPI bağlantı arayüzü, PWM blokları, FSM ve diğer birçok faydalı ek blok içerir. Ayrıca küçük boyutu ve düşük enerji tüketimi ile karakterizedir. Bu, üreticilerin tek bir IC kullanarak küçük bir pratik devre oluşturmasını sağlayacak ve böylece benzer sistemlere kıyasla üretim maliyetleri en aza indirilecektir.

Bu projede bir RGB LED'i kontrol ediyoruz. Projeyi ticari olarak uygulanabilir kılmak için, bir sistemin birçok LED'i paralel bağlayarak ve uygun transistörleri kullanarak parlaklık seviyesini artırması gerekebilir; güç devresi de dikkate alınmalıdır.

GreenPAK çipinin Bluetooth aracılığıyla RGB LED Rengini kontrol etmek için nasıl programlandığını anlamak için tüm adımları izleyebilirsiniz. Ancak, tüm iç devreleri anlamadan IC'yi kolayca programlamak istiyorsanız, halihazırda tamamlanmış GreenPAK Tasarım Dosyasını görüntülemek için GreenPAK yazılımını indirin. GreenPAK Geliştirme Kitini bilgisayarınıza takın ve Bluetooth aracılığıyla RGB LED Rengini kontrol etmek için özel IC'yi oluşturmak için programa basın.

GreenPAK tasarımı, aşağıdaki adımlarda açıklanan UART alıcısı, PWM ünitesi ve kontrol ünitesinden oluşur.

Adım 1: UART Alıcısı

UART Alıcısı
UART Alıcısı

İlk olarak, Bluetooth modülünü kurmamız gerekiyor. Çoğu Bluetooth IC, iletişim için UART protokolünü destekler. UART, Evrensel Asenkron Alıcı / Verici anlamına gelir. UART, verileri paralel ve seri biçimler arasında ileri geri dönüştürebilir. Her ikisi de ayrı olarak saatlenen bir seriden paralele alıcı ve bir paralelden seriye dönüştürücü içerir.

Bluetooth modülünde alınan veriler GreenPAK cihazımıza iletilecektir. Pin10 için boşta durum YÜKSEK'tir. Gönderilen her karakter bir mantık DÜŞÜK başlangıç biti ile başlar, ardından yapılandırılabilir sayıda veri biti ve bir veya daha fazla mantık YÜKSEK durdurma biti gelir.

UART vericisi 1 BAŞLANGIÇ biti, 8 veri biti ve bir STOP biti gönderir. Genellikle, bir UART Bluetooth modülü için varsayılan baud hızı 9600'dür. Veri baytını Bluetooth IC'den GreenPAK™ SLG46620'nin SPI bloğuna göndereceğiz.

GreenPAK SPI bloğunda START veya STOP bit kontrolü olmadığından, SPI saat sinyalini (SCLK) etkinleştirmek ve devre dışı bırakmak için bu bitleri kullanacağız. Pin10 DÜŞÜK olduğunda, bir BAŞLANGIÇ biti aldığımızı biliyoruz, bu nedenle iletişimin başlangıcını belirlemek için PDLY düşen kenar dedektörünü kullanıyoruz. Bu düşen kenar dedektörü, SCLK sinyalinin SPI bloğunu saatlemesini sağlayan DFF0'ı izler.

Baud hızımız saniyede 9600 bittir, bu nedenle SCLK periyodumuz 1/9600 = 104 μs olmalıdır. Bu nedenle OSC frekansını 2MHz olarak ayarladık ve frekans bölücü olarak CNT0 kullandık.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Bu nedenle, CNT0 sayaç değerinin 207 olmasını istiyoruz. Herhangi bir veriyi kaçırmadığımızdan emin olmak için, SPI bloğunun doğru zamanda saatlenmesi için SPI saatini yarım saat döngüsü kadar geciktirmemiz gerekiyor. Bunu CNT6, 2-bit LUT1 ve OSC bloğunun Harici Saatini kullanarak başardık. CNT6'nın çıkışı, 104 μs SCLK periyodumuzun yarısı olan DFF0 saatlendikten sonra 52 μs'ye kadar yükselmez. CNT6 yüksek olduğunda, 2-bit LUT1 AND geçidi 2MHz OSC sinyalinin EXT'ye geçmesine izin verir. Çıkışı CNT0'a bağlı olan CLK0 girişi.

Adım 2: PWM Birimi

PWM Birimi
PWM Birimi

PWM sinyali, PWM0 ve ilgili bir saat puls üreteci (CNT8/DLY8) kullanılarak üretilir. Darbe genişliği kullanıcı tarafından kontrol edilebilir olduğundan, kullanıcı verilerini saymak için FSM0 (PWM0'a bağlanabilir) kullanıyoruz.

SLG46620'de 8-bit FSM1, PWM1 ve PWM2 ile kullanılabilir. Bluetooth modülü bağlı olmalıdır, yani SPI paralel çıkışı kullanılmalıdır. 0'dan 7'ye kadar olan SPI paralel çıkış bitleri DCMP1, DMCP2 ve LF OSC CLK'nın OUT1 ve OUT0'ı ile muxlanır. PWM0, çıktısını 16 bitlik FSM0'dan alır. Değiştirilmeden bırakıldığında bu, darbe genişliğinin aşırı yüklenmesine neden olur. Sayaç değerini 8 bitte sınırlamak için başka bir FSM eklenir; FSM1, sayacın 0 veya 255'e ne zaman ulaştığını bilmek için bir işaretçi olarak kullanılır. FSM0, PWM darbesini oluşturmak için kullanılır. FSM0 ve FSM1 senkronize edilmelidir. Her iki FSM'nin de önceden ayarlanmış saat seçenekleri olduğundan, CNT1 ve CNT3, CLK'yı her iki FSM'ye iletmek için aracılar olarak kullanılır. İki sayaç, bu Eğitilebilir Tablo için 25 olan aynı değere ayarlanmıştır. Bu sayaç değerlerini değiştirerek PWM değerinin değişim oranını değiştirebiliriz.

FSM'lerin değeri, SPI Paralel Çıkışından kaynaklanan '+' ve '-' sinyalleri ile artırılıp azaltılır.

Adım 3: Kontrol Ünitesi

Kontrol ünitesi
Kontrol ünitesi

Kontrol ünitesi içinde, alınan bayt Bluetooth modülünden SPI Paralel Çıkışına alınır ve ardından ilgili fonksiyonlara iletilir. İlk olarak PWM CS1 ve PWM CS2 çıkışları kontrol edilerek PWM şablonunun aktif olup olmadığı kontrol edilecektir. Etkinleştirilirse, PWM'yi LUT4, LUT6 ve LUT7 aracılığıyla hangi kanalın çıkaracağını belirleyecektir.

LUT9, LUT11 ve LUT14, diğer iki LED'in durumunu kontrol etmekten sorumludur. LUT10, LUT12 ve LUT13, Manuel düğmesinin etkinleştirilip etkinleştirilmediğini kontrol eder. Manuel mod etkinse, RGB çıkışları, Renk düğmesine her basıldığında değişen D0, D1, D2 çıkış durumlarına göre çalışır. Yükselen kenar önleyici olarak kullanılan CNT9'dan gelen yükselen kenar ile değişir.

Pin 20, bir giriş olarak yapılandırılır ve Manuel ile Bluetooth kontrolü arasında geçiş yapmak için kullanılır.

Manuel mod devre dışı bırakılır ve Otomatik karıştırıcı modu etkinleştirilirse, renk CNT7'den gelen yükselen kenar ile her 500 ms'de bir değişir. D0 D1 D2 için '000' durumunu önlemek için 4 bitlik bir LUT1 kullanılır, çünkü bu durum Otomatik karıştırıcı modu sırasında ışığın kapanmasına neden olur.

Manuel mod, PWM modu ve Otomatik mikser modu etkinleştirilmezse, kırmızı, yeşil ve mavi SPI komutları, çıkış olarak yapılandırılan ve harici RGB LED'e bağlı olan Pin 12, 13 ve 14'e akar.

DFF1, DFF2 ve DFF3, 3 bitlik bir ikili sayaç oluşturmak için kullanılır. Sayaç değeri, Otomatik mikser modunda P14'ten geçen CNT7 darbeleriyle veya manuel modda Renk düğmesinden (PIN3) gelen sinyallerle artar.

4. Adım: Android Uygulaması

Android uygulama
Android uygulama
Android uygulama
Android uygulama
Android uygulama
Android uygulama
Android uygulama
Android uygulama

Bu bölümde, kullanıcının kontrol seçimlerini izleyecek ve gösterecek bir Android uygulaması oluşturacağız. Arayüz iki bölümden oluşur: ilk bölüm, önceden tanımlanmış renklere sahip bir dizi düğme içerir, böylece bu düğmelerden herhangi birine basıldığında aynı renkte bir LED yanar. İkinci bölüm (MIX kare) kullanıcı için karışık bir renk oluşturur.

İlk bölümde kullanıcı, PWM sinyalinin geçmesini istediği LED pinini seçer; PWM sinyali aynı anda yalnızca bir pine geçirilebilir. Alttaki liste, PWM modu sırasında diğer iki rengi mantıksal olarak açık/kapalı olarak kontrol eder.

Otomatik karıştırıcı düğmesi, ışığın her yarım saniyede bir değişeceği otomatik ışık değiştirme düzenini çalıştırmaktan sorumludur. MIX bölümü, kullanıcının hangi iki rengi birlikte karıştıracağına karar verebilmesi için iki onay kutusu listesi içerir.

Uygulamayı MIT uygulama mucit web sitesini kullanarak oluşturduk. Grafik yazılım bloklarını kullanarak önceden yazılım deneyimi olmadan Android uygulamaları oluşturmaya izin veren bir sitedir.

İlk başta, önceden tanımlanmış renkleri görüntülemekten sorumlu bir dizi düğme ekleyerek bir grafik arayüz tasarladık, ayrıca iki onay kutusu listesi ekledik ve her listede 3 öğe var; Şekil 5'te gösterildiği gibi her eleman kendi kutusunda gösterilmiştir.

Kullanıcı arabirimindeki düğmeler, yazılım komutlarıyla bağlantılıdır: Uygulamanın Bluetooth aracılığıyla göndereceği tüm komutlar bayt biçiminde olacaktır ve her bit belirli bir işlevden sorumludur. Tablo 1, GreenPAK'a gönderilen komut çerçevelerinin biçimini göstermektedir.

İlk üç bit, B0, B1 ve B2, önceden tanımlanmış renklerin düğmeleriyle doğrudan kontrol modunda RGB LED'lerinin durumunu tutacaktır. Böylece bunlardan herhangi birine tıklandığında, Tablo 2'de gösterildiği gibi düğmenin karşılık gelen değeri gönderilecektir.

B3 ve B4 bitleri, darbe genişliğini artırmak ve azaltmaktan sorumlu olan '+' ve '-' komutlarını tutar. Butona basıldığında bit değeri 1 olacak ve butona basıldığında bit değeri 0 olacaktır.

B5 ve B6 bitleri, PWM sinyalinin geçeceği pinin (renk) seçiminden sorumludur: bu bitlerin renk tanımları tablo 3'te gösterilmiştir. Son bit olan B7, otomatik mikserin etkinleştirilmesinden sorumludur.

Şekil 6 ve Şekil 7, önceki değerleri göndermekten sorumlu olan programlama blokları ile düğmeleri bağlama sürecini göstermektedir.

Uygulamanın tam tasarımını izlemek için ekteki “.aia” dosyasını proje dosyalarıyla birlikte indirebilir ve ana site içerisinde açabilirsiniz.

Aşağıdaki Şekil 8, üst seviye devre şemasını göstermektedir.

Adım 5: Sonuçlar

Denetleyici başarıyla test edildi ve renk karışımının diğer özelliklerle birlikte uygun şekilde çalıştığı gösterildi.

Çözüm

Bu Eğitilebilir Tabloda, bir Android uygulaması tarafından kablosuz olarak kontrol edilecek bir akıllı ampul devresi oluşturulmuştur. Bu projede kullanılan GreenPAK CMIC, ışık kontrolü için birkaç temel bileşenin kısaltılmasına ve küçük bir IC'ye yerleştirilmesine de yardımcı oldu.

Önerilen: