Mündəricat:

LED Matrix, Arduino və Joysticks ilə Pong Tennis: 5 Addım (Şəkillərlə)
LED Matrix, Arduino və Joysticks ilə Pong Tennis: 5 Addım (Şəkillərlə)

Video: LED Matrix, Arduino və Joysticks ilə Pong Tennis: 5 Addım (Şəkillərlə)

Video: LED Matrix, Arduino və Joysticks ilə Pong Tennis: 5 Addım (Şəkillərlə)
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Noyabr
Anonim
LED Matrix, Arduino və Joysticks ilə Pong Tennis
LED Matrix, Arduino və Joysticks ilə Pong Tennis

Bu layihə həm yeni başlayanlar, həm də təcrübəli tinkerlər üçün nəzərdə tutulmuşdur. Əsas səviyyədə bir çörək taxtası, tullanan tellər ilə edilə bilər və Blu-Tack ilə lehimsiz bir parça hurda materialına (taxta istifadə etdim) yapışdırıla bilər. Ancaq daha inkişaf etmiş bir səviyyədə mükəmməl lövhəyə və ya xüsusi bir PCB -yə lehimlənə bilər.

Bu bir kilidləmə layihəsi olduğundan, bir çox alətə və ya materiala daxil ola bilmədim, buna görə də Blu-Tack ilə bir az çox kiçik bir hurda ağac parçasına yapışdı, buna baxmayaraq bir araya gələn əyləncəli bir layihədir. tez və internetdə ucuz tapıla bilən ümumi hissələrdən ibarətdir.

Addım 1: hissələr

Pong Oyunu etmək üçün sizə lazım;

  • 1x Arduino (istənilən növ işləyəcək)
  • 4x MAX7219 8x8 LED Matrislər
  • 2x Joysticks
  • 1x Piezo Buzzer (İsteğe bağlı)
  • 15x Dişi-Dişi Atlama Teli (5 ədəd 3x qrupu)
  • 15x Kişi-Dişi Atlama Teli (5 ədəd 3x qrupu)
  • 18x Kişi-Kişi Jumper Telləri
  • 1x Çörək Paneli
  • 1x 220Ω rezistor

Arduino Uno və ya Nano lövhəsi əvəzinə Arduino əsaslı çörək taxtasından istifadə edə bilərsiniz;

  • 1x ATmega328p 28pin IC
  • 1x 16 kHz Kristal Osilatör
  • 2x 22pF Seramik Kondansatörler
  • 1x USB FTDI UART çeviricisi
  • 1x 100uF elektrolitik kondansatör
  • 1x Micro USB Breakout (İsteğe bağlı)

Alətlər;

  • Arduino IDE (və LedControl Kitabxanası) olan kompüter
  • Arduino üçün uyğun USB Kabel
  • Oyunu kompüterinizdən uzaqlaşdırmaq üçün Power Bank

Addım 2: Kabel çəkmə

Kablolama
Kablolama
Kablolama
Kablolama

Kablolama çox sadədir, çünki Matrices və Joysticks -in başlıqlarını Arduino -ya bağlamaq üçün sizə lazım olan tullanan tellərdir. Arduino Uno -nun yalnız 3 GND bağlantısı və bir 5v bağlantısı olduğu üçün yeganə çətinlik gücdür. Çörək taxtasının daxil olduğu və bütün komponentlər üçün bir güc paylayıcı ray rolunu oynadığı bir yer, NANO istifadə edirsinizsə, çörək taxtası eyni məqsədə xidmət edəcək və hər şeyi daxil etməyə imkan verəcəkdir.

Kabel qurmaq üçün bu əlaqələri izləyin.

  • Sol Joystick - GND və 5v müvafiq elektrik raylarına. SW - pin 9, VRx - A0, VRy - A1.
  • Sağ Joystick - GND və 5v müvafiq elektrik raylarına. SW - pin 8, VRx - A2, VRy - A3.
  • Ən sağdakı LED Matrix - GND və 5v müvafiq elektrik raylarına. DIN - 13, CS - 11, CLK - 12. (25 -ci sətrə görə)
  • Bütün digər LED Matrices, kodun düzgün işləməsi üçün birincisinin çıxışı sağdan sola gedərək papatya ilə bağlana bilər.
  • İsteğe bağlı Buzzer - Anod (+) vasitəsilə 220Ω cərəyan məhdudlaşdırıcı müqavimət 10, Katot (-) - GND.

