Mündəricat:

Əl Arduino Pong Konsolu: 6 Adım (Şəkillərlə birlikdə)
Əl Arduino Pong Konsolu: 6 Adım (Şəkillərlə birlikdə)

Video: Əl Arduino Pong Konsolu: 6 Adım (Şəkillərlə birlikdə)

Video: Əl Arduino Pong Konsolu: 6 Adım (Şəkillərlə birlikdə)
Video: Arduino Pong Game #arduino #trending #viral 2024, Noyabr
Anonim
Əl Arduino Pong Konsolu
Əl Arduino Pong Konsolu

Bu yaxınlarda DFRobot, mənim xüsusi Arduino Nano lövhəsini və OLED -dən istifadə etməyimi istədi. Əvvəlcə ağıllı bir velosiped yaratmaq istədim və onu tamamilə qurdum. Ancaq təəssüf ki, Nano lazım olan kütləvi eskizin işlədilməsi və saxlanması üçün çox zəif idi. Buna görə də əvvəlki layihələrimdən birini - Pong oyunu keçirən Neopixel matrisini yenidən nəzərdən keçirmək qərarına gəldim. Bunun əvəzinə onu portativ etmək istəyirdim və 1.7 OLED mükəmməl bir ekran olardı.

Parçaların siyahısı:

  • Arduino nano
  • OLED
  • Dinamik

Addım 1: Video

Image
Image

Addım 2: Oyunun dizaynı

Oyunun dizaynı
Oyunun dizaynı

Bu Pong oyunu üçün nisbətən sadə saxlamaq istədim ki, bu da kompüterlə idarə olunan avarçəkmə və ya xülya top əks etmə alqoritmləri deməkdir. Əsasən, bir istifadəçinin yuxarı və ya aşağı hərəkət edə biləcəyi tək bir avarçəkən var və topun avarla toqquşması onun x ox vektorunun sürüşməsinə səbəb olar. Hər dəfə topa dəyəndə oynayan bir səs eşidilir. Oyun cihazı işə salındıqda, oyunun adı və təlimatları ilə bir ekran gəlir. Əlavə olaraq, anam yuxarıdakı düyməyə basılana qədər arxa planda uzanan kiçik bir mövzu mahnısı yaratdı.

Addım 3: Oyun Cihazının Dizaynı

Oyun cihazının dizaynı
Oyun cihazının dizaynı
Oyun cihazının dizaynı
Oyun cihazının dizaynı
Oyun cihazının dizaynı
Oyun cihazının dizaynı
Oyun cihazının dizaynı
Oyun cihazının dizaynı

CAD proqramım Fusion 360-dır, buna görə də pong oyun cihazımı dizayn etmək üçün istifadə etməyə qərar verdim. İstifadə olunan hər bir komponenti dizayn etməyə başladım: OLED, Arduino Nano və dinamik. Bu şəkildə hər bir komponentin korpusun içərisinə harada və necə uyğun gəlməsini dəqiq görə bilərəm. Daha sonra korpusun arxa hissəsinə Nano və PCB, üstünə isə OLED qoydum. Sonrakıda dinamik və düymələri hara yerləşdirmək məsələsi idi. 3W dinamikin ekranın altına (yuxarıdan baxaraq) keçə biləcəyinə qərar verdim və bunun üçün səsin boğulmaması üçün dinamikin üstünə "ızgara" qoyulması tələb olundu. Nəhayət, nəzarət etmək üçün sol tərəfdəki iki düyməni əlavə etdim.

Addım 4: Cihazın qurulması

Cihazın qurulması
Cihazın qurulması
Cihazın qurulması
Cihazın qurulması
Cihazın qurulması
Cihazın qurulması

Aşağı hissə, yuxarı yarı və 2 düymədən ibarət olan hər hissəni 3D çap etməyə başladım. Sonra 4x6 sm ölçüdə bir qadın başlığı lehimlədim və Nanoya bağladım. Bu, yalnız OLED -nin asanlıqla çıxarılmasına imkan vermir, həm də Arduino Nanonun üstünə qaldırır. Kabel məlumatları üçün sxemə baxın. Sonra güc üçün sadə bir mikro USB açma lövhəsi ilə birlikdə iki düyməni bağladım. Dinamik də əlavə edildi və düzgün mövqeyini verdi. My Fusion 360 dizaynı, 3 mm -lik maşın vintlərinin OLED, hoparlörü basıb saxlamasına və cihazın iki yarısını birləşdirməsinə imkan verir. Ancaq bunları dəqiqləşdirməli oldum, buna görə qazma maşınımdan istifadə edərək 8 delik açdım: 2 dinamik üçün, 2 ekran üçün və altındakı 4. Fayllar üçün Thingiverse linkinə daxil ola bilərsiniz.

Addım 5: Oyunun proqramlaşdırılması

Proqramın kiçik olması üçün sadə bir interfeysdən istifadə vacibdir. Bir neçə kitabxana əlavə etməklə başladım: Adafruit_GFX, Adafruit_SSD1351 və Arduino Timer kitabxanası. Sonra, OLED pinləri və 16 bit rəng tərifləri kimi pinlərimi və rənglərimi təyin etdim. Kodumda, oyunun necə oynanacağını dəyişməyin 4 yolu var, məsələn, avar ölçülərini dəyişdirmək və topun nə qədər sürətli hərəkət etməsi. Hesab və müxtəlif koordinatlar daxil olmaqla hər bir dəyişənin təyin olunduğu bir bölmə var. Cihaz bir top şəkli ilə işləyərkən və kodun əvvəlində müəyyən edilmiş kiçik bir mahnı ilə birlikdə ekranda bir mətn görünür. Oyun başladıqdan sonra iki taymer yaradılır, biri avarçəkəni, digəri isə topu yeniləyir. Topun mövqeyi hər dəfə yeniləndikdə koordinatları yoxlanılaraq ekranın kənarından keçmədiyinə və ya bir avara toxunduğu yoxlanılır. Hər dəfə ya x, ya da y oxu ters çevrilir və kiçik bir ton çalınır. Oyunun necə oynandığını görmək üçün bu yazının əvvəlindəki videoya baxın.

Addım 6: Pong oynamaq

Pong oynayır!
Pong oynayır!
Pong oynayır!
Pong oynayır!
Pong oynayır!
Pong oynayır!
Pong oynayır!
Pong oynayır!

Oyunun adı mümkün olan ən aşağı balı toplamaqdır. Vaxt məhdudiyyəti yoxdur, buna görə çox zövqlü və hətta transa səbəb olur. Lazım olan tək şey, avarını yuxarı və ya aşağı hərəkət etdirmək üçün iki düymədən birinə basmaqdır. Arduinonun EEPROM -dan istifadə edərək ən yüksək balı saxlamaq üçün bir yol da əlavə etmək mümkündür.

Tövsiyə: