Mündəricat:
- Addım 1: nəzəriyyə
- Addım 2: Hardware: LED Cube Build
- Addım 3: LED Sıraları
- Addım 4: Layer Montajı
- Addım 5: Cube Kablolama
- Addım 7: Arduino + Bluetooth İdarəetmə Paneli
- Addım 8: İsteğe bağlı: Dövrə lövhələrinin aşındırılması
- Addım 9: Kubu birləşdirin
- Addım 10: Proqram təminatı: Multipleksləmə dövrü
- Addım 11: Xüsusi Animasiyalar
- Addım 12: Əlavə: AnimationCreator
- Addım 13: Bluetooth Tətbiqi
- Addım 14: Vitrin
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu, bir Arduino Nano istifadə edərək Bluetooth Tətbiqi ilə idarə olunan 6x6x6 RGB LED (Ümumi Anodlar) Küpünün necə qurulacağına dair təlimatdır. Bütün quruluş, demək olar ki, 4x4x4 və ya 8x8x8 Cube -a uyğunlaşdırıla bilər. Bu layihə GreatScott -dan ilhamlanıb. Daha böyük LEDləri (8 mm) istifadə edərək daha mürəkkəb bir quruluşa getməyə qərar verdim, daha az məsafə + Bluetooth əlaqəsi əlavə edərək yeni funksiyaları çox asanlaşdırır və eyni zamanda kubu idarə etmək üçün bir tətbiq qurma qabiliyyətini də əlavə edirəm. Bu da mənə imkan verir ki, məs. bir İlan Oyunu kodlayın (sonunda üçüncü vitrin videosu). Bunun üzərinə, kubun AUX Girişini görüntüləməsinə imkan verən bir Audio Görselleştirici rejimi əlavə etdim. MSGEQ7 istifadə edən musiqi (sonunda videonu göstər). Əlavə olaraq hər kəsin xüsusi animasiyalar qura bilməsi üçün Animasiyalar yaratmaq və tənzimləmək üçün istifadəçi interfeysi olan Java ilə bir AnimationCreator tətbiqi yazdım. Eskiz + Bluetooth Tətbiqi hər hansı bir LED Cube konfiqurasiyası üçün bir çərçivə təmin edir və Animasiya Yaradıcısı ilə xüsusi animasiyaların tətbiqindən narahat olmaq lazım deyil.
Arduino Sketch və Bluetooth Tətbiqinə bağlantılar:
RGBCube_Arduino Sketch (Github)+Animasiya Yaradan.jar
Cubo Bluetooth Tətbiqi (Github)
Cube üçün hissələr siyahısı:
- 216x RGB LED (Ümumi Anot) (8mm) (AliExpress / Ebay)-> 6x6x6 = 216
- Şerit Kabeli (1m 40Pin kifayət olmalıdır) (AliExpress / Ebay / Amazon)
- Qadın və Kişi Başlıqları (hər biri ən az 4x40pin) (AliExpress / Ebay / Amazon)
- Qalın Mis / Gümüş Tel 0.8mm (~ 25Meter) (AliExpress / Ebay / Amazon)
- Kiçik Boru (AliExpress / Ebay / Amazon)
İdarəetmə lövhələri üçün hissələr siyahısı:
- 7 x TLC5940 LED Sürücü (Ebay / AliExpress)
- 6 x IRF 9540 P-Kanal MOSFET (Amazon / Ebay / AliExpress)
- 8 x 10 uF kondansatörler (Amazon / Ebay / AliExpress)
- 3 x 1000 uF kondansatörler (Amazon / Ebay / AliExpress)
- 14x 2.2kOhm Rezistorlar (Amazon / Ebay / AliExpress)
- 1 x 1kOhm Rezistor (Amazon / Ebay / AliExpress)
- 7 x 28pin IC Soketləri (Amazon / Ebay / AliExpress)
- 1 x Arduino Nano (Amazon / Ebay / AliExpress)
- 1 x 1N4001 Diyot (Hər hansı bir ümumi Diod) (Amazon / Ebay / AliExpress)
- 8 x 0.1uF Kondansatörler (Ebay)
- 1 x DC Jack PCB Dəstəyi (Amazon / Ebay / AliExpress)
- 1 x HC-05 Bluetooth Modulu (Amazon / Ebay / AliExpress)
Addım 1: nəzəriyyə
Multipleksləmə nəzəriyyəsi ilə maraqlanmırsınızsa, həqiqi quruluşun başlaması üçün 2 -ci addıma keçin
Təchizat və proqram təminatı bu layihənin eyni dərəcədə böyük hissələri olduğu üçün əvvəlcə nəzəriyyəyə nəzər salaq.
Kubun beyni Arduino Nanodur. İstifadə olunan LED Sürücüləri ilə qarşılıqlı əlaqə qurmaq, həmçinin HC-05 modulu və digər idarəetmə qurğularına Bluetooth bağlantısı qurmaq üçün kifayət qədər I/O təmin edir. Digər LED Cube quruluşlarına baxdınızsa, insanların çoxunun fərdi LED rənglərinin parlaqlıq dəyərlərini saxlamaq üçün sadə Shift qeydlərindən istifadə etdiyini biləcəksiniz. Bu quruluş Shift qeydlərindən istifadə etmir, əksinə "TLC5940" LED Sürücüləri adlanır. Daha sonra görəcəyimiz kimi, bu bizə çox vaxta və bir çox əlavə qurğuya (məsələn, rezistorlar) qənaət edir.
Küpü idarə etmək üçün əsas funksiya multipleksləmədir. Bu vəziyyətdə, kubun 6 qatını çoxaldırıq, yəni bir təbəqədəki bütün LED -lərin bütün Anodları (+) bağlanır, eyni Sütundakı bütün LED -lərin fərdi Katotları isə aşağıya doğru bağlanır. Bu o deməkdir ki, LED -i x = 1, y = 2, z = 3, color: green mövqeyində yandırmaq istəyirsinizsə, 3 -cü qatın anodunda 5V təmin etməlisiniz və GND -ni Sütunun Katotuna uyğun Yaşıl Pin x = 1, y = 2. Beləliklə, əslində bir anda Cube -un yalnız bir təbəqəsi açılır, ancaq daha sonra Kodda gördüyünüz kimi ayrı -ayrı təbəqələri o qədər tez söndürürük ki, gözümüz bütün kubun açıq olduğunu düşünür..
Parlaqlıq, animasiyalar və sair kimi şeyləri idarə etmək üçün Arduino Nanoya qoşulmuş HC-05 Bluetooth modulundan istifadə edirik. Modulu bir Arduino ilə istifadə etmək çox sadədir, çünki yalnız 4 Pin bağlantısına ehtiyacınız var və Arduinonun standart Serial-Komunikasiyası vasitəsi ilə modulla əlaqə qura bilərsiniz. Bu təlimatın sonuna yaxın Cube nəzarət etmək üçün öz Bluetooth Tətbiqinizi yazmağın nə qədər asan olduğunu görəcəksiniz.
QEYD
Arduino Circuit lövhəmdə, MSGEQ7 şifrəli bir prosesin Audio Girişini əlaqələndirmək üçün kiçik bir sxem görürsünüz, bu faktiki kub üçün qətiyyən lazım deyil və əlavə etdiyim əlavə bir funksiyadır, buna görə də Şematik işarəsini görməməzlikdən gələ bilərsiniz. "MSGEQ7" ilə
Addım 2: Hardware: LED Cube Build
Arduino Nano ətrafındakı idarəetmə dövrəsi haqqında danışmadan əvvəl, Cube -un özünü necə quracağına nəzər salaq.
Küp quruluşu üçün hissələr siyahısı:
- 216x RGB LED (Ümumi Anod) (AliExpress / Ebay)-> 6x6x6 = 216
- Şerit Kabeli (1m 40Pin kifayət olmalıdır) (AliExpress / Ebay / Amazon)
- Qadın və Kişi Başlıqları (ən az 4x40pin) (AliExpress / Ebay / Amazon)
- Qalın Mis / Gümüş Tel 0.8mm (~ 25Meter) (AliExpress / Ebay / Amazon)
- Kiçik Boru (AliExpress / Ebay / Amazon)
Ediləcək ilk şey və indi yorucu, amma zəruridir, LEDləri sınamalıyıq. Bunu etmək üçün sadə bir enerji təchizatı bağlayırıq, məsələn, klipi olan 9V batareya bloku. Şəkil 3 -də gördüyünüz kimi, LED -lərin ən uzun pimi Anoddur (+), bu ucunu batareyanın +9V -ə bağlayırsınız. İndi GND -ni fərdi rənglərə bağlamadan əvvəl Katodlar (Qırmızı, Yaşıl, Mavi) cərəyanı məhdudlaşdırmaq üçün hər bir katoda 220 Ohm rezistor əlavə edin. İndi bütün 216 LED -in bütün rənglərini sınayaraq əylənin.
Növbəti addımda sınaqdan keçirilmiş LED -ləri hazırlayacağıq ki, onları daha sonra sütunlara asanlıqla yığa bilək.
Addım 3: LED Sıraları
LEDləri öz sıralarına lehimləmədən əvvəl, telləri əymək və kəsmək lazımdır.
Birinci şəkildə gördüyünüz kimi, sadə bir ağac parçasına 8 mm -lik bir çuxur (8 mm LED -lər üçün) qazdım və LED çuxurunun solunda, digəri isə çuxurun sağında çox kiçik 3 matkap qazdım. Bu matkaplar telləri düzgün əymək üçün işarələrdir və LED üçün çuxurun ortasından təxminən 1 sm məsafədə olmalıdır.
Bu texnika Steve Manley -dən ilhamlanır, YouTube -da kiçik bir dəyişikliklə bunu etdiyinə dair bir video tapa bilərsiniz.
2 və 3 -cü şəkillərdə göründüyü kimi matkapların ətrafındakı ucları kəsmədən və əymədən əvvəl, ucların istiqamətinin şəkil 1 -ə uyğun olduğundan əmin olun (yuxarıda solda mavi, sonra yaşıl, sonra anod + sağda və yenidən qırmızı sol). Kabellərə bükdüyünüz dairə, qalaylanmış mis telə (0.8mm) uyğun gəlmək üçün kifayət qədər böyük bir diametrə malik olmalıdır. Bu addım, LED -lərin yerində gözəl bir şəkildə lehimlənməsini çox asanlaşdırır.
İndi bütün LED -lər hazırlandıqda, onları Anodların (+) qoşulduğu 6 sıra sıraya yığmaq istəyirik:
- Şəkil 6 -da göründüyü kimi kiçik bir jig qurun, sonrakı çuxura 2,5 sm məsafədə 6 delik (diametri 0,8 mm) qazın. Bu, bir anda 6 LED -i jığa yerləşdirməyə imkan verir
- Anodları birləşdirmək üçün ~ 16 sm uzunluğunda düz bir qalaylaşdırılmış mis tel parçasına ehtiyacımız var (bir az əlavə marj ilə). Telin gözəl və düz olması üçün telin bir ucunu elektrikli bir matkaba bağlaya bilərsiniz, bir anda təxminən 2 m telləri bir masaya bərkidin, sonra qazmağı telin uzanması və sıxılması üçün qazma üzərində tutun. bir neçə saniyə ərzində tel çox tez düzəldilir. Sonra telin kəsildiyi yerə kəsə bilərsiniz. Həm də iki kəlbətin istifadə edə və bir anda daha kiçik tel parçaları sıxa bilərsiniz, amma bu daha yorucu olur
- 16 sm uzunluğunda tellər əldə etdikdən sonra onları dioddakı LED -lərin Anod (+) deliklərindən keçirir və Anod sancaqlarını telə lehimləyirsiniz (Şəkil 7)
Bütün kub üçün 6x6 = 36 ədəd LED satıra ehtiyacımız olacaq
Addım 4: Layer Montajı
Daha əvvəl də qeyd etdiyim kimi, kubun təbəqələrini çoxlayacağıq, ancaq montaj üçün 6x6 LED -dən 6 Divar qurmaq, sonra onları bir -birinin yanında yığmaq və anodları birləşdirən tək bir qalay mis tel çəkmək daha asandır. satırlar birlikdə bir təbəqədə.
Diqqət yetirin ki, bu addımı düzəltmək çox vaxt və səbir tələb edir, ümumilikdə tikinti üçün təxminən 1000 lehim birləşməsini lehimləməli olacaqsınız, buna görə də vaxt ayırın!
LED divar qurmaq üçün:
- Jig üçün: Bir divar tikmək üçün 6 sıra üst -üstə oturmaq üçün 6 oyma xətti olan bir ağac parçasına ehtiyacımız var. Jigin özünü şəkil 2 -də görə bilərsiniz (sıralar arasındakı məsafə: 2,5 sm)
- 6 sıra LED -i oymalara, Anod teli üzü aşağıya doğru, oyulmuş xəttin içərisinə yerləşdirirsiniz ki, 3 Katod (R, G, B) yuxarıya baxsın
- Bir -birinin üstündə yerləşən Katotları bağlamaq üçün (şəkil 2 -yə baxın) bir az daha telə ehtiyacımız var (buna görə də 6 sütun x 3 Katod x 6 Divar = son addımda (2.) təsvir edildiyi kimi 108 ədəd qalay tel parçası (eyni uzunluqda))
- Sütunun altından tel parçalarını Katotların deliklərindən yuxarı sıraya sürüşdürün və teli hər bir LED -də yerində lehimləyin
6 LED Divarı əldə etmək üçün bunu 6 dəfə edin.
İndi divarları həqiqi kubun özünə yığa bilərik. Ancaq kubu tutmaq üçün bir növ yer təyyarəsi qurmalıyıq. Bunun üçün bir az nazik kontrplak istifadə etdim və ən aşağı LED sıralarından asılı olan telləri (hamısı 6 LED Divar üçün) uyğunlaşdırmaq üçün içərisində 0,8 mm kiçik deliklər qazdım. Tək bir LED -in deliklərinin ölçüləri 3 -cü addımda sənədləşdirilir və hər bir LED arasındakı məsafə 2,5 sm -dir.
Yerdəki deliklər ilə ilk divarı götürürük və kontrplakın sol tərəfindəki deliklərə manevr edirik. Altdakı LED sırası ağacın üstündə oturmalıdır ki, nəticədə bütün divarlar eyni şəkildə hizalansın.
LED Divarlarının qalan hissəsi ilə eyni şeyi etməyə davam edin, ancaq unutmayın ki, Divarların Anodları həmişə eyni istiqamətdədir. (şəkil 3 -də divarların bütün anodları sola baxır)
Bütün Cube yerində olduqdan sonra hər bir təbəqənin anodlarını birlikdə lehimləməliyik. Bunu etmək üçün təxminən 16 sm uzunluğunda bir tel götürürük və birinci təbəqənin üstünə qoyuruq ki, tel bir təbəqədə 6 divarın bütün Anod tellərinə toxunsun. Yeni telin Katodların heç birinə toxunmadığına diqqət yetirin. Teli yerində lehimləyin və qalan 5 qat üçün eyni şeyi təkrarlayın.
Addım 5: Cube Kablolama
LED Sürücü Kartı üçün hissələr:
- 7 x TLC5940
- 6/7 x 10 uF kondansatörler
- 2 x 1000 uF kondansatörler
- 7x 2.2kOhm Rezistorlar
- 7 x 28pin IC Soketləri
- 7 x 0.1uF kondansatörler
- Şerit Kabel
Nəzarət sxemlərinə keçərək əvvəlcə LED Sürücü lövhəsinə nəzər salaq. Daha əvvəl də qeyd edildiyi kimi, Arduino Nano'ya bağlı 7 TLC5940 lazımdır. Bütün TLC5940 Çipləri papatya zənciridir, bu da Sürücülərin bütün idarəetmə pinlərinin bir -birinə bağlı olduğunu göstərir (məsələn, birinci TLC -nin BLANK pimi ikinci, üçüncü, dördüncü,… TLC -nin BLANK -na bağlıdır) və hamısı Arduinowith -ə bağlıdır əvvəlcə Arduino Rəqəmsal Pindən ilk TLC -yə qoşulan Serial Giriş istisna olmaqla, eyni tellər, sonra bu ilk TLC -nin Serial Çıxış pimi ikinci TLC -nin SIN pininə bağlanır və s. (şəkil 4 -ə baxın) …
Beləliklə, əlavə edilmiş sxemdə görə biləcəyiniz kimi TLC lövhəsinin sxemi olduqca sadədir.
(8 -ci MƏRDƏMƏ ÜÇÜN KARTINA TƏCİL EDMƏK İSTƏYİRSƏN)
Pin etiketləri və ayrıca ayrılmış hər bir Kontrol Pin bağlantısı üçün təbəqələri olan bir GIMP.xcf faylları olan frizz -də sxematik bir ekran görüntüsü əlavə etdim.
Bütün IC yuvalarını yerində lehimləməklə başlayın, sonra hər bir TLC -ə 100nF kondansatör əlavə edin, ardınca IREFand GND üçün 2.2kOhm rezistor və sağ üst küncdəki 7 pinli başlıq əlavə edin. Bundan sonra.xcf faylını Şerit Kabellərindən istifadə edərək Sürücülərin Serial IN/OUT pinlərinin necə bağlanacağını göstərən Gimp faylındakı "SIN qat" ı ilə başlayaraq GIMP -də CLK Layerini aktivləşdirin və s. Sağ üstdəki pin başlığına + və - pinləri yaxşı bağladığınızdan əmin olun. Sxemin qalan hissəsi özünü izah etməlidir, lakin lövhəyə kifayət qədər 1000uF və 10uF kondansatör əlavə etdiyinizdən əmin olun ki, tam harada onları yerləşdirirsən.
Bu lövhə bitdikdən sonra növbəti addımda Arduino Board -a keçə bilərsiniz.
Addım 7: Arduino + Bluetooth İdarəetmə Paneli
Nəzarət lövhəsi üçün hissələr:
- 6 x IRF 9540 P Kanallı MOSFET
- 1 x 10 uF kondansatörler
- 1 x 1000 uF kondansatörler
- 7 x 2.2kOhm Rezistorlar
- 1 x 1kOhm Rezistor
- 2 x 14 Dişi pin başlığı
- 1 x Arduino Nano
- 1 x 1N4001 Diod
- 1 x 0.1uF kondansatörler
- 1 x DC Jack PCB Dəstəyi
- 1 x HC-05 Bluetooth Modulu
- 1 x 3,5 mm audio jak
Arduino İdarəetmə Paneli, LED Sürücü lövhəsinin pin başlığının həmkarını təmin etmək üçün əsasən multipleksləşdirmə işini həyata keçirir.
Mükəmməl taxtada lehimləmə:
- Lövhənin ortasında Arduino üçün yuva rolunu oynamaq üçün iki qadın Pin başlığı qoyun.
- Arduino'nun sağ tərəfində (Analog Pins olan tərəf) 6 MOSFET -i bir -birinin ardınca qoyun və hər biri ilk və son pin arasında 2.2kOhm müqavimət əlavə edin.
- İndi 6 pinli başlığı MOSFET -lərin qarşısına qoyun (sıranın ortası) və FET -lərin 6 DRAIN pinini (orta pin) başlığa və FET -lərin GATE pinlərini (sol pin) müvafiq Arduino Analog pinlərinə bağlayın..
- Sonra, Arduinonun digər tərəfindəki LEDDriver bağlantısı üçün 7pin başlığını lehimləyin, kabellər üçün bir az yer buraxın və Arduinodan pin başlığına qədər bütün əlaqələri lehimləyin.
- Mümkün olan cərəyanlar üçün bir neçə kondansatör əlavə edin (Arduinonun yanında 1-2 1000 uF, 1 10 uF, 100 nF).
- HC-05 modulu üçün Arduinonun arxa tərəfində 4 pinli başlığı lehimləyin və VCC, RX, TX, GND ilə 4 əlaqə qurun və HC-05-in RX Pinindən bir gərginlik ayırıcı etməyi unutmayın. Arduinonun TX Pin (bura baxın)
- Yanında bir keçid olan DC Jack -ı lövhənin hər hansı bir kənarına yerləşdirin və açarın sağ pinini DC Jack -in + Pininə qoşun.
- Nəhayət, DC Jack-in GND Pinindən və açarın sağ pinindən (VCC) sxematik olaraq göründüyü kimi Arduino, MOSFETs, Capacitors və HC-05-ə qədər bütün lazımi Güc əlaqələrini qurun. Diodu əlavə etməyi unutmayın, yalnız açarın VCC pinindən Güc verən Arduinos 5V pininə başqa bir şəkildə axmamalıdır. (Bu, Arduino'yu USB bağlantısı ilə proqramlaşdırarkən qoruyur)
Güc bağlantısı üçün sadə bir açarı olan bir DC Power Jack istifadə etdim, istəsəniz bir USB Konnektoru da istifadə edə bilərsiniz. Taxta korpusa gözəl oturmaq üçün güc konnektorunu başqa bir kiçik dövrə lövhəsinə verdim, ancaq onu birbaşa qoya bilərsiniz. Arduino lövhəsinə daxil olun. İlk addımda qeyd edildiyi kimi, sxematik olaraq bir MSGEQ7 Bağlantı Dövrü də var, ancaq bir MSGEQ7 istifadə etməsəniz buna məhəl qoymayın. (MSGEQ7 funksiyası haqqında daha çox məlumat üçün bura daxil olun)
Arduino lövhəsini Sürücü lövhəsinə bağlamaq üçün hər ucunda kişi pinli Başlıqları olan başqa 7Pin Şerit Kabel düzəltməyi unutmayın
Addım 8: İsteğe bağlı: Dövrə lövhələrinin aşındırılması
Beləliklə, çoxlu kabellərin lehimlənməsini sevmirsinizsə, əlbəttə ki, istəsəniz lazım olan PCB -ləri də kəsə bilərsiniz.
Mənim Cube -də Arduino lövhəsi və Güc/Səs bağlayıcı lövhəsi, əlavə edilmiş sxematik/EAGLE sənədlərindən istifadə edərək həkk olunmuş lövhələrdir. İlk dəfə sxematik bir səhv etdiyim üçün LED Sürücü lövhəsini son addımdakı kimi yenidən düzəltməli oldum. Lövhəni perboarddan istifadə etmək əvəzinə aşındırmağın heç bir böyük üstünlüyü yoxdur, buna görə lövhəni aşındırmaq və ya perfboardda lehimləməkdən çekinmeyin.
Əlavə edilmiş.zip -də həm BOARD faylını həm də SCHEMATIC faylını tapa bilərsiniz.
Diqqət yetirin ki, üst təbəqə izləri (qırmızı) tel körpülər olmalıdır (çünki evdə iki tərəfli lövhələr kəsə bilmirəm). İşlənməmiş izlər, qadın Pin başlıqları üçün kabellər vasitəsilə ediləcək bağlantıları nümayiş etdirir.
Şematik,.pdf sxeminin ekran görüntüsündə "(MSGEQ7)" işarəsi olan sxematik hissəni silməklə atlaya biləcəyiniz MSGEQ7 xüsusiyyətini ehtiva edir.
Addım 9: Kubu birləşdirin
Cube -un bütün hissələrini birləşdirmək üçün 7pin Kabelini Arduino Kartına və Sürücü Kartına qoşaraq başlayın (istiqamətin düzgün olduğundan əmin olun!). Sonra HC05 Modulunu 4 Pin başlığına qoşun və ayrılarsa Güc Kartını bağlayın.
7x16 Pinli Cube Başlıqlarını bağlamaq üçün ilk TLC ilə başladığınızdan əmin olun (SIN pin birbaşa Arduino ilə əlaqəli olan). Cube -dan düzgün 16pin Kabeli tapın və ilk TLC -nin pin başlığına qoşun (Cathode Nr.0 kabelinin ilk TLC OUT0 Pininə qoşulduğundan əmin olun!). Davam edin və digər 16pin Kabelləri müvafiq TLC başlıqlarına düzgün qaydada bağlayın.
Nəhayət, kubdan anodlar üçün 6Pin Kabelini MOSFET -lərin yanındakı İdarəetmə lövhəsindəki 6Pin başlığına qoşun.
Kubu bitirmək üçün üzərinə qara rəngli daha çox kontrplak ilə korpusa divarlar əlavə etdim və yapışdırdım.
İndi bütün quruluş üçün lazım olan bütün avadanlıqları bitirdik!
Addım 10: Proqram təminatı: Multipleksləmə dövrü
İndi nəzəriyyədə Arduino davamlı olaraq aşağıdakı dövrəni icra edir:
- LayerDuration keçibsə, TLC -lərə növbəti Layer üçün Dəyərləri yükləyin, cari Layeri söndürün, növbəti Layeri yandırın, LayerDuration'ı sıfırlayın və TLC -lərə yeni dəyərlər qoyun.
- FrameDuration keçibsə, bütün LED və Rənglər üçün dəyərləri ValueLed tamponunda saxlayaraq mövcud Animasiyanın yeni Çərçivəsini yükləyin, FrameDuration -ı sıfırlayın.
- Bluetooth Məlumatı varsa, onlara reaksiya verin (Animasiyanı, Parlaqlığı dəyişdirin …) (daha çox məlumat sonra)
Gördüyünüz kimi kodun əsas diqqəti sürətdir. Layerin dəyişdirilməsi üçün vaxtın minimal olması vacibdir.
Layerləri nə qədər tez açsanız/söndürsəniz, daha çox "Çərçivə" alacaqsınız. 6x6x6 RGB LED Küpü üçün bunun Layer Duration 1700 microSec olduğunu anladım. minimumda titrəməyə davam edəcək qədər yaxşıdır və bu dəyərdə qalmalıdır. FrameDuration, Animasiyanın sürətini daha çox idarə edir, buna görə fərqli Animasiyalar üçün dəyişdirilə bilər.
Növbəti addımda öz Animasiyalarımızı necə yaza biləcəyimizə baxacağıq.
Addım 11: Xüsusi Animasiyalar
Bir animasiyanı həyata keçirmək üçün, FrameDuration hər keçəndən sonra ValueLed tamponunu növbəti Çərçivə üçün istədiyimiz dəyərlərə təyin etməliyik. Bunu Makro funksiyasını "SETLED (x, y, z, COLOR, Brightness)" adlandıraraq edirik.
x, y, z, qurmaq istədiyimiz LED -in koordinatlarıdır və RƏNG (QIRMIZI, YAŞIL və ya MAVİ) təyin etmək istədiyimiz rəngdir və Parlaqlıq bu müəyyən etdiyimiz rəng üçün əsl Dəyərdir.
Məsələn, bütün kub boyunca təsadüfi olaraq Qırmızı, Yaşıl və Mavi rəngləri göstərən bir Animasiya tətbiq etmək üçün bunu edə bilərsiniz:
void randomLedsFull () {
for (uint8_t j = 0; j <CUBE_SIZE; j ++) {for (uint8_t x = 0; x <CUBE_SIZE; x ++) {for (uint8_t y = 0; y <CUBE_SIZE; y ++) {uint8_t rand = random8 (3); SETLED (x, y, j, rand, maxBright); }}}}
Bu üsul, FrameDuration hər keçdikdə və loopdakı keçid əmrindən seçildikdə çağırılır. Yeni animasiyalar yazırsınızsa, sadəcə keçid qutusuna əlavə edərək əlavə edə bilərsiniz.
Addım 12: Əlavə: AnimationCreator
JavaFX və Java3D istifadə edərək AnimationCreator yazdım.
Anlaşılması asan bir UI təmin etməklə xüsusi Animasiyaların yaradılmasını və redaktəsini çox asanlaşdırır.
4x4x4, 6x6x6 və ya 8x8x8 LED kubları üçün Animasiyalar yarada, redaktə edə, yenidən adlandıra və yenidən konfiqurasiya edə bilərsiniz
Yeni bir Animasiya yaratmaq üçün sadəcə Fayl> Yeni vurun, "Cube" altında Cube ölçüsünü seçə bilərsiniz, LED -in Rəngini təyin etmək üçün soldakı Rəng seçici ilə istədiyiniz rəngi seçin və sonra istədiyiniz LED -lərə sol vurun. Çərçivə üçün bu rəng. Başqa bir çərçivə əlavə etmək üçün "Sonrakı" və ya "+" düyməsini basın. İstifadəçi interfeysi nəzarətinin qalan hissəsi olduqca aydındır, kublar qatının yanındakı onay qutuları hansı təbəqələrin dəyişdirilməsindən təsirlənməli olduğunu yoxlamaq və "çərçivəni saxlamaq". Yalnız sınayın və hər şeyi qısa müddətdə anlayacaqsınız.
Animasiyanı simulyasiya etmək üçün Java3D Cube Modeli ilə başqa bir pəncərə açan "3D Görünüşü" düyməsini basa bilərsiniz. Kameranı sol siçan düyməsini basılı tutaraq döndərə bilərsiniz (Kameranı sıfırlamaq üçün R düyməsini basın). Animasiyanı oynatmaq/durdurmaq üçün P düyməsini basın, Animasiya vuruşunu sıfırlamaq üçün Q. "3D Görünüşü" altındakı Mətn Sahəsi cərəyanı göstərir FrameTime, animasiya sürəti.
Animasiyanı bitirdikdən sonra ona bir ad verin və Fayl> Kimi Saxla … düyməsini vurun və Animasiyanı Cubo_Control.ino Sketch ilə eyni qovluğa qeyd edin.
Sketch -ə yeni Animasiyanı daxil etmək üçün Cubo_Control.inonu açın və Sketchin üstünə aşağıdakı kodu əlavə edin:
#"RGBit.h" daxil edin // Əvəz edin
Aşağıya BTEvent () gedin və animasiyaların keçid vəziyyətinə hal ifadəsi əlavə edin
keçid (curAnim) {
… Hal 10: animasiya = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; fasilə; hal 11: // YENİ ANİMASİYA animasiyanız = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; fasilə; }
Addım 13: Bluetooth Tətbiqi
Həqiqətən Cube-ə nəzarət etmək üçün, HC-05 Modulu sayəsində Telefonunuzu Cube-ə bağlamaq üçün bir Bluetooth tətbiqini qurmaq olduqca sadədir.
Tətbiqə keçid: Github
Tətbiq açıq mənbəyidir, buna görə özünüz əlavə Animasiyalar/xüsusiyyətlər əlavə edə bilərsiniz.
- Tətbiqi başladın, Bluetooth -u açmağınızı xahiş edir
- "Axtar" düyməsini basın və mövcud Bluetooth əlaqələrinin siyahısı görünür. Cube-dən HC-05 Modulunu təyin edin və üzərinə vurun.
- Cube-ə qoşulmağa çalışarkən bir səhv olarsa, Bluetooth parametrlərində HC-05 modulunu əl ilə qoşmağa çalışın
- Bağlandıqdan sonra Tətbiq İdarə Ekranına keçir və Bluetooth bağlantısı quruldu
Nəzarətlər
- Sürət və Parlaqlıq: Animasiyanı sürətləndirmək/yavaşlatmaq və ya parlaqlığı dəyişdirmək üçün sürüşmə dəyərlərini dəyişdirin
- Animasiyalar: Animasiyanı dəyişdirmək üçün bir düyməni basın, cari olaraq Animasiyalar döngədədir (Sol üstdən başlayaraq düymə CurrAnim -ə uyğundur)
- Mətn Kaydırma: Küpün içərisindən keçiləcək mətni daxil etmək üçün bir dialoq açan "Mətn" düyməsini basın.
- Komanda: Command TextField ilə əmrləri əl ilə daxil edə bilərsiniz (sintaksis üçün Cubo_Control.inonun BTEvent () metoduna baxın)
- İlan: klassik İlan Oyunu (qırmızı: alma, yaşıl: ilan Başı, mavi: Kuyruğu gizlədir) (Nəzarətlər: 4 istiqamətli Düymə, Yuxarı və Aşağı Telefonu irəli (Yuxarı) və ya geriyə (Aşağı) çevirərək işə salınır)
- Audio Görselleştirici: MSGEQ7, AUX Jack -dən 6 səs bandını görüntüləmək üçün istifadə olunur (Animasiya 7 üçün Düymə)