Energia, Stellaris Launchpad ve C# kullanarak Ses ile Led Kontrolü

Başlatan ArifAhmet, 19 Mayıs 2014, 18:13:49

ArifAhmet

Merhaba, biraz eğlence olsun diye şöyle bi uygulama yaptım, umarım faydalı olur. Resimleri ayarlayamadım. Biraz eğer resimlerin tam boyutları açılmazsa en altta verilen url adresinden tam resmlere ulaşabilirsiniz. Resimlerin boyutunu güncellemeye çalıaşcağım. Forumlarda pek yazmıyorum :)

Projemizi kısaca açıklamak gerekirse, 2 kısımdan oluşacak, ilki C# ile ses işlemlerinin yapılıp sonuçlarının seri port ile işlemciye gönderildiği kısım. 2.si ise işlemciye gelen verileri kontrol edip ledin durumunu belirlediğimiz kısım. Hadi başlayalım!
Not : İleride göreceğimiz System.Speech kütüphanesi türkçe desteği içermediği için sistem dilinizi ingilizce yapmanız gerekiyor.

Bunun için ilk önce Energia programını indirmemiz gerekiyor. Energia TI serisi Launchpadleri Arduino gibi programlamamıza imkan sağlıyor. Arayüzü tamamen Arduino IDE ile aynı, daha önce arduino ile çalışmış olan arkadaşlar bu platformda hiçbir sıkıntı çekmeyecektir.

Daha sonra bilgisayarımızdan sesi işleyip Launchpad'e göndermek için C# programlama dilini kullanacağız. Bunun için Visual Studio C# Express programını indirip kurmanız gerekiyor.

Son olarak kullanacağımız Launchpadlerden herhangi birini kullanabilirsiniz. Bunların driverlerının tam olarak kurulduğundan emin olun.

Yukarıdaki işlemlerin hepsini tamamladıysanız hemen C# kısmını halletmek için Visual Studio programını açıyoruz ve sol kısımda bulunan New Project'e tıklıyoruz. Karşımıza çıkan ekranda Windows Form Applications'ı seçtikten sonra karşımıza çıkan form'a çift tıklayıp kod kısmını açıyoruz.
Not : Bu yazı gömülü sistemler ağırlıklı olduğu için Visual Studio proje oluşturma ve kodlar detaylı olarak anlatılmayacaktır. Bu konular hakkında daha fazla bilgi internette bolca bulunmaktadır.
C#'ta ses işlemleri için kullancağamız kütüphanenin adı Speech'tir. Bunu yazılıma dahil etmek için Solution Explorer penceresinden Referans olarak eklemeniz gerekmektedir.

Artık kod tarafına geçebiliriz. Projemizin C# kısmı aşşağıdaki gibidir.

Şimdi tek tek ne yaptığımızı açıklayalım. Öcelikle ses işlemleri için 3. satırda using System.Speech.Recognition; kütüphanesini ekledik. 4.satırda seri porttan veri göndermek için using System.IO.Ports; kütüphanesini ekledik. Sonrasında Form1_Load fonksiyonu içinde Seri port ve Ses işlemleri için genel olayları tanımladık ve özelliklerini atadık. Son olarak yazılım bir ses algılandığında çalışan metot olan speechEngine_SpeechRecognized metodunda verilen komutun ne olduğuna baktık. Eğer komut open ise seri porta 1 değilse 0 değerini yolladık. İlgilendiğimiz alan C# olmadığı için çok detayına girmedim, dileyen internetten bakabilir. Bolca kaynak var.
Not : Form1_Load fonksiyonundaki serialPort1.PortName = "COM5"; komutunu kendi bilgisayarına göre ayarlamanız gerekir. Bunun için aygıt yöneticisinden kitinizin hangi protta olduğunu görebilirsiniz.

Buraya kadar bi hata ile karşılaşmadıysanız işin Energia kısmına geçebiliriz.

Launchpad'lerden herhangi birini bilgisayara bağladıktan sonra energia programını açıp, hangi kiti bilgisayara bağladıysak Tools kısmından Board ve Serial Port kısmını ayarlıyoruz. Aşşağıda verilen kodlar her iki kit için geçerlidir. Üzerinde hiçbir değişiklik yapmaya gerek yoktur.

Eğer herşeyi tamamladıysanız sol üst köşedeki Upload butonuna basarak programı karta yükleeybilirsiniz. Unutmayın, sağ alt köşede Kartınızın adı yazmalıdır. Eğer yazmıyorsa lütfen Tools kısmından ayarlarınızı tekrar kontrol edin.

Yazılım gayet basit ve anlaşılır. Yorum satırlarında herşeyi anlattım. Arduino ile seri port okuma ve yazma hakkında daha fazla bilgi için Arduino Türkiye'yi ziyaret edebilirsiniz.

http://birkodyaz.blogspot.com.tr
Yaşasın Open Source!

picusta

Ellerine saglik diyorum.
2 senedir bende stellaris launchpad kenarda duruyor,Energia ile programlamak istiyordum.

ArifAhmet

Alıntı yapılan: picusta - 19 Mayıs 2014, 18:29:17
Ellerine saglik diyorum.
2 senedir bende stellaris launchpad kenarda duruyor,Energia ile programlamak istiyordum.

Teşekkür ederim. Bidahaki yazıda daha kompleks bir sistem tasarlamayı planlıyorum. Faydalı olduysak ne mutlu. Üstelik MSp430 kullanarak da yapabilirsiniz.
Yaşasın Open Source!