Addım 3: Alternativ Kablolama

Alternativ naqillər
Alternativ naqillər
Alternativ naqillər
Alternativ naqillər
Alternativ naqillər
Alternativ naqillər

Məkanı qənaət etmək üçün Arduino UNO ilə bağladıqdan sonra, Arduino IC -ni UNO -dan 16Mhz Kristal Osilatoru və hər tərəfdən yerə 22pF kondansatörlü bir çörək taxtasına qoymağa qərar verdim. Layihəni daha səliqəli və daha tamamlanmış göründüyü üçün bunun dəyərli bir dəyişiklik olduğunu hiss edirəm, ancaq proqramı yeniləmək üçün bir USB FTDI proqramçısı istifadə etməlisiniz.

Addım 4: Kod + İzahat

Kodu Arduinoya yükləmək üçün GitHub -dan LedControl kitabxanasını buradan yükləyin, github.com/wayoda/LedControl və Zip faylını əlavə edin və ya IDE daxilindəki Kitabxana Meneceri vasitəsi ilə əlavə edin. Bundan sonra əlavə edilmiş eskizi açın, alətlər altından lövhədə və port parametrlərində Arduino seçin və arduinoya yükləyin.

İzahat

1 -ci sətir: Kitabxananı əlavə edir

Satır 5-23: Bütün dəyişənləri, sabitləri və pin nömrələrini qurur.

Satır 25: LED Martix qurur və idarəetmə pinlərini və neçə ekranı təyin edir.

Satır 27: Sıfırlama funksiyasını qurur.

Satır 30-35: Bütün ekranları birlikdə açmaq/söndürmək üçün bağlama funksiyası.

Satır 38-43: Bütün ekranların parlaqlığını birlikdə təyin etmək üçün SetIntensity funksiyası.

Satır 46-51: ClearAll bütün ekranları birlikdə silmək funksiyasına malikdir.

Line 53-64: joystick funksiyası, joysticklərin mövqeyini əldə etmək üçün onları topa vurmaq üçün 7 mümkün yarasa mövqeyinə uyğunlaşdırın və sonra yarasa yeni mövqeyə keçir.

67-435 xətti: Topu göstərilən yüksəklikdə və sürətdə sol oyunçuya keçirən, oyunçunun vurub vurmadığını yoxlayan və ya davam etdirən və qəza vəziyyətini doğru olaraq təyin edən və ya topu geri salan funksiyası, hesaba 1 əlavə edir və sürəti artırır.

Xətt 438-811: Topu göstərilən yüksəklikdə və sürətdə sağ oyunçuya daşıyan, oyunçunun vurub vurmadığını yoxlayan və ya davam etdirən və qəza vəziyyətini doğru olaraq təyin edən və ya topu geri salan funksiya, hesaba 1 əlavə edir və sürəti artırır.

Satır 813-823: Smiley Face, Tick, Cross və ya Sual İşarəsini göstərilən ekranda göstərmək üçün funksiya (sağda 0-dan 3 solda).

Satır 861-979: Göstərilən ekranda 0-9 rəqəmlərini göstərmək funksiyası.

Xətt 981-1047: Hesabın ekranın hər bir oyunçusuna göstərilməsi funksiyası.

Line 1049-1064: Oyunçunun hazır olub olmadığını yoxlamaq funksiyası.

Satır 1066-1076: Proqram başladıqda bir dəfə işlədilən kodun kod bölməsi.

Xət 1078-1136: Bütün funksiyaların istifadə edildiyi və kimin qalib gəldiyinə qərar verilən oyun məntiqi üçün Əsas Döngə bölməsi, hesab göstərildikdən 5 saniyə sonra proqramı yenidən başlatır.

Addım 5: Oxuduğunuz üçün təşəkkürlər

Oxuduğunuz üçün təşəkkürlər
Oxuduğunuz üçün təşəkkürlər

Bu təlimatı oxuduğunuz üçün təşəkkürlər, Arduino proqramlaşdırması haqqında daha çox məlumat əldə etdiyim üçün bir neçə gün ərzində bir araya gələn əyləncəli bir kilidləmə layihəsi idi. Zövq alsanız, Arduino yarışmasında səs verməkdən çekinmeyin.

Tövsiyə: