Bu çalışmanın amacı temel uçuş görevlerini yerine getirebilecek bir oto pilot sisteminin ve yer istasyonu yazılımının gerçekleştirilmesidir. Bu görevler: Uçuş kontrolü, Konum sabitlenmesi, Hava hızı denetimi, Yükseklik sabitlenme denetimi, yönelme denetimi, GPS destekli konum denetimi, Hedef konum uçuşu, Belirlenmiş konumlara uçuş, Kameralı gözetleme, Beşik sistemi denetimi, Uzaktan kamera denetimi, Telemetri, Harita üzerinde gösterim, Sistem değişkenlerinin gösterimi, Uçuş parametrelerinin değiştirilebilmesi, Kişisel bilgisayar ile uçuş, Kişisel bilgisayar ve joystick ile uçuş denetimi dir. Ototpilot sistemi sabit veya döner kanatlı hava araçlarında kullanılabilecek şekilde geliştirilmiştir. Bunu başarabilmek için yazılım, elektronk mühendisliği, uçak mühendisliği ve kontrol mühendisliği gibi birçok mühendislik disiplininden istifade edilmiştir. Bu sisteminin gerçekleştirilmesi ile ilgili ilk adım denetleyici ve diğer donanımsal sistem bileşenlerinin seçimidir. Bu seçim projenin kavramsal tasarım aşamasında yapılmaktadır. Seçim sırasında öncelikli kriterler kolay kullanım, yaygın kod desteği , yardım kaynaklarının bulunabilir olması ve denetleyicinin teknik özellikleri gibi kriterlere göre yapılmıştır. Seçilen mikrodenetleyicinin, farklı sensörtipleri ile iletişim kurabilecek yapıda olması öncelikli hedef olmuştur. Sözgelimi telemetri modem, IMU ve GPS, UART haberleşmesi ile otopilota veri göndermekte, basınç sensörü I2C haberleşmeyi kullanmakta, batarya ölçüm sensörleri ise analog olarak veri göndermektedir. Otopilot ana denetleyicisi bütün bu haberleşme yeteneklerine sahip olmalıdır. Diğer önemli bir teknik özellik ise, sayısal giriş çıkış pinlerinde kesmeler oluşturulabilmesi yeteneğidir. Bu kesmeler sayesinde konvansiyonel bir RC alıcının pinlerinden çıkan PWM sinyallerinin okunması mümkün olabilmektedir. Ayrıca mikrodenetleyici sistemin 5V ile çalışıyor olması tercih sebebidir. Bu sayede, bütün araç içerisinde sadece 2 farklı voltaj seviyesi ile çalışmak mümkün olmaktadır. Geleneksel RC bileşenleri 5V seviyesinde çalışmakta ve çoğu zaman motor sürücüleri 5V çevirici içermektedir. Dolayısı ile 5V ile çalışan kontrolcü seçimi, fazladan bir çevirici gereksimini ortadan kaldırmaktadır.Daha sonraki adım denetleyici kodunun yazılmasıdır. Denetleyici kodunun geliştirilmesindeki ilk adım, sensörler, aktüatörler ve telemetri sisteminin çalışmasına imkan tanıyacak yazılımın geliştirilmesidir. Buyazılımlar c++ kullanılarak geliştirilmiş ve kontrolcüye hex dosyası olarak yüklenmiştir. Geliştirme sırasında adım adım ilerlenerek ara programcıklar oluşturularak geliştirilen sensör kitaplıkların çalışır vaziyette olduklarına dair kontrol noktaları olarak kaydedilmiştir. Bu sayede denemeler sırasında oluşabilecek arızalarda veya beklenmeyen davranışlarda sorunun donanımsal mı yoksa yazılımsal mı olduğu, deneme kodları tarafından anlaşılabilmektedir. Ana denetleyici kodu sürekli bir döngü içerisinde çalışan bir kontrol kodudur. Döngü zaman kritik olan görevleri yerine getirebilecek şekilde optimize edilmiştir. Sensör datalarının alınması veya telemetri işlemleri ana zaman kritik döngünün dışında, farklı yenileme frekanslarındaki döngülerde yapılmaktadır. Bu sayede sözgelimi 5Hz de çalışan bir GPS sensöründen veriler saniyede 100 defa değil olması gerektiği gibi 5 defa sorgulanmaktadır. Diğer bir yaklaşım ise IMU da olduğu gibi, yoğun matematiksel hesap gerektiren işlemlerin ayrı bir düşük maliyetli işlemci yapılarak sonuçların ana kontrolcüye gönderilmesidir. IMU bileşeni , içerisindeayrı bir düşük maliyetli işlemci barındırmaktadır. Eksen takımı dönüşümlerini ve IMU?nun euler açılarını bu düşük seviye kontrolcü yapmakta ve sonuçları yine geliştirilmiş bir binary protokolüzrinden ana otopilot işlemcisine yollamaktadır. Bu sayede zaman kritik olan ana döngü böylesine bir işlemle meşkul edilmemiş ve ana kontrol frekansı kararlılığı sağlanmıştır. Aktüatörlere ilişkin kod yazımı da deneme kodları oluşturularak gerçekleştirilmiştir. SadeceRC servo motorların sürülmesine imkan tanıyan kod parçaları oluşturulmuş, RC servolarda denenmiş ve kaydedilmiştir. Ayrıca RC alıcının sinyalleriniokuyan diğer bir değişle , kullanıcının elindeki geleneksel RC vericiden gönderilen pozisyon komutlarını okuyan kod ile servoları istenilen açıya getirmeye yarayan kod paralel geliştirilmiştir. Bu kod otopilotun devrede olmadığı sırada çalışan, otopilotu servo ve RC alıcı arasında bir pasif bileşen gibi kullanılmasını sağlayan koddur. Esasen otopilot kullanıcının komutlarını alan ve uçuş senaryosuna göre bunları servolara ileten bir ara işlemcidir. Bu işlemci otopilot devrede değilken sadece bir geçit vazifesi görür.Son olarak yer istasyonu yazılımının gerçekleştirilmesi gerekmektedir. Yer istasyonu yazılımı ve oto pilot içerisindeki telemetri yazılımı paralel ilerlemesi gereken süreçlerdir. Otopilota telemetri kabiliyeti kazandırmadan uçuş sırasında data almak mümkün olmamakta ve uçuş denetimine ilişkin algoritmalar doğrulanamamaktadır. Bu sebepten telemetri kodunun yazılması kritiktir. Telemetri kodu daha fazla veri taşıyabilmek için ASCII değil binary olarak tasarlanmıştır. Bu sayede sözgelimi 5 basamaklı bir sayının gönderilmesi 5 byte yerine 2 bayt tutmakta ve rf modemin bant genişliği daha optimum kullanılabilmektedir. Bu da birim zamanda otopilottan daha fazla veri alınması ve otopilota daha fazla veri gönderilmesi anlamına gelmektedir. Yer istasyonu UAV uçuş kullanıcı arabirimi olarak çalışmaktadır. Yer istasyonu yazılımı, Delphi yazılım geliştirme platformu kullanılarak gerçekleştirilmiştir. Delphi, Pascal tabanlı ve görsel tasarım unsurları barındıran çok yaygın ve ileri seviye bir programlama dilidir. Bu sayede kullanıcı arabirimi ve arkasında windows işletim sistemi kaynakları kullanan çok gelişmiş yazılımlar geliştirilebilmektedir. Delphi ile geliştirilen yer istasyonu yazılımı, Web üzerinde verilen java tabanlı bir servis olan Google Maps Api v3 ile de haberleşmekte bu sayede kullanıcıya harita desteği sunulmasını sağlamaktadır. Bu harita deteğinin sağlanması da yine temel java bilgisi gerektirmekte ve delphi tabanlı yazılım ile bu servisin haberleşmesini sağlayacak mekanizmalar geliştirilmesini gerektirmektedir. Proje kapsamında GoogleMaps Api kullanılarak da özel kodlar geliştirilmiş, uçuş rotasının görsel gösterimi, uçağın pozisyonu , yönelmesi ve gidilmesi gereken doğrultunun gösterimi gibi kullanıcı arayüzü gösterimine ilişkin java kodları oluşturulmuştur. Bütun bu oluşturulan kodlar, otopilot un bir uydu görüntüsü üzerinden izlenmesini sağlamakta ve uçuş görevi oluşturulmasını kolaylaştırmaktadır. Bunun yanında yer istasyonu sayesinde otopilota ilişkin parametreler uçuş sırasında değiştirilebilmektedir. Bu parametreler yeni bir görev tanımına ilişkin konum değişiklikleri olabildiği gibi, kontrol sistemine ilişkin kazanç katsayıları da olailmektedir. Ayrıca kamera pozisyonu, uçak eyleyicilerinin aktive edilmesi de bu mekanizma üzerinden sağlanmaktadır. Joystick ile uçuş sırasında, telemetri modem üzerinden otopilota kontrol yüzeylerinin açılarına ilişkin komutlar gönderilmektedir.Geliştirilen sistemin diğer bir önemli özelliği değişik uçuş platformlarına uygulanabilirliğidir. Sistem bileşenleri buna göre seçilmiştir. Bütün uçan platformlarda kullanılması düşünülen oto pilot bileşenleri şunlardır: Ana Denetleyici, GPS, Ataletsel Ölçüm Birimi, 3 eksen jiroskop, 3 eksen ivme sensörü, 3 eksen manyetik sensor, Pitot Tüpü Sensörü, Altimetre Basınç Sensörü, Servo Denetleyicisi, Telemetri Modem, Akım ve Gerilim Sensörleri ve Ana Uçuş Kontrol Alıcısı. Bu bileşenler, döner kanatlı hava araçlarında ve sabit kanatlı hava araçlarında kullanılmaktadır. Yukarıda bahsedilen bileşenler ayrı ayrı farklı amaçlar için yurtdışı ve yurtiçi pazarda uygun fiyatlarda bulanabilmektedir. Bileşenlerin bir sayısal sistem tasarımı yaklaşımı ile bir araya getirilmesi sayesinde, esnek bir sistem ortaya konmuştur. Geliştirilen sistem herhangi bir marka veya model bileşene bağımlı değildir. Geliştirme sürecindeki bütün bilgi birikimi yerli olup, bileşenlerin tamamına yakınının farklı tedarikçilerden ve veya farklı markalardan ikamesi mümkündür. Bu çalışma neticesinde çalışan bir otomotik pilot sistemi, tamamı ile yerli mühendislik bilgi birikimi ile, tedarikçi ve markadan bağımsız bir biçimde ve düşük maliyetli bileşenler ile geliştirilmiştir. Optimize otopilot kod döngüsü, düşük işlem güçlü kontrolcülerin kullanımına imkan vermiştir. IHA pazarı geçtiğimiz on yılda ciddi bir büyüme kaydetmiştir. Ülkemizdede bu tip çalışmalar hızlanmıştır. IHA lar ülkemiz için stratejik öneme sahip hava araçlarıdır. Bu hava araçlarının ana kontrol bileşenlerinin yerli imkanlarla üretilebiliyor olması stratejik bir önem arzetmektedir. Bu tür araçların geliştirme ve ar-ge süreçleri yüksek maliyetlidir. Bu süreçlerde düşük maliyetli ve esnek otopilot bileşenlerinin kullanımı sektörde geliştirme maliyetlerini düşürecek ve süreçlerin daha hızlı ilerlemesini sağlayacaktır. Sözgelimi elden atılan bir insansız hava aracının malyetinin büyük bir kısmını otopilot oluşturmaktadır. Test uçuşu ve geliştirme sürecinde harcanan iş gücü ve sistem tasarımı maliyetini minimize etmek adına ithal rakiplerinden daha uygun fiyatlı bir denetleyici geliştirme hedefine başarıyla ulaşılmıştır. Bu tezde gömülü sistem yazılımı, sayısal sistem tasarımı ve kullanıcı ara yüzü tasarımı konusunda ileri becerilerin kullanımı şeklinde katkım olmuştur. The aim of this work is to design and build an autopilot system hardware and software including ground station software which is capable of performing simple mission tasks like: flight control ,attitude stabilization,airspeed control,altitude hold, heading control, GPS hold, waypoint flight, fixed waypoint flight, telemetry, map display , monitoring system variables, flight parameter change during flight, Fly by PC and Control by PC and Joystick. The autopilot system can be implemented in to both fixed wing and rotorcraft platforms. To do that, a multidisciplinary approach has been used. The first step of autopilot design task is to choose the suitable microcontroller and peripherals, then the software has to be written for the controller. For the telemetry system a binary communication protocol must be created which is able to make fast two way communication between ground station and the autopilot system. At last ground station software has to be written to monitor and change the system variables and act as a user interface with camera and flight controls for real UAV experience.The most important part of this system is the flexibility to implement it in to various flying platforms. To be able to do that system variables should be monitored and changed during flight. The common peripherals of the system for all the flying platforms are: main controller, GPS system, inertial measurement unit (IMU), 3 axis gyro, 3 axis accelerometer, 3 axis magnetometer, pitot tube sensor for airspeed measurement, pressure sensor for barometric altitude, servo controller, telemetry modem, current and voltage sensors, primary flight control radio receiverAs a result a working autopilot system has been created. UAV market has grown explosively over the past decade. To simplify the Test flight and controller design phase such a system is very useful and less costly than imported competitors. My contribution to this project is to design and build a working autopilot system which is able to perform basic tasks mentioned above, using advanced embedded programming, digital system design and human machine interface design skills. 81