WCF ve ASMX Web Servis Örneği (C#)

Bu slayt gösterisi için JavaScript gerekir.

Yazının içeriği

WCF ve ASMX örneği
Örnek login methodu
Örnek dönüş biçimi
JSON dönüştürme/çözme işlemleri
IIS web servis ekleme

Kaynak Kodları: web servis örneğini indir

 

Yapay Sinir Ağı ile XOR Kapısı (PIC Assembly)

ÖZET

Bu çalışmada, bir mikrodenetleyiciye yapay sinir ağını gerçekleyebilmesini sağlayacak bir program yazılması amaçlanmıştır. Hazırlanan yapay sinir ağı, program içerisine gömülü olan XOR doğruluk tablosuna göre eğitilir ve mikrodenetleyicinin giriş portlarından alınan giriş verilerini kullanarak çıkış üretir. Çalışmada, öğrenme metodu için geri yayılım metodu, aktivasyon fonksiyonu için basamak fonksiyonu, ağırlık güncellemeleri için Hebbian Kuralı kullanılmıştır. Geliştirilen uygulama, PIC Assembly dili ile PIC16F84 mikrodenetleyicisi için kodlanmıştır. Uygulama, öğrenme işlemini başarı ile gerçekleştirerek, denenen tüm giriş verileri için doğru sonuçlar üretmiştir.

1.GİRİŞ

XOR (özel veya) problemi sahip olduğu doğrusal olmayan yapı sayesinde sınıflama ve modelleme algoritmalarının test edilmesi ve başarılarının ölçülmesinde önemli bir ölçüttür. Çalışma XOR kapısının yanında farklı birçok amaçla da kullanılabilir. Çalışma bir sisteme dahil edilip, sistem ve mikrodenetleyiciye paralel veri girişi sağlanabilir. Giriş verilerini alarak eğitilen mikrodenetleyici, daha sonra kendi çıkış verileri ile sistemin çıkış verilerini karşılaştırabilir. Verilerin doğru olmaması gibi durumlarda sistemdeki hataları gidermede kullanılabilir.

Çalışmada yapay sinir ağı, 1 giriş, 1 ara ve 1 çıkış katmanlarından oluşur. Giriş katmanı ise 2 nöron ve 1 bias olmak üzere 3 giriş, 3 ara nöron ve 1 çıkış nöronundan oluşur. Giriş nöronu dışındaki nöronlar için bir aktivasyon fonksiyonu vardır. Her nörondan diğer nörona giden bir bağlantı bulunur ve bu bağlantının bir ağırlığı vardır. Her bir giriş ile ona ait ağırlık değeri çarpımlarının toplanmasına toplama işlevi denir. Nöronların değerleri aktivasyon fonksiyonu ile belirlenir. Çıkış nöronunda elde edilen değer ile hedef değer farklı ise geri yayılımlı olarak ağırlıklar tekrar hesaplanır ve öğrenme gerçekleştirilir. Öğrenme işlemi için çalışmada Hebbian Kuralı uygulanmıştır. Böylece her bağlantıdaki ağırlık güncellenerek baştan hesaplanır ve işlem hedef sonuca ulaşana kadar devam eder. Uygulamadaki hedef sonuçlar için XOR kapısının doğruluk tablosu kullanılmıştır.

XOR kapısından gerçekleştirilmeden önce ilk olarak tek nöronlu yapay sinir ağı gerçekleştirilmiştir. Giriş verisi rastgele bir ağırlık ile çarpılıp, belli bir eşik değerden geçirilmiş ve çıkış değeri elde edilmiştir. İkinci aşama olarak AND kapısı gerçekleştirilmiştir. AND mantık kapısının seçilmesinin nedeni, yapay sinir ağı ile öğrenmenin  kolay bir şekilde gerçekleşebilmesidir. AND kapısının kolay olmasını sağlayan durum, bir doğru ile kolaylıkla sınırlandırılabilmesidir. Bunun dışında AND kapısı için bias değerine ihtiyaç duyulmaz, böylece giriş sayısı değişmez ve daha az ağırlık değeri ile işlem gerçekleştirilir. XOR kapısından önce bu iki aşama tamamlanmıştır.

Uygulama sonuçları Tüm farklı giriş verileri, mikrodenetleyiciye aktarılıp elde edilen çıkış verileri doğruluk tablosu ile karşılaştırıldığında tüm sonuçların doğru olduğu gözlemlenmiştir.

Okumaya devam et “Yapay Sinir Ağı ile XOR Kapısı (PIC Assembly)”

Yapay Sinir Ağı ile AND Kapısı (PIC Assembly)

Bu çalışmada, bir mikrodenetleyiciye yapay sinir ağını gerçekleyebilmesini sağlayacak bir program yazılması amaçlanmıştır. Hazırlanan yapay sinir ağı, program içerisine 48. satırda bulunan hsonuc (Hedef Sonuç) isimli değişkene göre eğitilir ve program kodunun 44 ve 46. satırlarından alınan giriş verilerini kullanarak çıkış üretir. Çalışmada, öğrenme metodu için geri yayılım metodu, aktivasyon fonksiyonu için basamak fonksiyonu, ağırlık güncellemeleri için Hebbian Kuralı kullanılmıştır. Geliştirilen uygulama, PIC Assembly dili ile PIC16F84 mikrodenetleyicisi için kodlanmıştır. Uygulama, öğrenme işlemini başarı ile gerçekleştirerek, denenen tüm giriş verileri için doğru sonuçlar üretmiştir.

Çalışmada yapay sinir ağı, 1 giriş, 1 ara ve 1 çıkış katmanlarından oluşur. Giriş katmanı ise 2 nöron ve 1 bias olmak üzere 3 giriş, 3 ara nöron ve 1 çıkış nöronundan oluşur. Giriş nöronu dışındaki nöronlar için bir aktivasyon fonksiyonu vardır. Her nörondan diğer nörona giden bir bağlantı bulunur ve bu bağlantının bir ağırlığı vardır. Her bir giriş ile ona ait ağırlık değeri çarpımlarının toplanmasına toplama işlevi denir. Nöronların değerleri aktivasyon fonksiyonu ile belirlenir. Çıkış nöronunda elde edilen değer ile hedef değer farklı ise geri yayılımlı olarak ağırlıklar tekrar hesaplanır ve öğrenme gerçekleştirilir. Öğrenme işlemi için çalışmada Hebbian Kuralı uygulanmıştır. Böylece her bağlantıdaki ağırlık güncellenerek baştan hesaplanır ve işlem hedef sonuca ulaşana kadar devam eder.

Okumaya devam et “Yapay Sinir Ağı ile AND Kapısı (PIC Assembly)”

Görüntünün Sınır Eğrisini Çıkaran Filtreler (Matlab)

Görüntünün sınır eğrisi local süreklilik gösteren ve çevresine göre belirginleşmiş bölgelerin değişim noktalarından oluşur. Görüntü sınırı 5 farklı algoritma ile çıkarılabilir. Bunlar Sobel, Prewitt, Roberts, Log ve Canny algoritmalarıdır. Sınır grafiği siyah zemin üzerine beyaz olarak çizilir.

1. Log Filtresi

Bu filtreye Marr-Hildreth (Laplacian of Gaussian – LoG) algoritması denir. Gaussion filtresine Laplası alınarak işlem yapar.

2. Canny Filtresi

Kenar bulmada son derece etkin bir algoritmadır. Önce görüntüdeki gürültü bir sigma değerine göre üretilen Gaussian çekirdekle konvolusyonu alınarak azaltılır. Daha sonra, gradyent operatörü uygulanarak, kenar gradyent büyüklüğü ve yönü hesaplanır. Kenarlar, non maxima baskılama uygulanarak inceltilir. Son olarak görüntü, ikili eşikleme uygulanarak istenmeyen ayrıntılardan arındırılır.

3. Roberts Filtresi

Bu filtre diagonal olarak kenar tarar. Kernel matrisi şöyledir: [1,1,0;1,0,-1;0,-1,-1] veya [2,1,0;1,0,-1;0,-1,-2]. Okumaya devam et “Görüntünün Sınır Eğrisini Çıkaran Filtreler (Matlab)”

Görüntü Filtreleme Uygulamaları ve Amaçları (Matlab)

Görüntü Filtreleme

Filtreleme resmin üzerinde bir filtre varmış gibi düşünüp her piksel değerinin yeniden hesaplanmasıdır.  Filtreleme sayesinde görüntü üzerinde netleştirme, belirli ayrıntıları ortaya çıkarma, görüntüyü yumuşatma,  kenar keskinleştirme veya kenar bulma gibi işlemler gerçekleştirilir. Filtreler genelde 3×3 lük matrislerdir. Fakat boyutları 5×5, 7×7, 9×9, 11×11 şeklinde olabilir.

Filtreler ve Amaçları

1-Average Filtresi

Resimdeki her piksel yerine komşuları ile beraber ortalaması alınarak yeniden hesaplanır. Resimdeki gri düzeyler arasında keskin geçişler azalır; daha yumuşak geçişler söz konusudur. Resim üzerindeki kenarlarda bulanıklaşmaya (blur) yol açarlar.

Tek Nöronlu Yapay Sinir Ağı ve Proteus İsis Simülasyonu (16f84)

Bu slayt gösterisi için JavaScript gerekir.

Bu yazıda PIC assembly ile kodlanmış tek nörona sahip bir yapay sinir ağı oluşturulup, Proteus İsis programında simülasyonla gösterildi. Programda hedeflenen durum, giriş değeri 1 verilirse 0 sonucunu üreten, 0 verilirse 1 sonucunu üreten YSA oluşturmak. Tek nöronlu yapay sinir ağının özelliği, nörona giren giriş değerini belli bir ağırlık değeri ile çarpıp, eşik değere göre sonuç üretmektir. Örnek olarak giriş değeri olarak 0 değeri verilip ve bu değer 1 değerine sahip ağırlıkla çarpıldıktan sonra elde edilen sonuç olan sıfır değerini 0’a eşit ve küçük olan eşik değerle kıyaslansın. Sonuç olan 0 değeri ile eşik değerin kıyaslanması sonucunda true yani 1 değeri elde edilecektir. Çünkü sonuç 0 ve eşik değerde sıfıra eşit ve küçük olduğu için dönüş true olacaktır. Aynı durum için giriş değeri 1 olduğunda dönüş değeri 0 olacaktır. Böylece program için hedeflenen durum gerçekleşti.

Okumaya devam et “Tek Nöronlu Yapay Sinir Ağı ve Proteus İsis Simülasyonu (16f84)”

Trafik Lambası Programı ve Proteus İsis Simülasyonu (16F84)

Bu slayt gösterisi için JavaScript gerekir.

Bu programda 4 trafik lambasının karşılıklı olanlar aynı renkteki lambayı yakacak şekilde sıra ile çalışması sağlanmıştır. Birinci grup trafik lambasında kırmızı ışık yanıyorken ikinci grup trafik lambasında yeşil ışık yanarak birbirini tamamlar ve sıra ile lamba renkleri değişir. Işıkların yanma süreleri aynı değildir. Birinci grub için yeşil ışığın yanma süresi 4 saniye iken ikinci grub için bu süre 8 saniye olarak ayarlanmıştır ve sarı ışıkların yanma süresi ise 1 saniyedir.

Okumaya devam et “Trafik Lambası Programı ve Proteus İsis Simülasyonu (16F84)”

OWI-535 Robot Kol Kontrolcüsü Yazılımı (C#)

Bu projede OWI-535 modeli robot kolun bilgisayar aracılığıyla kontrol edilmesi için C# üzerinde bir uygulama geliştirilmiştir. Uygulama seri port üzerinden iletişim kurduğu robota belli şemalara uygun sinyaller göndererek hareketin gerçekleştirilmesini sağlar.

Uygulama, seri port üzerinden Arduino geliştirme kitiyle iletişim kurar ve Arduino, aldığı sinyalleri uygun pinleri kullanarak hareketin gerçekleştirilmesini sağlar.

OWI-535 Robot Kol Hakkında OWI-535 Robot Kol Seti, uzaktan kumanda aracılığı ile kontrol edilmektedir. Kolun kaldırma kapasitesi 100gr’dır. Beş ayrı motor, bu uzaktan kumanda ile kontrol edilmektedir. Kol 120° bilekten, 300° dirsekten, 180° omuzdan ve 270° temelden ve 0-4.5cm kıskaç hareket etme özelliğine sahiptir. Kıskacın üzerinde bir de beyaz LED bulunmaktadır.

OWI-535 Robot Kol Kumanda Yazılımı, C# üzerinde geliştirilmiş bir robot kontrol uygulamasıdır ve OWI-535 ile varsayılan olarak gelen kablolu kumandaya ek olarak bazı özelliklere sahiptir. Bunlar ileriki bölümlerde daha ayrıntılı olarak incelenecektir. Bu özellikler temel olarak motorların ve LED’in kontrol edilmesi ve hareketlerin kaydedilmesidir.

Projenin Kodları

Tüm proje kodları Github Link

16F84 ile Led yakma ve Proteus İsis Simülasyonu

Bu slayt gösterisi için JavaScript gerekir.

İşlemler adım adım şöyle gerçekleştirilir.

1-Led yakma programı herhangi bir not defteri ile PIC Assembly komutu ile yazılır. Dosya asm formatında kaydedilir. Bu komutlar şöyledir:

Okumaya devam et “16F84 ile Led yakma ve Proteus İsis Simülasyonu”