2 Haziran 2014 Pazartesi

Leap Motion Arduino Sevo Kontrol

Bu yazımızda Leap Motion ve arduino uno ile 4 adet servonun el hareketlerine simetrik olarak kontrol edilmesini inceleyeceğiz. Leap Motion üzerinde 2 adet IR kamera 3 adet kızılötesi led bulunmaktadır. Kızılötesi ledlerden yayılan kızılötesi sinyaller leap motion görüş alanı içerisinde bir cisimden yansıdığında bunlar kameralar vasıtası ile tespit edilmektedir. Yani sinyalin yansıma özelliğinden ve giden sinyal ile gelen sinyal arasındaki süre ölçülerek mesafenin tespit edilmesi yönteminden yararlanılmaktadır. Radar sistemlerine oldukça benzemekteler aslında (Şekil 1).


arduino leap motion servo
Şekil 1. Infrared Led Yansıma Prensibi


Leap motion sensörünü kullanmak için çeşitli platformlar, geliştirme ortamları mevcuttur. Ancak Arduino ile benzerliği açısından biz bu çalışmada Processing-Wiring dilini kullanacağız. 

Processing kurulumunu arduino ide kurulumu gibi basit bir şekilde bilgisayarınıza yaptıktan sonra, Projessing klasörü içerisindeki "lib" klasörüne LeapMotionP5 kütüphanesini kopyalıyorsunuz. Bu sayede Leap Motion kütüphanesi' ni Projessing' e yüklemiş olacaksınız. 

Leap Motion bilgisayara USB kablosu ile bağlanmaktadır. Servolar arduino kartına bağlı olduğu için Processing içerisinde arduino seri portunu tanıtmak gerekmektedir. Bu Processing içerisinde setup bloğu içerisine "new Serial(this, portName, 9600); " kodunu ekleyerek yapılmaktadır.

Arduino çıkış akımı kullanılan servoları besleyemeyeceği için, 5V ile çalışan servolara harici kaynaktan enerji sağlamalısınız. Bunu arduino ve servoları aynı pilden beslemek isterseniz 5V regulatör devresi kullanarak yapabilirsiniz. Ancak servolarınızın toplam çekeceği akım 1A üstünde ise farklı elemanlar kullanmanız gerekmektedir. Çünkü 7805 entegresi üzerinden maksimum 1A akım geçirebilmektedir.

Bu çalışmada arduino ile uzaktan haberleşme için Xbee modemleri kullanılmıştır. Siz direk arduino kartınızı bilgisayara bağlayarak da bu çalışmayı yapabilirsiniz. İleriki günlerde Xbee modemlerinin arduino ile nasıl kullanılacağı konusunda yazı paylaşacağım.

Çalışma videosu :  http://www.youtube.com/watch?v=ysL_c9gI2Os

Processing Kodu:

//Leap motion ve arduino ile servo kontrolü

import com.onformative.leap.LeapMotionP5; //Leap Motion kütüphanesi
import com.leapmotion.leap.Finger;
LeapMotionP5 leap;

int aci;
int deger;
float deger1;

import processing.serial.*;
Serial port;

public void setup() {

  size(720, 720, P3D);  //ekran boyutu
  noFill();
  stroke(255); //parmakların modellemesi beyaz olarak ekranda gösterilecek

  leap = new LeapMotionP5(this);  //leap motion usb portu

  println("Seri porta baglanti var:"); //leap motion bağlantısının durumunu ekrana yansıtır

  String portName = Serial.list()[0]; //arduino yada kablosuz modemin bağlı olduğu porta bağlanır
  port = new Serial(this, portName, 9600);
}

public void draw() {
  background(0);
  fill(255);
  for (Finger f : leap.getFingerList())
  {
    PVector position = leap.getTip(f);
 
    ellipse(position.x, position.y, 10, 10);
 
    deger1=map(position.x,250,400,0,180); //leap motion x ekseninde okunan değerler 0-180 arasına //maplenir

    deger=int(deger1); //float deger1 deskeni integer a donusturulur
    port.write(deger); //Seri porttan arduino ya gönderilen deger
    print("deger:  ");
    println(deger); //100-400 arasi

 
  }
}

  public void stop() {
  leap.stop();
}



Arduino Kodu:

#include<Servo.h>

Servo s;
Servo s1;
Servo s2;
Servo s3;

int deger=0;

void setup()
{
  Serial.begin(9600);
  s.attach(5);
  s1.attach(6);
  s2.attach(7);
  s3.attach(8);
}

void loop()
{
   if(Serial.available())
  {
 
    deger=Serial.read();
 
    s.write(deger);
    s1.write(deger);
    s2.write(deger);
    s3.write(deger);
 
  }


}

10 Mayıs 2014 Cumartesi

RC Receiver Değerlerinin Arduino ile Okunması

Multikopter sistemleri yada modelcilikte kumanda alıcı verici sistemleri yaygın olarak kullanılmaktadır. Çeşitli frekans değerlerinde çalışan bu sistemlerden en yaygın kullanılanı 2.4 GHz frekans değerine sahip olanlardır. Kumandalar pwm (pulse width modulation) yada ppm (pulse position modulation)  modülasyon özellikleri ile çalışmaktadır. PWM yada PPM sistemlerini ileriki çalışmalarda detaylı bir şekilde inceleyeceğiz. Bu çalışmada kumandanın nasıl bir sinyal gönderdiğini ve bu sinyalin hangi değerler arasında olduğunu inceleyeceğiz.

Kumanda üzerinde bulunan joystick yada switchler kanallara atanmıştır. Bazılarında ise kanallara atama olayını kullanıcılar yapar. Bir multikopterin kontrol edilebilmesi için en az 4 kanallı kumandaya ihtiyaç vardır.

Kanallardan gelen sinyallere çoğu çalışmada ihtiyaç duyulmaktadır. Multikopterin farklı kontrol çalışmalarında, android kontrollerinde bu verilere ihtiyaç duyulmaktadır. Bu veriler basit bir şekilde arduino kartları ile okunabilmektedir. İlgili kod aşağıda bulunmaktadır. Receiverdan gelen değer analogRead fonksiyonu ile okunamaz. Çünkü PWM yada PPM sinyali ile çalışılır. Yani okunması gereken sinyalin HIGH yada LOW olma süresi okunmalıdır. Bunu okuyabilmek için arduino da özel bir fonksiyon vardır. Aşağıdaki kodda "pulseIn" fonksiyonu sinyalin HIGH olduğu durumları saymaktadır.

Kod:

int pin = 7;     // değeri okunmak istenen receiver pini
unsigned long duration;

void setup()
{
  Serial.begin(9600);
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);   // pulse' in HIGH olması durumunda sayar
  Serial.println(duration);
}

4 Mart 2014 Salı

MIT Application İle Android Uygulaması - Lamba Kontrolü

Bu yazımızda daha önceden eclipse ile yazmış olduğumuz android uygulamasının mit app. inv. ile yapılmasını inceleyeceğiz. MIT app. inv. 'dan yeni proje dosyası açarak başlayabiliriz.

Şekil 1' de verilen uygulama görüntüsü sol kısımda bulunan aygıtların ekran içerisine sürüklenmesi ile yapılır. Bluetooth bağlantısı için yaygın olarak kullanılan "List Picker" seçilmiştir. Ekranda gösterilmesi istenen yazılar için "Label" aygıtı kullanılır. Lambaların kontrol edilebilmesi için butonlar kullanılır. Bu istenen aygıtlar sürüklenerek ekrana yerleştirilir. Ekranın arka plan, yön yada diğer özellikleri sol kısımdaki "Properties" alanından ayarlanır.

android led yakma arduino

Şekil 1

Ekrana yerleştirilen bu aygıtların ne şekilde kontrol edileceği kısmı "Blocks" çalışma alanında bloklarla olacaktır. Mesela butona basıldığında ne yapılması isteniyorsa "When Click do" yapısı blok sayfasından buton üzerine tıklanarak seçilir. Şekil 2 de bu gösterilmiştir.


Şekil 2

Hazırlanan bu uygulamanın kontrol blok şeması Şekil 3' de gösterilmektedir.


Şekil 3

Bu uygulamada android ile lambanın kontrolü için bluetooth haberleşmesi kullanılmıştır. Bluetoothun etkinleştirilmesi List Picker  ve Clock ile  ile ilgili komutlarla sağlanmıştır. 

Buton1 lambanın açılması için, Buton2 lambanın kapatılması için kullanılmıştır. Kontrol blok diagramında Buton1' e basıldığında bluetooth üzerinden 51 sayısı gönderilmekte, Buton2' ye basıldığında 52 sayısı gönderilmektedir. Bu sayıların bu şekilde seçilmesi ASCII tablo karşılıklarının sırasıyla 3 ve 4 olmasıdır. Arduino kısmına yazılacak program içerisinde ascii karşılıkları kullanılacaktır.

Aşağıda arduino kodu yer almaktadır. Uygulama videosu linktedirBluetooth aygıtının arduinoya bağlantısı şu şekildedir:

Bluetooth Pin                      Arduino Pin
      Tx                                        Rx
      Rx                                        Tx
      Vcc                                      Vcc
      GND                                    GND



int ledpin=13; //led 13. pine bağlanır
//yada 13. pinde bulunan led ile işlem yapılır
char deger; //bluetooth ile gönderilen verinin tutulacağı değişken

void setup()
{
  Serial.begin(9600); //seri haberleşme hızı
  pinMode(ledpin,OUTPUT); //led pini çıkış olarak ayarlanır
}

void loop()
{
  if(Serial.available()>0)  //Seri haberleşmeden veri 
  //gönderilirse bu loop çalışır
  {
    deger=Serial.read();  // gönderilen değer okunarak deger değişkenine atanır
    
    if(deger=='3') //deger 3 ise yani 51 ise
    {
      digitalWrite(ledpin,HIGH); //led yanar
    }
    
    if(deger=='4') //deger 4 ise yani 52 ise 
    {
      digitalWrite(ledpin,LOW); //led söner
    }
  }
}

3 Mart 2014 Pazartesi

MIT Application İnventor da Android Uygulaması Geliştirme

Bu zamana kadar android uygulama geliştirme arayüzü için java tabanlı eclipse üzerine kurulu SDK' yı kullanmıştık. Bu yazımızda daha basit bir şekilde uygulama oluşturulabilen MİT Üniversitesi tarafından hazırlanmış app. inv. kullanılacaktır. Daha önceden eclipse üzerinde yaptığımız aynı uygulamaların bu arayüz ile daha basit bir şekilde yapıldığını göreceğiz.

Öncelikle mit app. nasıl kullanılacağı hakkında bilgi verelim. Bu linkteki adrese girip sol üst kısmdaki "Create" butonuna tıklanır ve bir hesap ile oturum açılır. Gerekli anketleri doldurmanızı öneririm yoksa her defasında soracaktır. Aslında uygulama oluşturmak için gerekli işlem bu kadar. Ancak yapılan uygulamaların emulator yada usb bağlantısı ile telefon üzerinde çalıştırılabilmesi için bu sayfanın incelenmesi ve ilgili programların (App Inventor Setup, aiStarter) yüklenmesi gerekmektedir.

Bu aşamalardan sonra mit app inv ekranında ne, ne işe yarar bunları inceleyelim. Şekil 1 ' de uygulamanın oluşturulacağı çalışma ekranı gösterilmektedir.


Şekil 1


Bu ekranın sağ üst kısmında bulunan "My Projects" kısmından yapmış olduğunuz uygulamalara ulaşabilirsiniz. Yine sağ üstte bulunan "Designer" uygulamanın görsel kısmının oluşturulduğu çalışma sayfasını "Blocks" oluşturulacak uygulamada kullanılan buton, label vs. gibi aygıtların kontrol işlemlerin yapıldığı blok kodlama alanını açmaktadır. Üst kısımda bulunan "Build" butonu sayesinde hazırlanan uygulama bilgisayara indirilebilir yada QR kodu oluşturulabilir. Connect butonu sayesinde uygulamanın telefonda yada emulatörde çalıştırılması sağlanır. "Projects" butonu ile hazırlanan projelere ulaşılınabilinir, yeni proje yapılabilinir, internettten indirilmiş yada bir şekilde temin edilmiş proje kaynak dosyaları çalıştırılabilinir.

Çalışma sayfasının "Palette" başlığı altında bulunan aygıt isimleri sürüklenerek ekrana taşınır. Örneğiş Şekil 1' de Screen1 'e 1 adet buton eklenmiştir. Bu sol kısımdaki "User Interface" başlığı altındaki "Button" imgesinin Screen 1 içerisine sürüklenmesiyle yapılmıştır. Sağ kısımda bulunan "Properties" başlığı altındaki imgeler ile ekranda seçili aygıtların genişlik, uzunluk, renk, şekil, yazı boyutu veya rengi gibi temel özellikleri değiştirilebilmektedir. Bu alanda seçilen malzemenin boyutlarının belirlenmesinde önemli bir husus bulunmaktadır. "Width" yada "Height" başlıkları altından seçilen aygıtın (mesela buton) ekranda ne kadarlık alanı kaplayacağını 3 farklı seçenek ile belirleyebiliriz. Bunlar: Automatic, Fill parents, pixeldir. Bunlardan Fill parent seçilen aygıtın ekranın genişliğini yada uzunluğunu kaplaması için kullanılır. Pixel ise istenilen ölçülerde ne kadarlık piksel kaplayacağını yazmamızı sağlar.


