Skip to main content

1. Genel Bakış

ArduPilot; sabit kanatlı, döner kanatlı, kara araçları ve denizaltılar dahil olmak üzere çeşitli araç türlerini destekleyen olgun, özellik açısından zengin bir açık kaynaklı otopilot sistemidir. Bu kılavuz, T3 Gemstone O1 geliştirme kartlarında ArduPilot çalıştırmayı kapsar.

2. Donanım Özellikleri

Atalet Ölçüm Birimi (IMU)

  • Model: InvenSense ICM-20948
  • Arayüz: SPI

Manyetometre (Pusula)

  • Model: AKM AK09916
  • Arayüz: Dahili (ICM-20948 üzerinden)
  • Harici I2C Pusula Taraması: Etkin

Barometre

  • Model: STMicroelectronics LPS22DFTR
  • Arayüz: SPI

CAN Veri Yolu

  • Transceiver: TCAN1462-Q1
  • Arayüz: 1x CAN arayüzü mevcut

Batarya İzleyici

  • Model: ADS1115
  • Arayüz: 0x48 adresinde I2C-MCU0 üzerinden harici olarak bağlanabilir
  • Kanallar: Voltaj/akım algılama için 4 kanallı 16-bit ADC

Durum Göstergeleri

  • LED’ler: Yeşil-kırmızı durum LED’leri
  • Buzzer: GPIO-26 üzerinden harici olarak bağlanabilir

GPS, RC Girişi ve PWM Çıkışları

  • GPS: UART-MAIN6 üzerinden seri iletişim, I2C-MCU0 üzerinden harici pusula
  • RC Girişi: UART-MAIN1 üzerinden SBUS iletişimi
  • PWM Çıkışları: 40-pin GPIO başlığından erişilebilen 7 adet donanımsal PWM kanalı

3. Kurulum

ArduPilot, T3 Gemstone APT deposu aracılığıyla bir Debian paketi olarak dağıtılır. Paket, tüm araç türleri için önceden derlenmiş binary dosyaları ve gerekli yapılandırma dosyalarını içerir.
Kurulum aşağıdaki dizin yapısını oluşturur:
ArduPilot’u kaynaktan derlemeyi tercih ederseniz, derleme talimatları github.com/t3gemstone/ardupilot adresinde mevcuttur

3.1. Device-tree Overlay’leri

ArduPilot’u çalıştırmadan önce, gerekli çevre birimleri yapılandırmak için çeşitli device-tree overlay’lerini etkinleştirmelisiniz. /boot/uEnv.txt dosyasını düzenleyin ve aşağıdaki overlay’leri overlays= satırına ekleyin:
Örnek /boot/uEnv.txt yapılandırması:
Değişikliklerin etkili olması için kartı yeniden başlatın:

3.2. Systemd Servis Yönetimi

Her ArduPilot araç türünün kendi systemd servisi vardır:
  • arducopter.service - Çok rotorlu döner kanatlılar
  • arduplane.service - Sabit kanatlı uçaklar
  • ardurover.service - Kara araçları
  • ardusub.service - Su altı araçları
Birbirleriyle çakıştıkları için aynı anda yalnızca bir araç servisi etkinleştirilebilir.

3.2.1. Araç Başlatma

Araç türünüze göre ArduPilot’u çalıştırmak için ilgili servisi etkinleştirin ve başlatın:

3.2.2. Araç Türlerini Değiştirme

Farklı bir araç türüne geçmek için önce mevcut servisi devre dışı bırakın:

3.2.3. Sistem Yapılandırma Servisi

ardupilot-sysconfig.service, GPIO pinlerini ve diğer çevre birimleri yapılandırarak kartı ArduPilot çalıştırmaya hazırlayan tek seferlik bir servistir. Bu servis herhangi bir araç servisi etkinleştirildiğinde otomatik olarak çalışır ve manuel müdahale gerektirmez.

3.2.4. Servis Durumunu Kontrol Etme

ArduPilot servis durumunu ve günlüklerini izleyin:

4. Yapılandırma

Yapılandırma dosyalarını değiştirdikten sonra, değişikliklerin etkili olması için ArduPilot servisini yeniden başlatın:

4.1. ArduPilot Başlangıç Ayarları

/opt/ardupilot/etc/ardupilot.env dosyası, seri port yapılandırması, dizin yolları ve performans seçenekleri dahil olmak üzere ArduPilot için komut satırı argümanlarını tanımlar. Seri Port Yapılandırması:
Gerektiğinde ek seri portları yorum satırından çıkarabilir ve yapılandırabilirsiniz. Seri portlar hakkında ek bilgiler ArduPilot’un dokümanında bulunabilir. Dizin Yolları (İsteğe Bağlı):

4.2. ArduPilot Parametreleri

/opt/ardupilot/etc/ardupilot.parm dosyası başlangıçta yüklenen varsayılan parametreleri tanımlar.
Ek parametreler ArduPilot’un dokümanını takip ederek eklenebilir.

4.3. Gerçek Zamanlı Performans için CPU İzolasyonu

Linux, CPU çekirdeklerini kernel işlem zamanlayıcısından izole etmeyi destekler. Bu, ArduPilot’un gerçek zamanlı olmayan işlemlerden etkilenmeden kendine adanmış çekirdeklerde çalışmasına izin vererek gecikme ve jitter karakteristiklerini iyileştirir. ArduPilot için 2 ve 3 numaralı çekirdekleri izole etmek için:
  1. Kernel önyükleme parametrelerini düzenleyin /boot/uEnv.txt dosyasını açın ve kernel argümanlarına isolcpus=2,3 ekleyin:
  2. CPU atamasını yapılandırın /opt/ardupilot/etc/ardupilot.env dosyasını düzenleyin ve CPU_AFFINITY satırını yorum satırından çıkarın:
  3. Kartı yeniden başlatın
Yeniden başlatma sonrasında ArduPilot yalnızca 2 ve 3 numaralı çekirdeklerde çalışırken, sistem işlemleri 0 ve 1 numaralı çekirdekleri kullanır.

5. Kullanım

5.1. Kart Yönlendirmesi

Kartı aracınıza GemStone logosu aracın önüne bakacak şekilde monte edin. Bu, uygun sensör yönlendirmesi ve koordinat sistemi hizalamasını sağlar.

5.2. Durum LED’leri

CSI/DSI portlarının yakınında bulunan yeşil-kırmızı durum LED’leri uçuş kontrolcüsünün mevcut durumunu gösterir. Ayrıntılı LED desenleri ve anlamları için ArduPilot’un dokümanına bakınız.

5.3. Uçuş Kayıtları

ArduPilot, uçuş kayıtlarını /opt/ardupilot/var/log/ dizininde binary BIN formatında saklar. Kayıtlar otomatik olarak döndürülür ve LASTLOG.TXT en son kaydın numarasını gösterir. Bu kayıtlar UAV Log Viewer kullanılarak analiz edilebilir.

5.4. Çevre Birimler

40-pin GPIO başlığı çevre birimlere, PWM çıkışlarına ve iletişim arayüzlerine erişim sağlar.

5.4.1. GPIO Pinout

Aşağıdaki tablo, device-tree overlay’leri uygulandıktan sonra GPIO başlığındaki her pinin işlevini gösterir. Tablo, kartın GemStone logosunu dik görebileceğiniz şekilde yönlendirildiğini varsayar.

5.4.2. Cihaz Yolları

Her çevre birimi için Linux cihaz yolları:

5.4.3. RC Girişi

