Arduinodan Matlaba Veri Gönderme



Arduino'dan Matlab'a Veri Gönderme


Arduino Gönderici Kodu


Matlab Alıcı Kodu


Arduino Kodu

*******
String veri;
int deger=0;
int deger2=10;
String first_deger="f+";
String second_deger="+s+";

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
veri=first_deger+deger+second_deger+deger2;
Serial.println(veri);
delay(100);
}
*****
Bu yazımızda  sizlere iki tane değerin matlaba birleştirilip tek seferde gönderilmesini anlatacağım.
İlk olarak göndereceğimiz veriyi birleştirebilmek için veri adında bir string oluşturuyoruz. Değerlerimiz sabit olsun yada siz istediğiniz verileri kullanabilirsiniz. İki adette string first_deger ve string second_deger diye değişkenler tanımladım. Bu değişkenlerin içinde first olduğunu belli etmesi ve second olduğunu belli etmesi için f ve s karakterlerini, matlabta verileri aldığımda ayırabilmek içinde + sembolünü ekliyorum.
Loop döngüsünde sırasıyla bunları birleştirip, Serial.println() komutuyla gönderme işlemini yapıyorum.

Matlab Kodu


*****
 delete(instrfind);      
 arduino=serial('COM3','BaudRate',9600);
 instrfind
 pause(1)
 fopen(arduino);
 instrfind
 pause(1)
 n=0;
while n<100
gelen_veri=fscanf(arduino,'%f');
ayrik_veri=strsplit(gelen_veri,'+');
first_deger=str2double(ayrik_veri(2));
second_deger=str2double(ayrik_veri(4));
pause(0.001)
n=n+1;
end
*****

Arduino diye bir değişken tanımlıyorum. Burada arduinomun COM portunu giriyorum. Benim pc de 3 olduğu için 3 yazıyor.Siz sizin bilgisayarda nasıl görünüyorsa onu yazınız. BaudRate arduinoda 9600 olduğu için burada da onu yazıyoruz. Bağlanması için 1 saniye bekleme verdim. Bunu azaltabilirsiniz.
fopen() koduyla arduinodan veri iletişimi açıyoruz. Tekrardan bekleme verdim bunu gene azaltabilirsiniz. n diye bir değişken tanımladım  100 defa döngü yapılıp daha sonra durması için.
fscanf() komutuyla arduinodan gönderilen veriyi okumayı sağlıyoruz. Okunan veri stringdir ve birleşiktir. Bu veriyi ayırabilmek içinde strsplit komutu ile "+" ile belirlediğimiz yerlerden ayrılması sağlanacaktır.
Oluşan yeni veri f 0 s 10 verileridir. Bu ayrık veri bir matris oluşturur ve bu matrisin 2. elemanı ile 4. elemanları bizim göndermek istediğimiz değerlerdir.Bu verileri double formatına çevirebilmemiz içinde str2double() komutu kullanılmıştır. 


Not: Arduinoya kodunuzu yükledikten sonra arduino idenizi kapatınız. Yoksa matlaba bağlanmakta sıkıntı yaşayabilirsiniz.Aynı şekilde arduinoya kod atacağınız zaman matlabı kapatmayı unutmayınız.

Paylaş:

Benzer Konular

Önceki Konu
Sonraki Yazı »