Eclipse ile Android Uygulama Geliştirme

İlk olarak Eclipse açılır. Sağ üstte “File>New>Android Application Project” seçilir. Açılan sayfaya uygulama adı girilir. Oluşturulacak uygulamanın hangi sürümler için kullanılacağı seçilir. Aynı sayfadan kullanılacak tema da seçilebilir. İleri butonuna tıklanır. Yapılacak uygulamanın kayıt edileceği alan Location kısmından seçilir. İleri butonuna tıklanır. Açılan sayfadan uygulama sağ üst kısmında simgelenecek iconun resmi ve boyutları seçilir. Farklı bir resim konulmak istenirse bu “İmage File” yanındaki “Browse” butonuna tıklanarak yapılır. İleri butonuna tıklanır. Şimdilik Blank Activity seçimine ellemeyerek ileri butonuna tıklanır ve açılan sayfada “Finish” butonuna tıklanarak ilk uygulama yapılmaya başlanır.

Eclipse üzerinde açılan çalışma sayfasının sağ tarafında “Package Explorer” kısmı altında oluşturulan uygulama ile ilgili kaynak dosyalar bulunur. Bunların içerisinden sırasıyla “res>layout>……xml” dosyası seçilir. Bu kısmın yanında bir ekran açılır (Şekil 1). Açılan bu ekrana sol kısımda “Palette” linki altındaki elemanlar sürüklenerek yerleştirilir. Böylece uygulama sayfası oluşturulur.

eclipse android sdk kurulumu

Şekil 1





Şekil 2: Örnek Android Uygulaması

Eclipse üzerinde oluşturulan uygulamaların çeşitli aygıtları kontrol edebilmesi için, uygulamada kullanılan butonlara, side sticklere, slide barlara çeşitli pinler yada numaralar atanmalıdır. Bu işlem res klasörü altındaki activitymain.xml dosyası içerisinde kod yazarak yapılır. Bir buton ve slide bar içeren kod şu şekilde yazılabilir.



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >



<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world" />



<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView1"

android:layout_below="@+id/textView1"

android:layout_marginLeft="47dp"

android:layout_marginTop="21dp"

android:text="@string/Button" />



<ProgressBar

android:id="@+id/progressBar1"

style="?android:attr/progressBarStyleLarge"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/button1"

android:layout_marginTop="56dp"

android:layout_toRightOf="@+id/button1" />

</RelativeLayout>



Yukarıdaki kodta kullanılacak elemanlar ile ilgili tanımlamalar yapılmıştır. Bu tanımlamalar kullanılacak elemanın genişliği, boyu, rengi, ekranın hangi kısmında olacağı vs. ile ilgilidir.

Oluşturulan uygulamanın Android bir telefon yada emulator denilen bilgisayar üzerinde oluşturulan sanal telefon ekranında oynatılması için Eclipse araç çubuklarından sırasıyla “Run>Run As>Run Configuration” seçilir. Açılan ekrandan derlenecek ve çalıştırılacak proje seçilir. Target kısmından emulatorde oynatmak için “Automatically pick compatible device: Always…” seçilir, telefonda oynatmak için “ Always prompt to pick device” seçilir ve sırasıyla “Apply>Run” tıklanır. Telefonda uygulamanın çalıştırılması için telefonun bilgisayara bağlantılı olması yeterlidir.

Şekil 3 ve 4 de Eclipse üzerinde yazılan android kontrol ugulamaları mevcuttur. Şekil 4.5 de quadrocopterin androidle kontrolü için oluşturulacak devre tasarımı bulunmaktadır. Kontrolcü olarak Arduino Mega ADK kullanılan bu çizimde android telefon ile haberleşme xbee üzerinden yapılmaktadır. Arduino Mega ADK arduino geliştirme kitlerinin android telefonlar ile uyumlu, USB girişine sahip 2560 işlemcili bir versiyonudur. Xbee düşük güçlü veri aktarım cihazıdır. İki nokta arası yada ikiden fazla nokta arası haberleşme için kullanılırlar.


Şekil 3: Android Lamba Kontrol Uygulaması




Şekil 4: Android Araba Kontrol Uygulaması





Şekil 5: Quadrocopter Bağlantı Şeması






Android, Android SDK Kurulumu

Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından geliştirilen, Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilmekte olan, açık kaynak kodlu bir mobil işletim sistemidir. Java üzerine kurulu bir platformdur.

Android, linux çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir, bu sistemde ara katman yazılımı, kütüphaneler ve API C diliyle yazılmıştır. Uygulama yazılımları ise, Apache harmony üzerine kurulu java-uyumlu kütüphaneler ihtiva eden uygulama iskeleti üzerinden çalışır. Android, derlenmiş java kodunu çalıştırmak için dinamik çevirmeli (JIT) Dalvik sanal makinasını kullanır ve cihazların fonksiyonerliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir programcı-geliştirici çevresine sahiptir.

Android uygulama geliştirme ortamı Android SDK’ dır. Uygulama yazabilmek için SDK, Eclipse ve Java Development Kit’ i bilgisayara yüklemek gerekmektedir.

Android SDK, android uygulamaları geliştirmek için gereken tüm kütüphane ve ara programları bulundurur. Tam açılımı Android Software Development Kit yani Android Yazılım Geliştirme Kit’ idir.

Eclipse, açık kaynak kodlu bir tümleşik geliştirme ortamıdır. Ana odak noktası Java ve Java ile ilişkili teknolojiler olsa da esnek yapısı sayesinde C ve Python gibi farklı diller için de kullanılmaktadır. Java kodlarının derlenmesi ve çalıştırılması için kullanılmaktadır. Android SDK ile bütünleşik çalışan Eclipse'in içinde yazılan programları denemek için emulator (sanal telefon) kurulabilmektedir.

Java Development Kit (JDK) java geliştiricilerine yönelik Oracle Corparation ürünüdür. Java diliyle yazılım geliştirme ortamıdır.

Android SDK Kurulumu


1- Android SDK, Eclipse üzerine kurulur. Bu yüzden ilk olarak JDK programı sitesinden indirilir ve bilgisayara kurulur.

2- Eclipse IDE sitesinden “Eclipse IDE for Java Developers” ismiyle indirilir (Şekil 1).



Şekil 1

3- Android SDK kurulur. developer.android sitesinden SDK sekmesine tıklanır ve indirilir (Şekil 2). Bilgisayara yüklerken program dosyasının nereye kurulduğu not edilmelidir. Kurulumun son aşamasında güncelleştirmelerin yapılmasını istiyor musunuz diye bir kutucuk çıkar. Bu onaylanır ve istenen dosyalar için güncelleme yapılır (Şekil 3). Bu işlem daha sonra SDK Manager çalıştırıldığında da yapılabilir.



Şekil 2



Şekil 3

4- Android Development Tools ( ADT) kurulur. Bu iki şekilde yapılabilir. İlk yöntem direk olarak developer.android.com adresinden indirilir ve kurulur. Diğer yöntem Eclipse programı üzerinden sırasıyla “Help>Install New Software” linklerine girilir. Açılan pencereden sağ üstte gözüken “Add” butonuna basılır. Açılan “ Add Repository” dialog penceresinde isim alanına “ADT Plugin”, Location alanına https://dl-ssl.google.com/android/eclipse/ adresi girilir (Şekil 4).


Şekil 4


5- Çıkan pencereden “Developer Tools” seçilir ve devam edilir. Lisans anlaşması kabul edilir.

6- Kurulum tamamlandıktan sonra Eclipse yeniden başlatılır.

7- Android SDK yolu Eclipse bildirilir. Bunun için Eclipse’ ten sırasıyla Window>Preferences yolu takip edilir. Açılan pencerede sol taraftaki listeden Android seçilir ve SDK Location yazan yere bilgisayarınızdaki SDK’ nın yolu girilir. “Apply” linkine tıklandığında bilgisayarınızda kurulu olan SDK platformlarını görülür. Eğer Android SDK kurulumundan sonra SDK Manager’a güncelleme yapılmamışsa bu liste boş gözükecektir (Şekil 5).

8- Kullanılan android sürümleri için gerekli programlar Eclipse üzerinden direk olarak da indirilebilinir. Eclipse araç çubuklarından “Window>Android SDK Manager” seçilir (Şekil 6). Açılan pencerede istenilen sürümler işaretlenerek indirilir.

9- ADT programlarını Eclipse üzerinden yüklemek için araç çubuklarından “Help>Install New Software” seçilir. Add butonuna tıklanır. Name kısmına herhangi bir şey yazılabilir fakat Location kısmına https://dl-ssl.google.com/android/eclipse/ adresi girilir. Açılan sayfadaki programların yanındaki kutucuklar işaretlenir ve Next denilerek işlem tamamlanır.


Şekil 5



Şekil 6













16 Şubat 2014 Pazar

Kontrol Kartı (Uçuş Kontrol Kartı)

Multikopter sistemlerinde kullanılan malzemeler arasında en önemli olanı kontrol kartıdır. Çünkü çok rotorlu araçlarda kontrol işlemi uçaklarda olan sistemlerden daha karmaşık ve zordur. Yapılacak hava aracının hangi amaçla kullanılacağına göre kontrol kartını seçmek gerekir. Bu sebepten kullanılan kontrol kartlarının özellikleri iyi analiz edilmelidir.
Piyasa da kullanılan kontrol kartlarından bazıları şu şekildedir:
         Ardupilot
         DJI Wookong Multi Rotor (WKM)
         Paparazzi Pilot
         DJI Naza
         KK Multicopter
         Multi wii
         ZERO TECH
         MegaWAP
         Shrediquette
         Open copter control

         Mikrocopter

Pervane (Propeller)

          Hızın etkisiyle taşıma kuvvetini üreten taşıyıcı yüzeylere başka bir deyişle döner kanatlara pervane denir. Quadrokopterlerde 2 tip pervane kullanılır.
1.      Saat yönü dönen (clockwise)
2.      Saat yönü tersi dönen (counter clockwise)
2 farklı dönüş yönüne sahip pervane kullanılmasının sebebi yukarıda da anlatıldığı gibi quadronun gövde üzerinde oluşturmuş olduğu anti tork etkisini yok etmektir. Fakat piyasada genelde imalat açısından kolay olması sebebi ile tek tip pervane üretilmesi,  istenen pervane ölçülerinin bulunmasını güçleştirmektedir. Bu sebepten farklı çözüm yolları olsa da en sağlıklısı uygun pervanelerin kullanılmasıdır.

Pervane seçiminde, kullanılan motorun özellikleri ana parametredir. Özellikle Kv değerine göre pervane seçimi yapılması ve motor özellik çizelgesindeki pervanelerin kullanılması verimlilik açısından önemlidir. Kv değeri küçük olan yani devir sayısı az olan motorlarda gerekli taşımayı oluşturması açısından Kv değeri büyük olan motorlara göre daha büyük pervane kullanılır. Şekil 1’de E-MAX BL 2826 tipinde bir motor ile kullanılması gereken pervaneler ve akım-voltaj durumlarına göre ürettiği itki değerleri bulunmaktadır.
quadcopter pervane

Şekil 1

           Pervaneler, boy ve burulma açılarına göre isimlendirilirler. Yani üzerlerinde iki ayrı numara vardır. Örneğin 12x6 pervane demek 12 inch boyunda ya da çapında 6 inch burulma açısına sahip bir pervane demektir. Burulma açısı, pervanenin 360 derecelik dönüşünde ilerlediği mesafe değeridir. Bu değerler bazen mm cinsinden de verilmektedir. Fakat belirtilmediği durumlarda inch olarak kullanılır.
            Pervanelerde burulma açısına göre bazı özellikler elde edilir. Örneğin burulma açısı yüksek pervaneler yavaş süratlenip hızlı uçuş sağlarlar. Bunun yanında motor durduğunda pervane hızı geç yavaşlar. Burulma açısı küçük pervaneler ise çabuk hızlanırlar, yavaş uçuş sağlarlar, basit motor devir kontrolü sunarlar.
Modellerde kullanılan yapım malzemelerine göre pervane tipleri;
Ø  Naylon pervaneler
Ø  Plastik pervaneler
Ø  Karbon pervaneler
Ø  Karbon-fiber pervaneler
Ø  Ahşap pervaneler
Ø  Fiberglass pervaneler
Ø  Metal pervaneler
şeklindedir.
           Naylon ya da plastik pervaneler esnek olmaları sebebi ile kalitesizdirler. Fakat ucuz olmalarından dolayı özellikle ilk denemelerde, pervane kırımı fazla olabileceğinden kullanılmasında fayda vardır. Bu pervanelerin kullanılması durumunda kenarlarında kalan keskin çapaklar zımpara ile temizlenmelidir.  
           Ahşap pervaneler diğerlerine göre hafif ve az esnek olduklarından motor üzerine az yük bindirirler. Böylece diğer pervanelere göre daha yüksek devir sayılarına ulaşabilirler. Esnek olmaları sessiz çalışmalarına da bir etkendir. Fakat yeni başlayanlar için uygun değildirler. Çünkü çok çabuk kırılırlar.
Karbon-fiber pervaneler hafif, esnek olmayan verimli pervanelerdir. Tek dezavantajı fiyatlarının yüksek olmasıdır.
Fiberglass pervaneler karbon ve ahşap pervanelere göre ucuz plastik pervanelerden verimli, ağır ve esnek pervanelerdir. Kullanılması halinde keskin yüzeyleri zımparalanmalıdır. 


Şekil 2



Fırçasız (Brushless) Motorlar

Elektrik motorları elektriğin manyetik alan özelliğini kullanarak elektrik enerjisini mekanik enerjiye dönüştüren makinelerdir. Fırçasız motorlar adından da anlaşılacağı gibi fırça olmadan elektronik aksamlar içeren motorlardır. Bunların, fırçalı motorlardan farkı akım çeviricilerin fırça değil elektronik olmasıdır. Daha sessiz çalışmaları, fırçaların meydana getirdiği sürüklemenin ve ısıdan kaynaklanan kayıpların, fırçaların meydana getirdiği kıvılcımların olmaması, kolay soğutulabilmeleri fırçalı motorlara göre  üstünlükleridir.

Fırçasız motorlar diğer DC motorlar gibi direk bataryaya bağlanarak çalıştırılamazlar. Böyle bir yanlışlığın yapılması motorun yanmasına neden olur. Bu sebepten fırçasız motorların çalıştırılabilmesi için ESC’lere ihtiyaç duyulur.
Fırçasız motorlar inrunner ve outrunner olmak üzere ikiye ayrılırlar. Inrunner motorlar, rotoru motorun merkezinde olan sabit sargıları dış kısımda bulunan motorlardır. Yani motorun dış çeperi sabitken iç kısmı hareket eder. Outrunner motorlarda ise motor sargıları motorun merkezinde ve sabitken, rotor üzerinde mıknatısları da barındıracak şekilde motorun dış çeperindedir.Yani motorun dış kısmı hareket ederken iç kısmı sabittir. Genellikle multikopter sistemlerinde kullanılan fırçasız motor tipleri outrunnerdır (Şekil 1).
           



Şekil 1

            Motor etiket bilgileri
Motorların özelliklerini içeren bazı parametreler vardır. Bunlardan ilki V kısaltmasıyla anılan elektrik akımının basıncı olarak tanımlanan potansiyel farktır. Yani kısaca gerilim değerini gösterir. Modelcilikte kullanılan motorlar üzerinde ya da özellik tablosunda genellikle voltaj değerleri lipo pil hücre sayısına göre verilir.
İkinci parametre akım değeridir. A kısaltmasıyla anılan amper bir noktadan birim sürede akan elektrik yük miktarını gösterir. Yani birim zamandaki yük miktarına akım denir. Bu parametreye göre ESC ve pil simi yapılır.
Üçüncü parametre güç değeridir. W kısaltmasıyla anılan watt motorun pervaneyi çevirebilmesi için ihtiyaç duyacağı gücü ifade eder. Akım ve gerilimin çarpılmasıyla elde edilir.
Kv değeri fırçasız elektrik motorları için geçerli olan devir katsayısını gösteren değerdir. Voltaja göre devir sayısının hesaplanmasını sağlar. Yani motorun 1V başına 1 dakikada çevireceği devir sayısını gösteren parametredir. Örneğin 10 V ile çalışan bir motorun Kv değeri 700 ise bu motorun dakikadaki devir sayısı= 10x700=7000 devir/dakika’ dır. Genellikle dev/dakika yerine rpm (revolution per minute) kullanılır.
Diğer bir parametre Kt değeri diye tabir edilen tork katsayısıdır. Bu değer bir motorun amper başına vereceği tork değerini ounce-inch cinsinden ifade eder. Örneğin 0,60 oz-inc/A Kt değerine sahip bir motor 10 A de 6 oz-inc tork verir.
Kv değeri ile Kt değeri arasında ters orantı vardır. Yani Kv değeri yüksek olan bir motorun amper başına vereceği tork değeri düşük olur. Bu sebepten yüksek Kv değerli motorlarda tork değerinin artırılması için küçük pervaneler ya da ek dişli sistemleri kullanılmalıdır.
Fırçasız motorların etiketlerinde ya da özellikler tablosunda optimum verim için kullanılması gereken pervane ölçütleri de belirtilir. Kullanılacak pervanelerin bu özellikler dahilinde olması verimi artırmaktadır.

ESC (Elektronik Hız Kontrolcüsü)

          Fırçalı ve fırçasız motorların hızını ayarlayan, hız kontrol ünitesidir. Diğer bir ifade ile  pilden aldıkları elektrik enerjisini, alıcının gaz kanalından aldığı sinyal ile sürerek motorlara ileten ve motor devrini kontrol eden hız kontrolcüleridir.
Elektrikli DC motorlarda (fırçalı motorlar) motor hız kontrolü, voltaj kontrolü ile gerçekleşir. Voltajın artırılıp azaltılmasına göre motor hızı değişir. Bu işlem fazlasıyla zor ve ısı açığa çıkaran verimsiz bir yöntemdir.
            Multikopter sistemlerinde kullanılan fırçasız motorlar bilinen 3 fazlı motorlardır. Bu motorlarda kullanılan ESC’ler daha kompleks olup, pilden aldığı DC gerilimi 3 fazlı AC (Alternatif akım) gerilime çevirerek ve kumandadan gönderilen sinyale göre devri değiştirerek motoru sürerler. Fırçasız motorlarda kullanılan bu ESC’ler motor devrini PWM (pulse width modulation) yöntemiyle değiştirirler. Bu yöntem sayesinde fırçalı motorlarda kullanılan voltaj- hız ilişkisi ile devir değiştiren ESC’lerin meydana getirdiği ısı problemi ve verimlilik sorunu kısmen ortadan kalkar. PWM metodu darbe genişlik modülasyonu olarak bilinir. Kumandadan alınan dijital sinyalin pulse genişliği değiştirilerek, motora giden gerilim değeri dolaylı yönden frekans kontrolü ile yapılır. Pulse genişliğini değiştirme işlemi ESC nin çıkış akımını sürekli açıp kapatmasıyla gerçekleşir. Yani motora giden voltaj çıkış akımının ne kadar süre gönderilip ne kadar süre kesildiğiyle alakalıdır. Örneğin, 1 saniyelik zaman süresince 10 V pile bağlı bir ESC-motor bağlantısında kumanda gaz kolu %60 da iken, ESC akımı, saniyenin 6/10 unda açacak 4/10 unda kapatacaktır. Böylece motora sürekli 10 V gitmeyecek ve 1 saniyede giden voltajın ortalamasına göre motorun devri değişecektir. ESC’ lerde 1 saniyedeki akım değişiminin yüksek olması istenir. Yani ESC’lerin üzerlerinde yazan KHz değerleri ne kadar yüksekse yenileme frekansı denilen saniyedeki akım açma kapama sayısı da o kadar fazla olur. Bu sebepten tercih edilecek ESC’nin yenileme frekansı yüksek olmalıdır. Fırçasız motorlarda kullanılan ESC’lerin girişinde 2, çıkışında 3 motor kablosu 3 BEC ve 1 sinyal kablosu bulunmaktadır (Şekil 1). Girişte bulunan 2 kablo, kırmızı uç + eksi uç – olmak üzere pile bağlanır. Çıkıştaki 3 kalın kablo motorlara bağlanır ve herhangi ikisinin yerinin değiştirilmesiyle motor yönü değiştirilebilir. Diğer 3 ince kablodan kırmızı ve siyah olanı ESC içerisindeki 5V, 3A ya da 5A çıkış veren regülatör devre çıkışlarıdır. 5V’u sağlayan regülatör devresine BEC (battery eliminator circuit) ya da UBEC de denilmektedir. Alıcıları ya da kontrol kartlarını beslemek için kullanılan bu çıkışlar alıcı kanallarına bağlanır ve 5V ile çalışan sistemleri, kontrol kartlarını besler. Diğer beyaz ya da sarı renkli ince kablo ESC sinyal kablosudur. Alıcının sinyal çıkışına bağlanarak ESC’ye vericiden gönderilen sinyali iletir. Böylece ESC motorun hızını kumandadan gönderilen sinyale göre değiştirir.


esc multicopter
Şekil 1



           ESC voltaj değerleri genellikle kullanılabilecek lipo pillerin hücre sayısına göre üzerlerinde yazar. Bu sebepten kullanılacak ESC ile lipo pil arasında uyum olması gerekir.

           ESC akım değeri bir ESC’nin verebileceği maksimum akımı ifade eden değerdir. Bazı ESC’lerde sürekli ve yanma akımı şeklinde 2 değer verilebilir. Bunlardan sürekli olan yani az olan değer ESC’nin sürekli olarak motora verebileceği akım değerini yanma akımı ise anlık olarak verebileceği akım değerini gösterir. Bu yüzden ESC seçiminde kullanılacak motorun maksimum çekeceği akım değeri dikkate alınmalıdır. Ayrıca ESC akımının motorun çekeceği maksimum akımdan %10 fazla olması ısınmaları ve ESC’nin yanma riskini de azaltabilir.

           ESC’ler barındırdıkları bazı özellikler sayesinde programlanabilirler. Bu konu uygulama alanında detaylıca anlatılmıştır.