10/14/2025

Basit Malzemeler ile Uçan-Kanat Yapın. DIY RC Uçak ve Uzaktan Kumanda Yapımı.

Basit malzemeler kullanarak oldukça kararlı bir  uçan-kanat modeli inşa edebilirsiniz. Basit ama harika uçuyor.

Gerekli uzaktan kumandayı kendiniz de yapabilirsiniz. Aşağıda, V-Tail / Delta Miks özelliği içeren uzaktan kumanda devresi için gerekli malzeme bağlantılarını, kodları ve Gerber dosyalarını bulabilirsiniz.

Bu model için V-tail mix’li bir uzaktan kumanda tasarladım. Tasarladığım verici ve alıcı devreleri için PCB’lere ihtiyacım vardı. PCB üretimi için tekrar JLCPCB’yi seçtim.
Siparişimi verdikten sonra PCB’lerim 24 saat içinde hazırlanıp kargoya verildi. 5-6 gün sonra elime ulaştı.

PCB’ler, önceki siparişimle birlikte gelenler gibi gerçekten yüksek kaliteli.
Yüksek kaliteleri ve hızlı hizmetleri için JLCPCB’ye teşekkür ederim.
Aşağıdaki ortaklık bağlantısından JLCPCB’ye ulaşabilirsiniz.

JLCPCB ile Kolay, Uygun Fiyatlı ve Güvenilir PCB Üretimini Keşfedin! 70$ değerinde Yeni Müşteri Kuponu kazanmak için kaydolun: https://jlcpcb.com/?from=KendinYap

 

Ölçü Şemaları (Şemalar 1:1 ölçekli değildir. Şablon olarak kullanılamaz) :

 

Gerekli Malzemeler:
2205 2300KB Motor (CW): https://s.click.aliexpress.com/e/_c4nRBtf5
30A BL ESC : https://s.click.aliexpress.com/e/_c3VUiwVV
5050 or 5045 3-Pal Pervane: https://s.click.aliexpress.com/e/_c4OTvBET
MG90S Servo : https://s.click.aliexpress.com/e/_c3DsOBcn
NRF24L01+PA+LN 100mW (E01-ML01DP5): https://s.click.aliexpress.com/e/_DmEoWQf
Arduino Nano V3 (Micro connector): https://s.click.aliexpress.com/e/_c3b9RuoL
GT-24 NRF24L01+PA+LNA ( Anten dahil): https://s.click.aliexpress.com/e/_DekKUm9
2 x PS4 Analok Joystick (10K) : https://s.click.aliexpress.com/e/_c4rwcFkn OR https://s.click.aliexpress.com/e/_o2DDPGN
2 x Toggle switch: https://s.click.aliexpress.com/e/_DCd5Pzh
LM1117 3.3V: https://s.click.aliexpress.com/e/_c3HKkBAT
Kondansatör 10uF (2 pcs), 100uF (3 pcs): https://s.click.aliexpress.com/e/_c3CX0WUb
Kondansatör 100nF 104 (5 pcs): https://s.click.aliexpress.com/e/_omwl5j1
JST 2-Pin : https://s.click.aliexpress.com/e/_ooekDr1

6mm yalıtım köpüğü (2 plaka)
3mm kraft fotoblok (1 plaka)

80W Havya: https://s.click.aliexpress.com/e/_c4KNZUMT
Dijital Multimetre AC DC A830L : https://s.click.aliexpress.com/e/_c4PlUhET


Verici Devre Şeması:
Uzaktan kumanda devresi altı kanallıdır. Ancak Flying-Wing modeli için üç kanal kullanılacak. Bu model için dümen, kanatçık ve gaz kontrolleri yeterlidir.


Verici Kodu (Arduino Nano İçin) :

				
					// 6 Channel Transmitter | 6 Kanal Verici
// @KendinYap Channel

  #include <SPI.h>
  #include <nRF24L01.h>
  #include <RF24.h>
  const uint64_t pipeOut = 0xABCDABCD71LL;         // NOTE: The address in the Transmitter and Receiver code must be the same "0xABCDABCD71LL" | Verici ve Alıcı kodundaki adres aynı olmalıdır
  RF24 radio(9, 10);                               // select CE,CSN pin | CE ve CSN pinlerin seçimi

  struct Signal {
  byte throttle;
  byte pitch;
  byte roll;
  byte yaw;
  byte aux1;
  byte aux2;
  
};
  Signal data;
  void ResetData() 
{
  data.throttle = 0;                  
  data.pitch = 127;
  data.roll = 127;
  data.yaw = 127;
  data.aux1 = 0;                       
  data.aux2 = 0;

}
  void setup()
{
                                       // Configure the NRF24 module  | NRF24 modül konfigürasyonu
  radio.begin();
  radio.openWritingPipe(pipeOut);
  radio.setChannel(100);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);    // The lowest data rate value for more stable communication  | Daha kararlı iletişim için en düşük veri hızı.
  radio.setPALevel(RF24_PA_MAX);      // Output power is set for maximum range  |  Çıkış gücü maksimum menzil için ayarlanıyor.
  radio.stopListening();              // Start the radio comunication for Transmitter | Verici için sinyal iletişimini başlatır.
  ResetData();
 
}
                                      // Joystick center and its borders | Joystick merkez ve sınırları
  int Border_Map(int val, int lower, int middle, int upper, bool reverse)
{
  val = constrain(val, lower, upper);
  if ( val < middle )
  val = map(val, lower, middle, 0, 128);
  else
  val = map(val, middle, upper, 128, 255);
  return ( reverse ? 255 - val : val );
}
  void loop()
{                                  

  data.roll = Border_Map( analogRead(A3), 0, 512, 1023, true );        // CH1   Note: "true" or "false" for signal direction | "true" veya "false" sinyal yönünü belirler
  data.pitch = Border_Map( analogRead(A0), 0, 512, 1023, true );       // CH2    
  data.throttle = Border_Map( analogRead(A2),0, 340, 570, true );      // CH3   Note: For Single side ESC | Tek yönlü ESC için
  // data.throttle = Border_Map( analogRead(A2),0, 512, 1023, true );  // CH3   Note: For Bidirectional ESC | Çift yönlü ESC için  
  data.yaw = Border_Map( analogRead(A1), 0, 512, 1023, false );        // CH4
  data.aux1 = digitalRead(0);                                          // CH5
  data.aux2 = digitalRead(3);                                          // CH6

  radio.write(&data, sizeof(Signal));  
}
				
			

 

Alıcı Devre Şeması:

Alıcı Kodu (V-Tail Mix) Arduino Nano İçin:

				
					//  6 Channel Receiver | 6 Kanal Alıcı
// KendinYap Channel

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

int ch_width_1 = 0;
int ch_width_2 = 0;
int ch_width_3 = 0;
int ch_width_4 = 0;
int ch_width_5 = 0;
int ch_width_6 = 0;

Servo ch1;
Servo ch2;
Servo ch3;
Servo ch4;
Servo ch5;
Servo ch6;

struct Signal {

byte throttle;
byte pitch;  
byte roll;
byte yaw;
byte aux1;
byte aux2;
    
};

Signal data;

const uint64_t pipeIn = 0xABCDABCD71LL;
RF24 radio(9, 10); 

void ResetData()
{

data.throttle = 0;                                         // Define the inicial value of each data input. | Veri girişlerinin başlangıç değerleri
data.roll = 127;
data.pitch = 127;
data.yaw = 127;
data.aux1 = 0;                                              
data.aux2 = 0;
                                                    
}

void setup()
{
                                                           // Set the pins for each PWM signal | Her bir PWM sinyal için pinler belirleniyor.
  ch1.attach(2);
  ch2.attach(3);
  ch3.attach(4);
  ch4.attach(5);
  ch5.attach(6);
  ch6.attach(7);
                                                           
  ResetData();                                             // Configure the NRF24 module  | NRF24 Modül konfigürasyonu
  radio.begin();
  radio.openReadingPipe(1,pipeIn);
  radio.setChannel(100);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);                         // The lowest data rate value for more stable communication  | Daha kararlı iletişim için en düşük veri hızı.
  radio.setPALevel(RF24_PA_MAX);                           // Output power is set for maximum |  Çıkış gücü maksimum için ayarlanıyor.
  radio.startListening();                                  // Start the radio comunication for receiver | Alıcı için sinyal iletişimini başlatır.

}

unsigned long lastRecvTime = 0;

void recvData()
{
while ( radio.available() ) {
radio.read(&data, sizeof(Signal));
lastRecvTime = millis();                                    // Receive the data | Data alınıyor
}
}

void loop()
{
recvData();
unsigned long now = millis();
if ( now - lastRecvTime > 1000 ) {
ResetData();                                                // Signal lost.. Reset data | Sinyal kayıpsa data resetleniyor
}

ch_width_1 = map(data.roll, 0, 255, 1000, 2000);
ch_width_2 = map(data.pitch, 0, 255, 1000, 2000); 
ch_width_3 = map(data.throttle, 0, 255, 1000, 2000); 
ch_width_4 = map(data.yaw, 0, 255, 1000, 2000); 
ch_width_5 = map(data.aux1, 0, 1, 1000, 2000); 
ch_width_6 = map(data.aux2, 0, 1, 1000, 2000); 

ch1.writeMicroseconds(ch_width_1);                          // Write the PWM signal | PWM sinyaller çıkışlara gönderiliyor
ch2.writeMicroseconds(ch_width_2);
ch3.writeMicroseconds(ch_width_3);
ch4.writeMicroseconds(ch_width_4);
ch5.writeMicroseconds(ch_width_5);
ch6.writeMicroseconds(ch_width_6); 

}
				
			

 

Verici ve Alıcı PCB GERBER dosyaları: https://drive.google.com/file/d/1nzZ1APkTlRCIaTYjvVbUQuV6dDC1I2WS/view


Genel Bilgi:

Kodları Arduino’ya yüklemeden önce, gerekli kütüphane dosyalarını bilgisayarınıza (arduino/libraries klasörüne) indirmeniz gerekmektedir.
Kütüphane dosyası yoksa, kurulum gerçekleşmeyecek ve bir hata oluşacaktır.
NRF24 Modül Kütüphane Dosya Bağlantıları …..:

Gerekli Kütüphane Dosyaları:
SPI.h
nRF24L01.h
RF24.h
Servo.h

NRF24 Modül Kütüphane Dosyaları (Github page): https://github.com/nRF24/RF24

NRF24 Modül Kütüphane Dosyası (zip) : https://github.com/nRF24/RF24/archive/master.zip

Servo Küthane Dosyaları: https://www.arduinolibraries.info/libraries/servo