← Ana Sayfa'ya Dön
Proje Geliştirme Rehberi

Mühendislik Standartlarında Donanım & Yazılım Projesi Geliştirme

Yazar: Nechh Robotics Ar-Ge & Sistem Mühendisliği Ekibi
Özet / Abstract

Bu doküman, fikir aşamasından prototip üretimine ve test süreçlerine kadar sistem odaklı bir donanım-yazılım projesinin (Hw/Sw Co-design) nasıl geliştirileceğini açıklar. Öğrenci projeleri, akademik çalışmalar ve mühendislik yarışmaları (Teknofest, TÜBİTAK vb.) için sistem mimarisi oluşturma disiplinini ele alır.

Giriş: Sistem Mühendisliği Yaklaşımı

Bir robotik veya gömülü sistem projesinin başarısı, rastgele yapılan kodlama veya plansız devre kurma ile değil; sistem mühendisliği standartlarına uyulmasıyla sağlanır. Proje geliştirmede sistemli bir süreç işletmek, kaynak israfını önler ve projenin kararlı (stable) çalışmasını garantiler.

Aşama 1

Gereksinim Analizi ve Mimarinin Çıkarılması

Projenin hangi problemi çözeceğini net olarak tanımlayın. Ardından "Gereksinim Matrisi" oluşturun:

  • Fonksiyonel Gereksinimler: Sistemin ne yapacağı (Örn: "AEHS sistemi ortam CO2 değerini 5 saniyede bir ölçecektir.")
  • Performans Gereksinimleri: Hız, hassasiyet ve gecikme limitleri (Örn: "Sensör verileri 100ms gecikme içinde buluta aktarılacaktır.")
  • Kısıtlar: Boyut, ağırlık, maliyet ve enerji tüketimi limitleri.
Aşama 2

Donanım ve Mikrodenetleyici (MCU) Seçimi

Gereksinimlere göre doğru kontrolcü ve sensörleri belirleyin:

  • İşlem Gücü ve Hafıza: Basit kontrol döngüleri için 8-bit MCU'lar yeterliyken, IoT veya AI uygulamaları için çift çekirdekli ESP32, ARM Cortex-M serisi (STM32) tercih edilmelidir.
  • Haberleşme Arayüzleri: Sensörlerinizin hangi protokolleri kullandığını kontrol edin (I2C, SPI, UART, CAN).
  • Güç Bütçesi: Sistemin toplam akım tüketimini hesaplayıp pil veya regülatör kapasitesini belirleyin.
💡 Kritik İpucu: I2C ve SPI Farkı

Kısa mesafeli, az pin tüketen bağlantılarda I2C (örneğin sıcaklık/nem sensörleri) idealdir. Ancak ekranlar veya yüksek hızlı ivmeölçerler gibi yüksek veri transferi gerektiren durumlarda donanımsal SPI hattını kullanmalısınız.

Aşama 3

Gömülü Yazılım Algoritması Tasarımı

Yazılımınızı tasarlarken "Durum Makinesi" (State Machine) mimarisini kullanın. Tüm işlemlerin `loop()` içinde ardışık çalışması yerine, sistem durumlarına göre (Örn: BAŞLANGIÇ, OKUMA, ACİL_DURUM, VERİ_PULSE) dallandırın.

PID kontrol algoritmaları için zamanlama kararlılığını sağlamak amacıyla kesmeleri (Interrupts) veya donanımsal zamanlayıcıları (Hardware Timers) kullanın.

// ESP32 Kesme (Timer Interrupt) ile Sabit Örnekleme Zamanı Oluşturma hw_timer_t * timer = NULL; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; void IRAM_ATTR onTimer() { portENTER_CRITICAL_ISR(&timerMux); // Sensör oku ve PID kontrol loop'unu çalıştır readSensors(); computeControlFeedback(); portEXIT_CRITICAL_ISR(&timerMux); }
Aşama 4

Prototipleme ve PCB Tasarımı

Devrenizi breadboard üzerinde test ettikten sonra, mutlaka bir şematik ve baskı devre kartı (PCB) tasarlayın:

  • PCB tasarımı için KiCad (açık kaynak) veya Altium Designer kullanabilirsiniz.
  • Gürültü Koruması: Analog ve dijital hatları ayırın. Sensör hatlarının yanına toprak (GND) hattı çekerek elektromanyetik parazitleri engelleyin.
  • Kondansatörler: Her entegrenin güç pini (VCC) yakınına mutlaka 100nF dekuplaj kondansatörü yerleştirin.
Aşama 5

Sistem Testi ve Hata Ayıklama (Debugging)

Projenizi yarışma veya teslim aşamasına getirmeden önce kararlılığını test edin:

  • Watchdog Timer (WDT): İşlemcinin kilitlenmesi durumunda sistemi otomatik olarak resetleyecek WDT mimarisini aktif edin.
  • Hata Yakalama: Haberleşme protokollerinin geri dönüş kodlarını kontrol edin (Örn: I2C cihazın orada olup olmadığını tarayın).
  • Test Senaryoları: Aşırı akım, sensör kaybı veya elektrik kesintisi gibi durumlarda sistemin "Güvenli Mod" (Fail-Safe) durumuna geçtiğini doğrulayın.

Özet ve Şablonlar

Başarılı projeler, dökümantasyonu tam olan projelerdir. Projenizin her aşamasında şemalarınızı güncel tutun, kodlarınızı GitHub üzerinde versiyonlayın ve sürüm notları (changelog) hazırlayın.