Matlab Simulink & Arduino Haberleşmesi Servo Motor Kontrolü

Önceki yazımda Matlab & Simulink Haberleşmesinden bahsedip Real-Time olarak LED’i kontrol etmiştik.

Bu yazımızda ise Real-Time olarak Servo Motor kontrolünün nasıl yapıldığından bahsedeceğim.

İlk defa kullanıyorsanız sol tarafta install_arduino.m dosyasını çalıştırmamız gerekiyor, sağ tıklayıp run yaparak çalıştırabilirsiniz. Ve aynı şekilde arduino.m dosyasını seri haberleşmeyi sağlamak için çalıştırıyoruz.

(Detaylı anlatım önceki yazımızda mevcut.)

Bu işlemleri gerçekleştirdikten sonra artık Simulink’i açabiliriz.

Simulink’i açtıktan sonra programlarımızda sürekli olarak yüklememiz gereken bloklar; Arduino IO Setup ve Real-Time Pacer, sırasıyla sağladığımız seri haberleşmede port ile kurulumu sağlıyor ve sistemin gerçek zamanlı çalışmasını sağlıyor.

Arduino hangi port’a bağlı ise Arduino Setup’a çift tıklayıp “DEMO” yerine COMX, 5’e bağlıysa COM5 yazıyoruz. Real-Time ise simülasyonda hızının ayarlanmasındaki kat sayıdır.

Ardından Knob (Simulink> Dashboard), Quarter Gauge (Simulink> Dashboard), Servo Read (Arduino IO Library), Servo Write(Arduino IO Library), Display (Simulink> Sinks), Constant (Simulink> Commonly Used Blocks), Slider Gain (Simulink > Math Operations) ekliyoruz.

Constant değerini 1 olarak giriyoruz ve Slider Gain’e bağlıyoruz. (Lojik 0 ve 1 gibi) Slider Gain’e çift tıklayıp en düşük 0, en yüksek 180 giriyoruz. Ardından Knob’a çift tıklıyoruz. Slider Gain:gain bağlantısını sağlıyoruz. Knob (potansiyemetre) çevirdikçe Slider gain de hareketine devam edecek ve bunu Servo’yu bağladığımız pin’e yazacak (pin9 kullandım) ve Servo hareket edecek. Servo Read ise Servo değerini okuyacak ve Display ekranında gösterecek. Ayrıca skala ekranında da görüntüleyebilmek için Quarter Gauge’a çift tıklayıp Servo Read ile bağlantısını sağladık. Quarter Gauge çift tıklayıp hangi değer aralığını görüntüleyebileceğinizi seçebilirsiniz.

Posted in Arduino, Genel, Matlab and tagged , , .

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir