mBlock serimize tam hızla devam ederken, bugün ki konumuz Joystickle servo motor kontrol uygulaması olacaktır. Bu yapmak üzere olduğumuz uygulama, gerçek anlamda servo motorun çalışma mantığını anlamada ve motorun kontrol mekanizmasını kavramak için çok önemlidir.
Servo Motor, özellikle günümüzde robotik alanında bizlere öncülük etmektedir. Tabii ki de sadece robotik üzerine yoğunlaşmadığı gibi elektronik, hidrolik-pnömatik vb alanlarda da rastlamamız muhtemeldir. Kullanıldığı alanlarda, onu bu kadar öncü yapan şey ise, bize mekaniksel konum, hız ve ivme gibi önemli parametreleri istediğimiz gibi kontrol etme şansı tanımasıdır. Bu konuda iç yapısını biraz daha detaylı incelemek ve PWM gibi kavramlar hakkında bilgi sahibi olmak, bu uygulamayı anlamamızda bizim yararımıza olacaktır.
Joystick Modülü, kontrol amaçlı kullandığımız bir elektronik devre elemanıdır. İçerisinde potansiyometre bulunmaktadır. Potansiyometre yardımı ile Joystick’in dört yöne hareket etme kabiliyeti ve bize elektronik devrelerde kullanma imkânı sağlamaktadır. Joystick 2 adet yatay ve dikey ekseni gösteren, VRx VE VRy olarak isimlendirilmiş pini bulunmaktadır. Ekstradan bir switch, GND, 5V pinleri de bulunmaktadır. Çalışma mantığı ise şöyle olmaktadır.
Joystick’i X ve Y eksenlerinde hareket ettirince, potansiyometrelerden elde edilen analog veriyi okuyup ve ona göre kullanma yoluyla çalışmaktadır.
Peki, Servo Motorun ve Joystick Modülünün ne olduğunu ve neden tercih edildiğini güzelce anladık. Sırada olan ise onları birlikte kullanarak güzel bir uygulama yapmak olacaktır. Bugün ki uygulamamızda Joystick Modülü ile Servo Motorumuzu istediğimiz gibi kullanabileceğimiz bir uygulama yapacağız.
Öncelikle bağlantı şemamızı kurarken, Arduino üzerinde çok fazla bir karmaşıklığa sebep olmamak için, 5V ve GND bağlantılarını breadboard üzerinden kuruyorum. İlk olarak Servo Motorumuzu bağlamak istersek yapmamız gereken tek şey, üzerinde görmüş olduğumuz 3 adet kabloyu bağlamak. Bunlar sırası ile kahverengi, kırmızı ve turuncudur. Peki, bu kablolar nasıl bağlanıyor?
Ardından Joystick’i bağlamak için yine üzerinde görmüş olduğumuz pinleri bağlamamız gerekiyor. İlk olaran GND pinimizi Arduino üzerinden GND pinimize bağlıyor. Devamında ise 5V PİNİ 5V’ye, X VE Y eksenleri için gerekli olan pinleride A(0) ve A(1) pinlerine takıyoruz. Zaten bugün yapmış olacağımız uygulamada, Servo Motoru hareket ettirmek için tek eksenin girişini yapmak yeterli olacaktır. Şuan için Switch pinine gerek duymuyoruz. Artık bağlantımızda hazır hale gelmiştir. Bağlantımızı Son kez kontrol edip, bir sonraki adım olan, programlama kısmına geçiyoruz.
Öncelikle Kodlamamızı arduino kipi modunda çalıştıracağımız için ilk almamız gereken kod bloğumuz “Arduino Programı” adlı kod bloğudur. Ardından potansiyometre yardımıyla Joystick Modül’den ölçtüğümüz değeri bir yere atamak için bir değişken tanımlıyoruz. Devamında her zamanki gibi sürekli tekrarla bloğu ile devam ediyoruz. Sonrasında ise analog (0) pininden okunan değeri 6ya bölmemiz gerekiyor. Bunun sebebi ise normalde analogdan okunan değer 0 ile arasındadır. Ardından Robotlar dizisinde bulunan “Servo pini açısını x eksen yap” bloğunu sürüklüyoruz. En son ise kodumuzun sağlam çalışması için, “0,3 saniye bekle” bloğunu sürükleyip, programlamamızı bitiriyoruz. Son kez kontrol edip, kodumuzu Arduino’ya yülüyebiliriz.
Merhaba arkadaşlar !
Arduino dersleri serimizin her bir adımında daha eğlenceli projeler yapıyoruz. Bugünkü yazımızda sizlere arduino ile servo motor kullanımından bahsedeceğiz.
Joystick kullanarak bu projeyi yapacağız. Bu sayede hem joystick kullanmayı hem de servo motor kontrol etmeyi öğreneceğiz.
Bir önceki yazımızda ses sensörü modülü ve DC motor kullanmıştık >>> Arduino ve Ses Sensörü Modülü ile Motor Kontrolü
Gerekli Malzemeler:
Projedeki Malzemeler Bu Sette. Şimdi İncele >
Joystick, iki eksende hareket etmeyi sağlayan iki potansiyometre bulunduran ve dikey hareketinde ise buton görevi gören bir modüldür. Joystickleri genellikle oyun konsollarında ve uzaktan kumandalı araçlarda görürüz.
Arduino ile uyumlu joystick modülleri ile birçok farklı proje yapılma imkanı vardır. Motor kontrolü, LED kontrolü, robotik kontroller gibi birçok farklı uygulama görmeniz mümkündür.
Arduino Joystick shield butonu, diğer butonların tersine çalışan bir karakteristiğe sahiptir. Yani bir pullup butondur. Butona basmadığımızda 1, bastığımızda ise 0 değerini okuruz.
Aşağıda Joystick modülünün pinout yapısı bulunmaktadır. Dikey, yatay ve buton hareketlerinin hepsi için ayrı birer data pini bulunmaktadır. Modülün çalışabilmesi için ise 5V ve GND beslemesinin yapılması gerekmektedir.
Servo motorlar sayesinde çok hassas pozisyon kontrolü yapmak mümkündür.
Çoğunlukla çalışma açıları derece arasındadır. Arduinoda servo motor kontrol kodları bulunmaktadır. Bunlar için Arduinoda Dosya>Örnekler>Servo>Sweep ve Dosya>Örnekler>Servo>Knob komutlarını takip etmeniz gerekecektir.
Arduinoda Servo Motorlar PWM sinyali ile çalışırlar. PWMin Türkçe açılımı Sinyal Genişlik Modülasyonudur ve bu sinyaller mikrokontrolcülerden veya uzaktan kumandalardan sağlanırlar.
PWM pinleri ile servonun tam dönüş açısı ve dönüş süresi kontrol edilebilmektedir.
Arduino PWM Pinleri: 3, 5, 6, 9, 10, 11
Servo motorlar, çalışma prensipleri ve PWM pinleri hakkında detaylı bilgiye buradan ulaşabilirsiniz.
Hadi devremizi kuralım !
Gerekli Joystick kodlarını yazalım !
#include <Servo.h> Servo motor; int deger; int derece; void setup() { seafoodplus.info(3); } void loop() { deger = analogRead(A0); derece = map(deger, 0, , 0, ); seafoodplus.info(derece); }