İçindekiler:

Dişlerini Fırçala!: 5 Adım (Resimli)
Dişlerini Fırçala!: 5 Adım (Resimli)

Video: Dişlerini Fırçala!: 5 Adım (Resimli)

Video: Dişlerini Fırçala!: 5 Adım (Resimli)
Video: Kukuli - Dişlerimi Fırçalarım 2024, Kasım
Anonim
Dişlerini fırçala!
Dişlerini fırçala!
Dişlerini fırçala!
Dişlerini fırçala!
Dişlerini fırçala!
Dişlerini fırçala!

5 yaşındaki oğlum, dişlerini fırçalayan 5 yaşındaki birçok çocuk gibi sevmiyor…

En büyük engelin aslında dişlerini fırçalamak değil, fırçalamak için harcanan zaman olduğunu öğrendim.

Her diş grubuna (sol alt, sağ alt, sol üst, sağ üst, ön) harcadığı zamanı takip etmesi için cep telefonumun geri sayımıyla bir deney yaptım. Bu deneyden öğrendiğim şey, bu görevi onun için çok daha kolay hale getirmesi. Ondan sonra, gerçekten istedi ve hiç şikayet etmeden dişlerini fırçaladı!

Ben de düşündüm ki: Kendi başına kullanabileceği küçük bir geri sayım tılsımı yapacağım, böylece daha bağımsız hale gelir ve umarım dişlerini daha sık ve daha dikkatli fırçalar.

Tam olarak bunu yapan başka kendin yap projeleri ve ticari ürünler olduğunu biliyorum ama biraz kurcalamak ve kendi tasarımımı yaratmak istedim.

İşte tasarımım için kriterler:

  • Mümkün olduğunca kompakt
  • 2 basamaklı sayıları ve işaretleri göster
  • Her diş grubunun başında bir ses çıkar
  • şarj edilebilir
  • Mümkün olduğunca kullanımı basit

Bu İncil'de size onu nasıl tasarladığımı ve yarattığımı göstereceğim.

Eğlence!

Gereçler

  • 1 x Arduino profesyonel mini
  • 2 x 7 segment ekran
  • 1 x basma düğmesi
  • 1 x ototransformatör
  • 1 x piezo buzzer
  • 2 x 470Ω direnç
  • 1 x li-ion şarj cihazı/güçlendirici modül
  • 1 x 17360 li-ion pil (resimde bir 18650 ve tutucu göreceksiniz ama daha kompakt hale getirmek için daha sonra fikrimi değiştirdim)
  • bir tahta
  • bazı teller
  • bazı çift taraflı köpük bant
  • bir muhafaza (ahşap bir tane yaptım, 3D basılabilir)
  • 4 x lastik ayak
  • biraz CI yapıştırıcı

Adım 1: Bileşenleri Lehimleyin

Bileşenleri Lehimleyin
Bileşenleri Lehimleyin
Bileşenleri Lehimleyin
Bileşenleri Lehimleyin
Bileşenleri Lehimleyin
Bileşenleri Lehimleyin

Daha önce bir Arduino Uno ve bir protokol ile bir kavram kanıtı oluşturmuştum, böylece kodu yazabilir ve hangi bileşenlerin kullanılacağına karar verebilirdim. Çok sıkıcı olduğu ve bu kitaba fazla bir şey katmayacağı için sürecin o kısmını paylaşmayacağım.

şemalar

Şemalar Tinkercad'de mevcuttur: https://www.tinkercad.com/things/77jwLqAcCNo-migh… bazı bileşenler kitaplıkta bulunmadığından ve kod çalıştırılamaz olduğundan, belirli bir kitaplığa ihtiyaç duyduğundan tamamlanmamıştır.. Yine de, basit devrenin arkasındaki genel fikri oldukça doğru bir şekilde gösterir.

Aşağıdaki açıklamalarda, kasıtlı olarak hangi pinin neye bağlı olduğunu asla belirtmiyorum. Pin atamasının bileşenlerinizi nasıl yerleştirdiğinize bağlı olacağını düşünüyorum. Bir sonraki adımda Arduino kodunu düzenleyerek pin atamasını nereye ayarlayacağınızı kolayca bulacaksınız

Düzen

