4-Dof robot kollarını (MeArm & EezybotArm gibi) bilgiyasardan Arduino yardımı ile kontrol etmek için VB.Net'te ufak çaplı bir uygulama yaptım. Uygulama daha Beta aşamasında olduğu için eksiklikleri ve hataları giderip stabil olana kadar geliştirmeyi planlıyorum.
RAC Software BETA Link : https://drive.google.com/open?id=0B2hUK4p_W4qhVmhXd2FZMmpTMFE
*For global users go Help via program's menu.
17 Eylül 2016 Cumartesi
13 Eylül 2016 Salı
Matlab Image Processing: Edge Detection Sample
Matlab ile Görüntü İşlemeye yeni başlayanlar için kenar bulma örneği ve aşamaları.
1. Matlab'ta resim açılır, gri tonlarına dönüştürülür.
9 Eylül 2016 Cuma
Google Chrome Pencere Çözünürlüğü
Google Chrome Beta kullananlar veya son gelen güncelleme ile pencere çözünürlüğünden rahatsız olanlar için kısa bir araştırma sonucu aşağıdaki çözümü buldum.
Google Chrome ayarlarında her ne kadar sayfa içeriğinin boyutu değiştirilse de, malesef arayüz çözünürlüğü ile ilgili bir seçenek yok. Bu durum eski yazı boyutuna alışanlar için büyük bir sorun haline gelebilir.
1. Chrome kısayoluna sağ tıklıyoruz.
2. Özellikler > Uyumluluk > "Yüksek DPI ayarlarında ekran ölçeklendirmeyi devre dışı bırak" seçiyoruz ve Uygula diyerek Chrome'u tekrardan başlatıyoruz.
Herhangi bir değişiklik olmaz ise aşağıdaki yolu deniyoruz.
1. Chrome kısayoluna sağ tıklıyoruz.
2. Hedef yolunun sonuna şu kodu ekliyoruz : /high-dpi-support=1 /force-device-scale-factor=1
Not: Eklediğimiz kodun başında boşluk bırakmaya dikkat etmelisiniz.
Geri bildirim olarak yorum yapabilirsiniz.
8 Eylül 2016 Perşembe
[Arduino & VB.Net Uygulamaları #1] Arduino ve SerialPort
VB.Net kodlarımızı incelemeye geçmeden önce aşağıdaki gibi basit bir arayüz oluşturalım ve oluşturduğumuz arayüze ToolBox'tan bir adet de SerialPort ekleyelim.
Görsel ara yüzümüzü oluşturduktan sonra sırasıyla kodlarımızı inceleyelim.
Imports System.IO.PortsEklediğimiz SerialPort'un yöntemlerini(methods) kullanabilmek için SerialPort Sınıfı import edildi.
Dim comPort As String Dim isConnected As Boolean = FalseCom Port'unun adı ve bağlantı kontrolü için 2 adet değişken tanımlanıldı.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load For Each sp As String In My.Computer.Ports.SerialPortNames portList.Items.Add(sp) Next End SubProgram ilk çalıştırıldığında mevcut olan Com Portları ListBox içerisinde sıralandı.
Private Sub portList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles portList.SelectedIndexChanged If (portList.SelectedItem <> "") Then comPort = portList.SelectedItem End If End SubKullanıcının ListBox'tan geçerli bir port seçip seçmediğini kontrol edilip, ilgili değişkene aktarıldı.
Private Sub connectButon_Click(sender As Object, e As EventArgs) Handles connectButon.Click If Not (isConnected) Then If (comPort <> "") Then SerialPort1.PortName = comPort SerialPort1.BaudRate = 9600 SerialPort1.DataBits = 8 SerialPort1.Parity = Parity.None SerialPort1.StopBits = StopBits.One SerialPort1.Handshake = Handshake.None SerialPort1.Encoding = System.Text.Encoding.Default SerialPort1.ReadTimeout = 10000 SerialPort1.Open() connectButon.Text = "Dis-Connect" onData.Text = comPort & " bağlanıldı." Else MsgBox("Select a COM Port first!") End If Else SerialPort1.Close() connectButon.Text = "Connect" End If End SubConnect butonuna tıklanma olayında tek buton üzerinde hem bağlanma hem de bağlantıyı kesme özelliği için Boolean değişkeni kullanıldı. Ardından seçili bir Port'un olup olmadığı kontrol ettirilip, SerialPort bağlantısı için gerekli olan değerler aktarılıp bağlantı sağlanıldı. SerialPort hakkında daha fazla bilgiye ulaşmak için, https://msdn.microsoft.com/tr-tr/library/system.io.ports.serialport
3 Eylül 2016 Cumartesi
Digital Signal Processing
Matlab ortamında dijital sinyal işlemeye başlamadan önce, sinyaller hakkında bilmemiz gerekenlere şöyle bir bakalım.
Bu konu altında üzerinde çalışacağımız iki çeşit sinyal vardır; Sürekli Zamanlı(Continious Time) ve Ayrık Zamanlı(Discrete Time). Şimdi nedir bu sürekli ve ayrık zamanlı sinyaller? Sürekli zamanlı sinyaller adından da anlaşılacağı üzere kesime uğramayan -sürekliliği olan- gerçek hayatta karşılaştığımız, zamanında herkesin defterine çizip üzerinde genliğini, periyodunu gösterdiği Analog sinyallerdir. Ayrık zamanlı sinyaller de dijital ortamda üzerinde çalışacağımız sinyallerdir ki bunlara Dijital sinyaller de denir.
Güncellecenek...
Güncellecenek...
12 Ağustos 2016 Cuma
C++ Operator Overloading
C++'ta basit veri tipleri için tanımlanmış ve bu veri tipleri arasında işlemler yapmamızı sağlayan fonksiyonlara operatör denir.Örneğin; iki integer değerini toplayıp, çıkarmak gibi. Fakat kullanıcı tanımlı veri tiplerinde(örneğin Class) operatör işlemleri için "operator overloading" yapmamız gerek yani bir Class'a ait nesnelerin aralarında operatör işlemlerine sokulması için operatörün class içerisinde tanımlanması gerek. İşte bu olaya "Operator Overloading" denilmektedir.
Peki bu olayı bir Class içerisinde inceleyelim.
Tanımlamamızı yaparken bir fonksiyon gibi önce "return_type" , "operator" , "operator sign" ve arkasından giriş argümanları şeklinde tanımlamalıyız. Sonrasında tıpkı bir fonksiyonda olduğu gibi body kısmını doldurabilirsiniz.
Operator fonksiyon , sınıf üzerinden üretilen nesnede operatör işareti geçtiği zaman işlenmektedir. Ayrıntısını bir örnek üzerinden ele alalım.
Output/* Simple example to demonstrate the working of operator overloading*/ #include <iostream> using namespace std; class temp { private: int count; public: temp():count(5){ } void operator ++() { count=count+1; } void Display() { cout<<"Count: "<<count; } }; int main() { temp t; ++t; /* operator function void operator ++() is called */ t.Display(); return 0; }
Bu örnekte operatör fonksiyon olarak "void operator ++()" kullanılmış.Temp sınıfından bir nesne üretilmiş ve "count" değeri constructor ile "5" atanmış. Sonrasında nesne üzerinden operatör fonksiyon çağırılmış ve nesneye ait olan "count" değeri 1 arttırılmış.Count: 6
Kaydol:
Kayıtlar (Atom)