Arduino Örnek 2: Joystick Kontrollü Araba Oyunu

Joystick modülü iki eksenli (x ve y) hareket eden ve aynı zamanda üzerinde bir adet buton bulunan sistemdir. Çeşitli robot projelerinde, kontrol devrelerinde ve kumandalarda kullanılabilir. Bu projemizde mBlock programında hazırlamış olduğumuz araba oyununu klavye veya fare ile değil de joystick modülünü kullanarak hareket ettireceğiz.

1.Arduino devresi hazırlanır.

Gerekli Malzemeler:

  • 1 adet arduino 
  • 1 adet joystick modül
  • 3 adet erkek-dişi jumper kablo

TeknoYolcu-JoystickDevre

  • Arduinonun GND pini joystick modülün GND pinine bağlanır.
  • Arduinonun 5v pini joystick modülün 5v pinine bağlanır.
  • Joystick modülün VRx pini arduinonun analog pinlerinden birine bağlanır.

2.mBlock programı çalıştırılarak gerekli sahne ve kuklalar eklenir.

  • Aşağıdaki sahne "yeni dekor çiz" seçeneği kullanılarak oluşturulur.

TeknoYolcu-JoystickSahne

  • Üsten görünümlü arabalar arama motoru kullanılarak indirilir ve "bilgisayardan kukla ekle" seçeneği kullanılarak "joystick-araba" ve "arabalar" adında iki farklı kukla oluşturulur.
  • "joystick-araba" kuklası joystick ile kontrol edeceğimiz kukla, arabalar kuklası ise yol üzerinde bulunan diğer arabalar olacaktır. Arabalar kuklasına farklı kılıklar eklenerek her seferinde farklı bir araba ile karşılaşılması sağlanabilir.

TeknoYolcu-JoystickKukla

3."Joystick-araba" kuklasına aşağıdaki komutlar eklenir.

TeknoYolcu-Joykod01

Komutların açıklaması:

  • Tıklandığında: Yeşil bayrağa tıklanınca altındaki komutları çalıştırır.
  • x:62 y:-104 noktasına git: Arabanın belirtilen konuma gitmesini sağlar. Bu komutu kullanmazsak eğer tekrar oyuna başlarken joystick-araba kuklası başka bir konumda olabileceğinden dolayı sorun yaşayabiliriz.
  • Sürekli tekrarla: İçerisindeki komutların sürekli çalışmasını sağlar.
  • joyx, "(A) 0 analog pini oku"​ olsun: Joystick modülünün bağlı olduğu A0 analog pininden gelen değeri Joyx adıyla oluşturmuş olduğumuz değişkene aktarır.
  • ​Eğer joyx<400 ise: Joystick modülünden gelen değer 400'den küçük ise yani joystick modülü sola doğru yatırılmış ise içerisindeki komutları çalıştırır.
  • x'i -5 arttır: Joystick-araba kuklasının x değerini 5 azaltır yani sola doğru gitmesini sağlar.
  • Eğer ​joyx>600 ise: Joystick modülünden gelen değer 600'den büyük ise yani joystick modülü sağa doğru yatırılmış ise içerisindeki komutları çalıştırır.
  • x'i 5 arttır: Joystick-araba kuklasının x değerini 5 arttırır yani sağa doğru gitmesini sağlar.
  • Eğer "arabalar 'a değdi mi?" veya "rengine değdi mi" ise: Eğer joystick-araba kuklası arabalar kuklasına veya belirtilen renge değer ise içerindeki komutları çalıştırır.
  • hepsi durdur: Oyunu durdurur.

4. "arabalar" kuklasına aşağıdaki komutlar eklenir.

TeknoYolcu-JoyKod2

Komutların açıklaması: Uygulamızda arabalar sahnenin üst köşesinden başlayarak aşağı doğru gelecektir. Arabaların rastgele bir şeritten gelmesini sağlamak için Veri&Blok bloğunu kullanarak bir liste oluşturmamız ve içerisine şeritlerin belirlemiş olduğumuz konumlarını eklememiz gerekmektedir. Yani aşağıdaki şekildeki gibi araba sol şeritten veya sağ şeritten gelecektir. 

TeknoYolcu-JoyŞerit

  • Tıklandığında: Yeşil bayrağa tıklanınca altındaki komutları çalıştırır.
  • Sürekli tekrarla: İçerisindeki komutların sürekli çalışmasını sağlar.
  • x: "rastgele sırasındagi şerit'in" y:215 noktasına git: Kuklanın x değerini daha önce oluşturmuş olduğumuz şerit listesinden rastgele seçer y değerini ise 215(üst kenar) yapar. 
  • Sürekli tekrarla:İçerisindeki komutların sürekli çalışmasını sağlar.
  • y'yi -10 arttır: Kuklanın y değerini 10 azaltır. Sürekli tekrarla komutu içinde olduğu için bu işlemi sürekli yapar.
  • Eğer y konumu<-180 ise: Eğer kuklanın y konumu -180 den küçük olursa içerisindeki komutları çalıştırır. Kuklanın y konumunun -180'den küçük olması demek arabanın sahnenin en altına kadar gelmiş olması demektir.
  • x: "rastgele sırasındagi şerit'in" y:215 noktasına git:Kuklanın x değerini daha önce oluşturmuş olduğumuz şerit listesinden rastgele seçer y değerini ise 215(üst kenar) yapar. Yani arabalar kuklası sahnenin en altına geldiğinde tekrar başlangıç noktası olan üst kenara geri gitmesini sağlar.
  • "1 ile 3 arasında bir sayı tut" kılığına geç: 1 ile 3 arasında rastgele bir sayı tutarak o numaralı kılığa geçiş yapması sağlanır.

5. Program ile arduinonun eş zamanlı çalışması için gerekli hazırlıklar yapılır.

mBlock programı çalıştırıldıktan sonra bağlan menüsü-seri port yolu izlenerek arduinomuzun bağlı olduğu port numarası seçilir. Ardından arduino ile mBlok programını eş zamanlı çalıştırabilmek için bağlan menüsünden aygıt yazılım güncellemesi seçilir ve yazılımın yüklenmesi beklenir.

TeknoYolcu-Trafikyazılım

Uygulama Videosu:

Görüntülenme Sayısı: 65

Bir Cevap Yazın

Önceki yazıyı okuyun:
Arduino Ders 4: Potansiyometre ile LED Kontrolü

Potansiyometre diğer adıyla ayarlı direnç, direncin dışarıdan bir etkiyle ayarlanabilmesini...

Kapat