Analog Saatten Dijital Bir "Miyav" Yapın: 7 Adım (Resimlerle)

Analog Saatten Dijital Bir "Miyav" Yapın: 7 Adım (Resimlerle)

İçindekiler:

Anonim

Analog saatiniz yeterince şey yapmıyor mu? Analog bir saat ile dijital şeyler yapmak ister misiniz?

Bu öğretici, Arduino Uno geliştirme kartı aracılığıyla Atmega 328P-PU kullanarak, Kit Cat Clock'un “miyav” bir ses klibini kesin zaman aralıklarında çalmasını nasıl sağlayacağınızı gösterecektir. Benim örneğimde, miyav saat başı gerçekleşecek. Bu da bir Kit-Cat saati olmak zorunda değildir, bu fikir bir mıknatıs motoru kullanan diğer saatlerle işe yarayabilir.

Varsayımlar (zaten her konuda uzmansanız, atlayın)

Proje, bir önyükleyicinin yakılması ve tellerin lehimlenmesi gibi birçok orta ila ileri beceriyi kapsamaktadır. Bu nedenle, devam etmeden önce bazı gerekli bilgi ve becerilere ihtiyaç vardır. Aşağıdakileri nasıl yapacağınızı veya en azından aşağıdakileri yapmaya hazır olduğunuzu bildiğinizi varsayacağım:

Bir önyükleyiciyi Atmel328P-PU üzerine yazma (sizinki zaten yoksa).

Arduino üzerinden Atmel328P-PU'ya “skeçler” yüklemek

Bir terminal emülatörüne veya komut istemine komutları girme (pencereler)

Bileşenler arasında bağlantı yapmak için bir havya kullanın.

Plastik parçaları kesmek / kesmek için matkap veya Dremel aletinin olası kullanımı ve delme delikleri.

Malzemeler

Arduino Uno R3 x 1

Breadboard x 1

Jumper Wire (yeterli parça)

Dirençler:

350 Ohm x 1

150 Ohm x 1

220 Ohm x 1

280 Ohm x 1

10 bin Ohm x 1

