İçindekiler:

Kendi POV Ekranınızı Yapın: 3 Adım
Kendi POV Ekranınızı Yapın: 3 Adım

Video: Kendi POV Ekranınızı Yapın: 3 Adım

Video: Kendi POV Ekranınızı Yapın: 3 Adım
Video: Windows 10 Ekran Kapanma Süresini Ayarlamak | 3 saniyede Kapatabilirsin!! 2024, Temmuz
Anonim
Kendi POV Ekranınızı Yapın
Kendi POV Ekranınızı Yapın

Görme Algısı (POV) veya Görme Kalıcılığı (birkaç varyasyonu vardır), bir nesnenin görsel algısı nesnenin konumunu değiştirmesine rağmen durmadığında ortaya çıkan ilginç bir insan görme olgusudur. İnsan bir görüntüyü saniyeler içinde görür; bu görüntüler beyne çok kısa süreliğine (anlık) kaydedilir. Bu fenomenin bir örneği, LED'ler veya ampuller gibi bir aydınlatma kaynağının açık ve etrafında döndüğünü gözlemlemektir. Vizyonumuz, dönen ışığın aslında sürekli bir daire olduğuna inandırılarak kandırılır, tıpkı bir düzlemde dönen bir pervaneden oluşan sürekli daire gibi. POV, gifoskoptan başlayarak uzun yıllardır vizyonumuza farklı illüzyonlar ve animasyonlar yapmak için kullanılmıştır; LED'leri kullanarak ekranlarda mesajları ve animasyonları göstermek, farklı mesaj türleri için 2D veya 3D olarak döndürmek için sıklıkla kullanılır. Bu uygulama notunun amacı, oluşturulacak ekrana “SILEGO” kelimesini yazarak Vizyon Algısının nasıl çalıştığını tasarlamak ve göstermek ve gelecekte daha karmaşık tasarımlar yapma sürecinde size rehberlik edecek fikirler vermektir. Bu proje için, bu prototipin kablolar kullanılarak tüm harici bileşenlere kolayca bağlanmasını sağlayan soket kiti ile bir Dialog GreenPAK™ SLG46880 kullandık. Genel amaçlı POV Ekranları tasarlamak için daha büyük GreenPAK'ı kullanmak, ekrana her türlü deseni yazdırmanıza olanak tanıyan ASM alt sistemleri gibi sağlam bileşenleri nedeniyle çok avantajlıdır. Bu uygulama, bir SLG46880 kullanarak nihai bir sonuç gösterecektir.

GreenPAK çipinin POV Ekranını oluşturmak için nasıl programlandığını anlamak için gereken adımları aşağıda açıkladık. Ancak, sadece programlamanın sonucunu almak 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 POV Ekranı için özel IC'yi oluşturmak için programa basın.

Adım 1: Şemalar

şemalar
şemalar

Bu POV Ekranı örneği, GreenPAK CMIC üzerindeki farklı GPO pinlerine doğrudan bağlı on bir LED'den oluşan bir diziye (her biri akımı düzenlemek için dirençlere sahiptir) sahip olan Şekil 1'de gösterilen 2D tipini hedefler. Devre prototiplenir ve PCB devre tahtalarına lehimlenir. Ekran için kullanılan güç kaynağı, 5 V çıkış veren LM7805V kullanılarak bir voltaj regülatör devresine bağlı 9 V 10 A L1022 Alkalin Pildir. Ekranı döndürmenin yanı sıra, tüm pilleri hareket ettirmek için yeterli güce sahip bir DC Motor gereklidir özelleştirilmiş standa bağlı kontrol devresi. Bu durumda, bir ana şaltere bağlı 12 V'luk bir motor ve bir döner şalter aracılığıyla farklı voltaj seviyeleri veren ve motorun birkaç hızda dönmesine izin veren, kullanıma hazır düzenlenmiş bir güç kaynağı kullanıldı.

2. Adım: GreenPAK Tasarımı

GreenPAK Tasarım
GreenPAK Tasarım
GreenPAK Tasarım
GreenPAK Tasarım
GreenPAK Tasarım
GreenPAK Tasarım
GreenPAK Tasarım
GreenPAK Tasarım

GreenPAK kullanarak bir POV Ekranı için farklı türde mesajlar ve animasyonlar tasarlarken, çipin hem araçlarını hem de sınırlamalarını bilmeliyiz. Bu şekilde, POV görüntüsünü elde etmek için en az elektronik bileşeni kullanarak yetkin bir tasarım oluşturabiliriz. Bu tasarım, Asenkron Durum Makinesi Alt Sistemleri bileşenine odaklanarak SLG46880 CMIC tarafından sunulan yeni avantajları kullanır. SLG46880 ASM Alt Sistem aracı, daha karmaşık Durum Makinesi tasarımlarına izin veren yeni özellikleri nedeniyle önceki GreenPAK ASM araçlarından daha avantajlı olabilir. Kullanılan ilgili ASM Alt Sistemleri dahili bileşenlerinden bazıları şunlardır:

● 12 Durumlu ASM Makro Hücresi

● Dinamik Bellek (DM) Makro Hücresi

● F(1) Hesaplama Makro Hücresi

● Eyaletten Bağımsız Bileşenler

Çip ne kadar çok durum makinesi makrohücresi yaratmaya ve yapılandırmaya izin verirse, tasarım olanakları o kadar çok olur. On iki durumun her biri, gösterilecek kelimenin farklı fraksiyonlarını yazmak için kullanıldı, bazıları iki veya daha fazla kez tekrarlanan LED'lerin farklı kombinasyonlarını açıp/kapattı ve bazı durumlarda tekrarlanan durumların zamanlaması değişti, çünkü aynı desen farklı zamanlarda farklı harfler için kullanılabilir. Devletler Tablo 1'de yapılandırılmıştır.

Tablo 1, tasarımdaki mevcut durumların her birinin “SILEGO” kelimesindeki harflerle nasıl ilişkili olduğunu göstermektedir. Bu, Şekil 2'de gösterilen LED konfigürasyonu ile ilişkilidir.

Gördüğünüz gibi, farklı zamanlamalarda yürütülen tüm durumlar birlikte kelimenin tam oluşumunu sağlar, Şekil 3 durumların nasıl bağlantılı/ilişkili olduğunu gösterir. Tüm durum geçişleri milisaniye mertebesindedir ve Şekil 2'deki diyagramdaki sütunların her biri bir milisaniyeyi (1 ms) temsil eder. Bazı durumlar 3 ms, 4 ms ve diğerleri, video gösterimi için kullanılan motorun minimum hızı ile yaklaşık 460 RPM'de yeterince uzun sürer.

Genel amaçlı bir tasarımda zamanlamayı bilmek ve hesaplamak için motorun hızını dikkate almak ve ölçmek önemlidir. Bu şekilde mesaj motor hızıyla senkronize edilebilir ve böylece insan gözüyle görülebilir. Durumların geçişini daha az algılanamaz ve görüşümüz için daha net hale getirmek için bir diğer husus, motorun hızını 1000 RPM'den daha fazla artırmak ve mesajın düzgün bir şekilde görülebilmesi için durum zamanlaması mikrosaniye sırasına göre ayarlamaktır. Kendinize şunu soruyor olabilirsiniz, motorun hızını mesaj veya animasyon hızıyla nasıl senkronize edersiniz? Bu, birkaç basit formülle gerçekleştirilir. 1000 RPM motor hızınız varsa, DC motorun devir başına ne kadar sürdüğünü saniye cinsinden bilmek için:

Frekans = 1000 RPM / 60 = 16,67 Hz Periyot = 1 / 16,67 Hz = 59,99 ms

Periyodu bilerek, motorun bir dönüşte ne kadar sürdüğünü bilirsiniz. “Merhaba Dünya” gibi bir mesaj yazdırmak istiyorsanız, her dönüşün periyodunu öğrendikten sonra, mesajın ekranda ne kadar büyük olmasını istediğiniz önemli. İstenen mesajı istenen boyutta yazdırmak için şu temel kuralı izleyin:

Örneğin, mesajın ekran alanının %40'ını kaplamasını istiyorsanız, o zaman:

Mesaj Boyutu = (Dönem * %40) / %100 = (59.99 ms * %40) / %100 = 24 ms

Bu, mesajın her dönüş için 24 ms'de gösterileceği anlamına gelir, bu nedenle bir sıradaki boşluk veya alanın geri kalanı (mesajdan sonra bir şey göstermiyorsanız) şöyle olmalıdır:

Boş Alan = Dönem – Mesaj Boyutu = 59,99 ms - 24 ms = 35,99 ms

Son olarak, mesajı bu sürenin %40'ında göstermeniz gerekiyorsa, beklenen mesajı yazmak için mesajın kaç durum ve geçişe ihtiyaç duyacağını bilmeniz gerekir, örneğin mesajın yirmi (20) geçişi varsa, o zaman:

Tek Durum Dönemi = Mesaj Boyutu / 20 = 24 ms / 20 = 1,2 ms.

Bu nedenle, mesajı doğru bir şekilde görüntülemek için her durum 1,2 ms sürmelidir. Elbette, ilk tasarımların çoğunun mükemmel olmadığını fark edeceksiniz, bu nedenle tasarımı geliştirmek için fiziksel testler sırasında bazı parametreleri değiştiriyor olabilirsiniz. Durum geçişlerini kolaylaştırmak için Dinamik Bellek (DM) Makro Hücreleri kullandık. Dört DM bloğundan ikisi, ASM alt sistemi dışındaki bloklarla etkileşime girebilmeleri için matris bağlantılarına sahiptir. Her DM Macrocell, farklı durumlarda kullanılabilen 6 farklı konfigürasyona sahip olabilir. Bu tasarımda, ASM'nin bir durumdan diğerine geçişini tetiklemek için DM blokları kullanılır. Örneğin Silego [3] durumu geçişler üzerinde iki kez tekrarlanır; aynı kalıba sahip büyük “I” harfinin başını ve sonunu yazması gerekiyor, ancak önce büyük harf “I” ortasının kalıbını yazmak için Silego [4] 'e gitmesi gerekiyor ve ardından Silego ne zaman [3] ikinci kez yürütülürse, diğer geçişlere devam ederek Mesaj Yok durumuna gitmesi gerekir. Silego [3]'nun Silego [4] ile sonsuz bir döngüye girmesini önlemek nasıl mümkün olabilir? Çok basit, SR Flip Flop olarak yapılandırılmış ve Silego [3]'ye Silego'yu [4] tekrar tekrar seçmemesini, ancak ikinci kez Mesaj Yok durumunu seçmesini söyleyen bazı LUT'ler var. Durumlardan herhangi biri tekrarlandığında sonsuz döngüleri önlemek için SR Flip Flop'ları kullanmak, bu sorunu çözmenin harika bir yoludur ve yalnızca Şekil 4 ve Şekil 5'te gösterildiği gibi yapılandırılmış 3 bitlik bir LUT gerektirir. ASM çıkışı, Silego [3]'nun Silego'ya [4] gitmesini sağlar, bu nedenle durum makinesi Silego [3]'yu bir sonraki çalıştırışında, işleme devam etmek için Mesaj Yok durumunu seçmesi için bilgilendirilecektir.

Bu proje için yardımcı olan bir diğer ASM bloğu, F(1) Hesaplamalı Makro Hücredir. F(1), istenen verileri okumak, depolamak, işlemek ve çıktı almak için belirli komutların bir listesini gerçekleştirebilir. Bir seferde 1 bit işleyebilir. Bu projede F(1) bloğu, bazı LUT'leri kontrol etmek ve durumları etkinleştirmek için bitleri okumak, geciktirmek ve çıkarmak için kullanıldı (Silego [2]'yi etkinleştirmek için Silego [1]'de olduğu gibi).

Şekil 1'deki tablo, LED'lerin her birinin GreenPAK'ın GPO pinlerine nasıl adreslendiğini açıklamaktadır; ilişkili fiziksel pinler, Tablo 2'de gösterildiği gibi matristeki ASM Çıkış RAM'inden adreslenir.

Tablo 2'de görebileceğiniz gibi, çipin her bir pini farklı ASM çıkışlarına adreslenmiştir; ASMOUTPUT 1, OUT 4 hariç, tümü doğrudan harici GPO'lara bağlı olarak kullanılan sekiz (8) çıkışa sahiptir. ASM OUTPUT 0, OUT 0 ve OUT 1'in sırasıyla doğrudan PIN 4 ve PIN 16'ya bağlı olduğu dört (4) çıkışa sahiptir; OUT 2, Silego [5] ve Silego [9] durumlarında LUT5 ve LUT6'yı sıfırlamak için kullanılır ve son olarak OUT 3, Silego [4] ve Silego [7]'de LUT6'yı ayarlamak için kullanılır. ASM nRESET bu tasarımda değiştirilmemiştir, bu nedenle VDD'ye bağlanmak için YÜKSEK'e zorlanır. Bu projeye “SILEGO” gösterilirken ek animasyon yapmak için Üst ve Alt LED'ler eklendi. Bu animasyon, motorun hareketi ile zaman içinde daire çizen birkaç çizgi ile ilgilidir. Bu çizgiler beyaz LED'ler, harfleri yazmak için kullanılanlar ise kırmızıdır. Bu animasyonu elde etmek için GreenPAK'ın PGEN ve CNT0'ını kullandık. PGEN, her saat kenarında dizisindeki bir sonraki biti çıkaracak bir model oluşturucudur. Motorun dönüş periyodunu 16 bölüme ayırdık ve sonuç CNT0 çıkış periyoduna ayarlandı. PGEN'e programlanan model Şekil 6'da gösterilmektedir.

3. Adım: Sonuçlar

Sonuçlar
Sonuçlar

Tasarımı test etmek için SLG46880'in soketini bir şerit kablo ile PCB'ye bağladık. Devreye biri voltaj regülatörünü, diğeri LED dizisini içeren iki harici kart bağlanmıştır. Gösterim için mesajı göstermeye başlamak için GreenPAK tarafından kontrol edilen mantık devresini açtık ve ardından DC motoru açtık. Doğru senkronizasyon için hızın ayarlanması gerekebilir. Nihai sonuç Şekil 7'de gösterilmektedir. Bu uygulama notu ile ilgili bir video da var.

Sonuç Bu projede sunulan Vizyon Algısı Ekranı, ana kontrolör olarak bir Dialog GreenPAK SLG46880 kullanılarak tasarlanmıştır. LED'ler kullanarak “SILEGO” kelimesini yazarak tasarımın çalıştığını gösterdik. Tasarımda yapılabilecek bazı iyileştirmeler şunlardır:

● Daha uzun bir mesaj veya animasyon yazdırmak için durum olasılıklarını artırmak için birden fazla GreenPAK kullanmak.

● Diziye daha fazla LED ekleyin. Dönen kolun kütlesini azaltmak için delik içi LED'ler yerine yüzeye monte LED'lerin kullanılması yararlı olabilir.

● Bir mikro denetleyici dahil etmek, GreenPAK tasarımını yeniden yapılandırmak için I2C komutlarını kullanarak görüntülenen mesajı değiştirmenize izin verebilir. Bu, zamanı doğru bir şekilde görüntülemek için rakamları güncelleyen bir dijital saat ekranı oluşturmak için kullanılabilir.

Önerilen: