İçindekiler:

Büyüleyici Manyetik Duvar Saati: 24 Adım (Resimli)
Büyüleyici Manyetik Duvar Saati: 24 Adım (Resimli)

Video: Büyüleyici Manyetik Duvar Saati: 24 Adım (Resimli)

Video: Büyüleyici Manyetik Duvar Saati: 24 Adım (Resimli)
Video: 👁️ Objeleri Büyüten Optik İllüzyon #shorts #illüzyon 2024, Temmuz
Anonim
Büyüleyici Manyetik Duvar Saati
Büyüleyici Manyetik Duvar Saati
Büyüleyici Manyetik Duvar Saati
Büyüleyici Manyetik Duvar Saati

Mekanik saatler beni her zaman büyülemiştir. Tüm iç dişlilerin, yayların ve eşapmanların birlikte çalışarak sabit ve güvenilir bir saat elde etme şekli, sınırlı beceri setim için her zaman ulaşılmaz görünüyordu. Neyse ki modern elektronikler ve 3D baskılı parçalar, küçük hassas metalik parçalara dayanmayan basit bir şey yaratmak için boşluğu doldurabilir.

Bu minimalist duvar saati, klasik bir ceviz kaplamanın arkasında mıknatısları döndüren ucuz step motorlar tarafından çalıştırılan bir çift 3D baskılı halka dişliyi gizler.

Başlangıçta STORY Clock'tan esinlenerek, ürünlerinin kullandığı dijital okuma ve yavaş hareket eden bilyalı rulmanlara karşı yalnızca bilyalı rulmanlar kullanarak günün saatini gösteren bir zaman parçası istedim.

resim
resim

Adım 1: Araçlar ve Malzemeler

Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler

Malzemeler:

  • 13 x 13 x 2 inç Kontrplak/Sunta (3 adet hurda ahşabı birbirine yapıştırdım)
  • 13 x 13 inç Sunta
  • Arduino Nano
  • Gerçek Zamanlı Saat
  • Step Motorlar ve Sürücüler
  • Hall Etkisi Sensörleri
  • mıknatıslar
  • Güç kablosu
  • AC Adaptörü
  • Fiş
  • Çeşitli Makine Vidaları
  • Çeşitli Ahşap Vidalar
  • 3D Basılı Parçalar (Son Adım)
  • Kaplama (12 x 12 inç - yüz, 40 inç uzun şerit)
  • Sprey Lake
  • Siyah Sprey Boya

Aletler:

  • 3 boyutlu yazıcı
  • Pusula
  • X-acto Bıçak
  • Zamk
  • Kelepçeler
  • Daire Kesme Jig
  • Testere
  • Disk Zımpara
  • Cırcır Kelepçe
  • keski
  • Hükümdar
  • zımpara
  • Matkaplar
  • Tornavidalar
  • Havya
  • Sıcak yapıştırıcı tabancası

Adım 2: Ahşap Çerçeveyi Birbirine Yapıştırın

Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın
Ahşap Çerçeveyi Yapıştırın

Saatin çerçevesini oluşturacak üç parça ahşabı birbirine yapıştırın. Eski bir karyola çerçevesinden geri dönüştürülmüş yonga levha kullandım.

Adım 3: Daire Kesme Jig Kullanarak Çerçeveyi Kesin

Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes
Daire Kesme Jig Kullanarak Çerçeveyi Kes

Tahtanın ortasını işaretleyin ve bir daire kesme aparatına monte edin. Aşağıdaki çaplarda beş daire kesin:

  • 12 inç
  • 11 1/4 inç
  • 9 1/4 inç
  • 7 1/4 inç
  • 5 3/8 inç

4. Adım: Dişlileri Yazdırın ve Birleştirin

Dişlileri Yazdırın ve Birleştirin
Dişlileri Yazdırın ve Birleştirin
Dişlileri Yazdırın ve Birleştirin
Dişlileri Yazdırın ve Birleştirin