330 Ohm x 1 (Breadboard Kurulumunda Arduino kullanırken LED'in istiyorsanız isteğe bağlı)

kondansatörler:

100 uF x 1

10 uF x 1

22 pF x 2 (isteğe bağlı olabilir)

16 Mhz Kristal Osilatör

0,5 Watt'lık küçük hoparlör (yaklaşık 50,8 mm çap) x 1

7.5 Volt AC duvar adaptörü (Toys R Us'de bulunan Vtech markasını kullandım) x 1

7805 Voltaj regülatörü x 1

Havya ve Lehim

Protokol (veya saat çantasına sığacak kadar küçük olacak başka bir son proje kurulu)

Süper yapıştırıcı

Isıyla büzüşen (isteğe bağlı)

Sıcak Tutkal tabancası (isteğe bağlı)

Takane Quartz Clock (Kit Cat'in içindeki varsayılanı, benim yaptığım gibi değiştirmeniz gerektiğini varsayarsak)

Hall efekti sensörü x 1

SS41 Hall etkili sensör ailesini kullandım. Bu sensörler, saat mıknatısı motorundan nispeten zayıf manyetik alanı tespit etmek için yeterince hassastır. Satın aldığım belirli burada bulunabilir

Gereçler:

Adım 1: Genel Projeye Genel Bakış:

Bu projenin ilginç bir yönü, Atmel 328P-PU dijital dünyası ile etkileşime geçmek için analog cihazlar (bu durumda bir analog saat) kullanıyor. Arduino muhtemelen bunu başarmanın en basit yollarından biridir. Atmel çipine beslenecek dijital bir darbe oluşturmak için klasik Kit Cat saatlerinde bulunan tipik saat motorunu kullanacağım. Bunun çalışmasının nedeni, saat motorunun, saat ibrelerini döndürmek için gerekli mekanik torku oluşturmak için bir bobinin yakınında bulunan sabit bir mıknatıs kullanmasıdır. Saat motorundan gelen manyetik akıyı tespit etmek için bir Hall Efekt sensörü kullanarak bu manyetik alandan faydalanacağım. Mıknatıstaki kutuplardan biri sensöre baktığında sensör dijital bir YÜKSEK çıkış yapacak ve karşı kutup sensöre yakın olduğunda DÜŞÜK çıkış verecektir. Bu kutup geçişi her saniye meydana gelir veya 1 Hz frekansa sahiptir ve bunun saatli eller için sürüş için ideal bir motor görevi görmesinin nedenidir.

Not: Sensör mıknatısa gerçekten temas etmiyor, sadece çok yakın. Resimler okumaları almak için sensörü yerleştirmek için ne kadar gerekli olduğumu gösteriyor.

Buradaki resimler gerçek saatin içini ve mıknatıs motorunun sağ tarafını göstermektedir. Saat tipine "Takane Kuvars" denir ve ucuz analog saatlerde oldukça yaygındır.

Sensörden sürekli bir darbe geldiğinde, dijital olarak her türlü şey yapılabilir ve gerçekten yapabilecekleriniz hakkındaki hayal gücünüzle sınırlıdır. Bu derste sadece saat vuruşlarını sayan bir sayaç yapacağım (Hall sensöründen) ve sayımı bitirdikten sonra “miyav” bir ses klibi çalıyor.

İlk adım, Hall sensörünün mıknatıs motoruna yeterince yakın monte edilmesini içerir, böylece iyi bir okuma alabilirsiniz. Bir çıkış elde etmek için sensörü mıknatıs motoruma çok yakın yerleştirmem gerekiyordu. Sensörün çıkış pinine bir LED gibi bir şey takarak sensörü test edebilir ve sonra saati açabilirsiniz. Bu işe yararsa, LED her saniye yanıp sönmelidir. Bunun nedeni, kutuplardan biri sensöre bakarken çıktının sadece YÜKSEK olmasıdır (diyelim Kuzey kutbunu örnek olarak söyleyelim); karşı kutup (güney) sensöre dönük olduğunda, çıkış LOW'dur.

Okumalarınızı almak için uygun bir yer ve mesafe belirledikten sonra, oraya kalıcı olarak nasıl monte edileceğini düşünmeye başlamalısınız. Sensörü yerinde tutmak için süper yapıştırıcı kullanmayı seçtim. Ayrıca arka kasanın olacağı yer yüzünden de düşündüm. Sensör pimlerinin erişilebilir olması için küçük bir dikdörtgen delik açmam gerekti. Neyin en iyi sonuç vereceğini belirlemelisiniz, çünkü bu saatler neredeyse aynı olmasına rağmen, bazen düzen iç kısımda biraz farklıdır ve sensörün yerleşimi sahip olduğunuz saate göre değişebilir.

Adım 2: Sensörün Giriş Pimlerine Tel Lehimleme

Şimdi pimleri tel lehimleme zamanı. Bunu yapmamın sebebi iki nedenden kaynaklanıyordu: İlk önce sensörü çalışmaya devam ederken test edebilmek ve ayrıca bunları breadboard'unuza ve son olarak protokole bağladığınızda bu tellere ihtiyaç duyacağınız için. Farklı renkli tellerin kullanılması, pimleri hızlı bir şekilde tanımlamanız gerektiğinde daha kolay olabileceğini unutmayın. Ben de öyle yaptım.

Pinout yapılandırması bu sitede bulunabilir

Adım 3: Ses Dosyasını Hazırlama

Bir.WAV dosyasını bir C dosyasına nasıl dönüştürebileceğinizi zaten biliyorsanız, bu adımda atlayabilir veya gözden geçirebilirsiniz.

Sensör breadboard üzerindeki uygun pimlere tutturulduğundan, ses taslağını Atmel328P'ye yüklemeniz gerekecektir. Ancak önce, bazı değişiklikler ve “masaj” yapılması gerekiyor. Burası kendi değişikliklerinizi yapabileceğiniz yerdir ve Audacity ve wav2c programlarının kullanımıyla ilgili detayların bir kısmına (hepsine değil) gireceğim. Devam etmeli ve Arduino IDE'nizde verdiğim kodu açmalısınız. Taslağı Arduino IDE'de açtığınızda, ilk sekme Michael Smith tarafından yazılmış PCM ses taslağının ufak bir tadilatıdır, orijinali Arduino sitesinde bulunabilir:

playground.arduino.cc/Code/PCMAudio

Audacity bir ses düzenleme programıdır. Çok güçlüdür ve bir.wav dosyasının 8 bit mono, imzasız.wav dosyası olarak dışa aktarılmasını sağlar. Bu, dosya boyutunu küçültmek ve ayrıca ses oynatma taslağıyla uyumluluğu en üst düzeye çıkarmak için gereklidir. Farklı bit oranlarında ve boyutlarında çalışabilirsiniz, ancak denemedim. İşin yapılması için Audacity'deki gerekli özellikleri yalnızca kullanacağız.

Wav2c, adından da anlaşılacağı gibi, bir.wav dosyasını bir C dosyasına dönüştürebilir. Bu ayrıca gereklidir, çünkü.wav dosyası kendi başına 328P-PU belleğine sığmayacak kadar büyüktür. Bu yazıdan itibaren kaynak kodunu doğrudan github'dan indirebilirsiniz. Derlenmiş sürümleri başka web sitelerinden de alabilirsiniz. Her iki durumda da, dönüştürme işlemi için bu programı veya başka bir benzer programı kullanmanız gerekir.

github.com/olleolleolle/wav2c

Adım 4: Audacity ve Wav2c Kullanımı

Ses dosyası dönüşümünün amacı, bir ses dosyası (.wav) almak ve yararlı bir C başlık dosyası belgesine dönüştürmektir. Bu, arduino'nun başlık dosyasındaki bilgileri bir hoparlörden ses olarak çıkarılmasını sağlar.

-İlk olarak Audacity'deki dosyayı açın.

-Proje oranını 8000 Hz olarak değiştiriniz (sol alt köşede bulunur).

-Sonra menüden “izler” seçin ve “resample” seçin.

-Sonra bir ihracat> diğer sıkıştırılmamış dosyaları yapın.

-Under seçenekleri 8 bit imzalı seçin.

Bu, dosyayı aşağıdaki C dosyasına dönüştürme aşaması için hazırlayacaktır.

-Sonra bir terminal aç ve dosya ile aynı dizine geç.

- Kuyruğunu kesmek için (sox) aşağıdaki komutu çalıştırın

-Daha sonra gerçekten dönüşüm yapmak için son komutu çalıştırın.

(orijinal dosyanın bir kopyasının gerçekten dönüştürüldüğüne dikkat edin)

-Sonra, arduino IDE'yi açın ve yeni bir boş sekme ekleyin (yeni bir sekme ekleme düğmesi Arduino IDE'nin en sağında).

Sekmeyi başlık dosyasıyla aynı adla yeniden adlandırın.

- İçeriği kopyalayın ve sekmeye yapıştırın

Adım 5: Sesinizi Test Etme

Artık sounddata.h dosyasını hazır hale getirdiğinizden ve Arduino taslağını doğruladığınıza göre, şimdi yonganıza yüklemelisiniz. Arduino kartını doğrudan ilk testlerimin tümü için kullandım, ancak daha sonra kalan testim için "Breadboard'daki Arduino" yapılandırmasını kullandım. Diyagramı buraya ekledim.

Her şey yolunda giderse, saatinizi açın ve darbeleri saatten saydığından ve ardından çıkış sağladığından emin olmak için test edin. Not: Bunu ilk yaptığımda, ses çalma sayacını her 60 saniyede bir ayarladım, böylece çalışıp çalışmadığını görmek için bir saat beklememe gerek kalmadı, sonra sayacı 3600 saniye veya 1 saat olarak değiştirdim). Miyav aralığını değiştirmek için, son satırların yanındaki kod parçasını bulun ve clockCount değişkenini bulun. İstediğiniz değere değiştirin.

Adım 6: Daha Kalıcı, Kompakt Tasarım İçin Her Şeyi Lehimleme

Şimdi eğlence kısmı için … breadboard'unuzdan daha kompakt bir protokole kadar bütün önemli parçaları lehimleyin. LED çıkışı veya sıfırlama düğmesi gibi her şeye ihtiyacınız olmayacak (Breadboard devresindeki Arduino'dan bir tane varsayalım). Bunu yapmanın çok daha iyi yolları var, ancak sınırlı tedarikiniz varsa, protoboard muhtemelen en iyi seçeneğinizdir. Artık birçok kişi kendi PCB gravürünü ve işlemlerini yapıyor. Bunu yapabiliyorsan, elbette ki yap, çünkü protokolden çok daha iyi.

Ayrıca AC adaptörünüzü, voltaj regülatör pimlerini karşıladığı protokolün pozitif ve negatif düğümlerine bağlamanız gerekir. Vtech 7.5 volt modelini kullandım. Bunlar Target'ta yaklaşık 10 dolar ve Toys R Us'de 12. Ya da evin etrafında yattığınıza benzer bir şey kullanabilirsiniz. Dikkat: Regülatör ve adaptör arasındaki voltaj farkını minimumda tutmaya çalışmalısınız, çünkü aksi takdirde ısınır. Fark büyükse, o zaman ısıyı dağıtmaya yardımcı olmak için regülatöre bir ısı emici koymalısınız. 7805 ve Vtech AC adaptör arasındaki voltaj farkı 300mA'da sadece 2,5 volt, ancak üzerinde küçük bir soğutucu yerleştirmelisiniz.

Not: Atmega çipindeki çizimden memnun olduğunuzdan / memnun olduğunuzdan emin olun, çünkü tahtada bir kez lehimlendikten sonra yeniden programlayamazsınız.

Not: Aynı zamanda, saat muhafazasının alt kısmında küçük bir delik açmak için dremel kullandım, böylece güç adaptörü kablosu düzgünce sığacaktı. Ayrıca saati değiştirirken keskin kenarları kesmek ve sadece iç kısımları temizlemek gibi diğer şeyler için de kullandım.

Adım 7: Herşeyi Düzenleme ve Saatin İçine Takma

Tüm teller ve bileşenlerin uygun bir şekilde lehimlenmesini sağladığınızda, şimdi kablolamayı organize etme ve tahtanın Kit Cat muhafazasına uygun şekilde yerleştirilmesine karar verme zamanıdır. Burada asıl kaygı her şeyi kuyruk ve gözlerin hareketine engel olmayacak bir noktaya yerleştirmektir. Ayrıca, hoparlöre ne kadar zor yerleştirilebileceğinin farkında değildim, bu yüzden hoparlörü kuyruk motoru armatürünü engelleyecek bir yere monte etmek için bazı delikler açmak zorunda kaldım.

Kurul için bir yer bulmak zor olabilir ve bir miktar deneme yanılma gerektirebilir. Akü yuvasının yanına, sola doğru bir yere yerleştim. Daha sonra, yerinde kalmasını sağlamak için tahtanın kenarlarında sıcak tutkal tabancası kullandım. Kabloları düzgün bir şekilde düzenlemek ve gruplamak için çekme bağları veya fermuar bağları bulabilirsiniz.

Bunu yapmaya karar verdiğiniz teknik ne olursa olsun size bağlıdır, çünkü saat muhafazasındaki her şeye uyum sağlamak saatinize ve içine giren malzemelerin miktarına bağlı olacaktır.

Finalisti

Sensörler Yarışması