İçindekiler:

Magic Hercules - Dijital LED Sürücüsü: 10 Adım
Magic Hercules - Dijital LED Sürücüsü: 10 Adım

Video: Magic Hercules - Dijital LED Sürücüsü: 10 Adım

Video: Magic Hercules - Dijital LED Sürücüsü: 10 Adım
Video: Damacana Kumbara Açımı 2024, Temmuz
Anonim
Magic Hercules - Dijital LED'ler için Sürücü
Magic Hercules - Dijital LED'ler için Sürücü

Hızlı genel bakış:

Magic Hercules modülü, iyi bilinen ve basit SPI arasında NZR protokolüne bir dönüştürücüdür. Modül girişlerinin +3,3 V toleransı vardır, bu sayede +3,3 V gerilimde çalışan herhangi bir mikrodenetleyiciyi güvenle bağlayabilirsiniz.

Dijital LED'leri kontrol etmek için SPI protokolünün kullanılması, Arduino için hazır kütüphaneler gibi mevcut çözümler arasında yenilikçi bir yaklaşımdır. Ancak mikrodenetleyici ailesinden (ARM: STM / Cypress PSoC, Raspberry Pi, AVR, PIC, Arduino gibi) ve programlama dilinden (örn. SPI protokolünü destekleyen). Dijital LED'leri programlamaya yönelik bu yaklaşım, ihtiyacınız olan tek şey SPI protokolü bilgisi olduğundan, son derece yeni başlayanlar için uygundur.

MH modülü ayrıca, diyottaki renk sırasını test etme (RGB, BGR, RGBW, vb.), tüm şeritleri veya ekranları test etme (1024 LED'e kadar) dahil olmak üzere, dijital LED şeritlerini test etmek için çeşitli modlara izin verir.

Adım 1: Neden Magic Hercules Modülü Üzerinde Çalışıyorum?

Neden Magic Hercules Modülü Üzerinde Çalışıyorum?
Neden Magic Hercules Modülü Üzerinde Çalışıyorum?

Genelde Magic LED adını verdiğim WS2812, WS2815 veya SK6812 gibi dijital ledler ile uzun zamandır çalışıyorum.

Magic LED'e dayalı olarak (RGBW tipiyle bile) birçok şeridi, halkayı ve ekranı (hatta benimki) test ettim. Arduino, Nucleo (STM'li), Raspberry Pi ve AVR mikrodenetleyicili kendi kartlarımı kullandım.

Platformdan bağımsız olarak, sihirli LED'leri kontrol etmek için bir program yazmak zordur (NZR protokol yazılımına duyulan ihtiyaç nedeniyle), bunu kolaylaştıran, ancak yine de kod kullanımı açısından tam olarak optimal olmayan hazır kitaplıklar kullanmıyorsanız, kesinti yapın. yanıtlar veya bellek kullanımı ve yalnızca belirli platformlarda çalışır (bunları örneğin Raspberry'den AVR mikro denetleyicilerine taşımak imkansızdır).

Çeşitli platformları sıklıkla kullandığım için program kodunun mümkün olduğunca Arduino, Raspberry Pi, ARM/STM (Nucleo) veya AVR ile - özellikle aydınlatma efektleri söz konusu olduğunda - uyumlu olmasına ihtiyacım vardı.

Uzun süredir youtube kanalında çalışıyorum ve dijital diyotları AVR mikrodenetleyiciler için C dilinde programlama konusunda birden fazla rehber hazırladım (ancak şimdilik sadece Lehçe). Sihirli LED'leri programlamakla mücadele eden yeni başlayanlarla sık sık iletişim kurarım. Elbette bazıları platforma bağlı olarak tek seferlik projeleri için hazır kütüphaneler seçiyor. Ancak birçok insan başka çözümler arar veya programlamanın sırlarını öğrenmeye çalışır ve ben de onlardan biriyim.

Adım 2: SPI'den NZR'ye Dönüşüm

SPI'den NZR'ye Dönüştürme
SPI'den NZR'ye Dönüştürme

NZR protokolünü kullanarak kullanıcı için kirli işleri yapacak bir modül hazırlamaya karar verdim. SPI'den NZR'ye dönüştürücü görevi görecek ve tıpkı SPI gibi modül, her platformda kolaylıkla kullanılabilir. Yukarıdaki ekran görüntüsü, Magic Hercules modülünde SPI sinyallerinin NZR protokolüne dönüştürülmesini göstermektedir.

Adım 3: Dijital LED Şerit Test Cihazı Olarak Magic Hercules Modülü

Dijital LED Şerit Test Cihazı Olarak Magic Hercules Modülü
Dijital LED Şerit Test Cihazı Olarak Magic Hercules Modülü

Dijital LED'leri farklı sistemlere bağlarken, farklı mikrodenetleyiciler için uygun voltaj toleransı unutulmamalıdır. ARM mikrodenetleyicilerin I/O pinlerinin çoğu +3.3 V standardında, AVR mikrodenetleyicileri ise TTL standardında çalışır. Bu nedenle, Magic Hercules modülünün giriş pinleri +3.3 V'luk bir toleransa sahiptir, bu nedenle örneğin bir Raspberry P'ye veya herhangi bir ARM tabanlı mikrodenetleyiciye +3.3 V ile güvenli bir şekilde bağlanabilirler.

Daha önce de belirttiğim gibi, genellikle farklı türde dijital LED'lerle çalışıyorum. Üreticiye bağlı olarak LED'lerdeki münferit renkler farklı konumlarda olabilir, örn. RGB, BGR, GRB, RGBW, GRBW, vb. Üretici belgelerinin RGB dizisinden bahsetmesi nadir değildir, ancak aslında farklı görünür. Hercules modülünü bir renk sırası testi ile donattım, böylece doğru renk sırası için bir programın nasıl yazılacağını çabucak bulmakta sorun olmasın. Test cihazının birkaç ek işlevi, dijital LED şeridinin çalışıp çalışmadığını, şerit boyunca her bir LED'deki tüm renklerin (1024 LED'e kadar!) doğru çalışıp çalışmadığını (ölü piksel yok) hızlı bir şekilde kontrol etmenizi sağlar. Ve tüm bunlar bir mikrodenetleyici bağlamadan ve herhangi bir program yazmadan.

Adım 4: Magic Hercules Modülü - Dijital LED'ler için Yeni Evrensel Çözüm

Magic Hercules Module - Dijital LED'ler için Yeni Evrensel Çözüm
Magic Hercules Module - Dijital LED'ler için Yeni Evrensel Çözüm

Herhangi bir platformda veya mikro denetleyici ailesinde çalıştırılabilen basit ve yaygın bir SPI protokolü kullanarak dijital LED'leri kontrol etmek için henüz böyle bir şey olduğunu düşünmüyorum.

Elbette, dijital LED'leri kontrol etmenin birçok yolu vardır, bazıları daha optimaldir ve diğerleri daha az optimaldir. Magic Hercules modülü başka bir seçenek ve benim için çok pratik. Sanırım birisi bu alışılmadık çözümü beğenebilir. Kısa süre önce, Arduino, Nucleo (STM), Raspberry Pi ve AVR ve PIC üzerinde çalışmanın ne kadar kolay olduğu da dahil olmak üzere, Magic Hercules modülünün daha geniş bir tanımını birkaç videoda hazırladığım kitle fonlaması platformu - kickstarter'a başladım. mikrodenetleyiciler. Magic Hercules projesini desteklemek istiyorsanız, şuna bir göz atın:

Kickstarter'da My Magic Hercules modül projesi

C dilinde bir program hazırladım - tablo işlemlerine ve arabelleğin ana döngüde sıralı gönderilmesine dayanan basit bir yıldız kapısı efekti. Magic Hercules modülü sayesinde kaynak kodunu diğer dillere ve platformlara kolayca aktarabildim - sonraki adımları kontrol edin - kaynak kodları.

Adım 5: Atmega32 ve C ile Sihirli Herkül Modülü

Basitleştirilmiş bir şema, ATB 1.05a'da (AVR Atmega32) bağlantı sunumu, kaynak kodu (Eclipse C/C++ IDE'de) ve bir yıldız kapısı ışık efekti biçimindeki son efekti içeren video.

youtube'daki videonun linki

Adım 6: Arduino ve Arduino C++ ile Magic Hercules Modülü

Basitleştirilmiş bir diyagram, Arduino 2560 kartında bağlantı sunumu, Arduino IDE'de kaynak kodu ve bir yıldız kapısı ışık efekti şeklinde son efekt içeren video.

youtube'daki videonun linki

Adım 7: PIC ve C ile Sihirli Herkül Modülü

Basitleştirilmiş bir şema, PIC kalkanlı ATB 1.05a'da bağlantı sunumu (gemide PIC24FJ64GA004), MPLAB'de kaynak kodu ve yıldız kapısı ışık efekti şeklinde son efekt içeren video.

youtube'daki videonun linki

Adım 8: Raspberry Pi ve Python ile Magic Hercules Modülü

Basitleştirilmiş bir diyagram, Raspberry Pi 4'te bağlantı sunumu, Python'da kaynak kodu ve bir yıldız kapısı ışık efekti şeklinde son efekt içeren video.

youtube'daki videonun linki

Adım 9: ARM'li Sihirli Herkül Modülü - STM32 Nucleo ve C

Basitleştirilmiş bir şema, STM32 Nucleo kartında bağlantı sunumu, STM32CubeIDE'de kaynak kodu ve bir yıldız kapısı ışık efekti biçimindeki son etkiyi içeren video.

youtube'daki videonun linki

Adım 10:

resim
resim

Kullandıkları platform ve dilden bağımsız olarak MH'nin son derece başlangıç dostu bir modül olabileceğini düşünüyorum. İyi bilinen SPI protokolünü bilmek yeterlidir ve dijital LED şeridin çalışıp çalışmadığını ve hangi renk dizisine sahip olduğunu kontrol etmeye başlama imkanı sadece bir artıdır.

Kickstarter'daki projeme katılmak istiyorsanız - şu bağlantıyı kontrol edin:

Kickstarter'da My Magic Hercules modül projesi

Önerilen: