İçindekiler:
- Adım 1: Plan
- 2. Adım: OLED Ekran
- 3. Adım: SD Kart ve Adaptör
- Adım 4: Tuş Takımını Oluşturma
- Adım 5: Her Şeyi Bir Araya Getirmek
- Adım 6: Tuş Takımını Ayarlama
- Adım 7: Kodlayalım
- Adım 8: Vakayı Oluşturma
- Adım 9: Eğlenin
Video: NodeMCU Kullanarak Kriket Skor Tahtası: 9 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Merhaba! Kısa bir süre önce IoT (Nesnelerin İnterneti) dünyasıyla bu alanda en popüler cihaz olan ESP8266 ile karşılaştığımda tanıştım. Bu küçücük ve ucuz cihazın sunduğu sayısız olasılık beni şaşırttı. Şu anda bu konuda yeni olduğum için, onu kullanarak bir proje yapmaya ve yol boyunca öğrenmeye karar verdim. Böylece, projeler ve fikirler için interneti aramaya başladım.
W. A. Smith tarafından Arduino Cricket Score Ticker adlı harika bir projeye rastladım. Bu projede Arduino, Ethernet Shield ve SD kart ile birlikte Cricbuzz'dan canlı kriket skorlarını görüntülemek için kullanılıyor. Bu proje beni düşündürdü.
Ben Hindistanlıyım ve Hindistan'ı duyduktan sonra akla gelen ilk şey Kriket. Burada kriket dindir. Maçın tamamını izlemek için televizyon karşısında oturmak bazen zorlaşıyor. Öyleyse, neden izleme skorunu kolay, kablosuz ve taşınabilir hale getiren bir şey yapmıyorsunuz? Sadece bir bakışta sizi güncel tutmak için yeterli bilgiyi gösteren özel bir küçük cihaz.
Bir kriket hayranı değil misiniz? Sorun değil! Kod, herhangi bir XML dosyasından veri almak için kullanılabilecek XML ayrıştırıcısını içerir. Verileri almak için sadece doğru işlevleri kullanın.
Adım 1: Plan
Plan, internete erişmek ve devam eden/yaklaşan maçlarla ilgili tüm bilgileri içeren XML kodunu Cricbuzz'dan istemek için NodeMCU Geliştirme Kurulu'nu (ESP-12E modülü ile) kullanmaktır. Bu kod, SD karta bir.xml dosyası olarak kaydedilir. Dosya daha sonra gerekli verileri XML kodundan ayrıştırmak için SD karttan okunur. Bilgileri ayrıştırmak için W. A. Smith'in kodunu kullanacağım. Onun çabaları sayesinde. Arduino ve Ethernet Shield kullanarak aynısını yapmak istiyorsanız projesine göz atın.
Benim fikrim mümkün olduğunca küçültmek, özel bir PCB ve bunun için kasa oluşturmak. Şimdilik bir prototip yapalım. Ama önce, bu projede kullanılan bileşenleri tanıyalım.
Başlayalım
2. Adım: OLED Ekran
Küçük boyutu nedeniyle bir OLED ekran kullanmaya karar verdim ve ucuza satılıyorlar. Maç bilgilerini görüntülemek için yeterli olacak 0.96 ekran kullanıyorum. Ekranın herhangi bir boyutunu kullanabilirsiniz.
Kullandığım ekran, SSD1306 sürücüsü ve I2C (2 telli) arabirimi olan tek renkli bir ekran. Ekranın SPI versiyonları da mevcuttur. Onları çalıştırmak kolay bir iştir. Ekranları çalıştırmak için gereken SSD1306 ve GFX kitaplıklarını indirin. Bu kütüphaneleri yazdığı için Adafruit'e teşekkürler.
Bağlantılar çok basit.
- GND'den GND'ye dönüştürücü
- VCC'den 3.3V'a
- SCL'den D1'e
- SDA'dan D2'ye.
3. Adım: SD Kart ve Adaptör
SD kart, tüm bilgiler ayrıştırılana kadar XML dosyasını Cricbuzz'dan saklar. Gerekli bilgiler görüntülendikten sonra dosya silinir. 10 - 20 kB'lık bir XML dosyasını depolamak için bir SD kart kullanmak biraz abartılı ama ayrıştırmayı çok daha kolay ve anlaşılır hale getiriyor.
Herhangi bir hafıza kartı kullanılabilir. Küçük form faktörü için mikro SD kartı seçtim. Kabloları doğrudan SD karta lehimleyebilirsiniz, ancak bir devre kartı kullanmak işi kolaylaştırır. Tüm SD kartların 3.3V ile çalışması gerektiği unutulmamalıdır. Bu sadece 3.3V ile beslenmesi değil, mikrodenetleyici ile SD kart arasındaki iletişimin de 3.3V mantık seviyesinde olması gerektiği anlamına gelir. 3.3V üzerindeki voltaj ÖLDÜRÜR! NodeMCU'nun kendisi 3.3V üzerinde çalıştığı için NodeMCU söz konusu olduğunda bu konuda rahatsız olmayacağız. 5V lojik seviyeli başka bir mikrodenetleyici kullanmayı planlıyorsanız, devre kartınızın yerleşik bir seviye değiştiricisi olduğundan emin olun (Resimde gösterildiği gibi). Temel olarak 5V'yi mikrodenetleyiciden SD kart dostu 3.3V'a dönüştürür veya 'kaydırır'. Seviye değiştiriciyi 3.3V ile birlikte kullanmak (benim yaptığım gibi) çalışmasını etkilemez.
SD kart, iletişim için SPI arayüzünü kullanır. CS veya Chip Select pini herhangi bir GPIO pinine bağlanabilir. GPIO15'i (D8) seçtim. GPIO15 dışında bir pin kullandıysanız sadece kodda gerekli değişiklikleri yapın.
- SCK'den D5'e
- MISO'dan D6'ya
- MOSI'den D7'ye
- CS'den D8'e
- VCC'den 3.3V'a
- GND'den GND'ye dönüştürücü
SD kartınızı biçimlendirin
Kullanacağımız kütüphane FAT16 veya FAT32 dosya sistemlerini desteklemektedir. SD kartı doğru biçimde biçimlendirdiğinizden emin olun.
Adım 4: Tuş Takımını Oluşturma
Projeyi mümkün olduğunca küçük tutmak istiyorum. Bu yüzden tuş takımı için ayrı bir kart yapmaya ve daha sonra ana kartın üzerine monte etmeye karar verdim. Bu biraz yerden tasarruf sağlayacaktır.
Hazır bir anahtar matrisi satın alınabilir, ancak etrafta basma düğmelerim vardı. Ayrıca, mümkün olduğunca küçük yapmak istedim. Sıraları ve sütunları birbirine bağlayan tipik bir düzenleme, 3 x 3 matris için toplam 6 GPIO pinine ihtiyaç duyar. OLED ekran ve SD kartın da bağlanacağı düşünüldüğünde bu oldukça fazla.
Şüphe duyduğunuzda, Google dışarı! Bunu yaptım ve tüm matrisi kontrol etmek için sadece 1 pime ihtiyaç duyacak bir yol buldum. Bu, Gerilim Bölücü Matrisi kullanılarak mümkün olur. Dirençler her satır ve sütun arasına bağlanır. Bir tuşa basıldığında, belirli bir direnç kombinasyonu, bir voltaj bölücü oluşturan seri olarak bağlanır. Devre şemasına bakın. Değişen voltaj mikrodenetleyici tarafından okunacaktır. Her bir tuş farklı bir voltaj üretecek ve bu sayede matrisin çıkış voltajı okunarak hangi tuşa basıldığı kolaylıkla öğrenilebilir. Değişen voltaj seviyelerini okumak istediğimizden ve şimdi sadece yüksek ve düşük, bir Analog pin'e ihtiyacımız olacak. Neyse ki NodeMCU'da A0 olarak etiketlenmiş bir Analog pin var. Sorun çözüldü!
Bir matris satın almak istiyorsanız, şemada gösterilen dahili bağlantıları kontrol edin. Herhangi bir boyutta bir matris kullanılabilir. Sıralar arasında 2,2kΩ direnç ve sütunlar arasında 680Ω direnç kullandığınızdan emin olun.
Basmalı Düğmeleri Bağlama
Pin 1 ve 2 dahili olarak bağlıdır. Pin 3 ve 4 ile aynı. Butona basıldığında tüm pinler birbirine bağlanır. Anahtarları bir perfboard'a bağlama hakkında bir fikir edinmek için resme bakın.
Daha sonra ana karta bağlanabilmesi için 3 pinli erkek header bağladım.
Adım 5: Her Şeyi Bir Araya Getirmek
Bileşenleri istediğiniz yere yerleştirmeyi planlayabilirsiniz. Üzerinde herhangi bir kısıtlama yok. Avuç içine sığacak bir şey istediğim için kompakt hale getirmek için nasıl yaptığımı göstereceğim. Biraz dağınık olabilir, bu yüzden lehimleme konusunda rahatsanız benim yolumu deneyin. Kartın her iki tarafını da iki katmanlı bir PCB olarak doldurmaya karar verdim. Bir tarafta NodeMCU ve SD kart koparma kartı, diğer tarafta OLED ve tuş takımı.
SD kart çıkışı, NodeMCU için olan iki dişi başlık arasına sığar. Breakout board ile gelen açılı erkek başlıkları söktüm, döndürdüm ve tekrar lehimledim, böylece pimler resimde gösterildiği gibi dikey olarak aşağı inecek. SD kart yuvasına erişim daha kolay hale gelir.
4 pinli dişi başlığın pinlerini dik açıyla bükerek perfboard'un bakır tarafına resimdeki gibi lehimledim.
Kısa devreleri önlemek için tuş takımının altındaki lehim bağlantılarını kapatın. Ekstra koruma ve sağlamlık için tuş takımı ve anakart arasına ince bir sert köpük parçası (yaklaşık 5 mm kalınlığında) ekleyin. Son olarak, daha önce yaptığımız tuş takımını lehimleyin. Sivri uçlu bir havyaya sahip olmak kesinlikle işinizi kolaylaştıracaktır. Mümkün olduğunca kompakt hale getirmek dağınık bir işti ama sonunda yapmayı başardı.
Cihaza güç vermeden önce tüm bağlantılarınızı kısa devre açısından iki kez kontrol edin
Adım 6: Tuş Takımını Ayarlama
Tüm bağlantıları kontrol ettikten sonra, cihazınıza ilk kez güç vermeye hazırsınız. Parmaklar geçti! Sihirli duman yok mu? Tebrikler!
Artık klavyeyi kurmaya hazırız. Tuş takımının çalışmasını hatırlayın. Tuşa her basıldığında, NodeMCU'nun analog pinine beslenen farklı bir voltaj çıkar. ESP-12E, 10-bit çözünürlüklü bir Analogdan Dijitale Dönüştürücüye (ADC) sahiptir. 2'nin 10'a yükseltilmesi 1024'ü verecektir. Bu, basılan her tuş için 0 ile 1024 arasında bir okuma alacağımız anlamına gelir. Bakalım hangi okumaları alacağız. Ama önce, bu değerleri elde etmek için küçük bir program yazmalıyız. Arduino IDE'yi açın, aşağıdaki kodu kopyalayıp yapıştırın ve NodeMCU'ya yükleyin.
int tuş takımıPin = A0;
geçersiz kurulum(){ Serial.begin(115200); } void loop(){ int r = analogRead(keypadPin); Seri.println(r); }
- Seri monitörü açın. Baud hızını 115200 olarak ayarlayın.
- Şimdi herhangi bir düğmeye basın. Seri monitörde sürekli bir okuma almalısınız. Küçük dalgalanmalar iyidir. Bunlar ana kodda halledilecektir. Her anahtar için aynısını yapın.
- Her tuşun farklı bir okuması olmalıdır.
- Tüm değerleri not edin. Onlara daha sonra ihtiyacımız olacak.
Adım 7: Kodlayalım
Aşağıda verilen Scoreboard.ino dosyasını bilgisayarınıza indirin ve Arduino IDE kullanarak açın.
yüklemeden önce
1) Skorbord için yenileme süresini ayarlayın. Örneğin, 15 saniye için 15L.
2) Bağlanmak istediğiniz yönlendiricinin SSID'sini ve şifresini girin.
3) SD kartın CS pinini GPIO15 dışında bir pine bağlamayı seçtiyseniz gerekli değişiklikleri yapın.
4) Tüm anahtarlar için not ettiğimiz değerleri hatırlıyor musunuz? Her değer için bir anahtar numarası atamamız gerekiyor. Okumadaki dalgalanmalardan da bahsetmiştim. Bunun nedeni, anahtar kontaklarının mükemmel olmamasıdır. Uzun vadede, devrede ekstra direnç ekleyen ve voltajı değiştiren kontakların yaşlanması nedeniyle bu değer akım değerinden sapabilir. Bu sorunu kodda halledebiliriz.
5'lik bir marj ile değerin bir üst limitini ve bir alt limitini ekleyeceğiz. Örneğin, 1 tuşu için 617 okuma aldım.
- Ondan 5 çıkarın. 617 - 5 = 612. Bu alt sınırdır.
- Şimdi buna 5 ekleyin. 617 + 5 = 622. Bu üst sınırdır.
- Kodun sonuna ilerleyin. Koddaki iki değer için verilen boşluğu resimdeki gibi doldurunuz.
- Bunu her 9 değer için yapın.
if(r > 612 && r < 622){ keyNumber = 1; }
Ne anlama geliyor?
EĞER okuma (r) 612'den büyük VE 622'den küçükse, o zaman 1 tuşuna basılır. 612 ile 622 arasındaki herhangi bir değer, anahtar 1 olarak ele alınacaktır. Bu, dalgalanan okuma sorununu çözer.
Adım 8: Vakayı Oluşturma
Bu tamamen isteğe bağlıdır. Etrafında bir dava ile projenin düzgün ve eksiksiz görüneceğini düşündüm. Bu iş için uygun araçlar olmadan, benim için çok büyük bir görev olacaktı. Kasa akrilik kullanılarak yapılmıştır.
Zımpara kağıdı ile kenarları düzleştirilerek parçalar yapıştırmaya hazırlanır. Tüm parçaları birleştirmek için Fevi Kwik (Süper Yapıştırıcı) kullandım. Süper yapıştırıcı kürlendikten sonra beyaz bir kalıntı bırakır. Bu nedenle, sadece eklemler arasında uygulayın. Hızlı sertleştiği için süper yapıştırıcı ile çalışırken hızlı ve doğru olmalısınız. Akrilik Çimento bu iş için en uygunudur.
Bir dosya kullanarak USB bağlantı noktasına erişmek için küçük bir açıklık yaptı. USB kablosunu takmak için yeterince büyük olmalıdır.
Basmalı düğmeler için ön kapakta 3x3'lük bir ızgara oluşturuldu. Bu, basma düğmelerine erişimi zorlaştıracaktır. Bu sorunu çözmek için, her tuş için kare parçalar kestim, böylece düğmeleri artık yüzeye çıkacak.
Çok fazla zımparalama, kesme, sabitleme ve ayarlamadan sonra nihayet yapıldı!
Adım 9: Eğlenin
Sonunda, tüm zor iş yapılır. Mini puan tablonuzu güçlendirin ve oyunla güncel kalın.
Açıldıktan sonra, önce erişim noktasına bağlanır. SD kartı başlatır. SD kart başlatılmazsa bir hata gösterecektir.
Tüm maçların bir listesi, maç numarasıyla birlikte görüntülenecektir.
Tuş takımını kullanarak eşleşme numarasını seçin.
Puanlar görüntülenecektir. Ekranda görmek istediğiniz her şeyi özelleştirebilirsiniz. Kodu açıklamak için fazla derine inmeyecektim. Ayrıştırmanın nasıl çalıştığına dair ayrıntılı bir açıklamayı burada bulabilirsiniz.
Menüye geri dönmek için, "Skorlar Alınıyor…" sayfası görüntülenene kadar GERİ (Key 8) düğmesini basılı tutun.
Gelecek planları
- ESP8266 12-E modülü ile özel bir PCB tasarlayın.
- Şarj edilebilir bir pil ekleyin.
- Kodu yeni özelliklerle geliştirin.
Umarım yapıyı beğenmişsinizdir. Kendin yap ve eğlen! Her zaman iyileştirme için biraz alan ve öğrenilecek çok şey vardır. Kendi fikirlerinizle gelin. Yapımla ilgili herhangi bir önerinizi yorum yapmaktan çekinmeyin. Sonuna kadar dayandığınız için teşekkürler.
Önerilen:
Raspberry Pi Skor Tahtası: 4 Adım
Raspberry Pi Skorbord: Bugün ahududu pi tarafından kontrol edilen ve 5V güç kaynağı ile çalışan bu çeteleyi nasıl yaptığımı anlatacağım. Aydınlatma için ws2811 ve ws2812b ledlerinin bir kombinasyonunu kullanır ve yapı kontrplak ve kırmızı meşeden yapılmıştır. Açıklama için
Harekete Duyarlı Sörf Tahtası LED Şeritleri: 8 Adım (Resimlerle)
Harekete Duyarlı Sörf Tahtası LED Şeritleri: Son zamanlarda, bazı arkadaşlar ve ben nehirde sörf yapmayı keşfettik. Münih'te yaşarken, ünlü Eisbach sörf noktası arasında üç sörf yapılabilir nehir dalgası olduğu için şanslıyız. Nehir sörfünün dezavantajı, oldukça bağımlılık yapması ve bu yüzden nadiren vakit bulabiliyorum
2262/2272 M4 Ekmek Tahtası ve Maker için Röle ile DIY Uzaktan Kumanda Anahtarı Kiti: 4 Adım (Resimlerle)
2262/2272 M4 Ekmek Tahtası ve Maker için Röle DIY Uzaktan Kumanda Anahtarı Kiti: akıllı ev hayatımıza geliyor. akıllı evin gerçekleşmesini istiyorsak, birçok uzaktan kumanda anahtarına ihtiyacımız var. bugün bir test yapacağız, uzaktan kumanda anahtarı teorisini öğrenmek için kolay bir devre yapacağız. SINONING ROBOT tarafından bu kit tasarımı
Li-ion Pil Bluetooth Skor Tahtası: 4 Adım (Resimlerle)
Li-ion Pil Bluetooth Skor Tahtası: Giriş Proje, geçen yılki Talimatlarıma dayanmaktadır: Bluetooth Masa Tenisi Skor Tahtası Skor Tahtası amatör spor tutkunları ve masa tenisi oyuncuları için tasarlanmıştır Ancak bu sadece masa tenisi için geçerli değildir. Diğer amaçlar için kullanılabilir
Masa Tenisi Skor Tahtası: 16 Adım (Resimli)
Masa Tenisi Skor Tahtası: Masa Tenisi / Masa Tenisi skorunuzu takip edemeyecek kadar tembel misiniz? Ya da belki her zaman unutmaktan bıktınız mı? Öyleyse, bu dijital Masa Tenisi Skor Tahtasını oluşturmak ilginizi çekebilir. İşte öne çıkanlar: Puanlar , oyunlar, sunucu ve p