Tüm yazılar
22 · Ar-Ge ve donanım · 2025.12 · 5 dk

Yazılımdan donanıma: bina yıkama drone'u ve Raspberry Pi ekranları

IOTROCOP'ta iki projeyi baştan sona tek başıma geliştirdim: bina yıkama amaçlı bir drone ve kafe ile marketler için telefondan yönetilen reklam ekranları. İkisi de bana aynı şeyi öğretti: donanımda tek bir bileşen yoktur, sistem vardır.

01Bina yıkama drone'u

Bu projede drone'un fiziksel tasarımı ile yazılımı, işlem birimi ve iletişim altyapısı birlikte düşünülmek zorundaydı. Yazılım ve işlem tarafında ROS ve NVIDIA Jetson Nano yer aldı; fiber altyapıyı da kapsayan teknik yapıyı drone'un tasarımıyla birlikte kurdum. Tasarımdan teknik altyapıya kadar bütün sorumluluk bendeydi.

sistem
tasarım   → bina yıkama drone'u
yazılım   → ROS
işlem     → NVIDIA Jetson Nano
altyapı   → fiber

Web projelerinde bir katmanı diğerlerinden bağımsız düşünebiliyorsunuz. Burada bu mümkün değildi: mekanik bir karar işlem birimini, işlem birimi yazılımı, yazılım da iletişim ihtiyacını etkiliyordu. Projeyi tek bir bileşen olarak değil, baştan bütün bir sistem olarak ele almam gerekti.

Bu projede dikkatimi en çok çeken şey, kararların sırası oldu. Bir web uygulamasında çoğu karar sonradan geri alınabilir; bir kütüphaneyi değiştirmek ya da bir servisi yeniden yazmak zaman alsa da mümkündür. Fiziksel bir sistemde ise bazı kararlar diğerlerinin çerçevesini çiziyor ve geri dönmek çok daha pahalı. Bu yüzden tasarımı ve teknik altyapıyı birlikte ele almak, işin başından itibaren bir tercih değil, bir zorunluluktu.

02ROS, Jetson Nano ve fiber bir arada

ROS, robotik bir sistemde farklı yazılım parçalarının birbiriyle konuşabildiği bir çerçeve sunuyor. Jetson Nano, bu yazılımın üzerinde çalıştığı işlem birimi. Fiber altyapı ise sistemin teknik yapısının bir parçası. Bu üçünü ayrı ayrı seçilmiş parçalar gibi değil, aynı sistemin birbirine bağlı katmanları gibi düşünmek gerekiyordu; her birine dair bir karar, diğerlerinin sınırlarını da belirliyordu.

Benim için robotik tarafın web geliştirmeye en çok benzeyen yanı, sorumlulukları ayırma ihtiyacı oldu. Yazılımı birbirinden ayrı görevlere bölmek, bir parçayı değiştirirken bütünü bozmamaya yardımcı oluyor. Farkı ise şu: burada her yazılım kararının bir de fiziksel karşılığı var.

03Raspberry Pi reklam ekranları

İkinci proje daha mütevazı ama aynı derecede bütünsel: kafe ve marketlerde reklam ve tanıtım için kullanılan, Raspberry Pi 4 üzerinde çalışan dijital ekranlar. Ekranlar bir telefon uygulamasından yönetiliyor. Ekran yazılımını, mobil kontrolü ve cihazın teknik altyapısını birlikte kurdum.

Mekânın dijital vitrini, cebindeki telefondan yönetiliyor.

Buradaki asıl iş, mekândaki ekranın davranışı ile telefondaki yönetim akışının aynı ihtiyacı karşılamasıydı. İşletme sahibi için iki ayrı ürün değil, tek bir sistem olmalıydı.

Mekândaki bir ekran için web'deki alışkanlıklar tek başına yetmiyor. Bir web sayfası kapanıp yeniden açılabilir; mekândaki ekran ise gün boyu açık kalması ve kendi başına ayakta durması beklenen bir cihaz. Bu tür cihazlarda ekran yazılımını ayrı bir uygulama olarak değil, cihazın kendisinin bir parçası olarak düşünmek bana daha doğru geliyor.

Bu tür bir sistemde düşündüğüm sorular web projelerindekinden biraz farklı. Ekran bir mekânda, çoğu zaman başında kimsenin durmadığı bir köşede çalışıyor; yönetim ise elde tutulan bir telefondan yapılıyor. Arada bir cihaz, bir bağlantı ve bir uygulama var, ama kullanıcı bunların hiçbirini ayrı ayrı görmek istemiyor. Telefondan yaptığı değişikliğin ekranda karşılığını görmek istiyor. Cihaz tarafını ve uygulama tarafını bu basit beklentinin etrafında birlikte ele aldım.

04Bireysel çalışmanın iki yüzü

İki projede de tasarımdan teknik altyapıya kadar bütün sorumluluk bendeydi. Bunun bir avantajı var: sistemin her parçasını tanıyorsunuz ve bir kararın nereye dokunacağını kestirebiliyorsunuz. Ama aynı zamanda her katmanda karar verecek kişi de sizsiniz; yazılımı yazan, donanımı düşünen ve kullanıcı adına soru soran kişi aynı. Bu durum bana, alışık olduğum alanın dışındaki kararları da sahiplenmeyi öğretti.

Tek başına çalışmanın bir riski de kör noktalar. Bir ekipte başka birinin soracağı soruyu kendinize sormanız gerekiyor. Bunun için bir katmanı ele alırken, onu kullanacak bir sonraki katmanın gözünden bakmaya çalışıyorum: yazılım işlem biriminden ne bekliyor, telefon uygulaması ekrandan ne bekliyor?

05Aynı çizginin devamı

Bireysel bir IoT projesi olarak geliştirdiğim araç takip sisteminde de benzer bir yaklaşımı izledim: Raspberry Pi üzerinde çalışan, canlı GPS, interaktif harita ve hız, sinyal gücü, batarya ile sensör verilerini tek arayüzde gösteren gömülü bir uygulama. Orada da donanımdan gelen veriyi güncel tutarken arayüzün akıcı kalması gerekiyordu.

Bu projelere dönüp baktığımda ortak nokta açık: ekran, drone ya da araç fark etmeksizin, kullanıcının gördüğü davranış birçok katmanın birlikte çalışmasının sonucu. Bu katmanların hepsini görebilmiş olmak, bugün web ve servis tarafında çalışırken de işime yarıyor.

İlgili yazılar
  1. 23Raspberry Pi üzerinde telemetri arayüzü: veri akarken akıcı kalmakAr-Ge ve donanım2025.115 dk
  2. 24Sahadan gelen veri: akıllı tarımda edge işleme ve bağlantı koşullarıAr-Ge ve donanım2025.105 dk