Kart, UART-MAIN1 RX (GPIO-15) pini üzerinden SBUS protokolü aracılığıyla RC girişini destekler. SBUS, RC alıcınız ile uçuş kontrolcüsü arasında güvenilir iletişim sağlayan yaygın olarak kullanılan dijital bir RC protokolüdür.
5.4.3.1. Sinyal Tersleme Gereksinimi
SBUS protokolü ters çevrilmiş bir seri sinyal kullanır, bu da SBUS alıcınız ile UART-MAIN1 RX pini arasında harici bir sinyal tersleyici devresi kullanmanız gerektiği anlamına gelir. Bu tersleyici olmadan, kart SBUS verisini doğru şekilde okuyamayacaktır. Sinyal tersleyici devresini oluşturmak için şunlara ihtiyacınız olacak:
  • 1x NPN transistör (örn. S9014 TO-92 paket)
  • 1x 10kΩ direnç
  • 1x 1kΩ direnç

Sinyal Tersleyici Devresi

Bağlantı Detayları:
  • SBUS alıcı çıkışı, 1kΩ direnç üzerinden transistör base’ine bağlanır
  • Transistör kollektörü, UART-MAIN1 RX pinine (GPIO-15) bağlanır
  • 10kΩ pull-up direnci, kollektör ile 3v3 VCC arasına bağlanır
  • Transistör emitörü, GND’ye bağlanır

5.5. QGroundControl Bağlantısı

QGroundControl (QGC), ArduPilot için önerilen yer kontrol istasyonudur. UDP veya seri telemetri üzerinden bağlanabilirsiniz.

5.5.1. USB-Ethernet Bağlantısı (Varsayılan)

Gemstone kartını USB Type-C kablosu ile bilgisayarınıza bağlayın. Kart, otomatik IP yapılandırmasıyla USB üzerinden Ethernet sağlamak için USB Gadget API kullanır:
  • Kart IP’si: 192.168.7.2
  • PC IP’si: DHCP üzerinden atanır (genellikle 192.168.7.59)
  • MAVLink Portu: 192.168.7.255:14550 adresinde UDP yayını
QGC, UDP otomatik bağlantı etkinse (varsayılan ayar) araca otomatik olarak algılayacak ve bağlanacaktır.

5.5.2. Seri Telemetri Bağlantısı

Radyo modülleri kullanarak kablosuz telemetri için:
  1. Telemetri radyosunu Gemstone kartına bağlayın
    • Telemetri modülünü kartta yer alan UART-WKUP0 pinlerine bağlayın
  2. Telemetri radyosunu bilgisayara bağlayın
    • İkinci radyo modülünü USB-to-TTL yardımıyla bilgisayarınıza takın
    • Oluşturulan TTY cihazını not edin (örn. /dev/ttyUSB0)
  3. QGroundControl’ü yapılandırın
    • Application Settings → Comm Links açın
    • Add düğmesine tıklayın
    • Doğru seri portu ve 57600 baud hızını seçin
    • Yapılandırmayı kaydedin ve Connect butonuna tıklayın
MAVLink mesajları artık gelmeli ve QGC’de aracın durumunu görmelisiniz.

6. Sorun Giderme

6.1. ArduPilot Servisi Başlamıyor

Servis durumunu ve günlüklerini kontrol edin:
Bilgisayardan ağ yapılandırmasını doğrulayın:
Gemstone kartından ArduPilot’un çalıştığını ve yayın yaptığını kontrol edin:
Uygulama Ayarlarında QGC UDP otomatik bağlantının etkin olduğundan emin olun.

6.3. GPS Algılanmıyor

GPS, UART-MAIN6’ya (GPIO-4 ve GPIO-17) ve I2C-MCU0’a (GPIO-2 ve GPIO-3 pinleri) bağlı olmalıdır. GPIO başlık pinlerinde GPS bağlantısını kontrol edin ve yapılandırmayı doğrulayın:

6.4. PWM Çıkışları veya Seri Portlar Çalışmıyor

Device-tree overlay’lerinin yüklendiğini doğrulayın:
Device-tree Overlay’leri bölümünde listelenen isimleri görmelisiniz. Eksik varsa, /boot/uEnv.txt yapılandırmasını kontrol edin ve kartı yeniden başlatın.