Mündəricat:
- Təchizat
- Addım 1: Sistemi anlayın
- Addım 2: WebSocketServer yazmaq
- Addım 3: Serial əmrləri protokolu qurun
Video: LightMeUp! Real vaxtda çapraz platformalı LED şeridi idarəetmə: 5 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
LightMeUp! Qiyməti aşağı və performansını yüksək tutarkən, real vaxt rejimində bir RGB LED Şeridi idarə etmək üçün icad etdiyim bir sistemdir.
Server Node.js-də yazılmışdır və buna görə də platformalar arası dəyişir.
Nümunəmdə uzun müddətli istifadə üçün bir Raspberry Pi 3B istifadə edirəm, ancaq Windows PC -ni nümayiş və ayıklama üçün.
4 pinli zolaq, PWM siqnallarını +12VDC-ni zolağın müvafiq rəng pininə çevirən üç transistora göndərmək üçün ardıcıl verilən əmrləri yerinə yetirən bir Arduino Nano tipli lövhə tərəfindən idarə olunur.
LightMeUp! sistem də öz istiliyini yoxlayır, 60 ° C (140 ° F) üzərində olduqda, dövrə ömrünü yaxşılaşdırmaq üçün özünü soyutmaq üçün korpusa quraşdırılmış iki 12VDC kompüter fanatını işə salır.
LightMeUp -un başqa bir xüsusiyyəti! bir Bombay-Sapphire Gin şüşəsini işıqlandırmaqdır, lakin bu Təlimatçının diqqət mərkəzində deyil.
Oxumaqdan zövq alın:)
Təchizat
- Arduino Nano (və ya hər hansı digər ATmega328 / daha yüksək səviyyəli mikro nəzarətçi)
- Node.js quraşdırılmış Raspberry Pi 3 Model B (və ya başqa bir kompüter)
- 12V RGB 4-pinli LED şeridi
- 12V 3A enerji təchizatı
- Jumper kabelləri (əlbəttə ki, çörək taxtasından istifadə edirsinizsə kişi-kişi)
- Çörək paneli (isteğe bağlı)
- 2 12V DC kompüter fanatı (isteğe bağlı)
- 3x TIP120 Darlington Transistor, soyuducu ilə (soyutma fanatlarını daxil etmək istəyirsinizsə 4)
- 2 status LED qırmızı və yaşıl (isteğe bağlı)
- 6, 7K NTC temperatur əsaslı müqavimət + 6, 7K rezistor (isteğe bağlı)
- USB-Mini-USB 2.0 məlumat kabeli (Raspberry Pi-nin Arduino ilə əlaqə qurması üçün)
- Xaricdən işləyən USB Hub (isteğe bağlı, yalnız Raspberry Pi üçün)
Addım 1: Sistemi anlayın
LightMeUp! çox sadə elektron sxemlərə əsaslanır.
Bir növ kompüterimiz var (bu halda Raspberry Pi), mikrokontroller lövhəmizlə ardıcıl əlaqə qurur. Bu lövhə daha sonra LED-Stripimizi ağa çevirəcək "RGB (255, 255, 255)" kimi xüsusi seriyalı əmrləri yerinə yetirir.
4 pinli LED şeridimiz üçün lazım olan RED, GREEN və BLUE üçün üç dəyərimizi əldə etdikdən sonra, TIP120 transistorumuzu PWM siqnalı ilə təmin etmək üçün analogWrite (pin, dəyər) icra edirik.
Bu PWM siqnalı, tranzistorun kollektorunun yerə qoşulduğu müvafiq rəng pimini müəyyən bir dərəcəyə və ya tamamilə açmağa / söndürməsinə imkan verir. Bəli, çoxlu "to" lar:)
Üç tranzistorun çıxışını LED şeritlərinin rəng sancaqlarına qarışdıraraq, əsasən istədiyimiz rəng yarada bilərik!
İndi bu anlayışla bu layihənin ən böyük problemi olan webocketserver və Arduino ilə serial bağlantısına hücum edə bilərik.
Addım 2: WebSocketServer yazmaq
İndi, real vaxt LED şeridi nəzarətinə nail olmaq üçün məlumatları bir dəfə yeniləmədən irəli -geri ötürməyimizə imkan verən xüsusi bir veb serveri yaratmalıyıq.
Diqqət yetirin ki, əlbəttə ki, real vaxtda ünsiyyət mümkün deyil, hər zaman ən azı bir neçə milisaniyə gecikmə olacaq, ancaq insan gözü üçün real vaxt kimi xeyli əhəmiyyət kəsb edir.
Node.js -i mənim kimi istifadə edirsinizsə, buna socket.io kitabxanasından istifadə etməklə asanlıqla nail olmaq olar. Ancaq əlbəttə ki, həmişə sevdiyiniz proqramlaşdırma dilinə sadiq qala bilərsiniz.
LED şeridini hansı rəngə təyin etmək istədiyinizi və ya "LED ON" kimi vəziyyət məlumatlarını yeniləmədən iki tərəfli olaraq ötürməyimizə imkan verən bir veb yuvası bağlantısı ilə məşğul olacağıq.
Serverin sahib olması lazım olan digər vacib bir xüsusiyyəti isə sadə bir girişdir. Girişimi sadə bir istifadəçi adı və şifrə sahəsinə əsaslandım. Bu məlumatlar daha sonra serverin /giriş marşrutuna yerləşdirilir ki, bu da istifadəçi adını istifadəçilər siyahısına (.txt faylı) və ona uyğun şifrəni SHA256 şifrəli formasında müqayisə edir. Ən rahat oturacağınızda ən sevdiyiniz içki içərkən qonşularınızın LED şeridi ilə qarışmasını istəmirsiniz, elə deyilmi?
İndi serverin ürəyi, serial ünsiyyəti gəlir.
Serveriniz ardıcıl ünsiyyət qurmağı bacarmalıdır - Node.js -də "serialport" kitabxanasından istifadə edərək bir liman açmaqla buna nail olmaq olar. Ancaq əvvəlcə serveri yerləşdirən kompüterinizdəki arduino portunuzun adını təyin edin. Əməliyyat sisteminizdən asılı olaraq, limanların fərqli adları olacaq. Windows -da bu portlar "COMx" portları, linuxda isə "/dev/ttyUSBx" adlanır, burada x USB portunun sayıdır.
Addım 3: Serial əmrləri protokolu qurun
Yuxarıdakı şəkildə, RGB nəzarətindən məsul olan Arduino IDE kodunu görürsünüz. Bu addımın məqsədi özünüz yazan serverinizi və Arduino lövhəsini bir-birinizlə uğurla danışdırmaqdır.
Seriya portunuzu uğurla açdıqdan sonra istəklərinizi nəzərə alan lövhəyə əmrlər göndərə bilməlisiniz. Məsələn, HTML veb səhifəsindəki rəng seçicinin üstünə bir barmaq çəksək, RGB kodu sonra Arduino'ya göndərilən serverə göndərilməlidir ki, müəyyən edilmiş dəyərləri işləsin.
Jscolor istifadə etdim, dəyərləri dəyişən kimi proses məlumatlarınızı rəng seçicidən əldə etməyə imkan verən "onFineChange" adlı bir tədbirə sahib olan yüksək keyfiyyətli rəng toplama elementinin əla bir tətbiqinə sahibdirlər.
Tövsiyə:
Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: 4 addım
Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: Bu, Rubikin gözləri bağlı halda həll etmək üçün hazırladığı kub alətinin 2-ci versiyasıdır. Birinci versiya javascript tərəfindən hazırlanmışdır, RubiksCubeBlindfolded1 layihəsini görə bilərsiniz, əvvəlki versiyadan fərqli olaraq, bu versiya rəngləri aşkar etmək üçün OpenCV kitabxanasından istifadə edir
Real vaxtda su istiliyi, keçiricilik və su səviyyəsi ölçən: 6 addım (şəkillərlə)
Real Zamanlı Quyu Suyu İstiliyi, İletkenlik və Su Səviyyə Ölçmə Cihazı: Bu təlimatlar qazma quyularında temperaturun, Elektrik keçiriciliyinin (EC) və suyun səviyyəsini izləmək üçün aşağı qiymətli, real vaxt rejimində su sayğacının necə qurulacağını təsvir edir. Sayğac, qazılmış bir quyunun içərisində asmaq, suyun temperaturunu ölçmək, EC və
Postshirt: Real vaxtda geyilə bilən duruş algılama: 9 addım
Postshirt: Realtime Geyinilə bilən Duruş Algılama: Postshirt, Adafruit Lələkdən accelerometer məlumatlarını Bluetooth vasitəsilə bir Android tətbiqinə ötürən və təsnif edən real vaxt simsiz duruş aşkarlama sistemidir. İstifadəçinin pis duruşu və c
DIY LED Şeridi: LED Şeridi necə kəsmək, bağlamaq, lehimləmək və gücləndirmək: 3 addım (şəkillərlə)
DIY LED Şeridi: LED Şeridi necə kəsmək, bağlamaq, lehimləmək və gücləndirmək olar: LED şeridi istifadə edərək öz işıq layihələrinizi hazırlamaq üçün yeni başlayanlar üçün bələdçi. Çevik etibarlı və istifadəsi asan olan LED şeritler müxtəlif tətbiqlər üçün ən yaxşı seçimdir. Sadə bir qapalı 60 LED/m LED şeridi quraşdırmağın əsasları, lakin
Real vaxtda Firebase ilə ESP01 Moodlight + OTA: 7 addım
ESP01 Moodlight, Firebase ilə Realtime + OTA: R-G-B rejimini və Fade effektini dəstəkləyir. Parlaqlıq nəzarətinə də dəstək var. OTA yeniləməsinə dəstək