- Gerekli Bileşenler
- Devre şeması
- MATLAB Komut Penceresini kullanarak Seri İletişim
- MATLAB GUI kullanarak Seri İletişim
MATLAB, çok çeşitli uygulamalar için kullanılabilen çok yönlü bir yazılımdır. MATLAB'ın önceki derslerinde, DC motoru, Servo motoru ve Ev aletlerini kontrol etmek için MATLAB'ın nasıl kullanılacağını açıkladık. Bu eğitimde MATLAB'ın Seri İletişim için nasıl kullanılacağını öğreneceğiz. Seri haberleşmenin alıcı ucu için Arduino kullanıyoruz.
MATLAB ve Arduino arasında seri iletişim kurmanın iki yolu vardır, biri komut penceresini kullanmak ve diğeri MATLAB GUI kullanmaktır. Her iki yöntem için de Arduino kodu aynı kalacaktır. MATLAB'da yeniyseniz, MATLAB ile basit LED yanıp sönme programına başlamanız ve MATLAB'da kullanılan temel terminolojiyi öğrenmeniz önerilir.
Gerekli Bileşenler
- MATLAB yüklü Dizüstü Bilgisayar (Tercih: R2016a veya üzeri sürümler)
- Arduino UNO
- LED (herhangi bir renk)
- Direnç (330 ohm)
Devre şeması
Yukarıdaki devre şeması, MATLAB ve Arduino arasında seri iletişim kurmanın her iki yolu için de aynı kalacaktır.
MATLAB Komut Penceresini kullanarak Seri İletişim
Bu, Arduino ve MATLAB arasında seri iletişim kurmanın basit yöntemidir. Burada MATLAB'den veriyi komut penceresini kullanarak seri olarak Arduino'ya göndereceğiz ve ardından Arduino gelen seri verileri okuyacaktır. Daha sonra bu seri olarak iletilen veriler, Arduino'ya bağlı herhangi bir şeyi kontrol etmek için kullanılabilir. Burada Arduino tarafından seri olarak alınan verilere göre açılıp kapanacak bir LED'i Arduino'ya bağladık.
Önce verilen Arduino kodunu Arduino UNO'ya yükleyin ve ardından MATLAB Editör Penceresinde kodlamaya başlayın. Yeni bir düzenleyici komut dosyası açmak için aşağıdaki resimde gösterildiği gibi ' Yeni Komut Dosyası'nı tıklayın:
Ardından, MATLAB ve Arduino arasındaki seri iletişim için aşağıdaki eksiksiz MATLAB kodunu editör penceresine kopyalayıp yapıştırın.
% Arduino ve MATLAB arasında Seri İletişim için MATLAB Kodu x = seri ('COM18', 'BAUD', 9600); fopen (x); go = true; while go a = input ('LED'i AÇIK konuma getirmek için 1'e ve KAPATMAK için 0'a basın:'); fprintf (x, a); eğer (a == 2) go = false; son sonu
Verilen kodda MATLAB'da seri haberleşmeyi tanımlamak için aşağıdaki komut kullanılmıştır. Com port numarasının Arduino'nun bağlı olduğu port numarası olduğundan ve baud hızının hem Arduino hem de MATLAB kodlarında aynı ayarlandığından emin olun.
x = seri ('COM18', 'BAUD', 9600);
Seri bağlantı noktasını açmak için aşağıdaki komutu kullanın, fopen (x);
Aşağıdaki komut, MATLAB'den Arduino'ya seri olarak veri göndermek için kullanılır, burada x seri çağrı içindir ve a, kullanıcı tarafından girilen değerdir.
fprintf (x, a);
Sonsuz bir döngü oluşturmak için while işlevini kullanırız ve kullanıcı '2' sayısını girdiğinde döngü kesilir.
while go a = input ('LED'i AÇIK konuma getirmek için 1'e ve KAPATMAK için 0'a basın:'); fprintf (x, a); eğer (a == 2) go = false; son sonu
MATLAB editör betiğini kodlamayı tamamladıktan sonra, programınızı aşağıdaki resimde gösterildiği gibi çalıştırmak için ' ÇALIŞTIR'a tıklayın,
MATLAB, kodu işlemek ve seri iletişimi başlatmak için birkaç saniye sürer, MATLAB aşağıdaki resimde gösterildiği gibi yazılım ekranının sol alt köşesinde 'MEŞGUL' mesajını gösterene kadar bekleyin.
Şimdi, kullanıcı girişini göndermek için komut penceresini göreceksiniz, varsayılan mesajı ayarladık, 'LED'i AÇIK konuma getirmek için 1'e, KAPATMAK için 0'a basın:'
LED'i açmak için '1', LED'i KAPATMAK için '0' ve çalışmayı kesmek için '2' gönderin. Herhangi bir görev için herhangi bir sayı ayarlayabilirsiniz, tek yapmanız gereken sadece Arduino kodunu buna göre değiştirmektir. Sonunda eksiksiz Arduino kodu verilmektedir.
Komut Penceresini kullanarak MATLAB'den Arduino'ya Seri Veri Gönderme sürecinin tamamını anlamak için aşağıdaki videoyu inceleyebilirsiniz.
MATLAB GUI kullanarak Seri İletişim
MATLAB GUI kullanarak Seri İletişimi göstermek için, Arduino'ya bağlı LED'i açmak ve kapatmak için MATLAB kullanarak iki grafik düğme oluşturacağız. Veriler, LED'i açmak ve kapatmak için bu düğmelere tıklandığında MATLAB'den Arduino'ya seri olarak gönderilecektir. Arduino, MATLAB'dan seri veri almak ve alınan seri verilere göre LED'i kontrol etmek için kod içerecektir. Arduino kodu öncekiyle aynı kalacak, tek fark, daha önce MATLAB'ın komut penceresinden '1' ve '0' seri verileri gönderiyorduk ve şimdi aynı veriler iki grafik düğme üzerinde tıklandığında gönderilecek.
GUI'yi başlatmak için, komut penceresine aşağıdaki komutu yazın
kılavuz
Bir açılır pencere açılacak, ardından aşağıdaki resimde gösterildiği gibi yeni boş GUI seçin,
Şimdi aşağıda gösterildiği gibi LED'i AÇMAK ve KAPATMAK için iki düğme seçin,
Düğmelerin şeklini yeniden boyutlandırmak veya değiştirmek için üzerine tıklamanız yeterlidir ve düğmenin köşelerini sürükleyebilirsiniz. Basma düğmesine çift tıklayarak, o belirli düğmenin rengini, dizesini ve etiketini değiştirebilirsiniz. Aşağıdaki resimde gösterildiği gibi iki düğmeyi özelleştirdik.
Düğmeleri tercihinize göre özelleştirebilirsiniz. Şimdi bunu kaydettiğinizde, MATLAB'ın Editör penceresinde bir kod üretilecektir. Bu kodu, MATLAB GUI kullanarak Arduino'nuz tarafından gerçekleştirmek istediğiniz göreve göre düzenleyin. Bu yüzden aşağıda MATLAB kodunu düzenledik. MATLAB öğreticisine Başlarken bölümünde Komut penceresi, düzenleyici penceresi vb. Hakkında daha fazla bilgi edinebilirsiniz.
MATLAB ile Arduino arasında Seri İletişim kurmak için eksiksiz MATLAB kodu bu projenin sonunda verilmiştir. Ayrıca indirmek için GUI dosyasını (.fig) ve kod dosyasını (.m) buraya ekliyoruz (bağlantıya sağ tıklayın ve ardından 'Bağlantıyı farklı kaydet…' seçeneğini seçin), bu düğmeyi ihtiyacınıza göre özelleştirebilirsiniz. Aşağıda, Arduino ile bağlantılı LED'i kontrol etmek için yaptığımız bazı ince ayarlar bulunmaktadır.
Aşağıdaki kodu kopyalayıp satır no. 74 seri bağlantı noktasını ve baud hızını ayarlamak için.
hepsini temizle; küresel x; x = seri ('COM18', 'BAUD', 9600); % Baud hızı ve COM portunun Arduino IDE fopen (x) ile aynı% olduğundan emin olun ;
burada, fopen (x) seri iletişim için seri bağlantı noktasını açmak için kullanılır.
Aşağı kaydırdığınızda, GUI'deki her iki Düğme için de iki işlevin oluşturulduğunu göreceksiniz. Şimdi kodu, tıklama ile gerçekleştirmek istediğiniz göreve göre her iki fonksiyona da yazın.
In LED-ON düğmesinin işlevi, kopyalama ve LED AÇIK sadece fonksiyonun sona ermeden kod aşağıda yapıştırın. Aşağıdaki kodda gördüğünüz gibi fprintf (x, 1) , MATLAB'den Arduino serisine seri veri göndermek için kullanılır. Burada Arduino seri için '1' gönderiyor ve Arduino kodu kontrol ederseniz, Arduino onun 13 yaparak LED yanacaktır olduğunu göreceksiniz inci onun seri port üzerinde '1' aldığında, pim YÜKSEK.
küresel x; fprintf (x, 1);
In LED KAPALI düğmesinin işlevi, kopyalama ve LED kapatmak için sadece fonksiyonun sona ermeden kod aşağıda yapıştırın. Aşağıdaki kodda gördüğünüz gibi fprintf (x, 0) , MATLAB'den Arduino serisine seri veri göndermek için kullanılır. Biz Arduino seri için '0' gönderiyor ve Arduino kodu kontrol ederseniz, Arduino, 13 yaparak LED kapanacaktır olduğunu göreceksiniz Bu bölümde inci onun seri port üzerinde '0' aldığında, pim DÜŞÜK.
küresel x; fprintf (x, 0);
MATLAB GUI kodlamasını tamamladıktan ve donanımı devre şemasına göre kurduktan sonra, düzenlenen kodu.m dosyasında çalıştırmak için çalıştır düğmesine tıklamanız yeterlidir.
MATLAB'ın yanıt vermesi birkaç saniye sürebilir, MATLAB aşağıda gösterildiği gibi ekranın sol alt köşesinde görebileceğiniz MEŞGUL işaretini gösterene kadar herhangi bir GUI düğmesine tıklamayın,
Her şey hazır olduğunda, LED'i AÇMAK ve KAPATMAK için LED AÇIK ve LED KAPALI düğmesine tıklayın. Eğer basın zaman LED-ON düğmesi , 13 inci Arduino pin HIGH gider ve parlayan başlar bu PIN bağlı LED ve bastığınızda LED KAPALI düğmesi , 13 inci Arduino pin kapatmak için LED yapar LOW gider.
MATLAB GUI kullanarak MATLAB'den Arduino'ya Seri Veri Gönderme işleminin tamamını anlamak için aşağıdaki videoyu inceleyebilirsiniz.