[DIY]: Arduino ile Rectract - Iniş Takımı Uygulaması

Arduino Quick Start Guide ve Uygulama Örnekleri

Zafer SAHIN' Alıntı:
Nesimi bey sizin resmini verdiğiniz iniş takımında, fırçası hız kontrol ünitesi gibi gözüken cihaz, zannedersem fırçalı hız kontrol ünitesi + akım sensörü + kontrol kartından oluşan bileşik bir kart. Resimde başka bir yerde, redüktörlü motorun akımını ölçen bir sensör göremedim çünkü. Bu iniş takımının devresi de rahatlıkla Arduino kullanarak olşturlabilir ve bir kutunun içinde çok da dağınık durmayacaktır bence. Bu arada redüktörlü motorlar da direnc.net'de var.

Evet aynen yazdığınız gibi herşey devrenin içinde. Dışarıda ekstra bir sensör yok. Bu devre benim fazlasıyla işimi görecektir. Ha birde daha önceki mesajımda yazdığım gibi kapakları da Arduya açtırıp kapattırırsak valla ballı kaymak olur. Bak yazınca bile canım çekti. Soğuk havada ne güzel gider. ;)

Redüktörlü motor kısmına gelirsek, elimde iniş takımı zaten mevcut. O yüzden ilk aşamada gerek kalmayacak ama fotosunu eklemiş olduğum o iniş takımını yapmayı çok istiyorum. Planör modellerini yapmaya ve uçurmaya devam edeceğim için bana her daim lazım olacaktır bu malzemeler ve bilgiler. Hoş normal uçak iniş takımları da bu şekilde hazırlanabilir. Sanıyorum Sümer Abi de bunun peşinde. :D
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Aman da aman...

Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol


Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Oh oh maşallah , bitse de projeyi bizde kopyalasak :p :halay: :halay:
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Ben de ufak bir güncelleme yapayım.
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol


Servo, iniş takımının bulunduğu yuvanın kapaklarını açıp kapatma görevini üstlenecek.

DC motorlu iniş takımının ise, akım sensörü yardımı ile açıldığı ya da kapandığı anlaşılacak.

Mekanizma, kumandadan kontrol ediliyor olacak.

Bunu tek bir PCB'ye dökmek benim için zor ama daha önce de belirttiğim gibi plastik bir devre kutusunun içine LEGOLAR (yani Arduino komponentleri :laugh: ) düzenli bir şekilde yerleştirilebilir.

Ben şunun kodunu da ufaktan yazmaya başlayayım...
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Retract motorunu PWM ile mi sürsek? Daha yavaş ve gerçekçi olurdu. Hatta şöyle bir modifikasyon da yapılabilir:
Retract kanalı üç konumlu bir butona atanır. Kapanış her durumda yavaş. Bir konum retract kapalı. Orta konum retractlar yavaş açılıyor. Diğer uç acil durum konumu. Retractlar olabilecek en hızlı şekilde açılıyor.
Bu arada bunu en az iki kanallı yapacağız. Yani iki ayrı retract motoru ayrı ayrı akım kontrollü olarak sürülecek.
Yazılımda en önemli veri ise akım eşiği. Bunu da kullanılacak retract motoru için test edip bulmamız gerekiyor.
Bu arada, L293'ün beslemesini ayrı bir pilden gerçekleştireceğiz.

NOT: Akım sınırlaması dışında bence bir de zaman sınırlaması koyulabilir.

Yahu düşündükçe heyecanlanıyorum.
Benim uçakta sağ retract bazen sıkışıyor ve yarı yolda sistem akımı kesiyor. Ben de anlık aç kapa yapıyorum butonu. Birkaç denemede tam kapanıyor. Örneğin ben birgün bu işi kotarabilirsem, koda şöye bir işlev eklerdim: Kapatma komutu verdim. Akımı izledim. Artınca durdurdum. İki saniye sonra motoru azıcık geri çalıştırıp tekrar kapatma yönünde güç verip izlerdim. Bu sekansı bir ya da iki kez yapardım. Ya da, gerçek uçaklardaki gibi iniş takımı yuvasına birer switch yerleştirirdim. Akım arttığında switch hala aktive edilmediyse uçağın altında rahat görülebilen bir kırmızı LED'i yakıp söndürürdüm. Çok heyecanlı olacak! :D
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Zafer SAHIN' Alıntı:
Ben de ufak bir güncelleme yapayım.
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol


Servo, iniş takımının bulunduğu yuvanın kapaklarını açıp kapatma görevini üstlenecek.

DC motorlu iniş takımının ise, akım sensörü yardımı ile açıldığı ya da kapandığı anlaşılacak.

Mekanizma, kumandadan kontrol ediliyor olacak.

Bunu tek bir PCB'ye dökmek benim için zor ama daha önce de belirttiğim gibi plastik bir devre kutusunun içine LEGOLAR (yani Arduino komponentleri :laugh: ) düzenli bir şekilde yerleştirilebilir.

Ben şunun kodunu da ufaktan yazmaya başlayayım...

Bu durumda bana da yavaştan parçaları almak kalıyor. Bu hafta sonu gelen giden nedeniyle başım çok kalabalık olacak. Haftaya müsait zamanlarımda PCB devre için bir şeyler yapabilir miyim ona bakıcam. Tamamını yapamasakta en azından işi basitleştirecek bir şeyler yapmak çok daha iyi olur.

Sümer Yamaner' Alıntı:
Retract motorunu PWM ile mi sürsek? Daha yavaş ve gerçekçi olurdu. Hatta şöyle bir modifikasyon da yapılabilir:
Retract kanalı üç konumlu bir butona atanır. Kapanış her durumda yavaş. Bir konum retract kapalı. Orta konum retractlar yavaş açılıyor. Diğer uç acil durum konumu. Retractlar olabilecek en hızlı şekilde açılıyor.
Bu arada bunu en az iki kanallı yapacağız. Yani iki ayrı retract motoru ayrı ayrı akım kontrollü olarak sürülecek.
Yazılımda en önemli veri ise akım eşiği. Bunu da kullanılacak retract motoru için test edip bulmamız gerekiyor.
Bu arada, L293'ün beslemesini ayrı bir pilden gerçekleştireceğiz.

NOT: Akım sınırlaması dışında bence bir de zaman sınırlaması koyulabilir.

Yahu düşündükçe heyecanlanıyorum.
Benim uçakta sağ retract bazen sıkışıyor ve yarı yolda sistem akımı kesiyor. Ben de anlık aç kapa yapıyorum butonu. Birkaç denemede tam kapanıyor. Örneğin ben birgün bu işi kotarabilirsem, koda şöye bir işlev eklerdim: Kapatma komutu verdim. Akımı izledim. Artınca durdurdum. İki saniye sonra motoru azıcık geri çalıştırıp tekrar kapatma yönünde güç verip izlerdim. Bu sekansı bir ya da iki kez yapardım. Ya da, gerçek uçaklardaki gibi iniş takımı yuvasına birer switch yerleştirirdim. Akım arttığında switch hala aktive edilmediyse uçağın altında rahat görülebilen bir kırmızı LED'i yakıp söndürürdüm. Çok heyecanlı olacak! :D


Abi kumandaların telemetri sistemi var. Onu da işin içine katabilir miyiz acaba. Bu durumda uçağın orasında burasına led koymaktansa kumandanın bizi uyarması sağlanabilir mi acaba?

Son cümleyi tekrar okuyunca takımın yarım kapanması durumunda kapakların da kapanmasını engellemek lazım. Diğer türlü kapaklarda kullanacağımız servoya zarar verme ihtimali doğuyor.

Diğer taraftan sekansırların iki çalışma modu var. Bazı uçaklarda iniş takımı tam açıldığında kapakları da kapatmak mümkün olabiliyor. Benim elimdeki sekansır bunun için bir moda sahip. Diğer taraftan benim kullanacağım sistemde iniş takımı açıkken kapakların mutlaka açık olması gerekiyor. Zafer Bey umarım demek istediğimi anlatabilmişimdir. Aslında aşağıdaki video herşeyi anlatıyor.

Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Sümer Bey, ben sizin hızınıza yetişemiyorum ... :) Ama son yazdıklarınıza istinaden bir iki durum güncellemesi yapayım.

Dijital pinlerde de PWM, araya 10'ar milisaniyelik gecikmeler eklenerek emule edilebilir, ya da benzer bir efekt elde edilebilir demek daha doğru olacak... Hoş PWM kullanmakta da bir engel yok aslında. Sadece kodun ne kadar kolay yazılabileceği, burada önemli olan husus.

Bir de PWM kullanılacaksa, ARDUINO UNO, ProMini ve Nano'nun bacaklarında şöyle bir kısıtlama var. 3, 9, 10 ve 11. bacaklar 490Hz, 5 ve 6. bacaklar 980Hz PWM verebiliyor. Diğer bacaklar ise PWM sinyali veremiyor.

L293D ise 600mA devamlı, 1200mA anlık akımı verebiliyor. 2 tane L293D + 2 tane servo için 5A bir BEC yeterli olabilir. Motor ve Servo gürültüsünün alıcıyı etkilemesi sözkonusu değil çünkü sadece, inişte ve kalkışta(model çok yakınken) bu mekanizma çalışıyor olacak. Bu sebeple ayrı bir pilden besleme gereksinimini ve gerekçesini çözemedim.

Son olarak, malzeme yerleşiminde dikkat edilmesi geeken bir husus da var. Akım sensörünün üzerindeki Hall effekt sensörü, manyetik alanlara karşı çok hassas. Yani akım sensörünü motora, servoya ve ana besleme kablolarına çok yakın konuşlandırmamak gerekiyor.
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Nesimi Sakmak' Alıntı:
Abi kumandaların telemetri sistemi var. Onu da işin içine katabilir miyiz acaba. Bu durumda uçağın orasında burasına led koymaktansa kumandanın bizi uyarması sağlanabilir mi acaba?

Son cümleyi tekrar okuyunca takımın yarım kapanması durumunda kapakların da kapanmasını engellemek lazım. Diğer türlü kapaklarda kullanacağımız servoya zarar verme ihtimali doğuyor.

Diğer taraftan sekansırların iki çalışma modu var. Bazı uçaklarda iniş takımı tam açıldığında kapakları da kapatmak mümkün olabiliyor. Benim elimdeki sekansır bunun için bir moda sahip. Diğer taraftan benim kullanacağım sistemde iniş takımı açıkken kapakların mutlaka açık olması gerekiyor. Zafer Bey umarım demek istediğimi anlatabilmişimdir. Aslında aşağıdaki video herşeyi anlatıyor.

Taranis için iniş takımı Telemetri eklentisi de geliyor... Pek yakında ... :)

Devre çok basit ama yazılım üzerinde iyice düşünmek gerekiyor... Her ek özellikte yazılım iyice karışıklaşacak :rolleyes: :-\ .
 
Arduino Quick Start Guide ve Uygulama Örnekleri

O iki mod konusuna girmek istemedim. Çünkü sonuçta bu sistem belirli bir uçağa göre tasarlanacak. O an kullanılan modelde kapakların çalışma sistemine göre kod üretilip mikroişlemciye yüklenecek. Hazır modüllerde bu amaçla jumper var. Bizde bence gerek olmayacak. Oldu da sistemi başka bir uçağa almak gerekti, ona göre hazırlanmış yazılımı iki dakikada upload edip kullanacağız. :)
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Zafer SAHIN' Alıntı:
L293D ise 600mA devamlı, 1200mA anlık akımı verebiliyor. 2 tane L293D + 2 tane servo için 5A bir BEC yeterli olabilir. Motor ve Servo gürültüsünün alıcıyı etkilemesi sözkonusu değil çünkü sadece, inişte ve kalkışta(model çok yakınken) bu mekanizma çalışıyor olacak. Bu sebeple ayrı bir pilden besleme gereksinimini ve gerekçesini çözemedim.

Aslında tabii ki adım adım gideceğiz. Her bir özellik önem sırasına konulacak ve ondan daha önemli bir özellik tam olarak kullanılabilir hale gelmeden yeni bir ekleme yapılmayacak. Sonuçta iş bir USB ara kablosuna bakıyor. :)

Eskiden mekanik retractlar kullanırdım. Hitec HS75BB retract servosunun ise akım sınırlandırması yoktu. Sıkışan servo öyle bir akım çekerdi ki alıcı beslemesi gider model kontrolden çıkardı. Bu tür bir riski önlemek adına tüm elektrikli retractlarımı ayrı pilden beslerim. Robart olsun ESM olsun ürettiği elektrikli retractların modülüne ayrı pil girişi ekliyor. Alıcının hakkından bir mikroamper bile çalmayı sevmiyorum. O nedenle takıntı şeklinde bir ayrı pil uygulamam var. Sadece son topladığım "küçük" Sea Fury'de kullandığım retractların kalitesi, mekanik özellikleri ve uzun süreli yapmış olduğum testleri sonucunda tek kaynaktan beslemeye cesaret edebildim. Böyleyken böyle. :D
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Zafer SAHIN' Alıntı:
Taranis için iniş takımı Telemetri eklentisi de geliyor... Pek yakında ... :)

Devre çok basit ama yazılım üzerinde iyice düşünmek gerekiyor... Her ek özellikte yazılım iyice karışıklaşacak :rolleyes: :-\ .


Bu forumu seviyorum. Aşağı yukarı aynı şeyleri düşünen kişilerle bir arada olmak güzel.


Sümer Yamaner' Alıntı:
O iki mod konusuna girmek istemedim. Çünkü sonuçta bu sistem belirli bir uçağa göre tasarlanacak. O an kullanılan modelde kapakların çalışma sistemine göre kod üretilip mikroişlemciye yüklenecek. Hazır modüllerde bu amaçla jumper var. Bizde bence gerek olmayacak. Oldu da sistemi başka bir uçağa almak gerekti, ona göre hazırlanmış yazılımı iki dakikada upload edip kullanacağız. :)

Tabii ki bu sistemde bir jumper sözkonusu olmayacak. Benim aklımdaki de farklı iki program yazmak gerektiğiydi. Bunu anlatmaya çalışmıştım.
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Nesimi Sakmak' Alıntı:
Bu forumu seviyorum. Aşağı yukarı aynı şeyleri düşünen kişilerle bir arada olmak güzel.

Aşağı yukarı aynı delilik derecesinde insanlarla bir arada olmak güzel di mi?! :D :p
 
Arduino Quick Start Guide ve Uygulama Örnekleri

Konu "Arduino Quick Start Guide ve Uygulama Örnekleri" olmak yerine "Arduino ile Retract yapma Guide" oldu bile :).

Ben de ilk alfa v0.1 kodunu yayınlayayım. Sadece sağ sol retractları kumandadan açıyor ve kapatıyor. Ama durdurmak hak getire :).

Kod:
int motor_left[] = {3, 11};
int motor_right[] = {9, 10};
int rxPin = 12;

unsigned long duration;

void setup() {
  int i;
  for(i = 0; i < 2; i++){
    pinMode(motor_left[i], OUTPUT);
    pinMode(motor_right[i], OUTPUT);
  }
}

void loop() {
  duration = pulseIn(sensePin, HIGH);
  if (duration > 1600) {
    retractOpen();
  } else if (duration > 1400) {
    retractStop();
  } else {
    retractClose();
  }
}
void retractStop(){
  digitalWrite(motor_left[0], LOW);
  digitalWrite(motor_left[1], LOW);
  digitalWrite(motor_right[0], LOW);
  digitalWrite(motor_right[1], LOW);
  delay(25);
}
void retractOpen(){
  digitalWrite(motor_left[0], HIGH);
  digitalWrite(motor_left[1], LOW);
  digitalWrite(motor_right[0], HIGH);
  digitalWrite(motor_right[1], LOW);
}
void retractClose(){
  digitalWrite(motor_left[0], LOW);
  digitalWrite(motor_left[1], HIGH);
  digitalWrite(motor_right[0], LOW);
  digitalWrite(motor_right[1], HIGH);
}

Düzenleme1 : Durdurma olmaması test etmek için bile riskli geldi. Alfa v0.11 koduna güncelledim :). Kumandadan 3 pozisyonlu switch kullanarak açma - durdurma - kapama yapılabiliyor artık.