Kategoriler

8 Ocak 2015 Perşembe

Android GPS Uygulaması


Merhaba arkadaşlar, bu yazımızda android ile yaptığımız bir uygulama sayesinde anlık olarak pozisyon bilgimizi nasıl bulacağımızı öğreneceğiz. Kod ile ilgili anlatım videoda mevcuttur. Bu yüzden kodu anlatmıyacağım.

Bilindiği gibi tüm android telefonların içerisinde gps sensörü bulunmaktadır. Dolayısıyla bu sensörü kullanarak konumumuzu öğrenebiliriz. Peki konumumuzu öğrenip ne yapacağız ?

Sürekli haberdar olmak istediğimiz kişilere konumuzu gönderebilir aynı zamanda onlarında konumlarını öğrenebiliriz. Yanin kimin nerede olduğunu bu çalışma ile öğrenebiliriz. Yada araç, çocuk vs üzerine yerleştirilen telefondan alınan bu konum bilgisini internet veya sms yolu ile farklı ortamlara iletebiliriz. Böylece takip sistemi yapabilir yada çalınmalara karşı önlem almış oluruz.


Uygulama ekran görüntüsü

Uygulama ekran görüntüsü





7 Ocak 2015 Çarşamba

Android Akıllı Ev Kontrolü


Merhaba arkadaşlar, bu yazımızda android ile yazdığım bir uygulamayı inceleyeceğiz.  Led Kontrol ismini verdiğim bu uygulama ile 10 farklı ledi ve 1 adet servo motoru kontrol edebilmekteyiz. Peki yayının başlığı neden akıllı ev kontrolü ?

Bunu şu şekilde açıklayayım. Birgün merak edip penceresinde SATILIK yazan evin sahibini aradım ve evin fiyatını sordum. Ev akıllı sistemlerle donatılmış ve fiyatı da oldukça fazlaydı. Daha detaylı öğrenmek için bu tarz bir evi görmeye gittim. Birçok farklı hayatı kolaylaştırıcı sistem vardı. Bunlardan bazıları şunlardı:

  • Yatak odası ve oturma odasının lambaları kumanda ile kontrol ediliyordu,
  • Kalorifer ısı ayarı yine uzaktan kumanda ediliyordu,
  • Kapılar otomatik açılıyor ve istenilen kapı kumanda ile kilitlenebiliyordu...
Tabiki  bu evlerin özellikleri bu saydıklarımdan daha fazladır ancak en azından bu uygulamaları kumanda değilde telefonla yapabiliriz diye düşünüyorum. Dolayısıyla bunları yapabileceğiniz bir uygulama yazdım. Led kontrolleri sayesinde evinizdeki tüm lambaları telefon ile kumanda edebilir, kapınıza yapacağınız mekanik sistemle servo vs. kullanarak kapıyı kilitleyebilir yada açabilirsiniz. Yani uygulama alanını genişletmek size kalmış.

android control

Uygulama arayüzü ana ekran


Uygulama arayüzü hakkında ekranı


Uygulama arayüzü bilgi ekranı

Yaptığım bu uygulama bu zamana kadar android ile ilgili videolu derslerde anlattığım konuları içermektedir. Dolayısıyla kodların tamamını paylaşmak yerine ilk defa gördüğümüz ChechBox ile ilgili kısımları paylaşmanın daha doğru olduğunu düşünüyorum.

MainActivty.java kod kısmı:










1. ledi kontrol etmek için kullandığımız checkbox işaretlendiğinde seri porttan "a" harfi gönderilmektedir. Ledi kontrol etmek için arduino kullandığınızı düşünürsek aşağıdaki kodlar ile 2 ledin on - off kontrolü yapılır.






6 Ocak 2015 Salı

Android Uygulama Geliştirme Dersleri - Android Bluetooth Servo Kontrol


Merhaba arkadaşlar, bugünkü yazımızda birçok teze yada ödeve konu olan servo kontrolü ile ilgili bir çalışma hazırladım. Android led kontrolü ile ilgili yazımızda, ledin android telefonlar ile nasıl kontrol edileceğini, android telefonun bluetooth aygıtlara nasıl bağlanacağını görmüştük. Bu yazımızda android uygulamamıza eklediğimiz "seekbar" ile arduino ya bağlı servo motoru nasıl kontrol edeceğimizi öğreneceğiz.

Detaylı açıklama videolu ders anlatımında mevcut olduğu için yazma gereksinimi duymuyorum. Android ve arduino ile ilgili kaynak kodları yazının sonundaki linklerde bulabilirsiniz.

android seekbar

Android seekbar aracı

arduino android servo control

Arduino servo bluetooth 


Ders anlatım videosu





5 Ocak 2015 Pazartesi

Arduino C# Haberleşmesi - Real time Graph

Merhaba arkadaşlar,

Bugünkü yazımızda Arduino seri portundan gönderilen verilerin c# dili ile oluşturulmuş bir arayüzde gerçek zamanlı olarak grafik gösterimi işlenecektir.

Sadece arduino geliştirme kartından gelen veriler değil seri porttan gelen tüm verileri (beagleboard, raspberry pi, texas instrument kartları vs.) bu arayüz sayesinde gerçek zamanlı gözlemleyebilirsiniz.

C# ile oluşturulan arayüze ait kaynak dosyaları yazının sonundaki linkte mevcuttur. Ayrıca indirilen klasörde programın setup ı da bulunmaktadır.

C# setup oluşturma konusuna buradan bakabilirsiniz.

Kaynak dosyaların programın anlaşılması için yeterli olduğunu düşündüğümden detaylı anlatım yapmadım. Ancak talep doğrultusunda bununla ilgili bir ders videosu yayınlayabilirim.

c# arduino realtime graph , realtime data

Setup ekran görüntüsü

Uygulama çalışma videosu:




2 Ocak 2015 Cuma

Android Uygulama Geliştirme Dersleri - Android Led Kontrol


Ders 5/1 : Android Proje Geliştirme - Android Bluetooth Led Kontrolü






Ders 5/2 : Android Proje Geliştirme - Android Bluetooth Led Kontrolü






Ders 5/3 : Android Proje Geliştirme - Android Bluetooth Led Kontrolü






Ders 5/4 : Android Proje Geliştirme - Android Bluetooth Led Kontrolü






Arduino ve android kaynak kodları : 



31 Aralık 2014 Çarşamba

Android Uygulama Geliştirme Dersleri



Ders 1 : Android Proje Geliştirme - Hesap Makinesi Uygulaması





Ders 2 : Android Proje Geliştirme - Android Activity ve Class Ekleme İşlemi





Ders 3 : Android Proje Geliştirme - Android Uygulamasına İnternet Erişimin Sağlanması





Ders 4/1 : Android Proje Geliştirme - Android Bluetooth Kontrolü





Ders 4/2 : Android Proje Geliştirme - Android Bluetooth Kontrolü




4 Mart 2014 Salı

MIT Application İle Android Uygulaması - Lamba Kontrolü

Bu yazımızda daha önceden eclipse ile yazmış olduğumuz android uygulamasının mit app. inv. ile yapılmasını inceleyeceğiz. MIT app. inv. 'dan yeni proje dosyası açarak başlayabiliriz.

Şekil 1' de verilen uygulama görüntüsü sol kısımda bulunan aygıtların ekran içerisine sürüklenmesi ile yapılır. Bluetooth bağlantısı için yaygın olarak kullanılan "List Picker" seçilmiştir. Ekranda gösterilmesi istenen yazılar için "Label" aygıtı kullanılır. Lambaların kontrol edilebilmesi için butonlar kullanılır. Bu istenen aygıtlar sürüklenerek ekrana yerleştirilir. Ekranın arka plan, yön yada diğer özellikleri sol kısımdaki "Properties" alanından ayarlanır.

android led yakma arduino

Şekil 1

Ekrana yerleştirilen bu aygıtların ne şekilde kontrol edileceği kısmı "Blocks" çalışma alanında bloklarla olacaktır. Mesela butona basıldığında ne yapılması isteniyorsa "When Click do" yapısı blok sayfasından buton üzerine tıklanarak seçilir. Şekil 2 de bu gösterilmiştir.


Şekil 2

Hazırlanan bu uygulamanın kontrol blok şeması Şekil 3' de gösterilmektedir.


Şekil 3

Bu uygulamada android ile lambanın kontrolü için bluetooth haberleşmesi kullanılmıştır. Bluetoothun etkinleştirilmesi List Picker  ve Clock ile  ile ilgili komutlarla sağlanmıştır. 

Buton1 lambanın açılması için, Buton2 lambanın kapatılması için kullanılmıştır. Kontrol blok diagramında Buton1' e basıldığında bluetooth üzerinden 51 sayısı gönderilmekte, Buton2' ye basıldığında 52 sayısı gönderilmektedir. Bu sayıların bu şekilde seçilmesi ASCII tablo karşılıklarının sırasıyla 3 ve 4 olmasıdır. Arduino kısmına yazılacak program içerisinde ascii karşılıkları kullanılacaktır.

Aşağıda arduino kodu yer almaktadır. Uygulama videosu linktedirBluetooth aygıtının arduinoya bağlantısı şu şekildedir:

Bluetooth Pin                      Arduino Pin
      Tx                                        Rx
      Rx                                        Tx
      Vcc                                      Vcc
      GND                                    GND



int ledpin=13; //led 13. pine bağlanır
//yada 13. pinde bulunan led ile işlem yapılır
char deger; //bluetooth ile gönderilen verinin tutulacağı değişken

void setup()
{
  Serial.begin(9600); //seri haberleşme hızı
  pinMode(ledpin,OUTPUT); //led pini çıkış olarak ayarlanır
}

void loop()
{
  if(Serial.available()>0)  //Seri haberleşmeden veri 
  //gönderilirse bu loop çalışır
  {
    deger=Serial.read();  // gönderilen değer okunarak deger değişkenine atanır
    
    if(deger=='3') //deger 3 ise yani 51 ise
    {
      digitalWrite(ledpin,HIGH); //led yanar
    }
    
    if(deger=='4') //deger 4 ise yani 52 ise 
    {
      digitalWrite(ledpin,LOW); //led söner
    }
  }
}

3 Mart 2014 Pazartesi

MIT Application İnventor da Android Uygulaması Geliştirme

Bu zamana kadar android uygulama geliştirme arayüzü için java tabanlı eclipse üzerine kurulu SDK' yı kullanmıştık. Bu yazımızda daha basit bir şekilde uygulama oluşturulabilen MİT Üniversitesi tarafından hazırlanmış app. inv. kullanılacaktır. Daha önceden eclipse üzerinde yaptığımız aynı uygulamaların bu arayüz ile daha basit bir şekilde yapıldığını göreceğiz.

Öncelikle mit app. nasıl kullanılacağı hakkında bilgi verelim. Bu linkteki adrese girip sol üst kısmdaki "Create" butonuna tıklanır ve bir hesap ile oturum açılır. Gerekli anketleri doldurmanızı öneririm yoksa her defasında soracaktır. Aslında uygulama oluşturmak için gerekli işlem bu kadar. Ancak yapılan uygulamaların emulator yada usb bağlantısı ile telefon üzerinde çalıştırılabilmesi için bu sayfanın incelenmesi ve ilgili programların (App Inventor Setup, aiStarter) yüklenmesi gerekmektedir.

Bu aşamalardan sonra mit app inv ekranında ne, ne işe yarar bunları inceleyelim. Şekil 1 ' de uygulamanın oluşturulacağı çalışma ekranı gösterilmektedir.


Şekil 1


Bu ekranın sağ üst kısmında bulunan "My Projects" kısmından yapmış olduğunuz uygulamalara ulaşabilirsiniz. Yine sağ üstte bulunan "Designer" uygulamanın görsel kısmının oluşturulduğu çalışma sayfasını "Blocks" oluşturulacak uygulamada kullanılan buton, label vs. gibi aygıtların kontrol işlemlerin yapıldığı blok kodlama alanını açmaktadır. Üst kısımda bulunan "Build" butonu sayesinde hazırlanan uygulama bilgisayara indirilebilir yada QR kodu oluşturulabilir. Connect butonu sayesinde uygulamanın telefonda yada emulatörde çalıştırılması sağlanır. "Projects" butonu ile hazırlanan projelere ulaşılınabilinir, yeni proje yapılabilinir, internettten indirilmiş yada bir şekilde temin edilmiş proje kaynak dosyaları çalıştırılabilinir.

Çalışma sayfasının "Palette" başlığı altında bulunan aygıt isimleri sürüklenerek ekrana taşınır. Örneğiş Şekil 1' de Screen1 'e 1 adet buton eklenmiştir. Bu sol kısımdaki "User Interface" başlığı altındaki "Button" imgesinin Screen 1 içerisine sürüklenmesiyle yapılmıştır. Sağ kısımda bulunan "Properties" başlığı altındaki imgeler ile ekranda seçili aygıtların genişlik, uzunluk, renk, şekil, yazı boyutu veya rengi gibi temel özellikleri değiştirilebilmektedir. Bu alanda seçilen malzemenin boyutlarının belirlenmesinde önemli bir husus bulunmaktadır. "Width" yada "Height" başlıkları altından seçilen aygıtın (mesela buton) ekranda ne kadarlık alanı kaplayacağını 3 farklı seçenek ile belirleyebiliriz. Bunlar: Automatic, Fill parents, pixeldir. Bunlardan Fill parent seçilen aygıtın ekranın genişliğini yada uzunluğunu kaplaması için kullanılır. Pixel ise istenilen ölçülerde ne kadarlık piksel kaplayacağını yazmamızı sağlar.


Eclipse ile Android Uygulama Geliştirme

İlk olarak Eclipse açılır. Sağ üstte “File>New>Android Application Project” seçilir. Açılan sayfaya uygulama adı girilir. Oluşturulacak uygulamanın hangi sürümler için kullanılacağı seçilir. Aynı sayfadan kullanılacak tema da seçilebilir. İleri butonuna tıklanır. Yapılacak uygulamanın kayıt edileceği alan Location kısmından seçilir. İleri butonuna tıklanır. Açılan sayfadan uygulama sağ üst kısmında simgelenecek iconun resmi ve boyutları seçilir. Farklı bir resim konulmak istenirse bu “İmage File” yanındaki “Browse” butonuna tıklanarak yapılır. İleri butonuna tıklanır. Şimdilik Blank Activity seçimine ellemeyerek ileri butonuna tıklanır ve açılan sayfada “Finish” butonuna tıklanarak ilk uygulama yapılmaya başlanır.

Eclipse üzerinde açılan çalışma sayfasının sağ tarafında “Package Explorer” kısmı altında oluşturulan uygulama ile ilgili kaynak dosyalar bulunur. Bunların içerisinden sırasıyla “res>layout>……xml” dosyası seçilir. Bu kısmın yanında bir ekran açılır (Şekil 1). Açılan bu ekrana sol kısımda “Palette” linki altındaki elemanlar sürüklenerek yerleştirilir. Böylece uygulama sayfası oluşturulur.

eclipse android sdk kurulumu

Şekil 1





Şekil 2: Örnek Android Uygulaması

Eclipse üzerinde oluşturulan uygulamaların çeşitli aygıtları kontrol edebilmesi için, uygulamada kullanılan butonlara, side sticklere, slide barlara çeşitli pinler yada numaralar atanmalıdır. Bu işlem res klasörü altındaki activitymain.xml dosyası içerisinde kod yazarak yapılır. Bir buton ve slide bar içeren kod şu şekilde yazılabilir.



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >



<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world" />



<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView1"

android:layout_below="@+id/textView1"

android:layout_marginLeft="47dp"

android:layout_marginTop="21dp"

android:text="@string/Button" />



<ProgressBar

android:id="@+id/progressBar1"

style="?android:attr/progressBarStyleLarge"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/button1"

android:layout_marginTop="56dp"

android:layout_toRightOf="@+id/button1" />

</RelativeLayout>



Yukarıdaki kodta kullanılacak elemanlar ile ilgili tanımlamalar yapılmıştır. Bu tanımlamalar kullanılacak elemanın genişliği, boyu, rengi, ekranın hangi kısmında olacağı vs. ile ilgilidir.

Oluşturulan uygulamanın Android bir telefon yada emulator denilen bilgisayar üzerinde oluşturulan sanal telefon ekranında oynatılması için Eclipse araç çubuklarından sırasıyla “Run>Run As>Run Configuration” seçilir. Açılan ekrandan derlenecek ve çalıştırılacak proje seçilir. Target kısmından emulatorde oynatmak için “Automatically pick compatible device: Always…” seçilir, telefonda oynatmak için “ Always prompt to pick device” seçilir ve sırasıyla “Apply>Run” tıklanır. Telefonda uygulamanın çalıştırılması için telefonun bilgisayara bağlantılı olması yeterlidir.

Şekil 3 ve 4 de Eclipse üzerinde yazılan android kontrol ugulamaları mevcuttur. Şekil 4.5 de quadrocopterin androidle kontrolü için oluşturulacak devre tasarımı bulunmaktadır. Kontrolcü olarak Arduino Mega ADK kullanılan bu çizimde android telefon ile haberleşme xbee üzerinden yapılmaktadır. Arduino Mega ADK arduino geliştirme kitlerinin android telefonlar ile uyumlu, USB girişine sahip 2560 işlemcili bir versiyonudur. Xbee düşük güçlü veri aktarım cihazıdır. İki nokta arası yada ikiden fazla nokta arası haberleşme için kullanılırlar.


Şekil 3: Android Lamba Kontrol Uygulaması




Şekil 4: Android Araba Kontrol Uygulaması





Şekil 5: Quadrocopter Bağlantı Şeması






Android, Android SDK Kurulumu

Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından geliştirilen, Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilmekte olan, açık kaynak kodlu bir mobil işletim sistemidir. Java üzerine kurulu bir platformdur.

Android, linux çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir, bu sistemde ara katman yazılımı, kütüphaneler ve API C diliyle yazılmıştır. Uygulama yazılımları ise, Apache harmony üzerine kurulu java-uyumlu kütüphaneler ihtiva eden uygulama iskeleti üzerinden çalışır. Android, derlenmiş java kodunu çalıştırmak için dinamik çevirmeli (JIT) Dalvik sanal makinasını kullanır ve cihazların fonksiyonerliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir programcı-geliştirici çevresine sahiptir.

Android uygulama geliştirme ortamı Android SDK’ dır. Uygulama yazabilmek için SDK, Eclipse ve Java Development Kit’ i bilgisayara yüklemek gerekmektedir.

Android SDK, android uygulamaları geliştirmek için gereken tüm kütüphane ve ara programları bulundurur. Tam açılımı Android Software Development Kit yani Android Yazılım Geliştirme Kit’ idir.

Eclipse, açık kaynak kodlu bir tümleşik geliştirme ortamıdır. Ana odak noktası Java ve Java ile ilişkili teknolojiler olsa da esnek yapısı sayesinde C ve Python gibi farklı diller için de kullanılmaktadır. Java kodlarının derlenmesi ve çalıştırılması için kullanılmaktadır. Android SDK ile bütünleşik çalışan Eclipse'in içinde yazılan programları denemek için emulator (sanal telefon) kurulabilmektedir.

Java Development Kit (JDK) java geliştiricilerine yönelik Oracle Corparation ürünüdür. Java diliyle yazılım geliştirme ortamıdır.

Android SDK Kurulumu


1- Android SDK, Eclipse üzerine kurulur. Bu yüzden ilk olarak JDK programı sitesinden indirilir ve bilgisayara kurulur.

2- Eclipse IDE sitesinden “Eclipse IDE for Java Developers” ismiyle indirilir (Şekil 1).



Şekil 1

3- Android SDK kurulur. developer.android sitesinden SDK sekmesine tıklanır ve indirilir (Şekil 2). Bilgisayara yüklerken program dosyasının nereye kurulduğu not edilmelidir. Kurulumun son aşamasında güncelleştirmelerin yapılmasını istiyor musunuz diye bir kutucuk çıkar. Bu onaylanır ve istenen dosyalar için güncelleme yapılır (Şekil 3). Bu işlem daha sonra SDK Manager çalıştırıldığında da yapılabilir.



Şekil 2



Şekil 3

4- Android Development Tools ( ADT) kurulur. Bu iki şekilde yapılabilir. İlk yöntem direk olarak developer.android.com adresinden indirilir ve kurulur. Diğer yöntem Eclipse programı üzerinden sırasıyla “Help>Install New Software” linklerine girilir. Açılan pencereden sağ üstte gözüken “Add” butonuna basılır. Açılan “ Add Repository” dialog penceresinde isim alanına “ADT Plugin”, Location alanına https://dl-ssl.google.com/android/eclipse/ adresi girilir (Şekil 4).


Şekil 4


5- Çıkan pencereden “Developer Tools” seçilir ve devam edilir. Lisans anlaşması kabul edilir.

6- Kurulum tamamlandıktan sonra Eclipse yeniden başlatılır.

7- Android SDK yolu Eclipse bildirilir. Bunun için Eclipse’ ten sırasıyla Window>Preferences yolu takip edilir. Açılan pencerede sol taraftaki listeden Android seçilir ve SDK Location yazan yere bilgisayarınızdaki SDK’ nın yolu girilir. “Apply” linkine tıklandığında bilgisayarınızda kurulu olan SDK platformlarını görülür. Eğer Android SDK kurulumundan sonra SDK Manager’a güncelleme yapılmamışsa bu liste boş gözükecektir (Şekil 5).

8- Kullanılan android sürümleri için gerekli programlar Eclipse üzerinden direk olarak da indirilebilinir. Eclipse araç çubuklarından “Window>Android SDK Manager” seçilir (Şekil 6). Açılan pencerede istenilen sürümler işaretlenerek indirilir.

9- ADT programlarını Eclipse üzerinden yüklemek için araç çubuklarından “Help>Install New Software” seçilir. Add butonuna tıklanır. Name kısmına herhangi bir şey yazılabilir fakat Location kısmına https://dl-ssl.google.com/android/eclipse/ adresi girilir. Açılan sayfadaki programların yanındaki kutucuklar işaretlenir ve Next denilerek işlem tamamlanır.


Şekil 5



Şekil 6