İçindekiler:

Arduino XMAS Hitcounter: 6 Adım (Resimlerle)
Arduino XMAS Hitcounter: 6 Adım (Resimlerle)

Video: Arduino XMAS Hitcounter: 6 Adım (Resimlerle)

Video: Arduino XMAS Hitcounter: 6 Adım (Resimlerle)
Video: Arduino XMAS Bell Ringing Hit Counter 2024, Kasım
Anonim
Arduino XMAS Hit Sayacı
Arduino XMAS Hit Sayacı
Arduino XMAS Hit Sayacı
Arduino XMAS Hit Sayacı

Noel yaklaşıyor, işte sizi doğru havaya sokmak için yaptığım katkı. Bir zil çalan bir blog hitcounter. Kelimenin tam anlamıyla. Birisi blogunuza her vurduğunda yüzünüzde bir gülümseme yaratır.

Bir Arduino kartı, bir zil, bir servo ve c, python ve php'de birkaç satır koddan oluşur. Çoğu parça oldukça yaygındır ve elde edilmesi kolay olmalıdır.

Adım 1: Araçlar ve Malzemeler

Araçlar ve Malzemeler
Araçlar ve Malzemeler

Peki ne gerekli?

  • Arduino Kurulu. Adafruits'ten Arduino Diecimila aldım. Bu arada gerçekten ucuz ve kullanışlı klonlar var, ör. Modern Devices'ın gerçekten çıplak kemik tahtası, özellikle de bunları bir devre tahtasında kullanmak istiyorsanız.
  • Bir servo motor. Herhangi bir servo yapacak. Eski hobimde kullanılan eski bir tane aldım.
  • Zil. Tercihen servo ile sallayacak kadar küçük olan.
  • İki ataç. Zili tutmak için büyük bir tane ve zili çalmak için aktüatörü inşa etmek için küçük bir tane.
  • Servoyu Arduino ile bağlamak için teller.
  • Bir internet sitesi. Aslında bunun bir web sitesi veya blog olması gerekmiyor. Aslında sayılabilecek her şey işe yarayacaktır.
  • Arduino kartını blog veya web sitesine bağlamak için bir PC veya Mac.

Teller doğrudan Arduino'ya bağlanamıyorsa bir havyaya ihtiyacınız olabilir.

Adım 2: Donanım Montajı

Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı

Zil güçlü bir ataş tarafından tutulur. Küçük ataç, servo motora takılan bir tür kol oluşturmak için kullanılır.

Zili tutan ataşı bir şekilde bükmek istediğinizi, zaten biraz sallamanın bir ding oluşturduğunu unutmayın.

Adım 3: Şemalar

şemalar
şemalar

Gerçek bir şematik yok. Sadece servo motoru Arduino'ya takın. Servonun üç kablosu vardır:

  • sarı veya turuncu: sinyal
  • kırmızı: VCC
  • kahverengi: GND

Kırmızı ve kahverengi olan Arduino'daki (5V ve GND) ilgili pinlere bağlanır. Turuncu olan pin 2'ye bağlanmıştır. Servoya hangi yöne döneceğini bildirecektir. Teller doğrudan Arduino'ya veya servoya uymuyorsa, küçük konektörleri tellere lehimlemek isteyebilirsiniz.

Adım 4: Arduino'yu Programlama

Arduino'yu Programlamak
Arduino'yu Programlamak

Arduino Arduino'da yeniyseniz, AVR mikrodenetleyici ile tamamen monte edilmiş küçük bir karttır. Ortamınızla hacklemek ve etkileşim kurmak için çok uygundur. Mikrodenetleyicilerle zor olan birçok şey Arduino ile oldukça kolaydır. Avantajlardan bazıları:

  • ayrı bir programlama cihazına gerek yok (programcı)
  • entegre bir geliştirme ortamı (IDE) ile birlikte gelir
  • Windows, Mac, Linux gibi herhangi bir platformda çalışır.
  • USB ile PC'nize kolay bağlantı
  • donanım açık kaynaktır (ancak Arduino adı değildir)
  • harika bir topluluğu var

