Smartfon İdarə Edilən Sonsuz Saat: 5 Adım (Şəkillərlə birlikdə)
Smartfon İdarə Edilən Sonsuz Saat: 5 Adım (Şəkillərlə birlikdə)
Anonim
Image
Image
Smartfon tərəfindən idarə olunan Sonsuz Saat
Smartfon tərəfindən idarə olunan Sonsuz Saat
Smartfon tərəfindən idarə olunan Sonsuz Saat
Smartfon tərəfindən idarə olunan Sonsuz Saat

Sonsuzluq Güzgüləri və Sonsuzluq Saatlarının bir çox layihələrini İnstructables -da gördüm, buna görə də özüm etmək qərarına gəldim. Ola bilsin ki, digərlərindən çox da fərqlənməsin … amma mən özüm etdim, belədir!

Şəkil
Şəkil

Artıq bilmirsinizsə:

Sonsuz saat nədir?

Sonsuz bir saat, yalnız bir santimetr dərinlikdə olsa da, böyük bir dərinlik illüziyası vermək üçün güzgü ilə yarı əks etdirən güzgü arasındakı çoxlu əkslərdən istifadə edir!

Vaxt, bu interfeyslər arasında dəfələrlə əks olunan və bu dərinlik təəssüratı verən LED -lərlə göstərilir.

Şəkil
Şəkil

Çoxlu reflekslər dərinlik təəssüratı verir

LEDlər ünvanlı və çox rənglidir, buna görə də yüngül animasiyalar yaratmaq üçün onlardan istifadə etmək çox asandır.

İnteraktiv və dəyişkən etmək istədim, buna görə Bluetooth ünsiyyətindən istifadə edərək bir Smartphone idarəetməsini əlavə etdim. Saat və smartfon arasında əsl iki yollu əlaqə var. İstifadəçi animasiyalar, rənglər kimi müxtəlif parametrləri dəyişdirmək üçün HMI (İnsan Maşın İnterfeysi) istifadə edə bilər. Ancaq eyni zamanda, məsələn, vaxtı dəyişdirmək üçün birbaşa əmrlər göndərə bilər və əmrin qəbul edilib -edilmədiyini söyləmək üçün saat cavab verir.

HMI proqramlaşdırıla bilən bir Android tətbiqi ilə edildi, buna görə onu dizayn etməli və Arduino tərəfindəki əlaqəni kodlamalı idim.

Şəkil
Şəkil

İndi başlayaq…

Addım 1: Nə lazımdır?

Nə lazımdır?
Nə lazımdır?
Nə lazımdır?
Nə lazımdır?
Nə lazımdır?
Nə lazımdır?
Nə lazımdır?
Nə lazımdır?

Bu sonsuz saatı qurmaq üçün sizə lazım olan budur (qiymətlər göstəricidir):

  • Arduino nano (2 ABŞ dolları)
  • WS2812 ledlər, metr başına 60 led (6 ABŞ dolları) kimi ünvanlı bir LED şeridi
  • HC-05 kimi bir Bluetooth modulu (3 USD)
  • Çörək taxtası (1.5 USD)
  • 4A və ya daha çoxunu verə bilən 5V -luq bir enerji təchizatı
  • Bir neçə elektrik naqili
  • Android ilə işləyən bir smartfon və KeuwlSoft -dan Bluetooth Electronics tətbiqi
  • Bəzi orta sıxlıqlı lif lövhələr (MDF, biri 3 mm qalınlığında, biri də 10 mm qalınlığında)
  • Şəffaf bir pleksiglas və ya perspeks plakası (təxminən 15-20 ABŞ dolları)
  • Güzgü və yarı əks etdirən güzgü yapışqan filmlər (4-15 ABŞ dolları arasında)
  • Bağlayıcılar, rezistorlar və bir 1000µF tutumlu
  • Bir az yapışqan və yapışqan.
Şəkil
Şəkil

Saat həndəsəsinin prinsipi diaqramı

Pleksi lövhənin qalınlığı 2 ilə 3 mm arasında olmalıdır, buna görə də istifadə edildikdə möhkəm şəkildə yerində qalır.

Yuxarıdakı diaqram saatın həndəsəsini izah edir. Led şeridi iki güzgü arasına yerləşdirilir. Əlbəttə ki, zolaqdakı bu ledlərdən 60 -a ehtiyacınız var. Metrdə 60 led olan onlayn led şeritler tapa bilərsiniz, buna görə onlardan biri yaxşıdır. Sonra led dairənin perimetri 1 m, diametri 100/PI = 31.8 sm -dir (təxminən 12.53 düym).

Komponentlərinizi hazırlayın

3 mm MDF lövhəsində bu diametrli bir dairə kəsin. Bunu etmək üçün yerli fabrikə getdim və lazer kəsicidən istifadə etməyimi istədim. Hörmətlə soruşsanız və lövhə ilə birlikdə gəlsəniz, bunu sizin üçün də edə bilərlər: yalnız bir neçə saniyə çəkir. Orada olarkən eyni diski pleksiglas boşqabınıza kəsin.

MDF lövhəsindən indi bir disk və dairəvi çuxurlu bir boşqab var. Hər ikisini sonraya saxla.

LED -lərin yerində qalması üçün 1 sm qalınlığında MDF -də eyni diametrli nazik silindr kəsin. Çox kövrək olmadığı müddətdə qalınlığı vacib deyil. LED şeridi bu silindrin içərisinə yerləşdiriləcək, buna görə də daxili perimetrin şeridin uzunluğu ilə eyni olması vacibdir. Çox uzun və ya çox qısa və bəzi ledlər nizamsız olaraq aralı ola bilər, buna görə burada çox dəqiq olun.

Belə qalın bir boşqab kəsmək incə olanı kəsməkdən bir az uzun çəkə bilər. Lazer kəsicinin bu qalınlığı kəsə biləcək qədər güclü olub -olmadığını fablab sahibindən soruşun. Mənim üçün lazer o hissə üçün on dəfədən çox keçməli idi, digər lövhədə isə cəmi iki dəfə.

Siz də edə bilərsiniz…

Burada MDF yerinə şəffaf və ya rəngli pleksiglas lövhələrdən istifadə etmək də mümkündür. Pleksiglas qara rəngdən sarıdan yaşıl və bənövşəyə qədər müxtəlif rənglərdə mövcuddur, buna görə də sınamaqdan çəkinməyin.

Şəkil
Şəkil

Fablab onları necə kəsəcəyini bilir və pleksiglas kəsmə, lazer yolunda "yandıra bilən" (lazer enerjisi səbəbiylə rəng dəyişdirmək istədiyim) ağacla müqayisədə çox "təmizdir". Güzgü pleksiglas da mövcuddur ki, bu da sizi güzgü filmi almaqdan xilas edə bilər. Unutmayın ki, kəsərkən lazerin güzgünün arxa tərəfinə göndərin …

Aşağıda lazer kəsmə üçün həndəsə sənədləri verilmişdir.

Addım 2: Saatı yığın

Saatı yığın
Saatı yığın
Saatı yığın
Saatı yığın
Saatı yığın
Saatı yığın
Saatı yığın
Saatı yığın

Saatı düzəltmək üçün sxemə görə hissələri yığmaq kifayətdir.

Davanı hazırlayın

Əvvəlcə güzgü filmini MDF diskinə yapışdırın. Saatın alt hissəsi olacaq.

İkincisi, yarı şəffaf filmi pleksiglas diskinə yapışdırın. Bu, saatın ön şüşəsini təşkil edir. Bu disk MDF lövhəsinə, dairə çuxuruna daxil ediləcək: zəruri hallarda taxta yapışqan istifadə edərək yapışdırın və ya silikon kauçukdan istifadə edin.

Sonda LEDləri hazırlayın. WS2812 LED -ləri 3 birləşdirici yastıqdan istifadə edir: gərginlik təchizatı, torpaq və komanda. Artıq 3 elektrik naqili qoşulubsa, onlardan istifadə edin. Əks təqdirdə, 3 teli birləşdirən yastiqciklərə lehimləyin. LEDlərin qütblü qurğular olduğunu unutmayın: bu, cərəyanın yalnız bir istiqamətdə axması deməkdir. Bu istiqamət zolaqda bir ox ilə göstərilmişdir. Sonra, oxların gəldiyi yerdən zolağın ucundakı telləri lehimləməlisiniz (oxların gəldiyi ucu deyil).

LEDləri qalın MDF silindrinin içərisinə yapışdırın və 3 hissəni yapışqan və / və ya lentlə yığın.

Şəkil
Şəkil

Sonra elektron hissə

Arduino'yu çörək taxtasına qoyun və yuxarıda göstərildiyi kimi dövrə yaradın. Bütün əsasların (GND) bağlı olduğundan əmin olun (Arduinodan GND, HC-05 modulu, LED şeridi və təchizatı).

  • HC-05 Bluetooth modulunun RX və TX sancaqları Arduinonun D3 və D2 sancaqlarına qoşulur.
  • LED şeridinin məlumat xətti D12 pininə bağlıdır, əgər varsa, arasına 300 Ohm rezistor daxil edə bilərsiniz.

Pinləri dəyişdirmək istəyirsinizsə, koddakı təriflərini buna uyğun olaraq dəyişdirin (ino faylının 7 və 13 -cü sətirləri).

Qeyd edək ki, HC-05 modulu aşağıda göstərildiyi kimi RX pimi üçün bir gərginlik bölücü tələb edir. Beləliklə, bir 1000 Ohm və bir 2000 Ohm rezistora ehtiyacınız var.

Şəkil
Şəkil

Təchizat həm Arduino, həm də LED şeridi üçün istifadə olunur. Əvvəlcə 1000µF kondansatörü vida terminalına (domino) bağlayın. Varsa sürətli bağlayıcıdan istifadə edə bilərsiniz. Ətraflı məlumat üçün bura baxın.

Şəkil
Şəkil

Bu kondansatör də qütbləşə bilər: + və - ayaqlarının + və - təchizatına qoşulduğundan əmin olun. Kondansatörün görüntüsündə göründüyü kimi, ayağı böyük bir eksi işarəsi ilə etiketlənir.

Şəkil
Şəkil

Sonra LED şeridini və Arduino lövhəsini bağlamaq üçün bağlayıcıdan elektrik tellərini bağlayın. Yuxarıda dediyimiz kimi, bütün GND bir -birinə bağlanmalıdır. Təchizatın müsbət potensialından, şeridin 5V telini bağlayın və Arduinonun 5V pininə bir tel çəkin: bir anlıq əlaqəsiz buraxın, sonunda bağlayacaqsınız.

Hər şeyi iki dəfə yoxlayın

Bütün əlaqələri iki dəfə yoxlayın … Elektrik davamlılığını yoxlamaq üçün bir multimetrdən istifadə edin.

Hər şey düzgündürsə, saatınız demək olar ki, hazırdır. Hələlik onu təmin etməyin.

Addım 3: Kodu yükləyin

Kodu yükləyin
Kodu yükləyin
Kodu yükləyin
Kodu yükləyin
Kodu yükləyin
Kodu yükləyin

Gəlin proqramlaşdıraq

Kodu Arduino nanoya yükləmək üçün Arduino IDE -dən istifadə edin. Bütün faylları Arduino qovluğunuzdakı "Horloge_LED3_nano_BTOK" adlı qovluğa qoyun. IDE -ni açın, uyğun parametrləri seçin (lövhə növü, COM portu və s.) Və yükləmə düyməsini basın.

Şəkil
Şəkil

Android smartfonunuzda Bluetooth Electronics tətbiqini quraşdırın, Google Play -də asanlıqla tapa bilərsiniz. Bu Təlimatlardan "BluetoothElectronicsCode.txt" faylını yükləyin və uzantısını zip olaraq dəyişdirin: Bluetooth Electronics ilə işləməsi üçün smartfon interfeysi kodu olan bir zip arxivi alacaqsınız.

Hazır olduğunuzda, təchizatı bağlayın. LEDlər yanacaq, HC-05 modulu da əlaqəni axtarmaq üçün açılacaq. Android tətbiqini işə salın və Bluetooth modulunu smartfonunuzla birləşdirmək üçün təlimatları izləyin. Hazır olduqda, HMI -ı işə salın: oynamağa hazırsınız!

Qeyd edək ki,…

Şeridin ilk LED -i saatın üstünə qoyulmalıdır. Orada yerləşdirməmisinizsə, koddakı ofset parametr dəyərini dəyişə bilərsiniz (ino faylının 65 -ci sətri). Bunun qayğısına qalır.

LED Şeridini dayaz silindrin içərisinə yapışdırdığınızda, 2 seçim var idi: ya zolaq saat istiqamətində, ya da saat əqrəbinin əksinə. Səhv şəkildə etsəniz, saat əqrəbləri yanlış istiqamətə dönəcək! Narahat olma. Sens_horaire boole dəyişəninin dəyərini doğru olaraq dəyişdirin (ino faylının 77 -ci sətri)

Şəkil
Şəkil

Addım 4: Zövq alın

Zövq alın!
Zövq alın!
Zövq alın!
Zövq alın!
Zövq alın!
Zövq alın!

Son bir ayar…

İndi vaxtı təyin edin. Bu, HMI -nın sol alt hissəsindəki kiçik konsola yazdığınız sadə əmrlərdən istifadə etməklə edilə bilər.

  • Hxx: saatları xx olaraq təyin edin (məsələn: H4)
  • Myy: dəqiqələri təyin edin (məsələn: M15)
  • Szz: saniyələri təyin edin (məsələn: S30)

Komandalar aralarına bir ulduz daxil etməklə zəncirlənə bilər, məsələn: H4*M15*S35

Saat və / və ya dəqiqələrin təyin edilməsi saniyələri sıfıra sıfırlayacaq.

Daha sonra saatın QIRMIZI LED, dəqiqələri YAŞIL LED ilə izləndiyini görəcəksiniz:

Şəkil
Şəkil

Saat 9:52:00!

Saniyələrin rəngi HMI üzərindəki kaydırıcıdan istifadə edərək dəyişdirilə bilər

Şəkil
Şəkil

Kaydırıcıyı hərəkət etdirdiyiniz zaman sağ tərəfdəki kiçik dairə cari rəngi göstərir. Sürgü dayandıqda, saata rəng göndərir və saniyələrin LED -i buna uyğun olaraq dəyişir.

Animasiya və PALETTE sürgülərindən saatda işıq animasiyalarını seçmək və fərdiləşdirmək üçün istifadə edilə bilər. Onları sınayın və bəzi nümunələr üçün videoya baxın. HMI -da bəzi parametrləri dəyişdirdiyiniz zaman kiçik konsol Arduinodan cavabı göstərir.

Animasiyalar…

  • 0: Sadəcə vaxtı göstərir, kaydırıcıyı istifadə edərək saniyələrin rəngini dəyişə bilərsiniz.
  • 1: Dəyişən amplituda rəngli bir fon (rəngi dəyişə bilərsiniz).
  • 2: Fırlanan göy qurşağı
  • 3: Saniyədə bir dönüş edən rəngli bir band (dəyişdirilə bilər).
  • 4: İkinci əldən sıçrayan rəngli bir zolaq.
  • 5: Rəngli bir fon (palitrasını dəyişə bilərsiniz) təsadüfi amplituda.
  • 6: Sadəcə vaxtı göstərir, saniyə əli parlaq amplitudunu dəyişir.
  • 7: Fırlanan bayraqlar (4 mümkün bayrağı dəyişdirmək üçün palitranı dəyişdirin)
Şəkil
Şəkil

Fransa bayrağı - saat 7:11:51

Bu yaxınlarda təsadüfi seçilmiş bir animasiya üçün hər 15 saniyədə bir dəyişən başqa bir animasiya əlavə edildi.

DAKİKALAR düyməsi saatın hər 5 dəqiqəsində ağ LEDləri yandırır və söndürür.

Şəkil
Şəkil

Saat 7:11:25

Qeyd edək ki, video və fotoşəkillər smartfonla hazırlanıb və buna görə də keyfiyyətsizdir. Rənglər, videoda göründüyündən daha parlaq və daha dəqiqdir …

Başqa?

Ümid edirəm ki, bu sonsuz saatı bəyənəcəksiniz. Görüləcək çox iş var: daha yaxşı etmək üçün MDF ön lövhəsini rəngləyə bilərsiniz, silindrin xarici tərəfinə başqa bir LED şeridi əlavə edərək divarda da cizgi işıq saçın və s.

Şəkil
Şəkil

Addım 5: Dəqiq vaxt saxlamaq üçün yeni versiya

Arduino nanosunun saatı dəqiq bir saat olmadığı üçün zamanla sürüşməyə meyllidir. Dəqiq bir vaxt saxlamaq üçün Real Time Clock (RTC) istifadə edərək başqa bir versiya hazırladım.

RTC müxtəlif modellərdə mövcuddur, çox dəqiq olan (DS1307 ilə müqayisədə) DS3231 modulundan istifadə etməyi məsləhət görürəm. Proqramın bu yeni versiyası burada mövcud olan MD-DS3231 kitabxanasından istifadə edir. Arduino qovluğunda Horloge_LED3_nano_BT_RTC adlı yeni bir qovluq yaradın və bütün faylları yükləyin.

DS3231 -i I2C cihazı, yəni SDA -dan A4 -ə və SCL -dən A5 -ə bağlayın

Əvvəlcə RTC vaxtını təyin etməlisiniz. Məsələn bu Təlimatlara və ya bu təlimata baxın.

Horloge_LED3_nano_BT_RTC.ino faylını Arduino nanoya yükləyin və işlədin. Saat hər 30 dəqiqədən bir yenilənir, buna görə də saat hər zaman dəqiq olaraq qalır.

Əlbəttə ki, batareyanın RTC modulunda olması lazımdır, çünki Arduino tərəfindən təchiz olunmasa belə RTC -ni canlı saxlayır və dəqiq vaxtı saxlaya bilir.

Tövsiyə: