İçindekiler:

LED Matrix, Arduino ve Joystick'li Pong Tenisi: 5 Adım (Resimli)
LED Matrix, Arduino ve Joystick'li Pong Tenisi: 5 Adım (Resimli)

Video: LED Matrix, Arduino ve Joystick'li Pong Tenisi: 5 Adım (Resimli)

Video: LED Matrix, Arduino ve Joystick'li Pong Tenisi: 5 Adım (Resimli)
Video: [English Sub] Robot Trek Penangkap Bola Ping Pong | Track Robot to Catch Ping Pong Ball 2024, Aralık
Anonim
LED Matrix, Arduino ve Joystick'li Pong Tenisi
LED Matrix, Arduino ve Joystick'li Pong Tenisi

Bu proje hem yeni başlayanlar hem de deneyimli tamirciler için tasarlanmıştır. Temel düzeyde bir breadboard, jumper telleri ile yapılabilir ve bir parça hurda malzemeye (tahta kullandım) Blu-Tack ve lehimleme olmadan yapıştırılabilir. Ancak daha gelişmiş bir seviyede, mükemmel bir panoya veya özel bir PCB'ye lehimlenebilir.

Bu bir kilitleme projesi olduğu için pek çok alete veya malzemeye erişimim olmadı, bu yüzden Blu-Tack ile biraz fazla küçük bir hurda tahta parçasına sıkışmış, ancak buna rağmen bir araya gelen eğlenceli bir proje. hızlı bir şekilde ve internette ucuza bulunabilen yaygın olarak bulunan parçalardan oluşur.

Adım 1: Parçalar

Pong Oyununu yapmak için ihtiyacınız olan;

  • 1x Bir Arduino (herhangi bir tür çalışacaktır)
  • 4x MAX7219 8x8 LED Matrisler
  • 2x Oyun Çubukları
  • 1x Piezo Buzzer (Opsiyonel)
  • 15x Dişi-Dişi Jumper Telleri (3x 5'li grup)
  • 15x Erkek-Dişi Jumper Telleri (3x 5'li grup)
  • 18x Erkek-Erkek Jumper Telleri
  • 1x Ekmek Tahtası
  • 1x 220Ω Direnç

Arduino Uno veya Nano board yerine Arduino tabanlı breadboard kullanabilirsiniz;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz Kristal Osilatör
  • 2x 22pF Seramik Kondansatörler
  • 1x USB FTDI UART Dönüştürücü
  • 1x 100uF Elektrolitik Kondansatör
  • 1x Mikro USB Çıkışı (Opsiyonel)

Aletler;

  • Arduino IDE'li PC (ve LedControl Kütüphanesi)
  • Arduino'nuz için ilgili USB Kablosu
  • Oyunu bilgisayarınızdan uzaklaştırmak için Güç Bankası

Adım 2: Kablolama

kablolama
kablolama
kablolama
kablolama

Tüm ihtiyacınız olan, Matrislerin ve Joysticklerin başlıklarını Arduino'ya bağlamak için atlama telleri olduğundan kablolama çok basittir. Arduino Uno'nun yalnızca 3 GND bağlantısı ve bir 5v bağlantısı olduğu için tek komplikasyon güçtür. Breadboard'un devreye girdiği ve tüm bileşenler için bir güç dağıtım rayı görevi gördüğü yer burasıdır. Bir NANO kullanıyorsanız, breadboard aynı amaca hizmet edecek ve her şeyi takmanıza izin verecektir.

Kablolama için bu bağlantıları izleyin.

  • Sol Joystick - GND ve 5v, ilgili güç raylarına. SW - pin 9, VRx - A0, VRy - A1.
  • Sağ Joystick - GND ve 5v, ilgili güç raylarına. SW - pin 8, VRx - A2, VRy - A3.
  • En sağdaki LED Matrix - GND ve 5v, ilgili güç raylarına. DIN - 13, CS - 11, CLK - 12. (25. satıra göre)
  • Diğer tüm LED Matrisleri, kodun düzgün çalışması için sağdan sola giden ilkinin çıkışından zincirleme bağlanabilir.
  • Opsiyonel Buzzer - Anot(+) ila 220Ω akım sınırlama direncinden pin 10'a, Katot(-) - GND.

Adım 3: Alternatif Kablolama

Alternatif Kablolama
Alternatif Kablolama
Alternatif Kablolama
Alternatif Kablolama
Alternatif Kablolama
Alternatif Kablolama

Yerden tasarruf etmek için bir Arduino UNO ile kabloladıktan sonra, UNO'dan Arduino IC'yi 16Mhz Kristal Osilatör ve her iki taraftan toprağa bir çift 22pF kapasitör ile devre tahtasına koymaya karar verdim. Projenin daha düzenli ve daha bitmiş görünmesini sağladığı için bunun faydalı bir değişiklik olduğunu düşünüyorum, ancak programı güncellemek için bir USB FTDI programlayıcı kullanmanız gerekiyor.

4. Adım: Kod + Açıklama

Kodu Arduino'ya yüklemek için GitHub'dan LedControl kitaplığını buradan indirin, github.com/wayoda/LedControl ve Zip dosyasını ekleyin veya IDE içindeki Kitaplık Yöneticisi aracılığıyla ekleyin. Bundan sonra ekteki çizimi açın, araçlar altında kart ve port ayarlarından Arduino'nuzu seçin ve arduino'ya yükleyin.

Açıklama

Satır 1: Kitaplığı ekler

Satır 5-23: Tüm değişkenleri, sabitleri ve pin numaralarını ayarlar.

Satır 25: LED Martix'i kurar ve kontrol pinlerini ve kaç tane ekran olduğunu ayarlar.

Satır 27: Sıfırlama İşlevini ayarlar.

Satır 30-35: Tüm ekranları birlikte açmak/kapatmak için kapatma işlevi.

Satır 38-43: Tüm ekranların parlaklığını birlikte ayarlamak için Yoğunluğu Ayarla işlevi.

Satır 46-51: Tüm ekranları birlikte silmek için ClearAll işlevi.

Satır 53-64: joystick Oyun çubuklarının konumunu alma işlevi, onları topa vurmak için 7 olası yarasa pozisyonuna eşleme ve ardından sopayı yeni konuma hareket ettirme.

Satır 67-435: Topu belirtilen yükseklikte ve hızda soldaki oyuncuya hareket ettiren, oyuncunun topa vurup vurmadığını kontrol eden ve çarpışma durumunu doğru olarak ayarlayan veya topu geri sektiren, skora 1 ekler ve hızı arttırır.

Satır 438-811: Topu belirtilen yükseklikte ve hızda doğru oyuncuya hareket ettiren, oyuncunun topa vurup vurmadığını kontrol eden ve çarpışma durumunu doğru olarak ayarlayan veya topu geri sektiren, skora 1 ekler ve hızı arttırır.

Satır 813-823: Belirtilen ekrana (sağda 0 ila 3 solda) Gülen Yüz, Kene, Haç veya Soru İşareti görüntüleme işlevi.

Satır 861-979: 0-9 sayılarını belirtilen ekrana görüntüleme işlevi.

Satır 981-1047: Ekranın her bir oyuncu tarafında skoru gösterme işlevi.

Satır 1049-1064: Oynatıcının hazır olup olmadığını kontrol etme işlevi.

Satır 1066-1076: Program başladığında bir kez çalıştırılan kodun kodunun Kurulum Bölümü.

Satır 1078-1136: Tüm fonksiyonların kullanıldığı ve kimin kazandığına karar verilen oyun mantığı için Ana Döngü bölümü ve ardından skoru gösterdikten 5 saniye sonra programı yeniden başlatır.

Adım 5: Okuduğunuz İçin Teşekkürler

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

Bu Eğitilebilir Tabloyu okuduğunuz için teşekkürler, Arduino programlama hakkında daha fazla şey öğrendiğimde birkaç gün içinde bir araya gelen eğlenceli bir kilitleme projesiydi. Beğendiyseniz, Arduino yarışmasında buna oy vermekten çekinmeyin.

Önerilen: