İçindekiler:
- Adım 1: Bu Projede Kullanılanlar
- 2. Adım: Öykü
- 3. Adım: Donanım Bağlantısı
- Adım 4: Yazılım Programlama
- Adım 5: Kod
Video: Parıldayan Matrisle Sevgilinizi Aydınlatın: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Sevgililer Günü, aşk mesajları göndermeniz için bir şanstır. Duygularınızı ifade etmek için neden ucuz bileşenlerle eğlenceli bir LED yüz yapmıyorsunuz?
Adım 1: Bu Projede Kullanılanlar
Donanım bileşenleri
- Seeduino V4.2
- Temel Kalkan
- Grove - Sürücülü Kırmızı LED Matrisi
- Grove - Hareket(PAJ7620U2)
Yazılım uygulamaları ve çevrimiçi hizmetler
Arduino IDE'si
2. Adım: Öykü
3. Adım: Donanım Bağlantısı
Bu projede, bir giriş olarak jest sensörünü kullanıyoruz ve kırmızı LED matrisini beslemek için LED matris sürücüsüne geri bildirim veriyoruz.
Grove - Gesture ve Grove - Red LED Matrix w/Driver'ı, Seeeduino'ya takılı taban kalkanının I^2^C bağlantı noktasına bağlamanız gerekir. Ardından Seeeduino'yu bir USB kablosuyla PC'ye bağlayın.
Adım 4: Yazılım Programlama
Bu projenin planı, okunan sol veya sağ hareket olmadığında statik emojiyi (ağlayan yüz ve bekleyen yüz) görüntülemektir.
Sol veya sağ hareket okunduğunda sol veya sağ hareketle kontrol edilen dinamik göz konumu değiştirme emojisini görüntüleyin.
Belirli göz konumunda, LED matrisinde atan bir kalp görüntülenecektir.
LED ekran desenleri LED Matrix Editor tarafından tasarlanmıştır, yukarıdaki program gösterilerinde LED desenlerinizi değiştirebilir veya ekleyebilirsiniz.
Bu projeye hazırlanmak için Arduino IDE içerisine Grove - Gesture, Grove - Red LED Matrix w/Driver ve MsTimer2 kütüphanelerinin kurulması gerekmektedir.
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
Kurulum prosedürü sırasında Serial, matrix ve MsTimer2 fonksiyonlarını başlattık. Başlatılmış Seri, programın hatalarını ayıklamak için kullanılır, bu nedenle hata ayıklamadan sonra PC'ye bağlanmak veya Seri Monitörü kullanmak gereksizdir. Statik emojinin görüntüsünü kontrol etmek için bu projede MsTimer2 kullanıyoruz.
// Hata ayıklamak için seriyi başlattı.
Seri.başla(9600); while(!Seri); paj7620Init(); Wire.begin(); matris.init(); matrix.setBrightness(15); matrix.setBlinkRate(BLINK_OFF); MsTimer2::set(1000, displayStatic); MsTimer2::start();
Ana döngüde, hareket sensöründen yalnızca iki çıktı alıyoruz, GES_RIGHT_FLAG, GES_LEFT_FLAG ve bunlar displayDynamic() işlevini yönlendirmek için kullanılıyor.
displayDynamic() işlevi, dinamik emojinin en son görüntülendiği zamandan geçerli zamana kadar olan aralığı hesaplar, aralık TIMEOUT'u aşarsa, statik emojiyi oynatmayı durdurur ve görüntülenen dinamik emoji dizinini başlayacak şekilde ayarlar. Soldan sağa hareketler okunduğunda, başlangıç indeksi 0'dır ve soldan sağa hareketler tekrar okunduktan sonra indeks artırılacaktır. Aksi takdirde, başlangıç dizini, DİNAMİK dizisinin son dizinidir ve dizin azaltılacaktır.
void displayDynamic(bool leftToRight) {
imzasız uzun currentTime = millis(); if (currentTime - prevTime > TIMEOUT) { dIndex = leftToRight ? 0: ARRAY_LENGTH(DİNAMİK) - 1; showStatic = yanlış; } // Sınırı aşmamak için kullanılır. if (dIndex >= ARRAY_LENGTH(DYNAMIC) || dIndex <= -1) { heartBeat(); dIndex = leftToRight ? ARRAY_LENGTH(DİNAMİK) - 1: 0; } prevTime = currentTime; matrixDisplay = DİNAMİK[soldanSağa ? dIndex++: dIndex--]; }
TIMEOUT süresi aşılırsa hiçbir hareket okunmaz, statik emoji oynatma geri yüklenir.
Programı Seeeduino'nuza yükleyin, hepsi bu kadar. Oynayın ve eğlenin!
Adım 5: Kod
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h" #define TIMEOUT 5000 #define GES_REG_ADDR 0x43 #define ARRAY_LENGTH(dizi) (sizeof(dizi) / sizeof(dizi[0])) Matrix_8x8 matrisi; uint64_t matrixDisplay = 0; imzasız uzun prevTime = millis(); int8_t sIndex = 0; bool showStatic = doğru; const uint64_t STATİK = { 0x00003c0000a54200, 0x00003c000000e700, 0x00003c004242e700 }; int8_t dIndex = 0; const uint64_t DİNAMİK = { 0x00003c000021e700, 0x00003c000042e700, 0x00003c000084e700 }; const uint64_t KALP = { 0x00183c7e7e240000, 0x00183c7effff6600, 0x183c7effffffff66, 0x00183c7effff6600 }; void displayStatic(void) { if (showStatic) { matrixDisplay = STATIC[sIndex]; sIndex = (sIndex + 1) % ARRAY_LENGTH(STATIC); } } void heartBeat() { for (uint8_t i = 0; i TIMEOUT) { showStatic = false; prevTime = şimdiki Zaman; dIndex = leftToRight ? 0: ARRAY_LENGTH(DİNAMİK) - 1; } // Sınırı aşmamak için kullanılır. if (dIndex >= ARRAY_LENGTH(DYNAMIC) || dIndex TIMEOUT) { showStatic = true; } matrix.writeOnePicture(matrixDisplay); matris.display(); gecikme(100); }
Önerilen:
Beyaz Asa Gandalf'ı Aydınlatın: 9 Adım
Light Up Beyaz Asa Gandalf: Yüzüklerin Efendisi'ni izlediğimden beri hep bir Beyaz Asa Gandalf istemişimdir. Thingivers.com'da bir tasarım buldum. Tinkercad kullanarak tasarımı aydınlanacak şekilde değiştirdim
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
Parıldayan RGB Matrisiyle Sevgilinizi Aydınlatın: 3 Adım
Sparkling RGB Matrix ile Sevgilinizi Aydınlatın: Sevgililer Günü yaklaşıyor, ilk görüşte aşık olan biriyle tanışıyor musunuz?
Projenizi LED'lerle Aydınlatın: 4 Adım
Projenizi LED'lerle Aydınlatın: Bir projeyi hayata geçirmenin çok etkili bir yolu aydınlatma eklemektir. Günümüz teknolojisi, kendi işini yapanlara çok parlak, çalıştırması çok ucuz, satın alması ucuz ve kurulumu kolay çok çeşitli aydınlatma seçenekleri sunmuştur
Kaseti Aydınlatın, Rave Partilerde Heyecan Yapın.: 5 Adım (Resimlerle)
Kaset Kasedini Aydınlatın, Çılgın Partilerde Heyecan Yapın.: Naber! Ben Galden.Galden, kızlar için hobi elektroniği öneren bir ekip. Size çılgın partiler için mükemmel uyum sağlayan LED aksesuarlarının nasıl yapıldığını tanıtmama izin verin. Işıklandırıldığında ne yanar? Bir şeyi aydınlattığınızda,