İlk önce, Arduino'nun konumuyla ilgili olarak 7 segment hanesinin olmasını istediğim yere perfboard koydum. Bu özel perfboard çok kullanışlıdır: uygun bağlantılara sahip bir proto board gibi tasarlanmıştır ve ayrıca çift taraflı baskılıdır. Segmentleri bir tarafa ve Arduino'yu diğer tarafa ayarlarsam, I/O pinleriyle eşleşecek rakam pinlerinin çoğuna sahip olabilirim ve çok kompakt bir düzen elde ederim!

Kendi panolarınızı basmanın (yapma) bir yolunuz varsa, belki de en iyisi kendinizinkini tasarlamaktır.

Rakamlar

İki basamaklı sayıları ve sembolleri göstermenin en kolay yolunun 7 segment LED basamak kullanmak olduğunu öğrendim.

Arduino ile ilgili olarak 7 segmentli basamak nasıl çalışır?

7 segmentli bir basamakta 10 pin bulunur: her segment için bir tane, nokta/nokta için bir tane ve ortak anot/katot için iki tane (daha sonra A/K olarak adlandırılır) (dahili olarak birbirine bağlıdır). Arduino ile segmentler tarafından kullanılan pin sayısını azaltmak için tüm segmentler ve nokta pinler birbirine ve toplam 8 I/O pini olan bir I/O pinine bağlanır. Daha sonra her segmentin A/K pinlerinden biri başka bir I/O pinine bağlanır. 2 segmentli bir ekran durumunda bu, 10 I/O pin kullanımını toplar (7 segment + 1 nokta + 2 basamak x 1 A/K = 10).

O zaman her hanede nasıl farklı şeyler gösterebilir? Bu G/Ç pinlerini çalıştıran kitaplık, insan gözünün retinal kalıcılığı üzerinde bundan yararlanır. İstenen rakamın A/K pinini açar ve geri kalan her şeyi kapatır, segmentleri uygun şekilde ayarlar ve ardından kendi A/K pinlerini kullanarak diğer rakamlarla hızlı bir şekilde dönüşümlü olarak geçiş yapar. Göz, yüksek frekansta olduğu için yanıp sönmeyi "görmez".

Lehimleme

Önce rakamları ve aralarındaki bağlantıları lehimledim, ardından Arduino'yu diğer yüze lehimledim. Arduino'yu lehimlemeden önce tüm basamak ara bağlantılarını gerçekleştirmenin önemli olduğunu fark edeceksiniz çünkü bu, basamakların arkasına bir kez yerinde erişmenizi önleyecektir.

Uygun bir akım sınırlayıcı direnç seçin

Ekranlarımın veri sayfası, 8mA'lık bir ileri akımı ve 1,7V'luk bir ileri voltajı gösteriyor. Kullandığım Arduino 5V ile çalıştığı için 8mA'da 5 - 1.7 = 3.3V düşürmem gerekiyor. Ohm yasasını uygulayarak: r = 3.3 / 0.008 = 412.5ΩSahip olduğum en yakın dirençler 330Ω ve 470Ω. Güvenli tarafta olmak için, ekranın her diyotundan geçen akımı sınırlamak için 470Ω direnci seçtim. Ekranın parlaklığı o direncin değeriyle ters orantılıdır, bu nedenle her basamak için aynı değeri kullanmak önemlidir.

Piezo zili

Arduino ile nasıl basit bir şekilde ses çıkarır ve aynı zamanda kompakt tutar? Bulduğum en iyi yol, örneğin kapı alarmlarında bulunan ince piezo buzzerlardan birini kullanmak.

Bu buzzer tarafından yayılan sesi yükseltmek için bir yola ihtiyacımız var, çünkü onu doğrudan Arduino'ya bağlarsak ondan bir şey duymak zor. Bu iki yolla yükselteceğiz:

  • voltajı yükseltecek bir ototransformatör ile, ne kadar yüksekse, piezo o kadar yüksek olur
  • pasif bir akustik amplifikatör ile, temelde bir gitar gibi bir kutu: örneğin piezoyu bir kartona bağlarsanız, hemen daha yüksek bir ses fark edeceksiniz.

Aynı kapı alarmında bir ototransformatör bulunabilir, genellikle 3 pimli küçük bir silindirdir. Bir pin Arduino I/O pinine, biri piezo pinine, son pin ise hem Arduino GND'ye hem de diğer piezo kablosuna bağlanır. Piezodan çıkan en yüksek sesi duyana kadar farklı konfigürasyonları deneyin hangi pin olduğunu bilmek zordur.

Güç

Feragatname: Doğrudan bir li-iyon hücreye lehimlemenin kötü bir fikir olabileceğini biliyorum, bundan memnun değilseniz bunu yapmayın.

Devreye küçük bir li-ion hücre ile güç vermeyi seçtim, bu, onu korumak, şarj etmek ve voltajı 5V'a yükseltmek için bir modülün kullanılması anlamına gelir (li-ion hücreler genellikle 3.6V civarında üretir). Bu modülü ucuz bir güç bankasından aldım ve hantal USB-A konektörünü lehimledim.

Modül, hücrenin nereye bağlanması gerektiğini gösterir. USB-A dişi konektörün pin çıkışını çevrimiçi olarak arıyorum Modülden 5VCC kablolarını arduino GND ve VCC pinlerine bağlayabilirim. Arduino'ya 5V'tan daha fazla güç vermeye karar verdiyseniz, bunu RAW pin üzerinden beslemek isteyeceksiniz, böylece yerleşik voltaj regülatörünün ATMega'nın gerektirdiği 5V'a düşürmesine izin verebilirsiniz.

Şarj edilebilir bir güç kaynağı olduğu için ne zaman boşaldığını bilmenin bir yoluna ihtiyacım vardı. Bunun için hücrenin pozitif ucunu Arduino'nun analog pinine bağladım. Kurulum sırasında bu voltajı okuyacağım ve şarj seviyesini değerlendirmek için okunabilir bir yola dönüştüreceğim. Li-ion kapasite formülü hakkında bir öz yazdım. Daha sonra nasıl gösterdiğimi anlatacağım.

Buton

Geri sayımı başlatmak için bir yola ihtiyacımız var ve bunun için bir açma/kapama düğmesi iyi olurdu. GND ve RESET pinleri arasına bağlı anlık bir buton kullanmayı seçtim. Tüm geri sayım döngüsünün sonunda, Arduino derin uyku durumuna geçer ve kapatılıp açılarak veya uygun olan RESET pinini düşük olarak ayarlayarak uyandırılabilir. Bu basma düğmesi, geri sayımı "açmamı" ve istediğim zaman sıfırlamamı sağlıyor. Geri sayımı ne zaman başladığına dair bir geri sayım yapamam ama bence çok da önemli değil.

2. Adım: Kodu Düzenleyin ve Yükleyin

Kodu Düzenleyin ve Yükleyin
Kodu Düzenleyin ve Yükleyin

Ekte kodu bulacaksınız. IDE'nin kitaplık yöneticisini kullanarak kurabileceğiniz veya https://github.com/DeanIsMe/SevSeg adresinden indirebileceğiniz SevSeg adlı bir kitaplık kullanır.

Yüklemeden önce getirmek isteyebileceğiniz birkaç değişiklik var:

geri sayım

Her diş grubu için bir geri sayım görüntülenir. Her grup için 20 saniyeye ayarladım. 5 grup ve arada sembol gösterimi için bazı duraklamalar vardır (aşağıya bakınız), bu nedenle dişleri fırçalamak için harcanan toplam süre yaklaşık 2 dakika olmalıdır. Bunun önerilen zamanlama olduğunu duydum.

Zamanlayıcıyı değiştirmek istiyorsanız, 14. satıra bakın.

Pin atamaları

  • ortak katot ekranları kullanıyorsanız, satır 84'ü "COMMON_CATHODE" olarak değiştirin.
  • segment pimleri için, 82 numaralı satırı değiştirin (şu anda 4 ila 11 olarak ayarlanmıştır)
  • A/K pinleri için 80 numaralı satırı değiştirin (şu anda 2 ve 3 olarak ayarlanmıştır)
  • voltaj sensörü için pin hattı 23'ü değiştirin (şu anda A0'a ayarlı)
  • sesli uyarı için pin hattını 19 değiştirin (şu anda 12'ye ayarlıdır)

Sesler

36. satırdan 41. satıra kadar yaklaşık frekanslarıyla bazı müzik notaları tanımladım, eğer farklı tonlar çalmak istediğinizi düşünüyorsanız, o listeye daha fazlasını eklemek isteyebilirsiniz.

2 farklı ton öder:

  • her diş grubunun başında bir tür cıvıltı, satır 206
  • en sonunda bir "parti" tonu (bir tür ödül), satır 201

Bu tonları değiştirebilirsiniz, listeler bir nota değişimi ve nota süresi içerir, yaratıcı olun!

Animasyon

Her diş grubunun başında, söz konusu grubu simgeleyen bir gösterge bulunur. Beş grup sembolü 71. satırdan 74. satıra kadar tanımlanmıştır. İsterseniz bunu düzenleyebilirsiniz.

Dizinin en sonunda, bu semboller bir tür animasyon oluşturmak için değiştirilir.

Pil seviyesi göstergesi

Dizinin en başında, pil seviyesi 3 saniye boyunca bir "çubuk" göstergesi olarak gösterilir. Her basamakta üç yatay çubuk görüntülenebilir. 6 çubuğun tümü görüntülendiğinde, pilin dolu olduğu anlamına gelir. Pil seviyesi azaldıkça çubuklar yukarıdan aşağıya ve soldan sağa yanmaz. Bunu değiştirebilir ve isterseniz kalan enerji yüzdesini temsil eden bir sayı görüntüleyebilirsiniz, kod 100 satırında bulunur.

3. Adım: Bir Muhafaza Oluşturun

Muhafaza Oluştur
Muhafaza Oluştur
Muhafaza Oluştur
Muhafaza Oluştur
Muhafaza Oluştur
Muhafaza Oluştur
Muhafaza Oluştur
Muhafaza Oluştur

Tasarladığımın Sketchup modelini ekte bulacaksınız.

Devrenizin/bileşenlerinizin kompaktlığına ve boyutuna sıkı sıkıya bağlı olduğu için muhtemelen ihtiyaçlarınızı karşılamayacaktır. İhtiyacınıza göre değiştirin:)

Sanırım 3/16 "huş kontrplak ve düğme kapağı için 1/2" yuvarlak dübel kullandım.

Piezo buzzerın takılacağı kutunun arkasına oyulmuş olduğunu fark edeceksiniz, burası pasif akustik amplifikasyonu yaptığım yer.

Adım 4: Bileşenleri Muhafazaya Yerleştirin

Bileşenleri Muhafazaya Sığdırın
Bileşenleri Muhafazaya Sığdırın
Bileşenleri Muhafazaya Sığdırın
Bileşenleri Muhafazaya Sığdırın
Bileşenleri Muhafazaya Sığdırın
Bileşenleri Muhafazaya Sığdırın

Pili, şarj cihazını/güçlendirici modülünü ve piezo buzzer'ı yerinde tutmak için çift taraflı köpük bant kullandım. Ayrıca bir kısmını perfboard ile kontrplak arasında bir aralayıcı olarak kullandım, yoksa ekran o kadar da güzel olmayan bir şekilde çıkıntı yapacaktı.

Düğmeyi CI yapıştırıcı ile yapıştırdım ama çalıştırırken basınca dayanacak kadar değildi, bu yüzden yerinde tutmak için küçük çaplı bir dübel kullandım (resme bakın).

Piezo zilini kapatmadan önce arka plakaya yapıştırmak için CI yapıştırıcı da kullandım.

Tavsiyem: Montaj sırasında her şeyin arada bir çalıştığını test edin, bazı kısa devre alanlarını birkaç kez yeniden açıp yalıtmak zorunda kaldım!

Alt kısmına biraz lastik ayak ekleyin, profesyonel bir görünüm verir;)

Adım 5: Sonuç

Çözüm
Çözüm
Çözüm
Çözüm

Rakamların ters olduğunu fark edebilirsiniz, bu, bileşenleri yerleştirdiğimden beri yaptığım bir hata. Bu sorunu pin atamasını hareket ettirerek çözdüm, nokta/nokta kullanmadığım için önemli değil.

Her neyse, bu projeyi yapmak gerçekten eğlenceliydi ve çocuğum buna bayılıyor!

Görüş ve önerilerinizi yazmaktan çekinmeyin!

Okuduğunuz için teşekkürler.

Önerilen: