Otonom Uçuş Kartım - RTOS yazılım çekirdeği

Bundan 2 ay önce, bir süredir donanımsal olarak üzerinde çalıştığım otonom uçuş kontrol kartının, donanımsal tasarımını bitirmiş ve paylaşmıştım. Donanım tarafını bitirdiğimden -en azından şimdilik- beri, tüm yoğunluğumu yazılım tarafına verdim.

My Post.jpg

20220109_235230.jpg


Uçuş kontrol sistemleri RTOS yani Real Time Operating System ile çalışır. RTOS’un detayları başka bir makalenin konusu olsun, ancak kabaca aktarmam gerekirse, Bu tip işletim sistemleri, adının da belirttiği gibi gerçek zaman kısıtı olan sistemlerde kullanılırlar. Genelde mikroişlemci seviyesinde olan sistemlerde ve özellikle çok hızlı olmaları gereken ve sensörlere dayalı kartlarda sıkça karşımıza çıkar.

Önceki makalem olan MPU9250 ve STM32 ile Quaternion tabanlı AHRS uygulaması yazısına da baktıysanız, IMU’lar için filtreleme sistemlerinde zamanın kritik olduğunu görmüşsünüzdür. Uçuş kontrol sisteminin geneli de bundan farklı değildir aslında. GPS’lerin çalışması ve konum çözümleri ya da IMU’ların filtrelenmesi ya da navigasyonun sağlanması ya da rota takibi gibi birçok konuda zaman kritiktir.

Sensörlere gelirsek; barometre için BMP388’i, IMU için MPU9250’yi ve GPS/GNSS için de uBlock Neo M8N modellerini tercih ettim. BMP ve MPU I2C üzerinden, kendi yazdığım kütüphanelerle, GPS ise UART üzerinden UBX protokolü kullanarak haberleşiyor.

BMP ve GPS modeli direkt olarak kartımda da tercih ettiğim modeller. BMP388’in Bosch tarafından yazılmış API’sinin bulunması da artı bir özellik.

RTOS’u demo etmek için, CubeIDE de kullandığımdan CMSISv1’i ve FreeRTOS’u tercih ettim. 4 thread oluşturdum, bunlardan IMU’yu kontrol eden MPU9250 threadi en yüksek öneme sahip zira Quaternion hesaplamaları zamana oldukça duyarlı.

Sonuç olarak sistem gayet güzel çalıştı ve böylelikle temel bir AHRS sistemim olmuş oldu. Sonraki adımlar, bunu sürekli geliştirmek ve navigasyon özellikleri eklemekle geçecek.

Veri çıktısı:


1644848452990.png


Tüm kodlar açık kaynak olarak mevcut. Ulaşmak için, GitHub sayfamı ziyaret edebilirsiniz:


Okuduğunuz için teşekkür ederim. :)
 
Son düzenleyen: Moderatör:
@Megaton Dolar artmadan önce stokta kalan son ürünü 110 TL'ye almıştım:


BMP180 bende de var ancak hem teknolojisi eski, hem de sensör yapısı gereği aynı anda ya basınç ya da sıcaklık okunabiliyor.

BMP388 ve BMP390 birçok geliştirme içeriyor, kritik geliştirmeler.
 
O zaman 388 galiba 70 80 TL civarında olmalıydı. Bütçe kısıtlı olduğu için 180 almıştık arada bir nevri dönüyordu ama olsun 😂
Muhtemelen onu da klon almış olabiliriz 😅

Şimdi bu işlere ne hevesim var ne de vaktim.
Okulum bitince tekrar dönmek istiyorum...
Artık ilgimi mekanik düzenekler çok daha fazla çekiyor nedense☺️
 
Hali hazırda yazılımla ilgileniyorum. Gömülü sistemler hakkında pek bir bilgim yok. Bu işe kolları sıvamadan önce ne yapmak gerekir? @SideWinder

C.
C.
C.

İyi düzeyde C bilginin olması lazım ki sıkıntı çekmeyesin. Bana göre yapman gereken ilk şey C bilgini güçlendirmek.
 

Geri
Yukarı