Daha fazla bilgi resmi Arduino web sitesinde bulunabilir. Arduino'ya nasıl başlayacağınızla ilgili daha fazla ayrıntı için John's Arduino talimatına göz attığınızdan emin olun. Yazılım ne yapar? Arduino'ya yüklenen küçük yazılım parçası servoyu kontrol eder. USB kablosu üzerinden seri bağlantı yoluyla tek bayt alır. 5 değerini alırsa servo kolunu beş defa ileri geri hareket ettirir. Yani gönderilecek maksimum değer 255'tir. Ardiuno'yu programlayın Arduino.cc'den en son Arduino IDE'yi indirip kurduğunuzu varsayıyorum. Şimdilik 0010 Alpha sürümüdür. Servoyu daha rahat sürmek için bir kitaplık indirmeniz gerekir. Arduino Oyun Alanında bulabilirsiniz. Sıkıştırılmış dosyayı açın ve klasörü …/arduino-0010/hardware/libraries/ içine yerleştirin.

  • Arduino'yu USB kablosuyla PC'nize bağlayın.
  • IDE'yi açın ve yeni bir çizim başlatın. Sketch, Arduino'nun program için konuşmasıdır. Dosya -> Yeni'yi seçin.
  • Uygun seri cihazı seçin (Araçlar -> Seri Bağlantı Noktası). Bu, ortamınıza bağlıdır, benim için /dev/tty.usbserial-A4001JAh.
  • Ekli kaynak dosyayı indirin ve yeni çizime yapıştırın. Kaydet düğmesine basın.
  • Doğrula düğmesine basın. Bu, çiziminizi Arduino'nuza aktarılabilecek bir hex dosyasında derler.
  • Çiziminizi Arduino'ya aktarmak için yükle düğmesine basın.

Test Ediliyor Şimdi vuruş sayacınız bazı eylemler için hazır. Bakalım işe yarayacak mı?

  • Seri monitör düğmesine basın.
  • Gönder düğmesinin yanındaki metin kutusunu seçin.
  • Sekme tuşuna basın ve gönderin.
  • Şimdiye kadar servo kol ileri ve geri hareket etmelidir.

Vay canına. En zor kısmı buydu. Şimdilik Arduino'ya bir bayt ve size gelen servo dalgaları gönderebilirsiniz. Sonraki, zili tetiklemek istediğiniz bir şey bulmaktır. Neredeyse bitirdik.

Adım 5: Bir Hitcounter Yapın

Web siteniz için bir hitcounter yapmak için iki küçük kod parçasına ihtiyacımız var. Bir iki sayacı oluşturur ve onunla ilgilenir ve bir saniye sayacın değerini almak ve Arduino'ya göndermek için.

Not: Python veya PHP ile aşina değilseniz, komut dosyaları kolayca favori programlama dilinize taşınabilir. Sayaç Burada bir dosyadan (hitcounter.txt) bir değer okuyan, onu artıran ve yazan küçük bir PHP komut dosyası var. dosyaya geri döner. Hepsi bu, bu gerekli. Bu dosya örneğin sunucunuza counter.php olarak kaydedilebilir. Ardından, web tarayıcınız https://www.alanadiniz.com/counter.php'yi işaret ederek bir sayımı tetikleyebilirsiniz. Bu pasajı wordpress bloguma ekledim. $hits = dosya($count_my_page); $hit = trim($hits[0]); $hit++; $fp = fopen($count_my_page, "w"); fputs($fp, "$isabet"); fclose($fp); yankı $hit; ?>Yapıştırıcı kodu Bu sonraki kod parçacığı, sayacı getirmek için kullanılır. Python kullandım ama her şey işe yaramalı. Bir HTTP bağlantısı açar ve hitcounter.txt dosyasını getirir. Son alımdan sonra değer değiştiyse, fark hesaplanır ve Arduino'ya gönderilir. Bu, komut dosyasını crtl-c ile kesene kadar her on saniyede bir yapılır. Aşağıdaki myUrl ve seri bağlantıyı ihtiyaçlarınıza göre uyarlayın. # # getirme sayacı # içe aktarma zamanı içe aktarma urllib seri alma # arduino'ya usb seri bağlantı ser = serial. Serial('/dev/tty.usbserial-A4001JAh', 9600) myUrl = 'https://tinkerlog.com/hitcounter.txt ' last_counter = urllib.urlopen(myUrl).read() while (Doğru): _ counter = urllib.urlopen(myUrl).read() _ delta = int(counter) - int(last_counter) _ print "counter: %s, delta: %s" % (sayaç, delta) _ ser.write(chr(ord(chr(delta)))) _ last_counter = sayaç _ time.sleep(10) php uzantılı dosyaları yükleyemedim, bu yüzden siz counterphp.txt dosyasını counter.php olarak yeniden adlandırmanız gerekir. Arduino'nuz hala PC'nize bağlıysa, hit sayacınızı almak için Python betiğini başlatın…>python counter.py ve sayacın çıktısını görmelisiniz. Tarayıcınızı counter.php'nizin URL'sine yönlendirir ve yeniden yükle'ye basarsanız, hitcounter'ınızın çaldığını duymalısınız. Evet, şimdi işimiz bitti. Arkanıza yaslanıp işimizin tadını çıkarma zamanı.

6. Adım: Sonuç

Çözüm
Çözüm

İlk defa hareketli parçaları olan bir şey yaptım. Bu, sanal ve gerçek dünya arasındaki boşluğu doldurmanın ilk adımıdır. Ve gerçekten kolaydı, kod düz ileri. Ayrıca zil hariç parçaların çoğu çöp kutumdaydı. Her şeyi bir araya getirmek ve birinin bloguma girmesini beklemek eğlenceliydi.

Umarım keyif almışsınızdır.

Önerilen: