İçindekiler:
- Gereçler
- Adım 1: Prototip ve Devreyi Test Edin
- Adım 2: Ana Program
- Adım 3: Küpü 3B Yazdırma
- Adım 4: Montaj
- Adım 5: Yükleyin ve İşiniz Bitti
Video: Konum Bazlı Çok Fonksiyonlu Küp Saat: 5 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Fusion 360 Projeleri »
Bu, tarih içeren bir saat, şekerleme zamanlayıcısı ve gece lambası olarak işlev gören OLED ekrana sahip Arduino tabanlı bir saattir. Farklı "fonksiyonlar" bir ivmeölçer tarafından kontrol edilir ve küp saat döndürülerek seçilir.
Yeni bir komidin saati istedim ama kullanmayacağım tonlarca işlevi olan süslü bir saate para harcamak istemedim. Ek olarak, ortalıkta duran bileşenleri ve sensörleri topluyordum, bu yüzden onları kendi saatimi yapmak için kullanmaya karar verdim!
Bu proje için birkaç hedefim vardı:
- Kapatılacak bir seçenekle o zamanı görüntüleyin
- Bir gece lambası işlevi ekleyin
- Alarmlı 15 dakikalık bir şekerleme zamanlayıcısı ekleyin
- Tarihi gösterebilmek
Gereçler
- Arduino Pro Mini 5V
- ADXL335 3 Eksenli İvmeölçer
- DS3231 AT24C32 IIC hassas Gerçek zamanlı saat
- Küçük hoparlör
- OLED Ekran SSD1306 IIC 0,96 inç
- 5V DC güç kaynağı
- LED x 2
- Dirençler 220ohm x 2
- DC varil jakı
- Tel
-
Aletler
- Tel kesiciler/sıyırıcılar
- Havya/lehim
- 3D yazıcı (isteğe bağlı)
- Pro mini ve Arduino IDE arasında arayüz oluşturmak için FTDI programcısı
Adım 1: Prototip ve Devreyi Test Edin
Bileşenleri Arduino'ya bağlayın. Breadboard düzeni veya şeması yukarıda gösterilmiştir. RTC ve OLED, Arduino ile arayüz oluşturmak ve A4 ve A5 pinlerini kullanmak için I2C protokolünü kullanır. İvmeölçer 3 analog pin kullanır. A0, A1, A2 kullandım. LED'ler ve Piezo dijital pinlerden herhangi birini kullanabilir, sırasıyla 4 ve 8 kullandım.
Her bileşenle arayüz. Her bileşenle arayüz oluşturmak için bazı Arduino kitaplıkları kurmam gerekiyordu. Yukarıdaki resimde gösterilmektedirler.
Arduino IDE kullanarak kodlayın. Yapmalarını istediklerime dayalı olarak her bileşen için uygun sözdizimini bulmak için her kitaplık tarafından sağlanan bazı örnek eskizleri inceledim. Her bileşen için ayrı ayrı test etmek için bir taslak oluşturdum. Aşağıda verilmiştir. Piezo hoparlörle başladım çünkü en kolayı buydu. Aslında özel bir kütüphaneye ihtiyacı yoktu, sadece frekansı ve sesi ayarlayan belirli bir fonksiyona ihtiyacı vardı. LED'lerin çalışması için dijital pinlerden birini yukarı ve aşağı çekmek yeterliydi. Ardından, OLED'e geçtim ve bunun kurulumu da oldukça basitti. Aşağıdaki çizim, görüntülenebilecek tüm animasyonları/metinleri içeren bir Adafruit demosudur. Sonra RTC'yi çalıştırmaya çalıştım. Sağladığım çizim, kütüphanedeki geçerli saati alan ve seri monitöre yazdıran bir örneğin parçasıydı. Son olarak, ivmeölçeri test etmek için verilen örneği kullandım. Her eksenin çıktıları seri monitörde yazdırılır.
Şimdi her şeyi bir araya getirme zamanı!
Adım 2: Ana Program
Artık her şeyin ayrı ayrı çalıştığını bildiğime göre, her şeyi bir araya getiren bir program geliştirmeye başlayabilirim. Aşağıda programı yazma sürecimi tartışacağım, ancak kendi projeniz için kullanmak üzere aşağıdaki kodun tamamını indirmekten çekinmeyin. Kodu kendiniz gözden geçirebilmeniz için belirli yorumlar bırakmaya çalıştım.
Oldukça basit olan OLED'de saat ve tarihi görüntülemem gerekiyordu. Seri monitör yerine ekrana şimdiki zamanı yazdırmam gerekiyordu. 24 yerine 12 saatlik bir format göstermesini sağlamak ve uygun olan yerlere 0'ları eklemek/kaldırmak için hesaba katmam gereken birkaç biçimlendirme meselesi vardı. Tarih, ekranda çizilen dikdörtgenler içinde ay ve gün gösterilmesinin eklenmesiyle benzerdi. Zamanlayıcıyı oluşturmak için iç içe bir FOR döngüsü kullandım ve döngünün bitiminden sonra piezoyu başlattım. Adafruit demosundan alınan temel bir animasyon olan zil çalarken ekranı flaş yapmaya karar verdim. Zil sesini kapatmanın tek yolunun küpü saat konumuna geri döndürmesini sağladım. Sonunda, sadece ekranı temizleyerek gerçekleştirilen ekranı kapatmanın bir yolunu istedim. Şimdi, tüm bu fonksiyonların ivmeölçer çıktılarına dayalı olarak çalışmasına ihtiyacım vardı. Her fonksiyonun çalışmasını istediğim her pozisyonun eksen koordinatlarını belirlemek için Accel_Test betiğini kullandım. İvmeölçer çipini elle hareket ettirdim ve okumaları seri monitöre kaydettim. Yukarıdaki diyagram, her konumun çıktı koordinatlarını GRİ renkte verir. KIRMIZI koordinatlar, her konum arasındaki sınırlardır ve bu sayıları programım için kullandım. 4 görüntüleme konumunda yalnızca X ve Y ekseni koordinatlarına ihtiyaç vardır. Gece lambasının beşinci konumu Z eksenini kullanır. Her fonksiyon bloğundan önce ivmeölçer konumları için basit IF ifadeleri kullandım. Farklı bir ivmeölçer kullanırsanız, bu koordinatlar değişebilir ve programda ayarlanması gerekecektir.
Adım 3: Küpü 3B Yazdırma
Saatin nasıl çalışmasını istediğime uyum sağlamak için bir küpün en iyi tasarım olacağını düşündüm. Modeli yapmak için fusion360 kullandım. OLED ve namlu jakı için bir oyuğa ihtiyacım vardı. Ayrıca, her şey kablolandıktan sonra RTC'deki pili değiştirmek için kolay erişim istedim. Arduino'yu gerektiğinde yeniden programlaması kolay olacak bir yönde tutmak için bir yuvaya ihtiyacım vardı. Ek olarak, Arduino'ya erişebilmem için muhafazanın kolayca çıkarılabilir olması gerekiyordu. CAD modelini yukarıda görebilirsiniz ve STL dosyaları aşağıdadır.
Gövdeyi siyah PLA ile %20 dolgulu, 0.2mm çözünürlükte yazdırdım.
Muhafaza veya kılıf, %100 dolgulu, 0,3 mm çözünürlüklü Solutech esnek filamentte basılmıştır. Bu malzemeyi kullandım çünkü vücudun üzerinde esnemeyi kolaylaştıran bir miktar esnekliğe sahip. Ayrıca saati döndürürken daha yumuşak bir his veriyor. Son olarak, gece lambalarının LED'lerinin parlaması için şeffaf bir filaman seçtim.
Adım 4: Montaj
Adım 1'deki şemayı kullanarak her şeyi birbirine bağladım. Arduino'daki bir pime birden fazla kablo lehimlemek zorunda kalmamak için tüm ortak kabloları bağlamak için küçük bir perfboard parçası kullandım. Arduino dışında her şeyi kendi yerine sabitlemek için sıcak tutkal kullanıldı. Sadece belirlenmiş yuvasına itildi. İvmeölçer kartının gövdenin altında dik ve düz olduğundan emin oldum, böylece koddaki koordinatların değiştirilmesine gerek kalmazdı.
Adım 5: Yükleyin ve İşiniz Bitti
Artık doğru zamanı ayarlamak için son program saate yüklenebilir. Hücre pili, güç takılı olmadığında bile zamanı tutmalıdır. Tüm bileşenleri gizlemek için 3D baskılı kılıfı gövdenin üzerine kaydırın ve eksiksiz bir küp saatiniz olsun!
Umarım bu projeyi yapmaktan zevk alırsınız ve benim kadar faydalı bulursunuz. Bu projenin güzel yanı, çok özelleştirilebilir olmasıdır. Alarm işlevi gibi kendi farklı işlevlerinizi eklemekten çekinmeyin, daha büyük bir OLED, FM radyo alıcısı vb. gibi farklı bileşenleri kullanın. İyi seyirler!
Önerilen:
CD4017 Tabanlı Çok Fonksiyonlu Bisiklet Arka Işığı: 15 Adım
CD4017 Tabanlı Çok Fonksiyonlu Bisiklet Arka Işığı: Bu devre, LED kovalayıcı olarak adlandırılan çok yaygın CD4017 LED devresi uygulanarak yapılmıştır.Fakat kontrol kablolarını farklı şekillerde takarak çeşitli LED yanıp sönme yöntemlerini destekleyebilir.Belki bisiklet arka ışığı veya görsel gösterge
DIY Arduino Çok Fonksiyonlu Enerji Ölçer V1.0: 13 Adım (Resimlerle)
DIY Arduino Çok İşlevli Enerji Ölçer V1.0: Bu Eğitilebilir Kitapta, size Arduino tabanlı Çok İşlevli Enerji Ölçer'in nasıl yapıldığını göstereceğim. Bu küçük Metre, elektrik parametreleri hakkında önemli bilgiler gösteren çok kullanışlı bir cihazdır. Cihaz 6 faydalı elektrik parametresini ölçebilir
DİJİTAL ÇOK FONKSİYONLU ÖLÇÜM ARACI: 21 Adım (Resimlerle)
DİJİTAL ÇOK FONKSİYONLU ÖLÇÜM ARACI: Herkese merhaba. Her zaman 3D yazıcı yatağımı dengelememe yardımcı olacak bir cihaz ve doğru uzunlukta çıkartmayı kolayca kesebilmem için yaklaşık bir kavisli yüzey uzunluğu elde etmeme yardımcı olacak başka bir cihaz istemiştim
DIY Çok Fonksiyonlu Manyetik Terapi Cihazı (PEMF, RIFE ..): 5 Adım
DIY Çok Fonksiyonlu Manyetik Terapi Cihazı (PEMF, RIFE..): PEMF olarak da bilinen Darbeli Elektromanyetik Alan tedavisi, aynı zamanda rahatsızlıklar ve yaralanmalar için hızlandırılmış iyileşmeyi destekleyen, ilaçsız, invazif olmayan, ağrı kesici alternatif bir tedavidir
Çok Fonksiyonlu Dijital Termometre: 5 Adım (Resimli)
Çok İşlevli Dijital Termometre: Bu talimat, size bir termometre, kronograf (sayım zamanlayıcısı), geri sayım zamanlayıcısı ve ışık ekranı ile çok işlevli bir platformun nasıl oluşturulacağını gösterecektir. Ayrıca, diğer analog sensörler veya kullanabileceğiniz diğer işlevler için bir platform olması amaçlanmıştır