Arduino Nano için Uçuş Kontrol Yazılımı Yazmaya Çalışıyorum

Ahmet Tosunoğlu

Yeni Uye
Katılım
14 May 2020
Mesajlar
47
Tepkime puanı
25
Yaş
21
Konum
Bayburt
İlgi Alanı
Multikopter
Merhabalar,
Belki hatırlarsınız, Arduino Nano ile bir quadcopter yapmak istediğimden bahsetmiştim. Başlangıç için çok iyi bir seçenek olmadığı konusunda beni uyarmıştınız ve haklıymışsınız, kodu yazma konusunda epeyce zorlanıyorum (özellikle PID kontrol olayını tam kavrayamadım sanırım), dolayısıyla yardımınıza ihtiyacım var. Deneme için kısa ve çok detaylı olmayan, basit bir kod yazdım. Daha uzaktan kontrol mekanizmalarını oluşturmadım, sadece havada istenilen yükseklikte, düzgün bir biçimde durmasını sağlamaya çalışıyorum. Sorularım şunlar:

-Öncelikle MPU9255 ve BMP180 kullanacağım, kodda onların döndürdüğü verinin okunması ve işlenmesi ile ilgili kısım uygun mu?
-PID kontrol algoritmalarında sıkıntı var mı? O kısım düzgün bir biçimde çalışır mı?
-Son olarak PID kontrol algoritması ile yükseklik kontrolünün nasıl yapılacağını tam olarak anlayamadım, o konuda da bilgilendirirseniz çok mutlu olurum.

Başta da dediğim gibi bu konuda yeniyim ve biraz zorlanıyorum, dolayısıyla koddaki, sorumdaki hataları ve bilgi yanlışlarını mazur görün lütfen.
Son olarak kod dediğim gibi daha tamamlanmadı, dolayısıyla sorularım haricinde kalan yerlerde anlamlandıramadığınız yerler olabilir, görmezden gelin lütfen.
 

Ekli dosyalar

  • Kod.txt
    7.7 KB · Görülme: 544
Neden arduino, diğer yazılımlar gibi kendi pic çalışmanızı yapsanız daha uygun ve kesin çözüm olmazmı
 
Askıda duran projem. Herşey hazır kurulu ama kod kısmında duruyorum şuan. işlerimin yoğunluğu nedeni ile zaman ayıramıyorum.
Apm2.8 f450 şase hazır bir sistemim vardı. Bunu çıkarıp kendime özgü bir şey olmasını istedim. ve baştan başladım.
Hazır kart kullanıyordum ama kendimi geliştirme açısından böyle bir işe kalktım.
Sistem 1000 KV 3s motor, 30A esc, F450 frame , 10x45 pervane 3s 6000MAH lipo, Arduino Nano ve 10DOF MPU9250 imu sensör var
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol

10dof imu kart üzerinde 3 eksen ivme, 3 eksen gyro, 3 eksen pusula ve bmp280 basınç sensörü mevcut. hepsi tek bir kart üzerine toplanmış.
kod için yardımcı olmaşı için
---videolu anlatımları mevcut.
---sadece arduino nano ve mpu6050 ile yapılmış basit örnek kod öğrenme açısından çok faydalı temel bilgiler mevcut. bende buralardan başladım. Arduino ile yapılacağı için. Tavsiyelerim ve izleyeceğim yol.
1. Arduino ile kumanda iletişimi. Kullanığım kumdanta turnigy th9x 8 Kanal. 8 kanalıda kullanmak istediğim için arduinoda 8 giriş 8 çıkış ayarladım.
1.2.3.4. kanal quadcopteri yönlendirmek için, 5. kanal uçuş modu için, 6.7 ve 8. kanallar ise çok amaçlı kullanım için ışıkları aç kapa vs. Kumandadan gelen verileri okumak ve min 1000 ve max 2000 microsaniye arasında kalibre etmek.
2, Gyro , ivme ve pusula sensörü verilerini işlemek. Ham verileri açılara dönüştürmek. ve kalibre etmek.
3. Pid işlemleri, yapılan açılara nasıl ve ne kadar hızlı tepki vereceğini ayarlamak
4. Basınç sesnsörü ile irtifa sabitleme yapılması otomatik kalkış ve iniş yapabilmek..
5. Headlock fonksiyonu eklemek, Bunu aktif ettiğinizde yaw ekseninde nereye dönerseniz dönün, ileri komut verdiğinizde ileri, geri komut verdiğinizde geri gider. quadcopter nereye baktığının önemi kalmıyor.
6. Gps navigasyon sisteminin eklenmesi. Eve dönüş gibi, Otonom bir uçuş için telemetri veya bluetooth modülü kullanarak izleme veya istediğiniz bir konuma gönderebilirsiniz. Sadece izleme yapacaksanız Arduino nano buraya kadar yeterli oluyor. Yok ben şu konuma git şu kadar yüksekliğe çık şunu yap demek isterseniz Arduino Nanonun Hafızası yetmiyor. Yanlış Hatırlamıyorsam 30Kb flash Hafızası var. Daha fazlası için stm32 kart yada
arduino mega pro mini
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol

Şuan bende 4. maddedeyim. basınç sensörünü adapte etmeye çalışıyorum. otomatik iniş-kalkış, havada sabit kalma ve sabit kaldığı yükseklikte diğer yönlere gitme kısmını yapmaya çalışıyorum. Aşama aşama gitmekte fayda var. Yapmak istediklerinizi planlayın. yapabildiklerinizi tek tek yapmaya çalışın. sonra birer birer birleştirmeye çalışın. Öğrenerek aşama aşama gidin. Başka yolu yok. Elimden geldiğince yardımcı olmaya çalışırım.
 
Askıda duran projem. Herşey hazır kurulu ama kod kısmında duruyorum şuan. işlerimin yoğunluğu nedeni ile zaman ayıramıyorum.
Apm2.8 f450 şase hazır bir sistemim vardı. Bunu çıkarıp kendime özgü bir şey olmasını istedim. ve baştan başladım.
Hazır kart kullanıyordum ama kendimi geliştirme açısından böyle bir işe kalktım.
Sistem 1000 KV 3s motor, 30A esc, F450 frame , 10x45 pervane 3s 6000MAH lipo, Arduino Nano ve 10DOF MPU9250 imu sensör var
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol

10dof imu kart üzerinde 3 eksen ivme, 3 eksen gyro, 3 eksen pusula ve bmp280 basınç sensörü mevcut. hepsi tek bir kart üzerine toplanmış.
kod için yardımcı olmaşı için
---videolu anlatımları mevcut.
---sadece arduino nano ve mpu6050 ile yapılmış basit örnek kod öğrenme açısından çok faydalı temel bilgiler mevcut. bende buralardan başladım. Arduino ile yapılacağı için. Tavsiyelerim ve izleyeceğim yol.
1. Arduino ile kumanda iletişimi. Kullanığım kumdanta turnigy th9x 8 Kanal. 8 kanalıda kullanmak istediğim için arduinoda 8 giriş 8 çıkış ayarladım.
1.2.3.4. kanal quadcopteri yönlendirmek için, 5. kanal uçuş modu için, 6.7 ve 8. kanallar ise çok amaçlı kullanım için ışıkları aç kapa vs. Kumandadan gelen verileri okumak ve min 1000 ve max 2000 microsaniye arasında kalibre etmek.
2, Gyro , ivme ve pusula sensörü verilerini işlemek. Ham verileri açılara dönüştürmek. ve kalibre etmek.
3. Pid işlemleri, yapılan açılara nasıl ve ne kadar hızlı tepki vereceğini ayarlamak
4. Basınç sesnsörü ile irtifa sabitleme yapılması otomatik kalkış ve iniş yapabilmek..
5. Headlock fonksiyonu eklemek, Bunu aktif ettiğinizde yaw ekseninde nereye dönerseniz dönün, ileri komut verdiğinizde ileri, geri komut verdiğinizde geri gider. quadcopter nereye baktığının önemi kalmıyor.
6. Gps navigasyon sisteminin eklenmesi. Eve dönüş gibi, Otonom bir uçuş için telemetri veya bluetooth modülü kullanarak izleme veya istediğiniz bir konuma gönderebilirsiniz. Sadece izleme yapacaksanız Arduino nano buraya kadar yeterli oluyor. Yok ben şu konuma git şu kadar yüksekliğe çık şunu yap demek isterseniz Arduino Nanonun Hafızası yetmiyor. Yanlış Hatırlamıyorsam 30Kb flash Hafızası var. Daha fazlası için stm32 kart yada
arduino mega pro mini
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol

Şuan bende 4. maddedeyim. basınç sensörünü adapte etmeye çalışıyorum. otomatik iniş-kalkış, havada sabit kalma ve sabit kaldığı yükseklikte diğer yönlere gitme kısmını yapmaya çalışıyorum. Aşama aşama gitmekte fayda var. Yapmak istediklerinizi planlayın. yapabildiklerinizi tek tek yapmaya çalışın. sonra birer birer birleştirmeye çalışın. Öğrenerek aşama aşama gidin. Başka yolu yok. Elimden geldiğince yardımcı olmaya çalışırım.
Çok teşekkürler paylaştığınız bilgi ve kaynaklar için, sorularımın cevapları burada var, çok sağ olun.
 
  • Beğen
Tepkiler: İlker AKAY