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.