Halka dişliler, küçük bir yazıcıda basılabilmeleri ve bir araya getirilebilmeleri için parçalara ayrılmıştır. Bir sonraki adımda gösterilen fırınlama işlemine yardımcı olmak için tüm parçalar ABS'de basılmıştır. Parçaların tüm kenarlarını ve yüzeylerini zımparalayın.

22. adımda bulunan aşağıdaki miktarları yazdırın:

  • 1 - Saat Halka Dişli Segmenti Mıknatısı
  • 6 - Saat Halka Dişli Segmenti Temel
  • 1 - Saat Tutma Halkası Segmenti Step Montajı
  • 6 - Saat Tutma Halkası Segmenti Temel
  • 1 - Saatlik Hall Etkisi Sensörü Tutucu
  • 1 - Dakika Halka Dişli Segmenti Mıknatısı
  • 7 - Dakika Halka Dişli Segmenti Temel
  • 1 - Dakika Tutma Halkası Segmenti Step Montajı
  • 6 - Dakika Tutma Halkası Segmenti Temel
  • 1 - Dakika Hall Etkisi Sensörü Tutucu
  • 2 - Düz Dişli
  • 1 - Elektronik Montaj

Adım 5: Bölümleri Birlikte "Yapıştırın"

resim
resim
resim
resim
resim
resim

Biraz asetonlu bir cam şişede, başarısız baskıları eski destek malzemesini vb. eritin. Parçaları birleştirmek için her bir dikişin üzerine aseton karışımını boyayın. Sertleştikten sonra, her dikişi düz bir şekilde zımparalayın.

Adım 6: Çerçevedeki Kabartmaları Kesin

Çerçevede Kabartma Kes
Çerçevede Kabartma Kes
Çerçevede Kabartma Kes
Çerçevede Kabartma Kes
Çerçevede Kabartma Kes
Çerçevede Kabartma Kes

Halka dişlileri ve tutma halkalarını çerçeveye yerleştirin ve step motorlar için kabartmaları kesin. İç halkayı çok büyük ölçtüm ve kestim, bu yüzden mağazanın etrafındaki bazı akçaağaç kenar bantlarını kullanarak boyutuna göre ayar yaptım.

Adım 7: Hall Etkisi Sensörleri için Kesinti Açıklığı

Hall Etkisi Sensörleri için Kesinti Açıklığı
Hall Etkisi Sensörleri için Kesinti Açıklığı
Hall Etkisi Sensörleri için Kesinti Açıklığı
Hall Etkisi Sensörleri için Kesinti Açıklığı
Hall Etkisi Sensörleri için Kesinti Açıklığı
Hall Etkisi Sensörleri için Kesinti Açıklığı

Dakika salonu efekt sensörü için iç halkadan ve saat salonu efekt sensörü için yuvadan bir boşluk deliği açın. Bu boşlukları kesmek için bir keski, eğe ve küçük el testeresi kullandım.

Adım 8: Dış Halkayı Yapıştırın

Tutkal Dış Halka
Tutkal Dış Halka

Dış halkayı, küçük tutma halkasının boyutunda yapıştırın ve bantlayın.

Adım 9: Hall Etkisi Sensörü Ayar Vidalarını Kesin

Hall Etkisi Sensörü Ayar Vidalarını Kes
Hall Etkisi Sensörü Ayar Vidalarını Kes

Makine vidalarını bir demir testeresi ile kesin, böylece tutma halkasının ve hall etkisi sensör tutucusunun kalınlığından biraz daha uzun olurlar. Düz bir tornavida ile dişli uçtan ayarlanabilmesi için dişlerde bir yuva açın.

Adım 10: Halkaları Suntaya Yapıştırın

Halkaları Suntaya Yapıştırın
Halkaları Suntaya Yapıştırın
Halkaları Suntaya Yapıştırın
Halkaları Suntaya Yapıştırın
Halkaları Suntaya Yapıştırın
Halkaları Suntaya Yapıştırın

Dış halkadan biraz daha büyük bir sunta çemberi kesin. Dış ve iç halkayı sunta yüzeyine yapıştırın. İç halkayı yerleştirmek için dakika tutma halkasını ve halka dişlisini kullanın. İç halkayı arkaya yapıştırmamaya benden daha iyi dikkat edin. İkinci resim, küçük salon efekt sensörü için yeni bir yuva kesimini göstermektedir.

Suntayı dış halkanın boyutuna indirmek için bir disk zımpara kullanın.

Adım 11: İç Diski Yapıştırın

Tutkal İç Disk
Tutkal İç Disk
Tutkal İç Disk
Tutkal İç Disk

İç diski yerleştirmek için saat tutma halkasını ve halka dişlisini kullanarak iç diski yerine yapıştırın.

Adım 12: Kaplamayı Takın

Kaplama Ekle
Kaplama Ekle
Kaplama Ekle
Kaplama Ekle
Kaplama Ekle
Kaplama Ekle
Kaplama Ekle
Kaplama Ekle

Saatin derinliğinden daha geniş ve saati saracak kadar uzun bir kaplama şeridi kesin (3,14 * saatin çapı, gereken uzunluğu döndürür. Yeterli olduğundan emin olmak için bir inç ekleyin.) Kaplamayı kuru olarak yerleştirin. uzunlamasına kesmek. Kaplamaya bol miktarda yapıştırıcı sürün ve bir kayış kelepçesi ile yerine sabitleyin. Yapışmayı sağlamak için birkaç saat kurumaya bırakın.

Adım 13: Kaplamayı Düzeltin

Döşeme Kaplama
Döşeme Kaplama

Keskin bir keski kullanarak, fazla kaplamayı saatin önünden ve arkasından kesin.

Adım 14: Kaplamayı Kes

Kesim Kaplama
Kesim Kaplama
Kesim Kaplama
Kesim Kaplama

Kaplamamda bazı çatlaklar vardı. Çalışmayı kolaylaştırmak için, bir arada tutmak için ressam bantı uyguladım. Bir pusulada bir x-acto bıçağı kullanarak, kaplamayı saatin yüzünden biraz daha büyük kesin.

Adım 15: Tutkal Kaplama

Tutkal Kaplama
Tutkal Kaplama
Tutkal Kaplama
Tutkal Kaplama

Basıncı saatin yüzeyine yaymak için kesilmiş halkaları kullanın. Kaplamanın bant olmayan tarafına bol miktarda yapıştırıcı sürün. Tahılları saat kadranına dikey olarak yönlendirin ve her birini biraz sıkarak birçok kelepçe uygulayın. Bu, kaplamanın kaymamasını ve yüz boyunca eşit bir baskı oluşturmasını sağlayacaktır.

Saatin ön yüzünde bir çift düz tahta ve arkada bazı cauls kullandım.

Adım 16: Zımparalayın ve Bitirin

Kum ve Finish
Kum ve Finish
Kum ve Finish
Kum ve Finish

Zımpara kağıdı kullanarak, saatin yüzeyindeki fazla kaplamayı dikkatlice çıkarın ve 220 kumdan 600 kuma kadar zımparalayın.

10 ila 20 kat cila uygulayın. Bu, bilyeli yatağın süreceği yüzeyi oluşturacaktır. Havadaki toz ve diğer parçacıklar nedeniyle kaçınılmaz olarak her bilyalı yatağın yolu boyunca çizgiler ortaya çıkacağını düşünüyorum. Daha fazla son kat uygulamak, bunu mümkün olduğunca geciktirmelidir. Ayrıca gelecekteki tamir işlemlerini de kolaylaştıracaktır. Saatimde çizgiler belirirse bu adımı güncelleyeceğim.

Adım 17: Gücü Kurun

Güç Yükle
Güç Yükle
Güç Yükle
Güç Yükle

27/64 inçlik bir matkap ucu kullanarak saatin alt kısmına bir delik açın ve elektrik fişini yerine vidalayın.

Adım 18: Elektroniği Birleştirin

Elektronikleri Birleştirin
Elektronikleri Birleştirin
Elektronikleri Birleştirin
Elektronikleri Birleştirin
Elektronikleri Birleştirin
Elektronikleri Birleştirin
Elektronikleri Birleştirin
Elektronikleri Birleştirin

Elektronik karta step sürücüleri ve gerçek zamanlı saati takın. Arduino'yu sabitlemenin bir yolunu bulmam gerekiyordu, böylece delikler açılmış ve bir fermuar bağı için bir yuva açılmıştı. Bu özellikler, 22. adımda bulunan dosyaya eklenmiştir.

Adım 19: Elektroniği Lehimleyin ve Bağlayın

Lehimleme ve Bağlantı Elektroniği
Lehimleme ve Bağlantı Elektroniği
Lehimleme ve Bağlantı Elektroniği
Lehimleme ve Bağlantı Elektroniği
Lehimleme ve Bağlantı Elektroniği
Lehimleme ve Bağlantı Elektroniği

Blok diyagramı izleyerek tüm bileşenleri birbirine lehimleyin. Halkaları sıcak tutkalla yapıştırın ve başıboş kabloları da sıcak tutkalla sabitleyin.

resim
resim

Adım 20: Arka Plaka

Arka plaka
Arka plaka
Arka plaka
Arka plaka
Arka plaka
Arka plaka

Saatin yüzünden 1/2 inç daha büyük başka bir daire ve iç çapı saatin arkasıyla aynı olan bir halka keserek arka plakayı oluşturun. Halkayı yapıştırın ve bazı yaylı kelepçelerle daire içine alın.

Kuruduktan sonra, iç halkadan 1/8 inç daha geniş bir çizgi çizin ve şerit testere veya disk zımpara kullanarak boyuta göre düzeltin.

Bir yönlendirici veya matkap uçları kullanarak 1 inç uzunluğunda 1/4 inç genişliğinde bir yuva açın. Arkayı saat çerçevesine sabitlemek için dört delik açın.

Siyah sprey boya uygulayın ve kuruduktan sonra saate takın.

Adım 21: Arduino Kodu

Arduino kodu mümkün olduğunca yorumlanır. Programcı olmadığımı unutmayın, minimum arduino deneyimim var (nazik olun). Kod, geçerli saatin "Sıfırlama Zamanı" ile eşleşip eşleşmediğini görmek için sürekli olarak kontrol eder. Şimdiki zamanı adımlara çevirmenin bir yolunu bulamadığım için, kendini günde yalnızca bir kez düzeltir (varsayılan olarak gece yarısı). Gece yarısı dişliler gece yarısı pozisyonuna döner ve 00:01'e kadar o saate hareket ederek bekler ve oradan devam eder. Şu anda olduğu gibi, saat 24 saatlik bir süre içinde yalnızca yaklaşık 5 saniye kaybeder.

Yüklü Stepper ve RTClib kitaplıklarına ihtiyacınız olacak.

Kodun kendimden daha fazla deneyime sahip biri tarafından optimize edilebileceğini biliyorum. Eğer meydan okumaya hazırsanız, lütfen bu projeyi kendiniz için yeniden yaratın ve bilginizi paylaşın.

#Dahil etmek

#include "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // 28BYJ-48 step motorun bir devrindeki adım sayısı Step saatHand(oneRotation, 3, 5, 4, 6); Adım DakikaHand(oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minuteStopSensor 11 int endStep = 0; // Saatin hızı için zaman anlaşması. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Matematik yapmak için geçerli zaman. kayan saat = 0; kayan nokta mn = 0; kayan nokta sc = 0; // Saati sıfırlamak için günün saatini ayarlayın (24 saat formatı). int sıfırlamaSaati = 0; int resetDakika = 0; // Başlangıçta ve sıfırlamada doğru zamanı ayarlamak için değişkenler. float setTimeStepHour = 0; float setTimeStepMinute = 0; şamandıra elGecikmesi = 0; kayan saatTest = 0; float dakikaTest = 0; geçersiz kurulum() { Serial.begin(115200); // Gerçek zaman saatini ayarla ve salon efekt sensörlerini sıfırla. pinMode(hourStopSensor, INPUT_PULLUP); pinMode(dakikaStopSensor, INPUT_PULLUP); rtc.begin(); // Zamanı ayarlamak için aşağıdaki satırı kaldırın. // rtc.adjust(DateTime(2020, 2, 19, 23, 40, 30)); // rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Step motorların en yüksek hızını ayarlayın. saatHand.setSpeed(15); dakikaHand.setSpeed(15); // Akrep ve yelkovan öğlen oluncaya kadar döngü while (digitalRead(hourStopSensor) == LOW || digitalRead(minuteStopSensor) == LOW) { if (digitalRead(hourStopSensor) == LOW) { hourHand.step(2); } başka { gecikme(3); } if (digitalRead(dakikaStopSensor) == DÜŞÜK) { dakikaHand.step(3); } başka { gecikme(4); } } while (digitalRead(hourStopSensor) != DÜŞÜK || digitalRead(dakikaStopSensor) != DÜŞÜK) { if (digitalRead(hourStopSensor) != DÜŞÜK) { saatHand.step(2); } başka { gecikme(3); } if (dijitalOkuma(dakikaStopSensor) != DÜŞÜK) { dakikaHand.step(3); } başka { gecikme(4); } } // Şimdiki saati alın DateTime şimdi = rtc.now(); saat = şimdi.saat(); mn = şimdi.dakika(); sc = şimdi.saniye(); // 12 saat formatına geç if (sa >= 12) { sa = sa - 12; } // Yüz boyunca hangi elin daha fazla hareket etmesi gerektiğini görün ve bu mesafeyi // ayarlanan zamanı buna göre ayarlamak için kullanın. saatTest = sa / 12; dakikaTest = dakika / 60; if (hourTest > dakikaTest) { handDelay = hourTest; } else { handDelay = dakikaTest; } // Geçerli saati ayarlayın setTimeStepHour = (sa * 498) + (dk * 8.3) + ((sc + (el Gecikmesi * 36)) *.1383); // Mevcut dakikayı ayarla setTimeStepMinute = (dk * 114) + ((sc + (el Gecikmesi * 45)) * 1.9); // Hangi elin daha fazla adıma ihtiyaç duyacağını test edin ve bunu for döngüsü için en uzun adım sayısına ayarlayın. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } başka { gecikme(3); } if (i < setTimeStepDakika) { dakikaHand.step(3); } başka { gecikme(4); } } // RPM çalışan saati ayarla hourHand.setSpeed(1); dakikaHand.setSpeed(1); } void loop() { // Saat çalıştırma döngüsünü başlat. for (int i = 0; i < 22; i++) { dakikaHand.step(1); gecikme(setDelay1); // Sıfırlama zamanı için test edin, sıfırlanmaya hazırsa ara verin. if (rtc.now().hour() == resetHour && rtc.now().dakika() == resetDakika) { ara; } } gecikme(setDelay3); for (int i = 0; i < 38; i++) { saatHand.step(1); gecikme(setDelay1); // Sıfırlama zamanı için test edin, sıfırlanmaya hazırsa ara verin. if (rtc.now().hour() == resetHour && rtc.now().dakika() == resetDakika) { ara; } for (int i = 0; i <20; i++) { dakikaHand.step(1); gecikme(setGecikme2); // Sıfırlama zamanı için test edin, sıfırlanmaya hazırsa ara verin. if (rtc.now().hour() == resetHour && rtc.now().dakika() == resetDakika) { ara; } } } // Saati sıfırlama zamanında sıfırla if (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { // Saatin hızını değiştir hourHand.setSpeed(10); dakikaHand.setSpeed(10); // Akrep ve yelkovan öğlene ulaşana kadar döngü. while (digitalRead(hourStopSensor) == DÜŞÜK || digitalRead(dakikaStopSensor) == DÜŞÜK) { if (digitalRead(hourStopSensor) == DÜŞÜK) { saatHand.step(2); } başka { gecikme(3); } if (digitalRead(dakikaStopSensor) == DÜŞÜK) { dakikaHand.step(3); } başka { gecikme(4); } } while (digitalRead(hourStopSensor) != DÜŞÜK || digitalRead(dakikaStopSensor) != DÜŞÜK) { if (digitalRead(hourStopSensor) != DÜŞÜK) { saatHand.step(2); } başka { gecikme(3); } if (dijitalOkuma(dakikaStopSensor) != DÜŞÜK) { dakikaHand.step(3); } başka { gecikme(4); } } // Sıfırlama zamanı geçene kadar burada bekleyin. while (rtc.now().dakika() == resetDakika) { gecikme(1000); } // Şimdiki saati alın DateTime şimdi = rtc.now(); saat = şimdi.saat(); mn = şimdi.dakika(); sc = şimdi.saniye(); // 12 saat formatına geç if (sa>= 12) { sa = sa - 12; } // Yüz boyunca hangi elin daha fazla hareket etmesi gerektiğini görün ve bu mesafeyi // ayarlanan zamanı buna göre ayarlamak için kullanın. saatTest = sa / 12; dakikaTest = dakika / 60; if (hourTest > dakikaTest) { handDelay = hourTest; } else { handDelay = dakikaTest; } // Geçerli saati ayarlayın setTimeStepHour = (sa * 498) + (dk * 8.3) + ((sc + (el Gecikmesi * 36)) *.1383); // Mevcut dakikayı ayarla setTimeStepMinute = (dk * 114) + ((sc + (el Gecikmesi * 45)) * 1.9); // Hangi elin daha fazla adıma ihtiyaç duyacağını test edin ve bunu for döngüsü için en uzun adım sayısına ayarlayın. if (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } else { endStep = setTimeStepMinute; } for (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step(2); } başka { gecikme(3); } if (i < setTimeStepDakika) { dakikaHand.step(3); } başka { gecikme(4); } } saatHand.setSpeed(1); dakikaHand.setSpeed(1); } }

Adım 22: STL Dosyaları

Aşağıdaki miktarlarda dosya yazdırmanız gerekecektir:

  • 1 - Saat Halka Dişli Segmenti Mıknatısı
  • 6 - Saat Halka Dişli Segmenti Temel
  • 1 - Saat Tutma Halkası Segmenti Step Montajı
  • 6 - Saat Tutma Halkası Segmenti Temel
  • 1 - Saatlik Hall Etkisi Sensörü Tutucu
  • 1 - Dakika Halka Dişli Segmenti Mıknatısı
  • 7 - Dakika Halka Dişli Segmenti Temel
  • 1 - Dakika Tutma Halkası Segmenti Step Montajı
  • 6 - Dakika Tutma Halkası Segmenti Temel
  • 1 - Dakika Hall Etkisi Sensörü Tutucu
  • 2 - Düz Dişli
  • 1 - Elektronik Montaj

Adım 23: Solidworks Dosyaları

Bunlar, önceki adımda bulunan STL'leri oluşturmak için kullanılan orijinal Solidworks dosyalarıdır. Dosyalarımı uygun gördüğünüz şekilde düzenlemekten ve değiştirmekten çekinmeyin.

Adım 24: Sonuç

Bu saat beklediğimden daha iyi çıktı. Minimum Arduino deneyimine sahip olduğumdan, nasıl ortaya çıktığına ve ne kadar doğru olduğuna sevindim. Harika görünüyor ve umduğum gibi çalışıyor.

Önerilen: