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ı

Arduino Öğreniyorum Çalışmaları


Merhaba arkadaşlar, bu yazımda sizlere arduino ile ilk tanıştığımda yapmış olduğum ve bilgisayarı karıştırırken bulduğum birkaç örnek programı anlatacağım.

1- Arduino Karaşimşek Programı:






Açıklama satırlarında hangi kodun ne iş yaptığı yazmaktadır. Ancak yine yeni başlayanlara yardımcı olmak açısından kısa kodumuzdaki komutları tanıyalım.

const byte ledPin[11]={2,3,4,5,6,7,8,9,10,11,12};   Bu kodda ledlerin artı uçlarının takılacağı pin numaraları verilmiştir. Daha doğrusu const byte tipinde bu numaralar ledPin değişkenine atanmıştır. ledPin değişkeni 11 elemana sahip tek boyutlu dizidir.
byte veri türü işlemci belleğinde 8 bitlik yani 1 byte lık alanı işgal eder.
const tür belirleyicisi ise tanımlanan nesnenin bir sabit olduğunu belirtir. Yani const tür belirleyicisi ile tanımlanmış bir değişkenin değeri programın sonuna kadar değiştirilemez ve programın en başında tanımlanır. Peki neden buna ihtiyaç duyduk ? Bu sorunun cevabı aslında oldukça uzun ancak kısaca ve anlaşılır bir şekilde şöyle anlatayım.

Arduino kartlarında (Due hariç) 3 tip memory vardır. Bunlar Flash, SRAM( static random access memory) ve EEPROM (erasable programmable read only memory) memory tipleridir. İşlemcinin enerjisi kesildiğinde sadece SRAM deki bilgiler kaybolur. Arduinoda SRAM memory nin görevi sketch oluşturmak ve değişkenleri çalıştırmaktır.
Arduino sketchi Flash memory e kaydedilir. Bunu, kartınıza IDE kullanarak program attığınızda en altta göreceksiniz ( Şekil 1).

arduino flash memory capacite

Şekil 1

EEPROM ise programlamacı için ayrılmış bir alandır. İstenilen verilerin kaydedilmesi durumunda kod yazanlar tarafından kullanılır. 
Bunları anlatmamın const tür belirleyicisi ile ne alakası var diyebilirsiniz. Ancak çok alakası var. Arduino geliştirme kartlarının sahip olduğu bu memory tipleri kısıtlı alanlara sahip. Dolayısıyla siz üst düzey kompleks bir kod yazacaksanız sahip olduğunuz hafıza alanını iyi kullanmalısınız. Bunun içinde hafızada en az yer tutan tür belirleyicilerini kullanmalısınız. #define ve const tür belirleyicileri değişken tanımlamalarında en az alan kaplayan tür belirleyicileridir. #define komutu ile const komutu hafızada aynı yeri kaplarlar. Bu sebepten const tür belirleyicisi kullanılmıştır.


void setup() fonksiyonu içerisinde bulunan for döngüsü sayesinde led pinlerinin 10 satırda OUTPUT olarak tanımlanma işlemi  3 satır kod ile yapılmıştır.



setup() fonksiyonu içerisindeki kodlar programın çalışması boyunca sadece bir kere çalıştırılır. Ve bu fonksiyon içerisinde başlangıç değerleri, pin modları (input, output olması), kullanılan kütüphanelerin başlatılması ( lcd.begin() ) gibi işlemler yapılmaktadır.

void loop() fonksiyonu programın sürekli çalıştırıldığı fonksiyondur. Yani program loop fonksiyonu içerisinde dönmektedir. Yapılması istenen işlemler bu fonksiyon içerisine yazılmalıdır.

2- Arduino Bir Butonla Bir Led Yakma Programı






3- Arduino Butonla Karaşimşek Devresi




 4- Arduino Led Parlaklık Ayarı





5- Arduino Seven-segment Uygulaması







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

Blogger Kod Kutusu Ekleme

Merhaba arkadaşlar,

Blog paylaşımlarımla alakası olmayan bu konu hakkında çok sıkıntı çektiğim için bu yazıyı yazmak zorunda kaldım. Hem kendim için hemde sizin için kaynak oluşturmasını diliyorum.

Yazdığımız yazılar arasında özellikle yazılım ile ilgili çalışma yapan bizler, kodların blogda düzgün bir şekilde görünmesini isteriz. Ancak kod kutusu kullanmayınca bu pek mümkün olmamaktadır.


Sürekli kod kutusu ile ilgili kodları netten araştırmaktansa onunla ilgili bir yayın hazırlayıp kendime ve sizlere referans olmasını istedim. 

Tamamıyla netten farklı sitelerden araştırdığım bu kodlar bana ait değildir.

1 - Bulduğum birinci yöntem:

Kod satırı içerisinde bulunan kodları, yayın sayfanızın sol üst kısmındaki HTML linkini seçip, açılan sayfada kodları yerleştirmek istediğiniz yere yapıştırıyorsunuz. Ve sonuçta kodları içine alan kod satırı oluşuyor. Kodun en sonuna bu kod  </textarea> eklenmelidir.



2 - Bulduğum ikinci yöntem:


<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 500px; "><code>kodları buraya yazınız
</code></pre>



Arduino C# Haberleşmesi - Real time Graph Version 2

Merhaba arkadaşlar,

Bir önceki yazımda arduino yada seri porttan gelen verilerin grafiğinin çizdirilmesi ve çizidirlen grafiğin anlık resimlerinin alınabilmesi için bir setup yapmıştık. Bu çalışmada yapılan bu setup biraz daha geliştirilmiştir.

Eklenen özellikler:

  • Gelen veriler ekranda gerçek zamanlı gösterilmiştir.
  • Gelen verilerin txt dosyasına kaydedilmesi için kayıt yeri girişi ve kaydet butonu eklenmiştir. Bu sayede istenilen zamana kadar olan veriler kaydet butonu ile txt dosyasına kaydedilebilecektir. Bu sayede ekranda gerçek zamanlı izlenen grafik görüntüsü, kaydedilen veriler kullanılarak excel, matlab gibi ortamlara aktarılabilecektir.
arduino realtime graph c#

Grafik çizdirme proramı version 2

Uygulama kaynak kodları ve setup dosyaları

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ı :