21 Ocak 2015 Çarşamba

Arduino UNO ile Quadcopter Yapmak Mümkün mü? -7-

Hamza Öztaş Share:
                     
                      Image Hosted by ImageShack.us
(Resim alıntı olup, temsilidir.)

Merhaba arkadaşlar bu gün kü paylaşımımız da hava aracı ile ilgili yön hareketlerden bahsedeceğim. Daha önce de hava aracımızın iki motorumuzun CW, diğer iki motorumuzun CCW yönde hareket etiğini ve böylece merkezkaç kuvvetinin sıfırlanarak havada dengede kaldığını söylemiştik. Şimdi bu dört motorun hız kontrollerinden ve hava aracımızı sağa, sola, ileri, geri, kendi ekseni etrafında dönme ve yükselme gibi noktalardan bahsedeceğim.

                                          

Limitasyonlar ve Sonrası
  • Öncelikle quadımızın uçuşa hazır hale gelmesi için motorlarımızın arm olması gerekmektedir. Bunu yapmak için iki yol vardır. Birincisi motorları kontrol edeceğimiz min. ve max. pwm değerlerinin motora göndermek. İkincisi ise motorlara küçük bir sinyal göndermek, peki bunu nasıl yapacağız? Şimdi farz edelim ki motorları 0-255 arası kontrol ediyoruz ve motorları pot ile kontrol edeceğiz. Pot'u yavaş yavaş çok az çeviriyoruz ve motordan bir kaç kez bipleme sesi duyduktan sonra duruyoruz sonrasında pot'u çevirdiğinizde motorlar çalışacaktır. Buradaki nokta başlangıçta bipleme sesini duyduğumuz ana kadar olan değeri öğrenmek. Bunun içinde pot ile kontrol ederken pot değerinin ayn zamanda serial monitorde görüntülersek bu değere ulaşabiliriz. Artık bu değeri uçuş öncesi motorları arm yapmak için kullanacağız.
  • Hava aracın yükselmesi için dört motorumuz üretmiş olduğu thrust yani kaldırma kuvveti, hava aracı ağırlığından fazla olmalıdır. Örneğin hava aracı toplam 1 kg ağırlığında olsun. Motorlarımızın da her biri 500 gr thrust üretmiş olsun, dört motor ile toplam 2 kg thrust alabiliyoruz ve motorları 0-255 arası kontrol edelim. Motorlara 255 değerini gönderirsek ne olur, full thrust alırız bu durumda quad fırlayıp hemen yükselişe geçecektir. Bu değer çok fazla oldu tabi bizim için önemli nokta en az hava aracının ağırlığından fazla elde edebileceğimiz thrust değerini bilmek. Bunun içinde en güzel yöntem deneme yanılma yöntemini uyguluyoruz. Nasıl yapıyoruz peki? Şöyle hava aracına 100 den itibaren değer gönderiyoruz ve bi değerden sonra hava aracı yükselmeye başlayacaktır ve bu değeri not ediyoruz atıyorum örneğin 130 dan sonra havalanmaya başladı ve 130'dan itibaren verdiğiniz büyük değerlere göre quad yükselmeye devam edecektir.
  • Hava aracının havada asılı kalması için biraz önce motorlara gönderdiğimiz pwm değerlerinden quad'ın ağırlığına eş değer gelen pwm değerini buluyoruz. Bunun içinde biraz önce 130'dan sonra havalanmaya başladı demiştik, demek ki quad ağırlığına eş değer gelen pwm değeri 125-130 arası bir şey ve bu değeri tam olarak net alıp yine not ediyoruz. Şimdi örneğin hava aracımız havada ve üzerinde mesafe ölçerim iz var, yerden iki metre yükseldiğinde havada asılı kalmasını istiyoruz. Bunun içinde ne yapıyoruz, mesafe ölçer den aldığımız değer 2 metre ise motorlardan biraz önce not aldığımız quad'ın ağırlığına eş değer gelen pwm değerini gönderiyoruz. Böylece quad ağırlığı ile motorların üretmiş olduğu thrust aynı olduğu için hava aracı yükselmeye devam edemeyecek. Alçalmak içinde aynı şekilde motorlar quad'ın ağırlığından daha az thrust üretmeye başladığında alçalmaya başlayacaktır. Yani pwm değerini <125-230 'dan itibaren düşürmeye başladığımızda.
  • Hava aracımızın kendi etrafında dönmesi için dönülmek istenen yöndeki motorların hızı arttırılırken diğer iki yönde dönen motorların hızı azaltılır.Örneğin sağa dönülmek isteniyorsa yukarıda çizmiş olduğum resme baktığımızda sağ yani saat yönünde dönen motorlarımız 2 ve 3 nolu motorlar, dolayısıyla 2 ve 3 nolu motorların hızlarını biraz arttırıyoruz, diğer 1 ve 4 nolu motorlarımızın hızını biraz düşürüyoruz.
  • İleriye, geriye,sağa ve sola hareket ettirmek için de hangi tarafa gidilmek isteniyorsa diğer tarafın motorlarının hızları arttırılır. Nasıl yani? Şöyle örneğin quad'ın ileriye gitmesini istiyoruz, 1 ve 2 nolu motorların olduğu taraf bizim önümüz olsun . 1 ve 2 nolu motorların hızlarında değişme olmaz iken 3 ve 4 nolu motor hızlarını arttırıyoruz ve quad'ta 0-45 derece arası bir eğilme oluyor ve ileriye gitmemizi sağlıyor.
  • Geriye gitmek isteseydik nasıl olacaktı bu kez tam tersi 1 ve 2 nolu motorların hızları arttırılırken diğer motorlar hızlarını koruyacaktı.
  • Sağ ve sol yönde hareket etmede aynı şekilde gerçekleşmektedir. Sağa hareket için 1 ve 3 nolu motorlaın hızları arttırılırken  2 ve 4 nolu motorların hızında değişme olmayacak. Sola hareket ise bunun tam tersi olacaktır.
  • Kendi ekseni etrafında, sağa ve sola dönme ile ilgili şöyle farklı bir tasarım yapabilirsiniz aynı helikopterlerde olduğu gibi quad'ın arkasına bir kuyruk motoru ekleyerek  kullanabilirsiniz, aşağıdaki çizmiş olduğum resimde görüldüğü gibi. Böyle ilginç bir tasarım olabilir.
                                                           
  • Bir diğer farklı tasarım ise quad'ın ileri ve geri haretini yapmak için motor hızları ile hiç uğraşmamak için quad içerisine yerleştireceğiniz  bir servo, dişli, kayiş-kasnak sistemi ile quad'ın her iki tarafını 0-45 yada farklı açılarda kontrol edebilirsiniz. Tabi bunun için motorlar boru profile montajı yapılmalıdır, fazladan servo, dişli, kayiş-kasnak, rulman kullanılmaldır ve kayiş tek parça olmalıdır. Aslında bu biraz fazladan maliyet olarak görünse de biraz ölçü olarak büyük qua'lar için güzel bir yöntemdir.
  
  • Quad havada iken rüzgar vs. çeşitli sebeplere karşı dengesini koruması için imu'u kullanacağız. Quad yerde iken imu kalibrasyon işlemi yapılarak roll, pitch, yaw açı değerleri tam şekilde yapılmalıdır.
  • Örneğin havada quad rüzgardan dolayı sağa doğru yatmaya çalışıyor bu durumda ne yapmamız gerekir?
  • Biraz önce ne demiştik quad'ın hangi tarafa gitmesini istiyorsak diğer taraftaki motorların hızını arttırılır. Bu durumda quad sağa doğru yatmaya zorluyor ise sağa daki motorların hızını arttırılarak dengelenmelidir. Bunu da imu ile kod içerisinde atıyorumeğer sağa doğru 10 derecelik bir yatma olursa sağa daki motorun hızlarını o anki değerinden +30 arttır diyereke quad'ı denegede tutmaya çalışacağız. Bu durum tüm yönler için geçerlidir.
  • Burada önemli olan bir diğer nokta imu kalibrasyon işlemi her uçuş öncesinde düz bir zeminde yapılmalıdır.
  • IMU ile düzgün bir ölçüm yapılarak motor hızları sürekli bu imu verilerle birlikte hareket etmelidir. Hangi yöne doğru bir eğilme, yatma olursa bunu imu'muz hemen ölçüp kod içerisinde yazdığımız koda göre hareket etmelidir. Artık bu noktadan sonrası biraz önce sırasıyla not ettiğimiz verileri kullanarak iyi pid algoritması ile kod yazmaktır. Biraz önce ettiğimiz notlar pid'de bizim set point'lerimizi oluşturmaktadır.
Tarafından Yayınlandı >> Hamza Öztaş

Hamza Öztaş'ı google plus'ta takip etmek için Google'a tıklayın;
Google+.

1
replies
  1. Faydali bir makale, firsat buldukca digerlerini de okumaya calisacagim.

    YanıtlaSil

Get Updates in your Email
Complete the form below, and we'll send you our best of articles.

İletişim

© >> |
TOP