Arduino ve Matlab HaberleÅŸmesi
Volkan Kanat // 4 Şubat 2013 // 19 yorum // kategori: Arduino ProgramlamaArduino ile daha önce Seri İletişimi görmüştük. Bu yazımızda Arduino ile mühendislik öğrencilerinin çok içli dışlı olduğu Matlab arasında iletişim kurmayı göreceğiz. MATLAB(MATrix LABoratory), teknik hesaplamalar ve matematiksel problemlerin çözümü ve analizi için tasarlanmış bir yazılım geliştirme aracıdır. Bu örneğimizde farklı renkte iki LEDi, Arduino ve Matlab aracılığıyla kontrol edeceğiz.
İlk olarak aşağıda elektriksel şeması verilen devreyi kuralım.
Åžimdi Matlab programımıza Arduino destek paketini kurmamız gerekecek. Bu paketi buradan indirebilirsiniz (SaÄŸ üst taraftan’Download Submission’ kısmına tıklayınız).
Arduino IDE’ miz üzerinden, indirdiÄŸimiz paket içerisinde bulunan ‘pde->adiosrv->adiosrv.pde’ dosyasını açıyoruz. Ve kodlarımızı yukarıdaki elektriksel ÅŸemasını kurduÄŸumuz Arduino’ muza yüklüyoruz.
Şimdi sistemimizi Matlab ile haberleştireceğiz, burada çok basit bir arayüz tasarımımız olacak. İki buton kullanacağız, bu butonlardan ilkine bastığımızda kırmızı ledimiz yanacak yeşil ledimiz sönecek, ikinci butona bastığımızda ise yeşil ledimiz yanacak kırmızı ledimiz sönecek. Basit olmasına rağmen oldukça eğlenceli bir arayüz 🙂
Karşımıza çıkan ekrandan ‘Blank GUI(Default)’ i seçelim, bu adım bizim basit arayüzümüzü tasarlamamız için gerekmektedir. Arduino ile haberleÅŸen arayüzler tasarlamak genelde sıklıkla aranan bir konudur. Arduino için arayüzler tasarlamak isteyenler için Matlab basit bir baÅŸlangıç olacaktır. Karşımıza gelen ekrana, sol tarafta bulunan ‘Push Button’ a tıklayarak iki tane buton tasarlıyoruz.
Butonlarımızı tasarladıktan sonra m-file dosyamızı elde etmek için yukarıdaki menüden ‘m-file editör’ü seçiyoruz. Size m-file dosyasını açmadan önce nereye kaydetmek istediÄŸinizi soracaktır, kaydetmek istediÄŸiniz alanı seçebilirsiniz.
Açılan m-file dosyamızda bazı deÄŸiÅŸiklikler yapmamız gerekecek. Ä°lk olarak ‘untitled1_OpeningFcn’  fonksiyonumuzu aÅŸağıdaki gibi deÄŸiÅŸtirmeliyiz. Burada Arduino’ muzun baÄŸlı olduÄŸu COM adresini tanıtıyoruz ve LED lerimizin baÄŸlı olduÄŸu dijital pinleri çıkış olarak atıyoruz.
Ä°lk butona bastığımızda yapmak istediÄŸimiz iÅŸlemleri ‘pushbutton1_Callback’  fonksiyonu içerisine yazıyoruz.
Ä°kinci butona bastığımızda yapmak istediÄŸimiz iÅŸlemleri ‘pushbutton2_Callback’  fonksiyonu içerisine yazıyoruz.
Son olarak butonlarımızı tasarladığımız pencerenin üzerindeki ‘Run Figure’ ikonuna tıklayarak sistemimizi çalıştırıyoruz.
Karşımıza çıkan arayüzdeki butonlarımıza tıkladığımızda LEDlerimizden birinin yanıp diğerinin söndüğünü, butonlarla yakmak istediğimiz LEDi seçebildiğimizi göreceksiniz. Arduino ile haberleşme üzerinde durulması gereken önemli konulardan biri. Bu alana eğilmek isteyen arkadaşların arayüz tasarlamayı da bilmeleri gerekmektedir.
Yazıyla ilgili yorumlarınız önümüzdeki yazılar için önemli bir yol gösterici olacaktır.
Etiketler: arduino programlama > matlab
Tebrik ederim çok güzel bir çalışma olmuş.Arayüz basit olmuş ama ilk etap için yeterli.Bu tür yazıların devamını bekliyoruz.
ArduinoIO kütüphanesini eklemek lazım http://www.youtube.com/watch?v=KGr3nCxCzSE&list=WLJvDImR6jI-YzXneXR5DpSLH1SR1ACslh
burdan bi izleyin arkadaÅŸlar.
arduino simulink çalışması örneği yapan arkadaşlar varsa yardımcı olabilirlermi?
Çok yararlı bir çalışma olmuş. Teşekkür ediyoruz. Yukardaki yorumda belirtildiği gibi arduino.m dosyasının da program dosyası ile aynı dizin altında bulunması gerekiyor.
Matlab üzerinden arduino kontrolü yaparken USB kablosu kullanmamız şart mı?Programı Arduino nun kendi derleyicisinde olduğu gibi upload edemez miyiz?
Merhaba;
DS18B20 üzeriden gelen sıcaklık bilgisini daha doğrusu one wire bus iletişimi Matlab ortamına nasıl aktarabilirim?
Saygılarımla?
Hocam ben matlab ile seri port haberleşme ile led yakmak istiyorum ama bunu yaparken assemblyde kod yazcam bunu nasıl yapabilirim?
işiniz kolay değil arduino içinden assembler kullanmak için asm komutunu kullanabilirsiniz
ÅŸurada bir video var
https://www.youtube.com/watch?v=TOqnijfi9eI
atmega328p assembler kodları için atmelin sitesiden datasheetini indirip bakabilirsiniz. son hatırladığım 800sayfa civarıydı.
ÅŸurada da 1 saatlik arduino assembler kursu var
https://www.youtube.com/watch?v=IVy7Yiwbj-Y
kolay gelsin…
Ellerinize sağlık güzel bi çalışma olmuş. Size bi sorum olacaktı cevaplarsanız memnun olurum. Arduinodan aldığım real time verilerin tümünü workspace kaydedemiyorum. Sadece son değeri atıyor. Exceldeki gibi hücre hücre alt alta bu verileri kaydetmek istiyorum. Yardımlarınızı bekliyorum.
TeÅŸekkürler…
Merhaba;
arduino ile beraber adxl335 sensörü yardımıyla titreşim ölçeceğim, acaba fft çevirimi için yardımcı olabilecek döküman veya tavsiyeniz var mı?
Teşekkürler.
matlab için varmı bilmiyorum. yazının sahibi gelirse cevap verir nasılsa.
fft dönüşüm ıcın genlde içinde sinyal işleyici modul (dsp) olan işlemciler tercih ediliyor hesaplama işlemleri yoğun oldugu ıcın daha verımlı oluyor. arduino uno da boyle bır modul yok yazılım olarak uygulamak gerekıyor ılgılı kutuphane linkı aşağıda
https://github.com/kosme/arduinoFFT
Arduino ile matlap bağlanıyor anlık hareket edince duruyor kaç defa denedim olmadı
hocam merhaba benimde gui ile arduino kullanarak servo motoru kontrol etmem gerekiyor.5 saniye dursun 5 saniye çalışsın tarzı komutları nasıl yazabilirim hocam yardımcı olursanız sevinirimm
matlab dışında bu işlem yapılacaksa forumda sorabilirsiniz. matlab ıle yapılacaksa yazarın cevap vermesini bekleyeceksiniz.
Merhaba, Matlab ile motoru 5 saniye çalıştırıp durdurmak istiyorsan;
Butona bastığında 5 kere 1-1-1-1-1 komutu gönderirsen daha rahat işlem yaparsın.
Motor 5 kez çalışma komutu alır ve 5ten sonra 0 alır. Bu şekilde yön bile verebilirsin. Kolay gelsin.
matlab ile yapılacak
Merhaba, linkini verdiÄŸiniz dosyayı indiriyorum ancak onun içerisinde ‘pde->adiosrv->adiosrv.pde’ bu yazdığınız dosyalar yok…Acaba dosya deÄŸiÅŸmiÅŸ olabilir mi ? Bir güncelleme sözkonusu mudur. R2016b kullanıyorum
AYNI SORUNU YAŞIYORUM. ÇÖZÜM BULABİLDİNİZ Mİ HOCAM?
yazıyı yazan arkadaş bu konuya cevap vermesi lazım kendisine başka kaynaklardan ulaşmayı deneyin. misafir yazar olarak bu yazıyı yazmıştı. ben de bilmiyorum.