Arduino ve Matlab Haberleşmesi

Arduino 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.

Untitled

Kırmızı LED Dijital 4, Yeşil LED Dijital 5 Nolu pine bağlı

Ş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 🙂

1

Matlab’ in üst menüsünden GUIDE kısmına tıklayalım

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.

3

 

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.

4

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.

5

 

İlk butona bastığımızda yapmak istediğimiz işlemleri ‘pushbutton1_Callback’  fonksiyonu içerisine yazıyoruz.

6

 

İkinci butona bastığımızda yapmak istediğimiz işlemleri ‘pushbutton2_Callback’  fonksiyonu içerisine yazıyoruz.

7

 

Son olarak butonlarımızı tasarladığımız pencerenin üzerindeki ‘Run Figure’ ikonuna tıklayarak sistemimizi çalıştırıyoruz.

Butona çift tıklayarak String kısmından butonun ismini değiştirebilirsiniz

Butona çift tıklayarak String kısmından butonun ismini değiştirebilirsiniz

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.

 

 

Volkan Kanat

Embedded Software Engineer @MakelSirketler. BSc. Mechatronics Engineer. Technical Author @dikeyeksen.

12 comments

  1. Mehmet Çakıl dedi ki:

    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.

  2. Yiğit Danacı dedi ki:

    ArduinoIO kütüphanesini eklemek lazım http://www.youtube.com/watch?v=KGr3nCxCzSE&list=WLJvDImR6jI-YzXneXR5DpSLH1SR1ACslh
    burdan bi izleyin arkadaşlar.

  3. sercan dedi ki:

    arduino simulink çalışması örneği yapan arkadaşlar varsa yardımcı olabilirlermi?

  4. Ali ERDOĞAN dedi ki:

    Ç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.

  5. mber dedi ki:

    Matlab üzerinden arduino kontrolü yaparken USB kablosu kullanmamız şart mı?Programı Arduino nun kendi derleyicisinde olduğu gibi upload edemez miyiz?

  6. Elektrik dedi ki:

    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?

  7. erman dedi ki:

    Hocam ben matlab ile seri port haberleşme ile led yakmak istiyorum ama bunu yaparken assemblyde kod yazcam bunu nasıl yapabilirim?

  8. Ahmet K dedi ki:

    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…

  9. Rıdvan dedi ki:

    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.

    • Ömer Koman dedi ki:

      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

  10. Ramazan dedi ki:

    Arduino ile matlap bağlanıyor anlık hareket edince duruyor kaç defa denedim olmadı

E-posta adresiniz gösterilmeyecek. Gerekli alanlar * ile işaretlidir.

*



Sosyal Ağlar