Merhabalar Ben @bypatnos Lojistik grup adına paylaşılan Arduino ile Drone Yapımı makalesinde sizi görmekten mutluk duyarım.
Drone yapma fikri, teknolojiye olan merakım ve havacılığa duyduğum ilgiden doğdu. İlk başta gözümde büyüse de, araştırmalarım ve sabrım sayesinde adım adım ilerleyerek kendi insansız hava aracımı inşa etmeyi başardım. Bu süreçte, temel bileşenlerin nasıl çalıştığını anlamak ve onları bir araya getirmek en kritik adımlardı.
Drone yapımı projesini adım adım kodlarla detaylandırarak açıklayayım. Bu süreçte, Arduino ile temel drone işlevlerini nasıl gerçekleştirebileceğimizi göreceğiz.
Bu kod, sensörün ivmeölçer ve jiroskop verilerini seri portta gösterecektir.
Aşağıda, dört motorun hızını ayarlayan bir örnek kod:
Bu kodda writeMicroseconds fonksiyonu ile motorların hızını kontrol ediyoruz. Hız değeri 1000 ile 2000 arasında olmalıdır; 1000 minimum, 2000 ise maksimum hızdır.
Bu kod ile drone’un dengesi sağlanır. PID kontrol mekanizması, jiroskop verilerini kullanarak motor hızlarını ayarlayarak drone'un sabit bir uçuş yapmasını sağlar.
Programlama, sensör kullanımı ve motor kontrolü hakkında daha fazla bilgi edinerek drone’unuzu daha da geliştirebilirsiniz!
Drone yapma fikri, teknolojiye olan merakım ve havacılığa duyduğum ilgiden doğdu. İlk başta gözümde büyüse de, araştırmalarım ve sabrım sayesinde adım adım ilerleyerek kendi insansız hava aracımı inşa etmeyi başardım. Bu süreçte, temel bileşenlerin nasıl çalıştığını anlamak ve onları bir araya getirmek en kritik adımlardı.
Drone yapımı projesini adım adım kodlarla detaylandırarak açıklayayım. Bu süreçte, Arduino ile temel drone işlevlerini nasıl gerçekleştirebileceğimizi göreceğiz.
Adım 1: Gerekli Malzemeler
- Arduino Uno veya Nano
- 4 adet Fırçasız Motor (Brushless motor)
- 4 adet ESC (Elektronik Hız Kontrol Cihazı)
- 4 adet Pervane
- Li-Po batarya (güç kaynağı)
- MPU6050 Gyro ve İvmeölçer sensörü (denge için)
- Uzaktan Kumanda ve Alıcı (Drone kontrolü için)
- Çerçeve (Drone’un fiziksel yapısı)
Adım 2: Elektronik Bağlantıların Yapılması
- Arduino'yu drone’un gövdesine sabitleyin.
- ESC’leri fırçasız motorlara bağlayın.
- Motorlara pervaneleri takın.
- ESC'leri Arduino’ya şu pinlerle bağlayın:
- Motor 1: Arduino pin 9
- Motor 2: Arduino pin 10
- Motor 3: Arduino pin 11
- Motor 4: Arduino pin 12
- MPU6050 Gyro/İvmeölçeri Arduino’ya bağlayın:
- VCC → 5V
- GND → GND
- SCL → A5
- SDA → A4
Adım 3: MPU6050 Kütüphanesi Kurulumu
Arduino IDE'yi kullanarak MPU6050 sensörü ile çalışmak için kütüphane eklememiz gerekiyor.- Arduino IDE’yi açın.
- Sketch → Include Library → Manage Libraries menüsüne gidin.
- MPU6050 kütüphanesini aratın ve "MPU6050 by Electronic Cats" kütüphanesini yükleyin.
Adım 4: MPU6050 Sensörünü Test Etme
MPU6050'yi drone’un dengesini sağlamak için kullanacağız. Önce sensörün doğru çalıştığından emin olalım. Sensörün ivme ve jiroskop verilerini okuyan basit bir kod aşağıda verilmiştir:
Kod:
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
if (mpu.testConnection()) {
Serial.println("MPU6050 bağlantısı başarılı!");
} else {
Serial.println("MPU6050 bağlantısı başarısız!");
}
}
void loop() {
int16_t ax, ay, az;
int16_t gx, gy, gz;
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
Serial.print("Accel: ");
Serial.print(ax); Serial.print(", ");
Serial.print(ay); Serial.print(", ");
Serial.print(az); Serial.print("\t");
Serial.print("Gyro: ");
Serial.print(gx); Serial.print(", ");
Serial.print(gy); Serial.print(", ");
Serial.println(gz);
delay(500);
}
Adım 5: Motorların Hız Kontrolü (ESC'ler ile)
ESC'leri kontrol etmek için Arduino'nun PWM pinlerini kullanacağız. Bu motorların hızını belirlemek için kullanılır.Aşağıda, dört motorun hızını ayarlayan bir örnek kod:
Kod:
#include <Servo.h>
Servo motor1, motor2, motor3, motor4;
void setup() {
motor1.attach(9); // Motor 1 PWM pini
motor2.attach(10); // Motor 2 PWM pini
motor3.attach(11); // Motor 3 PWM pini
motor4.attach(12); // Motor 4 PWM pini
// Motorların başlangıç hızını ayarla
motor1.writeMicroseconds(1000); // Minimum hız
motor2.writeMicroseconds(1000);
motor3.writeMicroseconds(1000);
motor4.writeMicroseconds(1000);
delay(1000); // ESC'lerin hazır olmasını bekle
}
void loop() {
int throttle = 1300; // İstenilen motor hızı (1000-2000 arasında)
// Tüm motorların hızını aynı ayarla
motor1.writeMicroseconds(throttle);
motor2.writeMicroseconds(throttle);
motor3.writeMicroseconds(throttle);
motor4.writeMicroseconds(throttle);
delay(10); // Motor hızını belirli aralıklarla güncelle
}
Adım 6: Drone Stabilizasyonu
Drone’un dengeli uçması için jiroskop ve ivmeölçer verilerini kullanarak motor hızlarını ayarlamamız gerekiyor. Aşağıda basit bir PID (Proportional-Integral-Derivative) kontrolör ile drone’un dengesini sağlama işlemi açıklanıyor:
Kod:
#include <Wire.h>
#include <MPU6050.h>
#include <Servo.h>
MPU6050 mpu;
Servo motor1, motor2, motor3, motor4;
// PID kontrol değişkenleri
float pid_p = 0.0, pid_i = 0.0, pid_d = 0.0;
float kp = 1.5, ki = 0.5, kd = 0.1;
float previous_error = 0;
float setpoint = 0; // İdeal denge açısı
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
motor1.attach(9);
motor2.attach(10);
motor3.attach(11);
motor4.attach(12);
if (!mpu.testConnection()) {
Serial.println("MPU6050 bağlantı hatası!");
while (1);
}
}
void loop() {
int16_t ax, ay, az;
int16_t gx, gy, gz;
// Sensör verilerini al
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// Yalın bir açı hesabı (daha gelişmiş hesaplama için düzeltmeler yapılabilir)
float current_angle = gx / 131.0;
// PID kontrol hesaplamaları
float error = setpoint - current_angle;
pid_p = kp * error;
pid_i = ki * (pid_i + error);
pid_d = kd * (error - previous_error);
previous_error = error;
// Motor hızlarını PID sonucuna göre ayarla
float pid_output = pid_p + pid_i + pid_d;
int throttle_base = 1300; // Sabit gaz
motor1.writeMicroseconds(throttle_base + pid_output);
motor2.writeMicroseconds(throttle_base - pid_output);
motor3.writeMicroseconds(throttle_base + pid_output);
motor4.writeMicroseconds(throttle_base - pid_output);
delay(10);
}
Adım 7: İlk Uçuş Testi
Tüm bu aşamalardan sonra, drone’unuzu uçuşa hazır hale getirdiniz. Bataryayı bağlayın ve uzaktan kumanda ile motorları kontrol etmeye başlayın. İlk başta drone’un dengeli olup olmadığını kontrol edin ve gerekirse PID ayarlarını optimize edin.Programlama, sensör kullanımı ve motor kontrolü hakkında daha fazla bilgi edinerek drone’unuzu daha da geliştirebilirsiniz!
LOJİSTİK TİM SUNDU





