Translate Blog

24 Nisan 2021 Cumartesi

CMD ile Arduino Uno'ya Komut Gönderme - Arduino Serial İletişimi

Arduino COM3 portunu kullandığını varsayalım. Arduinonun 2 numaralı pinine bir led bağladık. CMD ile onu açıp kapatalım. İlk kod arduinonu scripti. Yüklemesini yapalım.

#define BAUD_RATE 115200

int led = 2; // board üzerindeki standart led ile deneme ypamak için 2 yerine bunu yazın LED_BUILTIN

void setup(){

  pinMode(led, OUTPUT);

  Serial.begin(BAUD_RATE);

};

void loop(){

  if(Serial.available() > 0){

    //int i = Serial.read() - '0'; //sadece sayı almak isterseniz

    //char z = Serial.read(); //tek karakter almak isterseniz

    String z = Serial.readString(); //string almak isterseniz

    delay(100);

    if(z == "11"){

      digitalWrite(led, HIGH); 

    }else if(z == "12"){

       digitalWrite(led, LOW); 

    } 

  }

};


Şimdi başlata tıklayın ve cmd yazıp enterlayın. Aşağıdaki MODE ile başlayan kod COM3 portunun ayarlarını yapıyor. BAUD değeri arduino kodunda da var. İkisi aynı olmalı 9600 görebilirsiniz bir çok kodda. Ona göre düzeltin. Normalde arduino her comport iletişiminde reset atar. Bunu kapatmak için dtr=off komutu eklenmiştir. Böylelikle arduino seri port iletişimi yaparken kendini resetlemeyecek.

MODE COM3: BAUD=115200 DATA=8 STOP=1 PARITY=N dtr=off

Son olarak veriyi göndermeye geldi sıra. Arduino kodunda 11 iken ışığı AÇ 12 iken KAPAT kodu yazmışız. Aşağıdaki gibi yazarak 11 stringini port üzerinden gönderiyoruz ışık açılıyor, 12 gönderiyoruz kapatıyor. String komut aldığımız için istediğinizi yazabilirsiniz.

set /p x="11" <nul > COM3



26 Nisan 2020 Pazar

Unity C# Dizi Sıfırlama / How to reset array on C# or destroy all elements of array

I could not find any array reset code. An here is my code to remove all elements of an array. It will destroy all the childs of an array.



int [] emptyarray = {};
int [] myarray = new int[] { 7, 0, 6, 0, 7, 1, 6, 1, 7, 2, 6, 2, 7, 3, 6, 3, 7, 4, 6, 4, 7, 5, 6, 5, 7 };

this will do the magic

myarray = emptyarray.ToArray();

Your array now empty like new created.

8 Ekim 2019 Salı

Unity inspector Penceresindeki Bir Özelliğe Erişmek / Change A value on Inspector With C# on UNITY

Unity inspector penceresindeki bir özelliği algoritmik olarak değiştirmek mi istiyorsunuz. C# ile kodlarken ilgili pencereye erişmenin en güzel ve performanslı yolunu aşağıda bulabilirsiniz.

Örnek olarak bir kutumuz olsun ve dokusunu değiştirmek isteyelim. Normalde dokuyu inspector penceresinde Default Materyal başlığına tıklayarak yapabiliriz. Peki bu işlemi komutla nasıl yapabiliriz?



Unity versiyonum 2019.2 bu arada. Versiyonlar çoğu konuda önemli olabiliyor. Çizim nesnelerinde Mesh Renderer özelliği hep vardır. Siz nesnenin üzerine oluşturduğunuz bir materyali bile atasanız elle okun ucundaki bölgeden değişiklik yapabilirsiniz, fakat kod ile Renderer'ın özelliği olan materyale erişerek yapmalısınız.

Kutumuza bir script ekleyelim ve kod düzenleyicimiz her ne ise onda açalım. Visual Studio kullanmanızı ve Unity kurulumu yapılırken kendisinin kurmasına izin vermenizi öneririm. Kendiniz kurduğunuzda sorun çıkabiliyor. Bu haliyle Unity kodları Visual Studio'da çok güzel gözükebiliyor.


Fare tıklaması için farklı seçenekleriniz var. mousedown, mouseup, over, exit,... şeklinde çeşitli OnMouse varyasyonları var. Bir farenin basıldığı anı kullandık bu yüzden onMouseDown listenerını açarak kodu onun içine yazdık. Bu sayede ne zaman bu nesnenin üzerine bir tıklama gelirse içindeki kodlar çalışacaktır.


"this.gameObject.GetComponent<>" betiği buradaki tüm can alıcı işleri yapmanızı sağlayacak en önemli kod diyebiliriz. Bu kod ile inspector penceresindeki her şeye erişebilirsiniz.

Şöyle düşünün Inspector penceresi tüm özelliklerin bir listesidir, siz bu elemanlara GetComponent<> komutunun okları arasında bu listedeki tüm elemanların ismini yazarak erişebilirsiniz.
this.gameObject.GetComponent<Rigidbody>
this.gameObject.GetComponent<Collider>
this.gameObject.GetComponent<Transform>
gibi komutlarla özelliklere erişip değiştirebilirsiniz.