Arduino Oyun Yapımı

Giriş

Oyun oynamayı mı, yoksa oyun yapmayı mı seviyorsunuz? Ben şahsen ikisini de seviyorum! Ancak kendi yaptığım oyunlara özgün efektler ve kurgular eklediğimde, sanırım yapmayı daha çok seviyorum. Yaratıcılığımı ortaya çıkarabildiğim ve alışılmışın dışına çıkabildiğim projeler beni her zaman daha fazla heyecanlandırıyor.

Bu yazıda, Arduino kullanarak geliştirdiğim “Arduino Işık Savaşları” adlı interaktif refleks oyununun detaylı yapım aşamalarını ve çalışma prensibini anlayacağız. Bu proje, elektronik bilginizi artırırken eğlenceli vakit geçirmenizi sağlayacak harika bir Arduino projesi.

Oyunun Tanıtımı

Arduino Işık Savaşları, adından da anlaşılacağı gibi, LED’lerin ve bu LED’lere bağlı butonların kontrolü ile çalışan eğlenceli bir refleks oyunu. Ses efektleri ve özel sesli komutlarla zenginleştirilmiş bu oyun, hem görsel hem de işitsel bir deneyim sunuyor.

Bu proje, elektronik bileşenlerle etkileşim kurmayı öğrenmek isteyenler ve Arduino ile yaratıcı projeler geliştirmek isteyenler için mükemmel bir başlangıç noktası.

Oyunun Çalışma Mantığı

Arduino Işık Savaşları oyunu temel olarak şöyle çalışıyor:

  1. Başlangıç: Sisteme güç verildiğinde, LCD panel üzerinde oyun bilgileri görüntülenir ve DF Player Mini modülü sayesinde önceden kaydedilmiş ses dosyası oynatılır. Bu ses, oyunun kurallarını ve nasıl oynanacağını anlatır.
  2. Oyunu Başlatma: 5. butona (başlat butonu) bastığınızda, sistem aktif hale gelir.
  3. Oyun Mekanizması:
    • Arduino, 0 ile 3 arasında rastgele bir sayı üretir
    • Bu sayıya karşılık gelen LED yanar
    • Oyuncunun, yanan LED’e ait butona 5 saniye içinde basması gerekir
    • Doğru butona basıldığında:
      • Puan kazanılır
      • Süre 1 saniye artar (bu, oyunun heyecanını artıran önemli bir özellik)
    • Yanlış butona basıldığında veya süre dolduğunda oyun sona erer
  4. Skor Kaydetme: Eğer önceki yüksek skordan daha yüksek bir puan elde edilirse, bu skor Arduino’nun EEPROM’una kaydedilir.
  5. Ses Efektleri: Oyun sırasında, performansınıza göre farklı ses efektleri çalınır. Örneğin, belli bir skoru veya süreyi aştığınızda “makineli tüfek sesi” gibi eğlenceli efektler devreye girer.

Projede Kullanılan Malzemeler

Bu projeyi yapmak için aşağıdaki malzemelere ihtiyacınız olacak:

  • 1x Arduino Nano
  • 1x DF Player Mini (ses dosyalarını çalmak için)
  • 1x Hoparlör (8 ohm, 0.5W veya benzer)
  • 1x LCD Panel (16×2 karakter)
  • 1x I2C Modülü (LCD panel için)
  • 1x LM2596 Voltaj Regülatörü
  • 5x Pano Butonu (4 tanesi oyun için, 1 tanesi başlatma için)
  • 4x 12V Lamba (veya güçlü LED’ler)
  • 1x 4’lü Röle Modülü (lambaları kontrol etmek için)
  • 1x Dişi Jak (güç girişi için)
  • 1x 12 Volt Adaptör
  • Çeşitli Kablolar (jumper, bağlantı kabloları)
  • Proje Kutusu (opsiyonel ama önerilir)

Projenin Detaylı Anlatımı

1. Donanım Bağlantıları

Arduino ve LCD Panel Bağlantısı:

  • LCD’yi I2C modülü üzerinden Arduino’ya bağlayın:
    • SDA → A4
    • SCL → A5
    • VCC → 5V
    • GND → GND

DF Player Mini Bağlantısı:

  • Arduino’ya şu şekilde bağlayın:
    • RX → pin 10 (1KΩ direnç üzerinden)
    • TX → pin 11
    • VCC → 5V
    • GND → GND
    • BUSY → pin 12

Röle Modülü Bağlantısı:

  • IN1 → pin 2
  • IN2 → pin 3
  • IN3 → pin 4
  • IN4 → pin 5
  • VCC → 5V
  • GND → GND

Butonlar:

  • Oyun butonları: pin 6, 7, 8, 9
  • Başlatma butonu: pin A0

2. Yazılım Kurulumu

  1. Arduino IDE’yi bilgisayarınıza yükleyin
  2. Gerekli kütüphaneleri ekleyin:
    • LiquidCrystal_I2C
    • DFPlayer Mini Mp3
    • EEPROM
  3. Kod dosyasını Arduino IDE’ye yükleyin
  4. Arduino Nano’nuzu bilgisayara bağlayın
  5. Kodu yükleyin (Upload)

3. SD Kart Hazırlama

DF Player Mini için bir micro SD kart hazırlamanız gerekiyor:

  1. Micro SD kartı FAT32 formatında biçimlendirin
  2. “mp3” adında bir klasör oluşturun
  3. Ses dosyalarınızı bu klasöre şu şekilde yükleyin:
    • 0001.mp3 – Oyun başlangıç sesi
    • 0002.mp3 – Doğru buton sesi
    • 0003.mp3 – Yanlış buton sesi
    • 0004.mp3, 0005.mp3, vb. – Diğer ses efektleri

Projeyi Geliştirme Önerileri

Bu proje, üzerine eklemeler yaparak geliştirilebilir:

  1. Zorluk Seviyeleri: Farklı zorluk seviyeleri ekleyebilirsiniz (kolay, orta, zor)
  2. Çok Oyunculu Mod: İki kişinin yarışabileceği bir mod ekleyebilirsiniz
  3. LED Desenleri: Daha karmaşık LED desenleri ve kombinasyonları ekleyebilirsiniz
  4. Müzik Modu: Bir şarkının ritmine göre butonlara basma modu ekleyebilirsiniz
  5. Kablosuz Kontrol: Bluetooth modülü ekleyerek, oyunu akıllı telefondan kontrol edebilirsiniz
  6. 3D Baskı Kasa: Projeniz için özel tasarlanmış bir kasa tasarlayabilirsiniz

Arduino Nano yerine başka bir Arduino kullanabilir miyim?

Evet, Arduino UNO veya Arduino Mega gibi diğer Arduino kartlarını da kullanabilirsiniz. Sadece pin bağlantılarını yeni kartınıza göre düzenlemeniz gerekecektir.

DF Player Mini’ye kaç ses dosyası yükleyebilirim?

DF Player Mini, toplam 3000 ses dosyasını destekleyebilir. Ancak pratik olarak, bu proje için 10-20 farklı ses dosyası yeterli olacaktır.

Oyunun zorluk seviyesini nasıl değiştirebilirim?

Kodda “timeLeft” değişkenini değiştirerek başlangıç süresini ayarlayabilirsiniz. Ayrıca doğru butona basıldığında eklenen süreyi de değiştirebilirsiniz.

Daha fazla LED ve buton ekleyebilir miyim?

Evet, Arduino Nano’nun pin sayısı yeterli olduğu sürece daha fazla LED ve buton ekleyebilirsiniz. Kodunuzu da buna göre güncellemeniz gerekecektir.

Bu projeyi nasıl daha kompakt hale getirebilirim?

PCB tasarımı yaparak veya daha küçük bileşenler kullanarak (örneğin, Arduino Nano yerine Arduino Mini) projeyi daha kompakt hale getirebilirsiniz.


Bu Arduino projesi, hem elektronik bilginizi geliştirmek hem de eğlenceli vakit geçirmek için harika bir fırsat sunuyor. Kendi yaratıcılığınızı katarak projeyi daha da geliştirebilir ve kişiselleştirebilirsiniz. Unutmayın, hayal etmekten korkmayın!

Daha fazla bilgi ve video anlatım için SezerDuino YouTube Kanalını ziyaret edebilirsiniz.

Bu projeyi yaparken herhangi bir sorunuz olursa, yorum bölümünden bana ulaşabilirsiniz.

Devre Şeması

arduino ışık savaşı

Çalışma Videosu

Premium Üyeler Gerekli Kodlar

                           

[member]

İNDİR

[/member]

                                


Gerekli Kodlar

İNDİR