mBlock Servo Motor Uygulaması!
Her geçen gün Dünyamız çok daha büyük hızla gelişiyor ve bu süreç içerisinde bizde bundan fazlasıyla payımızı alıyoruz. Peki, bu süreçte yapmamız gerekenler nedir? Nasıl bu hızla değişen sürece ayak uydurabilir ve kendimize bir şey katabiliriz? Çok açık bir şekilde kendini belli ediyor ki, bunu yapmanın tek yolu üretmek veya bu yapılan üretime bir katkıda bulunmak. Tabii ki bunları başarmak kolay olmuyor, öncelikle istemek ve durmadan denemek gerekiyor.
Bu sürece nereden, nasıl başlamamız gerekiyor derseniz, doğru yerdesiniz. STEM’in önemi günümüzde gitgide daha da anlamaya başlıyoruz ve gün geçtikçe üstünde daha da durmaya başlıyoruz. Bu önemli sürece bir sürü yolla başlayabilirsiniz, yani her zaman dediğimiz gibi önemli olan başlamak. Sizlere bugün ki yazımızda bu sürece başlamakta önemli bir rol oynayan uygulama olan, herhangi bir yaş fark etmeksizin, tamamen ücretsiz olan mBlock uygulamasıyla Servo Motor uygulaması yapımından bahsedeceğim. Zaten bir önce ki yazımızda mBlock uygulamasının ne olduğundan, neler yapılabileceğinden ve led yakımından bahsetmiştik.
Servo Motor Nedir?
Teknolojinin gelişmesi ile elektrik ve elektronik sektörü de gözle görülebilir bir şekilde ilerleme kaydetti. Bu gelişimlerden etkilenen bir taraf ise motorlardır. Her gelişmeyle birlikte motorlar daha da becerikli, kaliteli hale geldi. Motor, dairesel olarak hareket ederek kuvvet üreten endüstriyel cihazlardır ve kendi içinde DC, AC, Servo ve Step Motor olmak üzere 4 türde adlandırılır. Her birinin kendi avantajları, dezavantajları ve iç yapıları var. Bu yazımızda üstünde duracağımız motor çeşidi Servo Motor olacaktır. Önceden de bahsettiğim gibi bütün bu motorların ortaya çıkışı bir ihtiyaçtan kaynaklandı ve birazcık bile olsa çalışma mantıklarında, iç yapılarında benzerlik bulabilirsiniz. Peki, Servo motorun en büyük farkları nedir? Genel olarak AC, DC motora benzese de belli başlı birkaç özelliği onu biraz daha gelişmiş motor haline getiriyor.
• Potansiyometre
• Encoder
• Motor milinin (şaft) konumunu ölçen bir kontrol devresi
Genellikle Kullanılmakta Olan TowerPro SG-90 Özellikleri Nelerdir?
1. Çalışma Gerilimi tipik olarak + 5V’dir
2. Dönme momenti: 2.5kg / cm
3. Çalışma hızı 0.1s / 60 °
4. Dişli Tipi: Plastik
5. Dönüş: 0 ° -180 °
6. Motor ağırlığı: 9gm
Bunun yanı sıra internetten diğer motorlara(MG90S,MG995..) ve özelliklerine bakabilirsiniz.
Motorun kablo bağlantılarına baktığımızda ise turuncu, kırmızı, kahverengi olmak üzere 3 bağlantı ile karşı karşıya kalmaktayız.
• Turuncu renkli bağlantıya baktığımızda PWM (Kontrol Bağlantısı)
• Kırmızı renkli bağlantıya baktığımızda ise VCC (+5 Volta bağlanılacak kısım)
• Kahverengi kablo ise GROUND yani eksi bağlantımız( – )
Tabii ki bu motorumuzu çalışır bir konuma getirmek için ekstra olarak ise kontrol sinyaline ihtiyaç duyarız. Bu kontrol sinyali Servo Motorumuza hangi açıda durması gerektiğini söylemektedir. Önceden de belirttiğimiz gibi motorun içinde bulunan kontrolcü motorun güncel konumunu ve getirmek istediğimiz konumu karşılaştırır ve gerekli işlemleri uygulayarak motoru istediğimiz konuma getirir. Peki Motorlara gitmesini istediğimiz açıyı nasıl söyleyebiliriz? Tabii ki PWM sinyallerini kullanarak.
PWM SİNYALİ
Açılımı sinyal genişlik modülasyonudur. Sinyalleri istediği gibi işlemede ve onların aktarımını sağlamada kullanılır. Bunu da anahtarlama yöntemi ile yapar. Bunun yanı sıra sinyalin gücünün kontrolünü sağlamada kullanılabilir. PWM sinyalindeki yüksek kısmın uzunluğu, Servo Motorumuzun durmasını istediğimiz açıyı temsil etmektedir. Yanda ki görselden de görebileceğiniz üzere burada ki PWM sinyalinin uzunluğu 1-2ms arasında değişmektedir. 1 ms olduğunda motorun bir ucunu yani 0 dereceyi ve 2 ms olduğunda ise motor 180 dereceyi (diğer ucu) göstermektedir. Ardından da görüldüğü gibi bir PWM döngüsü 20ms (50 Hz) sürmesi gerekmektedir.
Arduino’ya Nasıl bağlanıyor?
Servo Motorun arduinoya bağlanması gerçekten basit bir işlemdir. İlk olarak motor üzerinde bulunan ve daha öncede özellikle belirttiğim Ground kablosundan arduino üzerindeki GND girişine kablo çekmekteyiz. İkinci bağlantımız ise motorumuzun üzerinde ve bize güç vericek olan Power girişiyle, arduino üzerinde bulunmakta olan 5V pinini bağlıyoruz bu sayede servo motorumuz artık güç alabilmektedir. Ardından ise arduinomuzda kontrolü sağlamak için sinyal kurmaya ihtiyacımızz vardır. Bunu ise motor üzerinde önceden de belirttiğim signal girişini, arduino üzerindeki 5. Pine bağlayarak yapıyoruz(siz de 0 ve 1 haricinde çünkü onlar bilgisayarla haberleşme için kullanılıyor, istediğiniz pin’e bağlayabilirsiniz örnek: 5, 6 vb).
Bu projemizi yaparken breadboarda ihtiyacımız yoktur ama siz birden fazla Servo Motoru bağlamak istiyorsanız, breadboard kullanmanı gerekicektir. Nedeni ise motorun güç girişlerini(Power ve Ground) tek hat üzerinde birleştirmeniz gerekiyor. Zaten İleri ki dönemde bununla ilgili daha detaylı bir yazı yazmayı düşünüyorum.
Kod Blok!!
Öncelikle bugün sizlere tek bir Servo Motorla 2 uygulama yapımı göstereceğim. İleriki zamanlarda da birden fazla motorla proje yapmayı düşünüyorum.
İlk olarak her zaman olduğu gibi blokların bulunduğu kısımdan Robotlardan arduino programı adlı bloğumuzu sürükleyerek başlıyoruz. Birinci uygulamamızda sıfırdan sırasıyla 45-60-90-135 ve 180 derecelik açılarla hareket ettirmek istiyorum. Ardından ise 0dereceden başlayarak 180 dereceye kadar 1 derece artarak hareket edecek.
Arduino programı kısmını sürükledikten sonra her zamanki gibi uygulamamızın devamlı şekilde tekrarlaması için sürekli tekrarla bloğunu sürüklüyoruz. Bir sonraki adımda “9 servo pini açısını 90 yap” bloğunu sürükleyerek ve istediğimiz gerekli değerleri girerek yerleştiriyoruz. Ardından 1.5 saniye bekleme bloğunu sürüklemek istiyorum ki çok daha güzel gözlemleyebilelim. Bu süreci bütün açılar için yapabilirsiniz.
1.Uygulama
2.Uygulama
2.uygulamamız için ise ilk olarak derece adında bir değişken oluşturmamız gerekiyor. Bunu veri ve blok dizisinden kolayca yapıyoruz. 2. Adım olarak ise arduino programı bloğumuzun alt kısmına “derece 0 olsun” adlı bloğumuzu sürükleyerek başlangıç derecemizi 0 belirliyoruz. Hemen altına her zaman ki gibi “sürekli tekrarla” bloğunu sürükleyerek bırakıyoruz. Bu şekilde programımızın büyük bir kısmını yazmış oluyoruz. Ardından ise veri-blok kısmından “dereceyi 1 arttır” bloğunu “sürekli tekrarla” bloğumuzun içine sürüklüyoruz ki döngü her bittiğinde kendini sürekli tekrarlamaya devam etsin. Hemen sonrasında çok kısa bir bekleme süresi ekleyerek işlemi gerçekleştiriyoruz. Tabi bir vakit sonra derecemiz 180e ulaşacak ve hatta sonrasında değişkenimiz artmaya devam etse bile motorumuz sadece 0-180 derece arasında çalışabildiği için bir süre sonra bir eğer döngüsüyle değişkenimizi ve dereceyi sıfırlamamız gerekecek. Bu kod bloğunu da sürükledikten sonra arduinoya yükle butonuna tıklayarak çalıştırabiliriz.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.