GTÜ CSE 396
PROJE 2
GRUP 5
Cin Aliyi Bul

Yazılım Modülü
Yazılım modülü PC-Client, Raspberry Server ve Arduino Kontrol olmak üzere 3’e ayrılır.

Arduino Control
Arduino kısmında, step motorların kontrolü sağlanacak. Sistemimizde nema 17 step motor kullanıyoruz bunların kontrolünü kolaylaştırmak için A4988 motor sürücüleri kullandık.
Sistem ilk açıldığında Arduino motorların konumunu sıfır noktasına getirir. Raspberry server ile bağlantı kurucak ve sürekli olarak karşıdan gelen kordinatları analiz edip motorları istenilen noktaya getirecektir.

Raspberry Server
Raspberry üzerinde çalışan modülümüz sistemin bel kemiği oluyor. Kameradan görüntü alma, istemcilere bilgi verme ve diğer birimler ile iletişim Raspberry üzerinden sağlanır. Bu modülde kameradan görüntü okuma-analiz işlemleri, cin aliyi bulma işlemi ve diğer haberleşme işlemleri sağlanacak. PC-Client için ayrı thread kullanılacak. Kamera threadi belirli aralıklara görüntü alıp vision modülü yardımı ile algoritma uygulanacak. Yapılan hesaplamalar sonucu yeni koordinatlar Arduino ya gönderilecek.
İstemci(PC-Client) bağlantısını takip eden thread ise ethernet portu üzerinden Client bağlantısı olma durumunda gelen kodlanmış mesajlara göre istenilen bilgiyi paylaşacak.
Örneğin 3xxxx ile başlayan komutlarda mevcut ekran görüntüsü gönderilecektir. Haberleşme sadece istek olması durumunda veri yollayacaktır.
PC-Client
Sistemimizin bilgisayar tarafında çalışan ara yüz ve kontrol yazılımıdır. Bu yazılım üzerinden gerçek zamanlı olarak kamera görüntüsü ve kameranın konumu takip edilebilecek aynı zamanda kamera, ara yüz üzerinden kontrol edilebilecektir.
Yazılımı kendi içinde iki kısma ayırabiliriz; ara yüzü çizen gui thread ve Raspberry ile iletişimi sağlayan communication thread . Gui thread Raspberry den gelen fotoğraf ve konum bilgisini ekranda gösterirken communication thread Raspberry ile iletişimi sağlar. (İletişimin ayrıntıları Raspberry server başlığında anlatıldığı gibidir.) Bu iki thread aynı zamanda senkron olarak çalışır. Yazdığımız communication sınıfı üzerinde tutulan verileri paylaşımlı olarak kullanırlar.

Yazılım Modülü-Arayüz

