8 Kasım 2012 Perşembe

Matlab üzerinden proteusta arduino servo motor uygulaması ve pozisyon bilgisinin matlabtan html çıktılarının alınması


Bu yazımda matlabta rastgele üretilen pozisyon bilgileri ile  proteustan atmega328 mikroişlemcisi ile servo motor kontrolü yapılmış olup ,elde edilen pozisyon bilgileri  grafiksel olarak html sayfasında gösterilmiştir.Yapılan uygulamaya ait proteus dosyası görüntüsü aşağıdaki şekildedir:





Arduino Uno R3 üzerinde bulunan atmega 328 mikroişlemcisi ayarları ve içerisine yüklenen hex dosyası,matlab ve proteus arasındaki bağlantı http://www.mcu-turkey.com/?p=25096  konulu yazıda tekrar anlatılmıştır.Aynı durumlar söz konusu olduğu için tekrar değinilmemiştir.
Matlab ile proteusun haberleşmesi için COM3 ve COM8 portları kullanılmış olup yapılan bağlantı aşağıdaki şekilde gösterilmiştir:
Matlab kodları aşağıdaki şekildedir:
Source code   
clc;close all;clear all;
 
arduino = arduino('COM8');%bağlantının yapılacağı port belirleniyor
 
arduino.pinMode(5,'output');%5 nolu pin çıkış yapılıyor
 
i=0;%dizinin elemanları alınması için indis 0 a atanıyor
 
while(1)%sonsuz döngüde
 
pozisyon=randi(255);%rastgele pozisyon değerleri üretilerek pozisyon değişkenine atanıyor
 
arduino.analogWrite(5,pozisyon);%Pozisyon değeri 5 nolu pinden gönderiliyor
 
i=i+1;
 
%Seri veri girişinin sağlanması için seri indis numarası her döngüde 1 artıyor
 
a(i+1)=pozisyon;
 
%yeni alınan pozisyon bilgisi seriye atanıyor
 
plot(a);
 
%serinin grafiği çiziliyor
 
pause(3);%3 sn bekleme veriliyor
 
publish('C:\Documents and Settings\pars\Desktop\ciz.m','html');%Her 3 sn bekleme sonunda veriler yenilenerek html sayfası haline getiriliyor
 
%ciz.m matlab dosyası içersinde sadece "plot(a)" fonksiyonu yer almaktadır
 
end
Oluşturulan pozisyon bilgileri servo motora verildiğinde lineer bir değişim göstermediği için grafikler bizim gönderdiğimiz değerleri göstermekle birlikte motorun pozisyon bilgisi proteus üzerinden izlenebilir.
Alınan veriler publish fonksiyonu sayesinde istenen konumdaki bir m-file dosyasını html sayfasına dönüştürmek için kullanılmıştır.”ciz.m” m-file dosyasında sadece pozisyon bilgilerinin değişimlerinin gösterilmesi için plot(a) fonksiyonu yer almaktadır.Programın çalıştırılması sonucu programa ait çıktılar aşağıdaki şekildedir: