13

EYL

2011

Quadrotor

Yazan: Barış Samancı
Kategoriler:Donanım, ARM

quadrotor

Görüntüsü genel olarak aynı fakat bir çok ismi bulunmakta. Quadrotor,quadcopter, multikopter, multirotor kimiside insansız hava aracı (UAV) demekte.Dörtten fazla pervaneli modelleride bulunmakta. Yeni değiller, ilk fikirler ve kullanışsız büyük mekanik prototipler 1920li yıllarda ortaya atılmış. Zamanla elektronik sistemlerin kabiliyetleri geliştikçe ve mekanik sistemlerinde ufalmasıyla ortaya çıkan MEMS teknolojisi sayesinde 1990 lı yıllarda üniversitelerde küçük, elektronik kontrollü quadların yapımına başlanmış. 2000'li yıllarda popülerliği gittiçe artan bu araçların günümüzde deyim yerindeyse çılgınlığı yaşanıyor.

Bende bu araçtan yapmaya geçen sene karar verip bir kısım malzemeyi almıştım fakat başlamak bu yazın başına kısmet oldu.İki aylık bir zaman diliminde projeyi sıfırdan uçar hale getirdim. Bu süreçte okumadığım doktora/yüksek lisans tezi, incelemediğim sensör kalmamıştır heralde

Bu projenin benim için güzel olan kısmıysa yazılımın ve tasarımın baştan sona bana ait ve orjinal olması. main.c den bu yana 10 larca dosya ve binlerce satır kod birikmiş durumda. Bunun avantajını ilerleyen günlerde görmeyi düşünüyorum. Araç her nekadar basit gözüksede siz aldanmayın, proje bir o kadar zor. Yolda görenler dört pervaneyi taktığımızda hemen düzgünce uçacağını sanıyorlar. Birisi ben lehim falan yapabiliyorum anlarım böyle işlerden demişti :) Fotoğraflarda masum dursa da işler ters gitmeye başladığında insanı çıldırtabiliyor.Bir keresinde geliştirme aşamasındayken sensörlerde iyileştirme için yaptığım değişiklikten sonra sistem çalışmayınca sinirden masayı yumrukladığımı hatırlıyorum. Meğersem herşey doğruymuş fakat kabloyu uzun tuttuğumdan dolayı gerilim düşümü yaşanıyormuş :) Bu kadar laftan sonra ilk prototipin mekanik gövdesini yaparken çektiğim bir kaç fotoğrafa bakalım.


Quadrotor Frame

Quadrotor Frame

Quadrotor Frame

Quadrotor Frame

 

Fotoğraflarda gördüğünüz ve videolarda göreceğiniz motorlar biraz farklı. Bunun sebebi akrobatik modda taklalar atarken iyi sıkmamış olduğum elektronik kartın kablosunun yerinden çıkması, sonrasını tahmin edebilirsiniz zaten :) Kablo çıkınca tüm pervaneler aynı anda durdu ve 20 metre civarı bir yükseklikten serbest düşüşe geçti. Şanslıymışım, sadece bir motor kaybım oldu. Verim testi yapmak için almış olduğum motor çiftlerinden biriyle quadın iki motorunu değiştirdim. Quadsız kalmamak için yeni siparişlerim elime ulaşana kadar akrobatik modu geliştirmeyi durdurdum, stabil modu geliştirmeye devam ediyorum. Bu modda gazı kesmediğiniz sürece kasıtlı olarak bile aracı yere düşürmek çok zor. Kumanda kollarını bıraktığınız anda havada asılı kalmaya başlıyor.

Gövde için 2.5x1.75 lik alüminyum profil bulabildim, epey ağır. Aracın toplam ağırlığı şuan için 1450gr. Bu şekilde verimli uçuş süresi 10 dakika civarı. 10dk dan sonra kaldırma kuvveti azaltığı için cihazı kontrol etmek zorlaşıyor. 12. dakikaya doğru pil bitiyor zaten. Denediğim maximum ağırlık kendi ağırlığıyla birlikte 2kg. 2kg'ı rahat bir şekilde taşıyabiliyor. Watt testlerinde 3Kg dan fazla kaldırabileceği gözüküyor fakat bu ağırlığı kaldırmaya çalışmak anlamsız olur. Yeni siparişimdeki carbon fiber parçalar elime geçtiğinde gövdeyi %100 karbon yapmayı düşünüyorum. Yeni versiyonda da artık xpressoyu projeden çıkartıp ufak, tek bir elektronik kart yapmayı düşünüyorum. Böylece uçuş ağırlığımın 1100gr altına ineceğini hesapladım. Ayrıca yüzey alanıda küçüleceği için rüzgardan biraz daha az etkilenir hale gelecek. Kısacası yeni yapacağım sistem daha fazla ek yük taşıyabilecek, daha uzun süre havada kalabilecek, daha hızlı tepki verip daha hızlı gidebilecek. Maximum hızımı ölçmedim fakat araç gerçekte videolarda göreceğinizden daha hızlı hareket etmekte.Zaten tam gaz çalıştırdığım kısa bir kaç nokta var, motor seslerinden de anlayabilirsiniz.Ayrıca videolardaki yazılımlarda güvenlik amacıyla motorlara kısıtlama koydum.

Quadın mekaniği şuan verimsiz olsada yazılımı baya verimli oldu.Sonuçta ilk prototip ve motorları bile farklı :) Yazılımdaki ana fonksiyonlar, güncelleme hızları ve bir saniyelik periyotta işlemcinin bu fonksiyonlarda ne kadar zaman geçirdiğini yaptığım ölçüm sonuçlarından görebilirsiniz. İşlemcim şuan için 72Mhz de çalışmakta. 100MHz'e kadar yolu var :)

  • readSensors (sensörleri okuma, filitreleme, SI birimlerine çevirme)    1Khz    ~551.7ms
  • updateIMU (sensörlerden IMU açı bilgilerini güncelleme)    200Hz    ~132.6ms
  • updatePID (IMU bilgilerinden dört eksende PID verilerini güncelleme)    200Hz    ~15.8 ms
  • readReceiver (Kullanıcıdan gelen kumanda verilerini okuma)    50Hz    ~0.015ms
  • updateMotors (Güncel PID verilerinden motor hızlarını güncelleme)    200Hz    ~0.18ms
  • printTelemetry (Telemetry verilerini istenen kanala yazma)    20Hz    ~115.6ms
  • systemIdle (işlemcinin zamanını boşta geçirdiği fonksiyon) ~184.1ms

Şimdilik işlemcinin hangi işe ne kadar zaman ayırdığı bu şekilde. 184ms'lik boş zamanı var.Yeni bir eklenti yapmam gerektiğinde işlemci hızını arttırabilir veya sensörleri okuyan fonksiyonu yavaşlatabilirim. Sonuçta yarıdan fazla zamanı orda geçiriyor gözüküyor. Double sayılarla karmaşık trigonometri hesapları, çapma bölme gibi işlemleri yüksek hızlarda senkron bir şekilde yapabiliyor. Quadımı piyasada yayınlanan, satılan hazır veya açık kaynak kodlu quadlardan ayıran en önemli farklardan birtanesi de bu. Bahsettiğim quadların verileri değerlendirirken açık ve kesin sonuçlu hesaplamalar yapmak yerine trigonometriden kaçınmak için matris kullanmakta, bazı yerlerde float sayılar üzerinde sadeleştirmeye gitmekte olduklarını gördüm.Bu halde bile çıkabildikleri güncelleme hızları 100Hz-150Hz.Açı ve motor güncelleme olarak daha yüksek hızlara çıkma imkanım var fakat piyasada satılan klasik PWM ESC ler bu hızlara ve şuanki güncelleme hızıma yetişememekte. Kendi ESC'mi kendim yapmam gerekecek.

Sistemin şuan sahip olduğu ana özellikler:

  • Yüksek hızda yüksek doğrulukta açı ve sensör bilgileri
  • Altitude Hold (İrtifa sabitleme)
  • Heading Hold (üç eksende -PI/+PI aralığında kuzey ile yapmış olduğu açıyı sabitleme)
  • Telemetri sistemi ile uzaktan izleme ve verileri kayıt imkanı

Eklemeyi, yapmayı düşündüklerim:

  • Otomatik iniş otomatik kalkış
  • Yeni ve tek PCB tasarımı
  • Yüksek hızlı ESC yapımı
  • Yazılımın C++ ile daha modüler ve verimli yazılması
  • GPS ile pozisyon sabitleme
  • GPS ile maps entegrasyonu, haritada seçilecek noktalara sırasıyla otomatik uçma
  • İstenilen aracın otomatik takip edilmesi.
  • Otomatik eve dönüş
  • Uzaktan video aktarımı
  • 3G ile internete bağlanma ve uçarken internet üzerinden kontrol, görüntü alımı

Yeni parçalarım elime geçtiğinde yavaş yavaş yukarıdaki işlevleri eklemeyi düşünüyorum. Şimdi videolara geçelim. Bulunduğum konum ülkenin rüzgar potansiyeli en yüksek noktası olduğu için bir aydır pek video çekme imkanım olmadı. Geçen haftasonu bir kaç video çekebildim. Aşağıda izleyebilirsiniz. Gövdede yaptığım ufak değişiklikler sonucu PID katsayılarını yenilemem gerekti. Mavi motorların katsayıları tam denk gelirken sarı motorlarınkiler biraz az kaldı, arada sarı motorların ekseninde ufak sallantılar yapmakta.




 

Yorumlar
Necip Uygun
19 Eyl 2011 Pazartesi, 14:57 tarihinde yazmış.

Ellerinize sağlık hocam.20 kasımdan beri bu anı bekliyorduk 8-).

emre sert
19 Eyl 2011 Pazartesi, 17:23 tarihinde yazmış.

Barış eline saglık hakkaten cok guzel bir çalışma olmuş,bunu canlı canlı da görmek istiyorum...

Volkan
20 Eyl 2011 Salı, 16:48 tarihinde yazmış.

Tebrik ederim.

mehmet
02 Eki 2011 Pazar, 14:12 tarihinde yazmış.

projeniz hayranlik uyandiracak 1 proje ayriyetten uludag kampusunde cekilmis video bana uludagdaki yilllarimi hatirlatti.bende uludag universitesinin eski bir mezunuyum....

fatih
04 Kas 2011 Cuma, 00:18 tarihinde yazmış.

Ellerinize sağlık güzel çalışma olmuş...

emre
20 Kas 2011 Pazar, 20:24 tarihinde yazmış.

harika olmuş gerçekten ellerinize sağlık

Fatih Erdem
22 Kas 2011 Salı, 22:28 tarihinde yazmış.

Gerçekten çok güzel olmuş, tebrikler.

28 Kas 2011 Pazartesi, 22:31 tarihinde yazmış.

Barış Bey merhaba. Çalışmalarınız ilham verici ve heyecan uyandırıcı. Özellikle hazırlamış ve ücretsiz kullanıma sunduğunuz e kitaplar gerçekten harika kaynaklar. Projelerinizi merakla takip ediyorum. Acaba spesifik olarak quadratorlar donanım ve yazılım üzerine tecrübelerinizi de kitap olarak paylaşmayı düşünüyor musunuz?Böylece benim gibi donanıma meraklı bilg. müh.leri için de yapmış olduğunuz tasarımın ve yazılımın anlaşılması da daha basit olur. Kendinize iyi bakın, iyi çalışmalar...

28 Kas 2011 Pazartesi, 23:59 tarihinde yazmış.

Merhaba Bora, şimdilik böyle birşey düşünmüyorum, ileride de düşünürmüyüm bilmiyorum. İyi çalışmalar..

Tolga
29 Kas 2011 Salı, 15:41 tarihinde yazmış.

Merhabalar, Çalışmalarınızı çok başarılı buluyorum. Tebrik ederim. DC motorları sürmek için kullandığınız ESC'leri nasıl kontrol ediyorsunuz? PWM'in duty cycle'ını değiştirerek mi yoksa PWM'in frekansını değiştirerek mi? Elinizde bununla ilgili bir döküman varmıdır? Ayrıca ESC'lerin ilk kullanım throttle kalibrasyonunu nasıl yaptınız? İyi çalışmalar...

30 Kas 2011 Çarşamba, 13:39 tarihinde yazmış.

Merhaba Tolga, teşekkür ederim. Duty cycle ile ayarlayabilirsin. Motorun dönmeye başladığı değer minimumun olur aldığı en son devirse maximumundur. İyi çalışmalar.

Recep
26 Oca 2012 Perşembe, 14:46 tarihinde yazmış.

Merhaba Barış Abi.Çalışmaların öğrenciler içinde çok faydalı zevkle takip ediyoruz.Lakin aklıma takılan bir konu var ki ben hiç RC kumanda kullanmadım.Sanırım sen de bir RC kumanda kullanıyorsun.Kumandanın alıcısını ev imkanlarında yapabilir miyiz ya da alıcısı da içinde bulunan kumanda setlerinden alsak quadrotoru nasıl kumanda ederiz bununla ilgili de bize yardımcı olursan çok seviniriz.İyi çalışmalar.

26 Oca 2012 Perşembe, 15:06 tarihinde yazmış.

Merhaba Recep, amaç quadrotor yapmak olduğu için ilk etapta kumandayı hazır almanız zaman kazandırır. Amacınıza ulaştıktan sonra parçalarını yapmak için zaman harcamak daha mantıklı olur. Bu iş tamamen mantık ve yorumlama işi.Alacağınız kumandanın nasıl çalıştığını inceledikten sonra kullanımınıza özel olarak bir sistem/yazılım oturtmak size kalıyor. Bunun sadece bir yolu yok, nasıl en iyi kullanabilecekseniz ona göre kendiniz yapmalısınız.

Fethi Candan
10 Şub 2012 Cuma, 23:14 tarihinde yazmış.

Tebrik ederim hocam... Bizde şimdi yapmaya uğraşıyoruz :) ama daha dengeyi sağlayamadık :)

01 Nis 2012 Pazar, 23:50 tarihinde yazmış.

gerçekten tebrik ederim. motorlarda vibrasyon sıkıntısı oldu mu acaba

21 Nis 2012 Cumartesi, 15:23 tarihinde yazmış.

Merhaba Umut, motorlar ve pervanelerin balansını iyi yaparsan olmaz. Nitekim bende olmadı.

mehmet
08 Tem 2012 Pazar, 02:09 tarihinde yazmış.

hocam tam bir ziyafet. hocam pıc ile ADC uygulaması olarak pot okuma, ldr,ntc uygulamarı yapabiliyorum kullanmış olduğunuz sensörleri okutabilirmiyim ki acaba yani pot okutmadan dahamı karışık bu oyuncağınızda kullandığınız sensörlerin kullanımı.

11 Tem 2012 Çarşamba, 20:48 tarihinde yazmış.

Merhaba, hiç bir farkı yok sonuçta analog gerilim okuyorsun hepsinden. Önemli olan verileri değerlendirebilmek.

17 Eki 2012 Çarşamba, 11:38 tarihinde yazmış.

Merhabalar hocam gerçekte bu çalışmanızda diğerleri gibi harika olmuş... iyi çalışmalar..

ali
28 Tem 2013 Pazar, 01:30 tarihinde yazmış.

Ellerinize sağlık güzel çalışma olmuş...

Gökhan Erdoğdu
19 Eyl 2017 Salı, 17:48 tarihinde yazmış.

Yazılım, donanım, mekanik bilgisi, el becerisi... tek kelimeyle mükemmel. Ellerinize sağlık Barış Bey.

Adınız *:
e-Mail Adresiniz *:  ??
Web Siteniz:
Yorumunuz *:
Kalan karakter sayısı: 500
 
 

Tasarım ve Programlama Barış SAMANCI
Her hakkı saklıdır.
barissamanci.net  ©  2010-2024