Vb.Net ve AForge.dll kullanarak bilgisayarın kamerasını yönetme

i11

Vb.net kullanarak bilgisayarınızın kamerasını kullanmak isteyenler için  AForge.dll bize bu konuda fazlasıyla yardımcı olmaktadır. Ve bu işlemi çok basit bir şekilde yapabilmekteyiz. Bir örnek üzerinde anlatmaya çalışacağım. Yapacağımız projeyi açıyoruz ve öncelikle gereken dll dosyalarını projemize ekliyoruz. AForge nin bu amaçla kullanılılan

dll dosyalarını çok rahatlıkla kullanabiliriz.  Öncelikle projemizde araçlar bölümüne sağ tıklayıp Choose Items‘e tıklayıp açılan bölümden indirmiş olduğumuz AForge.Controls.dll’i seçiyoruz. Bizim için gerekli olan VideoSourcePlayer aracını kullanmak için bu işlemi yapmamız gerekiyor. Daha sonrasında proje referans bölümünden  resimde belirtilen dll’leri projemize referens olarak ekliyoruz.

Projemize yeni bir form ekleyelim ve bu forma bir VideoSourcePlayer ve bir tane listbox ekleyelim.

AForge nin web sayfasından indirmiş olduğunuz bu dll’lerden iki tanesini formumuza imports ediyoruz. Diğerlerini imports etmedik ama sisteme referans olarak neden ekledik derseniz eğer, eklemeden çalışmıyor 🙂

 

İki adet değişkenimiz olacak, tanımlamalarını yapıyoruz.

 Dim VideoCaptureSource As VideoCaptureDevice
 Dim devices As New FilterInfoCollection(FilterCategory.VideoInputDevice)

Form yüklendiğinde aşağıdaki işlemler gerçekleştirilmektedir.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim MyWebcam As FilterInfo
 If devices.Count = 0 Then
     listbox1.Items.Add("Kamera bulunamadı")
 Else
     For Each MyWebcam In devices
         listbox.Items.Add(MyWebcam.Name)
     Next
 End If
 listbox.SelectedIndex = 0
 End Sub

Bir adet buton ekleyebilir ve butonun tıklama özelliğine aşağıdaki komutları yerleştirirsek kameramızdan aldığımız görüntüyü istediğimiz yere kaydedebiliriz.

Dim strFilename As String 
strFilename = fotograf_adi & ".jpg"
If VideoSourcePlayer1.IsRunning = True then
    VideoSourcePlayer1.GetCurrentVideoFrame.Save(Application.StartupPath & "\" & strFilename, ImageFormat.Jpeg)
End If

listbox’a eklenen kamera isimlerinden kamera değişimini yapabilir ön veya arka kamera için değişim yapabiliriz. bunu gerçekleştirmek için listbox’a ekleyeceğimiz komut aşağıdaki gibidir.

Private Sub listbox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles listbox.SelectedIndexChanged
    If listbox.SelectedItem <> "Kamera bulunamadı" Then
        If VideoSourcePlayer1.IsRunning = True Then
            VideoSourcePlayer1.SignalToStop()
            VideoSourcePlayer1.WaitForStop()
        End If
        VideoCaptureSource = New VideoCaptureDevice(devices(listbox.SelectedIndex).MonikerString)
        VideoSourcePlayer1.VideoSource = VideoCaptureSource
        VideoSourcePlayer1.Start()
    End If
End Sub

 

ilginizi çekebilir

Vb.Net mail gönderme

 

Firebase

Verilerin ve çapraz platform uygulama yönetimini kolaylarştıran Google tarafından geliştirilen ve bir çok ihtiyacı karşılayamaya aday olan bir uygulama üstelik bedava.

Günümüz uygulamaları platform farketmeksizin aynı veriye her cihazdan ulaşmak istiyor.

  • Kayıt- oturum bilgileri tutma
  • Uygulama kullanım verileri analizi
  • Yeni duyuruları yapma, bildirim gönderme
  • Uygulama testi
  • Veri depolama

Firebase bu istekleri karşılayabilmek için kullanılan ücretsiz bir platformdur. Firebase Cloud Messaging (FCM) Google Cloud Messaging (GCM) ‘nin yerini almaktadır. Anlık bildirim – push notification gönderiminde kullanımaktadır.Firebase root-child şeklinde organize edilen json veri parçacıkları kullanır aynı zamanda uygulamamızın backend’ini güçlendirir.

Uygulama ön planını en iyi şekilde hazırlayıp, arka plan işlerini firebase bırakacağız. Yapmamız gereken Firebase’i backend’te kurgulamak.

Firebase ve Güvenlik Kuralları

Firebase ile iletişime geçen tüm komutlar kullanıcılara açıktır. Firebase bize bir rest api verir, bu rest api üzerinden Firebase’deki databases’imizin tüm data işlemlerini (kaydetme,silme,güncelleme,okuma9 realtime olarak yapar. Firebase her web sitesi ya da uygulama için tek başına kullanılamaz lakin pek çok web sitesi ve uygulama içinde tek başına kullanılması hem maddi  hemde uygulamanın ortaya çıkış hızını ve yönetilebilirliğini muazzam derecede artırır.

Kullanıcı frontend’teki kodu değiştirse bile backend te önlem alınmalıdır. Bu validasyonları ve güvenlik kontrollerini Firebase Security Rule ile yaparız.

 

Site Haritası nedir?

Site haritaları web yöneticilerinin arama  motorlarını sitelerindeki taranabilir sayfalar hakkında bilgilendirmeleri için kolay bir yoldur. Site haritası arama motorlarının siteyi daha akıllıca tarayabilmeleri için her bir URL’yle ilgili ek meta verilerle (son güncelleme zamanı, genellikle ne sıklıkta değiştiği ve sitedeki diğer URL’lere göre ne kadar önemli olduğu) birlikte bir siteye ilişkin URL’leri listeleyen bir XML dosyasıdır.

Web sayfanızın arama motorlarınca daha etkin bir şekilde taranması GoogleBot gibi siteye uğrayan botların, siteyi daha iyi bir biçimde indexlemesi için rehberlik eden bir dosyadır. Siteyi ziyaret eden botlar, sitemap dosyasının sayesinde, hangi sayfanın ne sıklıkla, en son ne zaman güncellendiğini ve webmaster tarafından belirlenen, hangi sayfanın ne kadar önemi olduğunu tespit eder.Arama motorlarının indexleme hızında sitemap’ın etkisi büyüktür.

Sitemap dosyası olan bir web sitesi, indexlenirken daha ayrıntılı, daha hızlı ve daha çok indexlenir. GoogleBot, siteye girince sitemaptan web sitenin linkleri hakkında detayları çeker ve ona göre indexler. Kısacası sitemap kullanmaya başladığınız andan itibaren index sayınız ve index hızınızda, farkedilebilir artışlar olacaktır.

 

Vb.Net mail gönderme

Imports System.Net.Mail

Try
     Dim alici,gonderen,baslik ,mesaj As String
     Dim dosya As Attachment
     Dim Email As New MailMessage(gonderen, alici)
     Email.Subject = baslik
     Email.IsBodyHtml = True
     Email.Attachments.Add(dosya)
     Email.Body = mesaj
     Dim basicAuthenticationInfo As New System.Net.NetworkCredential(KullanıcıAdı, Şifre)
     Dim mailClient As New SmtpClient()
     mailClient.EnableSsl = True
     mailClient.Host = "smtp...."
     mailClient.Port = "port numarası"
     mailClient.UseDefaultCredentials = False
     mailClient.Credentials = basicAuthenticationInfo
     mailClient.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network
     mailClient.Send(Email)
Catch ex As Exception
     MsgBox(ex.Message)
End Try

Nxt Mobile Programming

141

Lego Mindstorms NXT ürünleri için yapmış olduğum uygulama Google Play ‘de yayınlanmaktadır. Android işletim sistemine sahip telefonlarınıza yükleyip kullanabileceğiniz bu uygulama ile robotlarınzı çalıştıracak komutlar oluşturabilir ve bluetooth ile bağladığınız aracınıza gönderebilirsiniz. Uygulama ile ilgili yakın zamanda güncelleme yapılacaktır.

Bağlantı Adresi

 

 

Scratch

içerik

Scratch, MIT Medya Lab`ında yer alan Lifelong Kindergarten grubunun projesi olup ücretsiz kullanıma sunulmuştur.

Scratch programını kullanarak eğlenceli bir ortamda resim, ses, müzik gibi çeşitli medya araçlarını bir araya getirebilir, kendi animasyonlarımızı, bilgisayar oyunlarımızı tasarlayabilir ya da interaktif hikayeler oluşturabilir ve bunları paylaşabiliriz.

KARAKTERLER

Scratch karakter olarak adlandırılan objelerden oluşur. Bu karakterleri kendimiz yaratabilir, sistem içerisinde var olan karakterlerden projemize uygun olanı seçebiliriz. Karakterlerin kostümlerini istediğimiz gibi değiştirebiliriz.Program kod bloklarını kullanarak herhangi bir programlama bilgisine gerek kalmadan kendi programımızı basit bir şekilde oluşturabiliriz.

KOD BLOKLARI
Scratch kod blokları programlama dillerinde yer alan kod parçacıklarının herhangi bir programlama bilgisine gerek duymadan kullanılmasını sağlamak üzere tasarlanmıştır.Birer yapboz parçasına benzeyen bu bloklar bir araya getirilerek yapmak istediğimiz kodlamayı basitçe yapabilmekteyiz.Scratch programı içerisinde yer alan kod blokları aşağıda listelenmiştir.
1.HAREKET
2.KONTROL
3.ALGILAMA
4.GÖRÜNÜM
5.SES
6.OPERATÖRLER
7.KALEM
8.DEĞİŞKENLER

Yaptığımız kodlamalar
bir başlangıç

ve bir bitiş


parçası arasında yer alır.

Java Annotation

i7

Annotation java`da sınıf, metot gibi programatik unsurlar için veri hakkında veri(metadata) oluşturmaya yarayan özelliktir.Annotationlar @ karakteri ile kullanılır. Bu Annotationlar dil spesifikasyonunda ön tanımlı durumdadır ve derleyici tarafından kullanılmaktadır.

@Override üzerinde yer aldığı fonksiyonun bir taban sınıftan miras alınan sanal bir fonksiyon olduğu ve override edildiği konusunda derleyiciyi bilgilendirir.
@SuppressWarnings
Derleyiciye normalde bir uyarı vereceği durumda o uyarıyı vermemesini sağlar. Örn:deprecated bir fonksiyon kullanılıp da uyarı alınmak istenmezse bu annotation ile amaca ulaşabilir.

@Deprecated ile işaretlenmiş bir eleman daha yeni bir versiyonu olduğu gerekçesiyle kullanımı önerilmeyen bir eleman anlamındadır. Kullanıldığı takdirde derleyici uyarı verir.
@SuppressWarnings(“deprecation”)
@Override Override parametre almadığı için parametre parantezi kullanılmaz.

LEGO MINDSTORMS NXT DIRECT COMMANDS -1

Lego Mindstorms NXT robot setleri ile iletişim kurmanızı sağlayan bazı kodları sizlerle buluşturacağım.Hazırladığınız yazılımlarınızda bu komutları kullanarak robotunuz ile iletişim kurabilirsiniz.
BYTE 0 – BYTE 1- BYTE 2-BYTE 3—- BYTE N

BYTE 0
0x00 : doğrudan komuttur ve geri dönüş değeri vardır
0x01 : sistem komutudur ve geri dönüş değeri vardır.
0x02: dönüş komutu
0x80: doğrudan komutu ve geri dönüş değeri yoktur.
0x81: sistem koomutu ve geri dönüş değeri yoktur.

Sistem Komutları: Dosya sistemleri işlemlerinde kullanılır.
Doğrudan Komutlar Robot hareketlerini ve sensörlerini kontrol eden komutlar için kullanılır.

SES ÇALMAK
Byte 0 : 0x06
Byte 1 : 0x00
Byte 2 : 0x00 veya 0x80
Byte 3 : 0x03
Byte 4-5 : Frekans Tonu(200-14000 Hz)
Byte 6-7 : Süre,ms

PİL DURUMUNU ÖĞRENME
Byte 0 : 0x02
Byte 1 : 0x00
Byte 2 : 0x00 veya 0x80
Byte 3 : 0x0B