1. Ana Sayfa
  2. Arduino
  3. C# Arduino Joystick ile Uçak Oyunu

C# Arduino Joystick ile Uçak Oyunu

C# Arduino Joystick ile Uçak Oyunu

Daha önce C# Uçak Savaşı Oyunu projesini yapmıştık şimdi proje üzerinde biraz değişiklik yaparak işin içine Arduino Joystick Kullanımını katıyoruz yani uçağımızın yönlendirme ve ateş etme fonksiyonlarını Joystick ile gerçekleştireceğiz tabi bu değişiklikleri yapabilmek için ilk olarak yukarıdaki bağlantıdan oyunu indirmeniz gerekmekte .

C# kısmına geçmeden Ardunio ile Joystick kontrolü için bağlantı devremiz aşağıdaki gibi olmalı ve bağlantıları düzgün bir şekilde yaptıktan sonra Arduino kodlarımızı yüklüyoruz..

int xPin = A0; // A0-A5 analog pinlerinden herhangi birine bağlanabilir.
int butonPin = 2; // Joystick buton pini arduino bağlantısı (Joystick SW çıkışı)
int xPozisyonu = 0;
int butonDurum = 0;
 
void setup() {
Serial.begin(9600);
pinMode(xPin, INPUT);
pinMode(butonPin, INPUT_PULLUP); 
}
 
void loop() {
xPozisyonu = analogRead(xPin);
butonDurum = digitalRead(butonPin);
Serial.print(xPozisyonu);
Serial.print("*");
Serial.println(butonDurum);
delay(100);
}

C# örneğimizde ne gibi değişiklikler yaptık peki bir Menustrip ve timer ekledik Menustrip ile arduino ile bağlantı yapılacak olan portu seçiyoruz bunun için gerekli kodlar…:

        private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {         
           
            try
            {
                sPort.PortName = toolStripComboBox1.Text; //txtPort içerisindeki değeri seri port ismimize atıyoruz. İkiside string, convert'e gerek yok.
                if (!sPort.IsOpen) //şart sağlanıyorsa seri port açılarak aşağıdaki işlemler gerçekleşiyor
                {
                    sPort.Open();
                    toolStripTextBox1.Text= "Bağlantı Kuruldu";
                    toolStripTextBox1.ForeColor = Color.Green;
                    timer2.Start(); //timerı başlatıyoruz

                }//https://www.bilisimogretmeni.com
            }
            catch (Exception) //herhangi bir hataya karşı try/catch bloğunu kullanıyoruz
            {
                toolStripTextBox1.Text = "Bağlantı Kurulamadı";
                toolStripTextBox1.ForeColor = Color.Red;
            }
        }

Eğer arduino ile başarılı bir şekilde bağlantı kurulduysa sıra geldi yön kontrollerini yapmaya bunun için gerekli kodlar aşağıda C# ile arduinodan gelen verileri okuyup yönlendirme işlemini yapıyoruz…

        private void timer2_Tick(object sender, EventArgs e)
        {
            try
            {
                
                string sonuc = sPort.ReadLine();
                string[] pot = sonuc.Split('*');               
                int x, b;
                x = Convert.ToInt32(pot[0]);
                b = Convert.ToInt32(pot[1]);
                if (x < 505)                   
                {
                    
                    if (bucak.Location.X <= 0) { solHareket = 0; } else { solHareket = -5; }
                }
                else if (x> 520)
                {
                  
                    if (bucak.Location.X >= 512)
                    {
                        solHareket = 0;
                    }
                    else
                    {
                        solHareket = 5;
                    }
                }//https://www.bilisimogretmeni.com                              
                else if (b==1)
                {

                    if (ates == false)
                    {
                        mermiHiz = 8;
                        mermi.Left = bucak.Left + 40;
                        mermi.Top = bucak.Top;
                        ates = true;
                    }
                }
                else { solHareket = 0; }
                sPort.DiscardInBuffer();
                System.Threading.Thread.Sleep(60);

            }
            catch (Exception)
            {

            }
        }

Kimler Neler Demiş?

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Bildir