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.

19 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ı

  11. riise dedi ki:

    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

    • Ömer Koman dedi ki:

      matlab dışında bu işlem yapılacaksa forumda sorabilirsiniz. matlab ıle yapılacaksa yazarın cevap vermesini bekleyeceksiniz.

    • Mehmetcan dedi ki:

      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.

  12. riise dedi ki:

    matlab ile yapılacak

  13. sim_cearsey dedi ki:

    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

    • srprpr dedi ki:

      AYNI SORUNU YAŞIYORUM. ÇÖZÜM BULABİLDİNİZ Mİ HOCAM?

      • Ömer Koman dedi ki:

        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.

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

*



Sosyal AÄŸlar