Elektronik / Mikrodenetleyici Projeleri/

Android Üzerinde MSP430 Bluetooth ile Kablosuz Kontrol Uygulaması

Merhabalar.. Bu yazımda sizlere android işletim sistemli telefonum üzerinde gerçekleştirdiğim bluetooth kontrol uygulamasından bahsedeceğim.

Uygulamayı anlatmadan önce biraz android dünyası hakkında bilgi vereyim. Özellikle akıllı telefonlar üzerinde android işletim sistemi yaygınlaşmış durumda. Aynı şekilde android üzerinde program geliştirmek içinde bir sürü kaynak bulunmakta. Benimde bir süredir aklımdaydı. Fakat sanal cihaz üzerinde uğraşmak çekici gelmiyordu. Bir süre önce emektar telefonumun yerine anrdroid sistemli bir telefon alınca başladım uğraşmaya.

Biraz inceleyince gördüm ki android üzerinde yazılım geliştirmek için google tarafından sunulan bir sürü geliştirme aracı ve uygulama mevcut. Bunlardan incelediğim ikisinden birisi eclipse üzerinde java ile program geliştirme diğeri de app inventor isimli uygulama. App inventor, internet üzerinde program geliştirilen ve nerdeyse hiç programlama bilgisi gerektirmeyen, bir satır bile kod yazmadan program geliştirebileceğiniz bir araç. Bir nevi yap boz gibi blokları yan yana koyup program yapabiliyorsunuz. Diğeri ise eclipse üzerinde java ile program geliştirme aracı. Tahmin ediyorum en çok eclipse üzerinde program geliştiriliyor. Bu araçlar hakkında daha detaylı bilgiyi, eğitimi videolarını v.s. internette rahatlıkla bulabilirsiniz. Ben java bilgim olmamasına rağmen eclipse üzerinde geliştirmeye karar verdim. İlk önce temel düzeyde java bilgisi edinerek sonrasında android üzerinde program yazma ile ilgi bir kaç video inceleyip google’nın notlarını kurcalayarak biraz bişeyler kavradım.

Android ile uğraşma amacım android’li akıllı telefonlar gibi sistemler üzerinde kontrol uygulamaları yapmak. Örneğin telefon ile evde bir lamba yakıp söndürmek. Yoksa android üzerinde çok büyük oyunlar yazıp, çok gelişmiş uygulamalar geliştirme gibi bir niyetim yok. :) Bu doğrultuda kolları sıvadım. İşe dış Dünya ile kablosuz bağlantı kurmak ile başladım. (sonuçta mobil telefonlar) Kablosuz aklıma gelen iki seçenek wifi ve bluetooth idi. Wifi’nin daha karışık olduğunu ve modüllerinin daha pahalı olduğunu düşünerek dış Dünya ile haberşlemek için bluetooth kullanmaya karar verdim.

Sonrasında bluetooth modül arayışına girdim. Biraz araştırınca HC-06 isimli modülü almaya karar verdim. Modülü yaklaşık 20 liraya temin ettim. Modülü başlıca özellikleri; 3.3v ile çalışması, uart ile haberleşmesi ve 1200-115200 baud arasında çeşitli çalışması ve slave olarak çalışması.

android-hc-06-bluetooth-modul

Sonrasında bluetooth modül arayışına girdim. Biraz araştırınca HC-06 isimli modülü almaya karar verdim. Modülü yaklaşık 20 liraya temin ettim. Modülü başlıca özellikleri; 3.3v ile çalışması, uart ile haberleşmesi ve 1200-115200 baud arasında çeşitli çalışması ve slave olarak çalışması.

slave olarak çalışması modülün başka cihazlara bağlanamaması başka cihazlardan tarafından modüle bağlanması ve bağlantının yönetilmesi demek. Ben de uygulama da telefondan modüle bağlanacağım için modülün slave olması sorun değil. AT komutları ile modülün baud hızını, ismini ve şifresini değiştirebilirsiniz.

Slave modül olduğu için çok geniş komut seti yok. Modüle hiç bir komut göndermeden varsayılan olarak 9600 baud hızında, linvor ismi ile “1234″ şifresi ile kullanabilirsiniz.

Modülü bir nevi kablosuz uart olarak düşünebilirsiniz. Cihaza bağlandıktan sonra telefondan gönderilen veri direk olarak uarttan okunur. Aynı şekilde uart üzerinden master telefona veri gönderilir. Mikrodenetleyici kısmında uart üzerinden modüle bağlanıp veri gönderip, almak yeterli fakat android kısmında işler biraz daha karışık.

Android tarafında bluetooth kullanabilmek için google tarafından geliştirilen kütüphaneler ve örnek kodlardan faydalandım. Java için google tarafından geliştirilmiş akıllı telefoların donanımlarını (wifi, bluetooth, ivme ve hız sensörleri v.s.) kullanmayı sağlayan bir sürü kütüphane ve örnek kod mevcut. Bende bu uygulamada google’nin bluetooth için hazırlanmış olduğu BluetootChat örneğinden faydalandım.

Yeni baştan uygulama yazabilmek için android üzerinde ileri seviyede programlama bilgisi gerekli. Bende sınırlı seviyede bilgim ile örnek kodları kendi amacıma yönelik değiştirerek uygulamayı yaptım. Uygulamanın çalışma görüntülerini aşağına görebilirsiniz.

android-bluetootchat-google-1

android-bluetootchat-google-2

Uygulamanın çalışması basittir. Uygulama çalışınca bluetooth açma izni ister. Bluetooth açıldıktan sonra menü tuşuna basarak cihaza bağlan tuşuna basılır. Sonrasında taranıp bulunan veya önceden eşleşilmiş cihazlara bağlanılır. Düzgün bi şekilde cihaza bağlandığında resimde görüldüğü gibi hangi cihaza bağlanıldığı ekranın sağ üst kısmında görülür.Ben aldığım modüle ErhanBT ismini verdim resimde görülebilir. Uygulamada msp430 launch pad üstünde ki 2 ledin kontrol işlemi yapılır, kit üzerinde bulunan butonun durumu okunur ve denetleyicinin dahili sensörü ile sıcaklık bilgisi ölçülür. Bu bilgiler ekranda görüntülenir ve kontrol işlemi uygulama ekranında ki butonlar ile yapılır.

Uygulamada temel olarak 1 byte veri gönderir ve alınır. Gönderilen veri ile kit üzerinde ki ledler kontrol edilir. Alınan 1 byte veri ile de ledlerin ve butonun durumu ve sıcaklık bilgisi okunur. Alınan veriye göre ekran güncellenir. Uyguluma bu şekilde çalışmaktadır. Kod kısmında ise önemli olan veri alma ve gönderme yapılan kısımlardır.

Bluetooth modül ile 1024 byte paket veriler gönderilip alınabilir. Uygulamanın kodlarında değiştirdiğim kısımları inceleyerek uygulamayı kendinize göre değiştirebilirsiniz. Bluetooth modül ile 1024 byte veri alınıp gönderilebilir demiştim. Ben bu uygulamada sadece 1 byte veri alıp gönderdim. Sebebi ise denetleyici tarafında msp430g2231′in donanımsal uart modülünün olmaması. Uart donanımı zamanlayıcı kullanılarak yazılımsal olarak yapıldığından paket veri alma ve gönderme işlemlerinde veri kaçırma sorunu oluyordu. Bu yüzden sadece 1 byte veri alıp göndererek işlemlerimi yaptım. Bilgisayar ile yaptığım denemelerde bir sıkıntı olmadı paket halinde veri gönderip alabiliyordum.

Mikrodenetleyici tarafında ise basit bir örnek kod yazdım. Yaklaşık 100ms aralıklarla 1 byte veri gönderiliyor. Gönderilen verinin 8. biti ’1′ ise veri android kısmında Led ve buton bilgisi olarak ’0′ ise sıcaklık bilgisi olarak değerlendiriliyor. Dediğim gibi denetleyicinin uart donanımı olmadığından paket olarak veri alışverişinde sorun çıkardığı için bu şekilde bir gönderme işlemi yaptım. Ayrıca uygulamada gelen bir byte veriye göre kit üzerinde bulunan 2 Led’in durumu düzenleniyor. Modülü denetleyiciye bağlamak için rx ve tx pinlerini bağlamak ve 3.3 v gerilim ile toprak bağlantısını yapmak yeterli.

msp430-launch-pad-bluetoot

Uygulamaya ait proje kodları: Android Üzerinde MSP430 Bluetooth ile Kablosuz Kontrol Uygulaması

Dosya indirme LINK listesi (TXT formatında) link-19195.zip şifre-pass: 320volt.com

Yazıda direk uygulamadan bahsetmek yerine birazda android hakkında bilgi vermeyi uygun gördüm. Örnek olması açısından basit bir uygulama yaptım. Uygulamayı geliştirerek daha farklı amaca yönelik gelişmiş kontrol uygulamaları yapabilirsiniz.Uygulama ile ilgili söyleyeceklerim bu kadar. Anlaşılmayan veya sormak istediğiniz kısımları sorabilirsiniz, elimden geldiğince cevaplamaya çalışırım. Faydalı olması dileğiyle, bir sonraki yazıda görüşmek üzere..

  1. andro 2012/10/04
  2. Erhan 2012/10/05
  3. İsmail Çevik 2012/10/07
  4. osman erol 2012/10/16
  5. Bayram Ali 2012/11/13
  6. erkan 2012/12/28
  7. osman 2012/12/29
  8. erkan 2012/12/31
  9. Mesut SEYHAN 2013/02/24
  10. Göktuğ ÖZEL 2013/05/08
    • erkan 2013/05/09
      • ozelgoktug 2013/05/09
        • erkan 2013/05/13
  11. erkan 2013/05/09
  12. Ahmet 2014/03/12
  13. Mehmet Sarı 2014/03/26
  14. Mehmet Sarı 2014/03/26
    • Orhan ARI 2014/04/12
  15. simge 2014/05/05
  16. Mehmet 2014/05/10
  17. Engin 2014/05/18
  18. beril 2014/10/22
  19. Okan ŞAHİN 2014/10/29
  20. Gözde 2015/05/24
  21. kazim 2015/08/29
  22. Serhat Ởzkahya 2015/12/12

Yorum

Soru: