6 Mayıs 2017 Cumartesi
ADNDROİD UYGULAMAM
İlk Android uygulamamı hazırlamış bulunmaktayım fakat Blogger sitesi hata vermesi nedeniyle uygulamamı sizlerle paylaşamıyorum :(
4 Mayıs 2017 Perşembe
LAN KURULUMU (BTT)
LAN (local area network) olarak adlandırılır. Bu iş için her bilgisayarda iletişimi sağlayan ethernet kartları ve gerekli kablolar mutlaka olmalıdır. LAN büyüdükçe bu sisteme HUB , Server gibi LAN`ın hızını ve yeteneğini arttıracak üniteler eklenir.
LAN`ın temel faydası verilerin paylaşımıdır. Ancak bunu çok farklı yollarla kullanabilirsiniz. Örneğin ofislerde tek bir yazıcının bütün ofis çalışanlarınca kullanılabilmesi , bütün kullanıcılar arasında haberleşmenin bilgisayar ekranından yapılabilmesi , gelen faksların kullanıcıların ekranında görüntülenebilmesi ve her kullanıcının kendi sisteminden faks çekebilmesi , bir uygulamanın server üzerinde çalışırken birden fazla kullanıcı tarafından kullanılabilmesi. Ev ve ofis kullanıcıları tek bir internet bağlantısı ile birden fazla bilgisayarı internet’e bağlayabilir , e-mail alıp verebilir ve hatta oyun oynayabilirler.
LAN`ın temel faydası verilerin paylaşımıdır. Ancak bunu çok farklı yollarla kullanabilirsiniz. Örneğin ofislerde tek bir yazıcının bütün ofis çalışanlarınca kullanılabilmesi , bütün kullanıcılar arasında haberleşmenin bilgisayar ekranından yapılabilmesi , gelen faksların kullanıcıların ekranında görüntülenebilmesi ve her kullanıcının kendi sisteminden faks çekebilmesi , bir uygulamanın server üzerinde çalışırken birden fazla kullanıcı tarafından kullanılabilmesi. Ev ve ofis kullanıcıları tek bir internet bağlantısı ile birden fazla bilgisayarı internet’e bağlayabilir , e-mail alıp verebilir ve hatta oyun oynayabilirler.
KETAI KÜTÜPHANESİ
Bu kütüphane Android telefon ve tabletlerin sensörlerini ve yerleşik donanımlarıyla çalışmayı kolaylaştırmak amacıyla yazılmıştır. Özellikle Bluetooth , Wıfı ve NFC iletişimi çoklu dokunmatik ve sensörle çalışmayı oldukça kolay bir hale getirmektedir.
PROCESSING 'e ANDROİD MODU EKLEME
Processing'de Andoid uygulamaları yazmak için Android modunu eklememiz gerekmektedir. Bunun için Processing ortamını açıp sağ üst köşede JAVA yazan kısma tıklıyoruz. Tıkladığımızda küçük bir menü açılacaktır. Açılan menüde Add Mode'a tıklıyoruz.
Açılan menüde Android Mode'e Insatall butonuna tıklayarak kuruyoruz.
Android Mode'u indirdikten sonra Processing ortamında gözükmeyecektir .Bunun için Processing'i yeniden başlatmanız gerekmektedir. Yeniden başlattıktan sonra Android Mode'u sağ üst köşedeki menüye gelecektir. Menüde Android' e tıkladıktan sonra kurulumu ilk defa yaptığımız için ,Processing bizden Android SDK'nin yerini göstermemizi isteyecektir.
Locate SDK path manually diyerek Android SDK'nin yolunu ayarlıyoruz.
Açılan menüde Android Mode'e Insatall butonuna tıklayarak kuruyoruz.
Android Mode'u indirdikten sonra Processing ortamında gözükmeyecektir .Bunun için Processing'i yeniden başlatmanız gerekmektedir. Yeniden başlattıktan sonra Android Mode'u sağ üst köşedeki menüye gelecektir. Menüde Android' e tıkladıktan sonra kurulumu ilk defa yaptığımız için ,Processing bizden Android SDK'nin yerini göstermemizi isteyecektir.
Locate SDK path manually diyerek Android SDK'nin yolunu ayarlıyoruz.
LED'İN IŞIK ŞİDDETİNİ AYARLAMA
PWM (PULSE WİDTH MODULATİON) :
Üretilen pulse'ların (darbelerin) genişliklerini ayarlayarak istenilen analog değerin elde edilmesidir.
Üretilen pulse'ların (darbelerin) genişliklerini ayarlayarak istenilen analog değerin elde edilmesidir.
Yukarıda bir PWM dalgasının yapısı görünmektedir. Dalganın tepe noktasında kaldığı bölgeye yüksekte kalma süresi, aşağıda kaldığı bölgeye ise düşükte kalma süresi adı verilir. Genellikle bu değerler 0V ile 5V arasında değişir. PWM dalgaların genişlikleri değiştirilerek bu 0-5V arasındaki tüm gerilimler elde edilebilir.
Örneğin ; yukarıdaki resimde 1.dalgadan oluşan gerilim 1.5 Volt, 2.dalgadan oluşan gerilim 2.5 Volt , 3.dalgadan oluşan gerilim 3.5 Volt şeklinde değişebilir. Dalganın genişliği ile alınan voltaj doğru orantılıdır.
ANDROİD UYGULAMASI
AndroidManifest.xml'i düzenlemek gerekir. USB özelliğini kullanabilmek için bu düzenlemeye kesinlikle ihtiyaç vardır. Aksi taktirde hiçbir uygulamamız çalışmayacaktır. Ayrıca veri protokolünü ayarlayıp ve LED'i açıp kapatacak bir Arayüz elemanı olan ToggButton'u eklemek lazımdır.
NOT !
Android uygulamaları için kullandığımız kaynak kodları uzun olduğundan , GitHub adresinden indirip kullanabilirsiniz.
NOT !
Android uygulamaları için kullandığımız kaynak kodları uzun olduğundan , GitHub adresinden indirip kullanabilirsiniz.
YAZILIM
Devremizi kurduktan sonra sıra geldi Android uygulamamızın ve Arduino Sketch'in kodlarını yazmaya. Arduino kartının çalışması için bir programa ihtiyaç duyduğunu ve her Arduino programını Sketch olarak adlandırdığımızı unutmayalım. Arduino kodumuz ve Android uygulamasından gelecek komuta göre LED'in durumunu ayarlayacaktır. Android uygulamasında ise bir buton bu işlemi gerçekleşecektir.
LED YAKMA
Android uygulaması ve Arduino Sketch'i oluşturacağız.
İhtiyacımız olan malzemeler:
İhtiyacımız olan malzemeler:
- ADK kartı
- Devre Tahtası ( BreadBoard)
- LED
- Devreyi kurmak için kablolar
- Android cihaz
DEVRE KURULUMU :
Devre kurulumları devre tahtası üzerinde yapacağımız basit elektronik işlemlerden oluşmaktadır.
LED yakıp söndürme projesi olduğu için oldkça basittir. Devremizi Fritzing'deki çizimimize göre kuralım. ADK kartımızın 2 numaralı pinini LED'imizin pozitif bacağına bağlıyoruz.
Diğerini yani negatif olan bacağı ise GND'ye (toprağa/ground) bağlıyoruz.
NOT !
Arduino kartlarının üzerinde pin numaraları yazmaktadır.
LINUX
Arduino IDE'sini yüklediğinizde , size Arduino home dizisinde sketchbook adında bir klasör oluşturulacaktır. Sketchbook klasörü altında libraries adında bir klasör oluşturun ve kütüphaneleri bu klasörün içine atın.
30 Nisan 2017 Pazar
ARDUİNO'YA KÜTÜPAHE EKLEMEK
Kütüphane eklemek temelde her iki işletim sistemi için benzerlik gösterir.
WİNDOWS VE MAC
Kütüphaneyi indirdikten sonra Arduino klasörü altında bulunan Libraries klasörünün içine atmanız gerekmektedir. Daha sonra Arduino IDE'si eğer açıksa kapatıp yenden açınız. (Bütün platformlar için gerekli).
Windows için kütüphanenin böyle gözükmesi gerekmekte. :
My Documents/Arduino/libraries/ArduinoParty/ArduinoPart.cpp
MyDocuments/Arduino/libraries/ArduinoParty/ArduinoParty.h
MyDocuments/Arduino/libraries/ArduinoParty/examples
Mac için kütüphanenin böyle gözükmesi gerekmekte :
Documents/Arduino/libraries/ArduinoParty/ArduinoParty.cpp
Documents/Arduino/libraries/ArduinoParty/ArduinoParty.h
Documents/Arduino/libraries/ArduinoParty/examples
WİNDOWS VE MAC
Kütüphaneyi indirdikten sonra Arduino klasörü altında bulunan Libraries klasörünün içine atmanız gerekmektedir. Daha sonra Arduino IDE'si eğer açıksa kapatıp yenden açınız. (Bütün platformlar için gerekli).
Windows için kütüphanenin böyle gözükmesi gerekmekte. :
My Documents/Arduino/libraries/ArduinoParty/ArduinoPart.cpp
MyDocuments/Arduino/libraries/ArduinoParty/ArduinoParty.h
MyDocuments/Arduino/libraries/ArduinoParty/examples
Mac için kütüphanenin böyle gözükmesi gerekmekte :
Documents/Arduino/libraries/ArduinoParty/ArduinoParty.cpp
Documents/Arduino/libraries/ArduinoParty/ArduinoParty.h
Documents/Arduino/libraries/ArduinoParty/examples
ADK İÇİN ARDUİNO MERHABA DÜNYA UYGULAMASI
ADK Arduino uygulaması için Arduino kütüphaneleri arasına eklememiz gereken , USB iletişimini sağlayacak , iki tane referans kütüphane vardır. İlki aslında OlegMazurov tarafından USB Host Shield için yazılan kütüphanenin düzenlenmiş halidir.
NOT :
Arduino ortamı da birçok programlama ortamı gibi ekstra kütüphanelerle daha kullanışlı hale getirilebilir. Kütüphaneler ekstra özellik ve kullanım kolaylığı sağlar. Arduino IDE 'si içerisinde birçok kütüphane mevcuttur. Tabi ki bu kütüphanelerle yetinmek zorunda değilsiniz. Kendinizde bir çok kütüphane ekleyebilirsiniz.
İkinci kütüphane ise Açık Aksesuar Protokolü için gerekli AndroidAccessory kütüphanesidir. Kütüphaneleri indirip Arduino kütüphane klasörünün içerisine taşımanız gerekmektedir.
NOT :
Arduino ortamı da birçok programlama ortamı gibi ekstra kütüphanelerle daha kullanışlı hale getirilebilir. Kütüphaneler ekstra özellik ve kullanım kolaylığı sağlar. Arduino IDE 'si içerisinde birçok kütüphane mevcuttur. Tabi ki bu kütüphanelerle yetinmek zorunda değilsiniz. Kendinizde bir çok kütüphane ekleyebilirsiniz.
İkinci kütüphane ise Açık Aksesuar Protokolü için gerekli AndroidAccessory kütüphanesidir. Kütüphaneleri indirip Arduino kütüphane klasörünün içerisine taşımanız gerekmektedir.
ADK İÇİN ARDUINO MERHABA DÜNYA UYGULAMASI
Android'te uygulama yazmaya başlamak için ADT içerisinden Eclipse IDE'yi açıyoruz. Açtıktan sonra da File>New>Android Application Project'i seçelim.
Yeni açılan pencerede uygulamamızın adını girelim.
Uygulamamıza isim verdikten sonra bu pencerede Next diyelim.
Uygulamamzın ikonunu değiştirmek istiyorsak açılan pencereden değiştirebiliriz fakat değiştirmek istemiyorsakNext diyip ilerleyebiliriz.
Daha sonra Blank Activity seçerek boş bir aktivite sınıfı oluşturuyoruz. Yine Next dedikten sonra karşımıza bir ekran gelecek.
Diğer adımları başarılı bir şekilde geçiysek Finish diyerek uygulamamızı en nihayetinde oluşturmuş olacağız.
Bunları yaptıktan sonra Merhaba Dünya uygulamamız oluşacaktır.
DİKKAT !!!
Android 4.x'te ADT projenize appcompat_v7 adında bir kütüphane ekleyecektir. Uygulamayı ilk oluşturduğunuzda hatalı gibi oluşacaktır. Bunu aşmak için en kolay yol menüden Project>Build All yolunu takip etmektir. Veya sadece appcompat_v7 derleyerek bu hatadan kurtulabiliriz.
Package Exlorer kısmında da görebileceğiniz gibi yeni bir Android uygulaması oluşturduk . Bir çok klasör ve dosya gözümüze çarpmış olmalı .
Bakmamız gereken ilk şey src klasörüdür. Src klasörü Java kaynak kodunu içeren yerdir. Zaten Eclipse sizin için bir proje oluşturduğu için MainActivity.java dosyasını bu klasörün içinde bulabilirsiniz.
NOT :
Android uygulamaları çoğunlukla Java dili kullanarak yazıldığından geliştiriciler uygulama geliştirme platformu olarak Java dünyasında epey popüler bir IDE olan Eclipse platformunu tercih etmektedir. Üzerine eklenen modüllerle Java dünyasında nerdeyse her türlü uygulama geliştirme çatısına (framework) destek veren Eclipse , Google'ın Android eklentisi ile Android uygulamaları geliştirmeye uygun hale getirilebilir. Eclipse, bir Android projesi oluşturduğunuzda size gerekli bütün dosya ve klasörleri otomatik olarak oluşturmaktadır.
Src klasörünün yanı sıra , gen adında bir klasör daha vardır. Burada bir R.java dosyası yer almaktadır. Biz uygulamamıza yeni kaynaklar ekledikçe bu dosya kendiliğinden otomatik olarak güncellenecektir. R sınıfını uygulamayı yazarken kullanırız. gen ismi de , oluşturulan (generated) kelimesinin kısaltmasıdır.
R.java , gen klasörü içerisinde yer alan bu dosya yukarıda da belirttiğimiz gibi sistem tarafından oluşturulan bir dosyadır. Dosya içerisinde, res klasörünün içerisinde oluşturduğumuz kaynakların referansları yer alır Src klasörü içerisinde yazdığımız kodlar bu kaynakları kullanabilmemiz için bu referansların üretilmesi şarttır. Bu sebeple bu referanslar res klasörü içerisinde yer alan her kaynak için otomatik olarak üretilir. Bu dosyaya dışarıdan müdahale edilmemesi önerilir.
Assets klasöründe , Android tarafından tanınmayan verilerin tutulduğu dosyalar yer alır. Android platformu bu tür kaynakları tanımadığından R.java dosyası içerisinde herhangi bir referans üretilemez.
Burada yer alan dosyalar uygulama paketi içerinde yer alırlar. Örneğin ; bir sqLite dosyasını uygulamada kullanmak istiyorsanız, bu dosyayı assets içerisine koymalısınız. Bu tür verilere , kodunuz içerisinde AssetsManeger sınıfını ve getAssets () metodunu kullanarak ulaşabilirsiniz.
Bin klasörü , uygulamanızın derlenmiş halini içerisinde bulundurur. Sizin bu klasöre müdahale etmenize gerek yoktur. Buradaki .apk uzantılı dosyayı alıp herhangi bir Android cihaza attığınızda , uygulamanız o cihaza yüklenir.
Libs klasörü, adından da anlaşılacağı gibi kütüphanelerin (libraries) koyulduğu klasördür. Android SDK içerisinde yer almayan ve projenizde kullanmak istediğiniz java kütüphanelerini bu klasör içerisine koymanız gerekmektedir.
.jar uzantılı bu kütüphaneleri libs klasörü içerisine kopyaladıktan sonra dosyaya SAĞ tıklayıp Add to Build Path seçeneğini seçmelisiniz. Aksi taktirde kütüphaneniz proje tarafından tanınmaz.
Res klasörü , kaynak yani resource kelimesinin kısaltmasıdır. Projeniz için gerekli kaynaklar burada yer almalıdır. Buradaki kaynaklar, platform tarafından tanınan kaynaklardır ve bu kaynaklar için R.java dosyası içerisinde referanslar üretilir. Bu sayede kodlarınız arasından bu kaynaklara rahat bir şekilde ulaşabilirsiniz.
Drawable klasörleri , uygulamanızda kullanacağınız resimleri koymanız içindir. Uygulamalarınızın kullanılacağı cihazların çözünürlükleri farklı olacağından farklı boyutlarda resimler koymanız gerekmektedir. Bu sebeple drawable klasörü bir tane değildir. Farklı çözünürlüklere uygun klasörler mevcuttur.
Layout klasörleri, bu klasör içerisinde ise , oluşturacağınız ekranlar için tasarım yapabileceğiniz XML dosyaları yer almaktadır.
Values klasörleri , uygulama içerisinde kullanmak istediğiniz sabit değişkenleri , bu klasör içerisinde tutabilirsiniz. Örneğin , bir string'i bu klasör içerisinde yer alan string.xml dosyası içerisinde tanımlarsanız istediğiniz zaman kullanabilirsiniz. Fakat kod içerisinden buradaki değişkenlerin değerini değiştiremezsiniz.
AndroidManifest.xml dosyası , bu dosyayı uygulamanızın bir taslağı olarak düşünebilirsiniz. Uygulamanızda kullanacağınız bütün ekranların burada tanımlanması gerekmektedir. Ayrıca uygulamanızın bütün özellikleri burada tanımlanmalıdır. Uygulamanızın kullanılacağı cihazlardan isteyeceği izinler de burada tanımlanmalıdır.
Uygulamanızın içerisinde bütün activity'leri , içerik sağlayıcıları ,BroadcastReceivers'ları ve servisleri tanımlanır.
Basit bir uygulama için bu kadar bilgi yeterli . Artık uygulamamızı cihazda görelim . Android cihazınızı bilgisayarınıza bağlayın. Ardından menüden Run dedikten sonra ilk olarak karşımıza bir menü açılacaktır. Oradan Android Application seçeneğini işaretleyerek çalıştırın .
Eğer her şey düzgün çalışıyorsa , cihazınızda başlayan uygulamayı göreceksiniz. Eğer sistem cihazınızı tanımadıysa eksik sürücülerden olabilir. O zaman ise Eclipse uygulamanızı bir Android Sanal Makinesinde (AVD) başlatacaktır.
Yeni açılan pencerede uygulamamızın adını girelim.
Uygulamamıza isim verdikten sonra bu pencerede Next diyelim.
Uygulamamzın ikonunu değiştirmek istiyorsak açılan pencereden değiştirebiliriz fakat değiştirmek istemiyorsakNext diyip ilerleyebiliriz.
Daha sonra Blank Activity seçerek boş bir aktivite sınıfı oluşturuyoruz. Yine Next dedikten sonra karşımıza bir ekran gelecek.
Diğer adımları başarılı bir şekilde geçiysek Finish diyerek uygulamamızı en nihayetinde oluşturmuş olacağız.
Bunları yaptıktan sonra Merhaba Dünya uygulamamız oluşacaktır.
DİKKAT !!!
Android 4.x'te ADT projenize appcompat_v7 adında bir kütüphane ekleyecektir. Uygulamayı ilk oluşturduğunuzda hatalı gibi oluşacaktır. Bunu aşmak için en kolay yol menüden Project>Build All yolunu takip etmektir. Veya sadece appcompat_v7 derleyerek bu hatadan kurtulabiliriz.
Package Exlorer kısmında da görebileceğiniz gibi yeni bir Android uygulaması oluşturduk . Bir çok klasör ve dosya gözümüze çarpmış olmalı .
Bakmamız gereken ilk şey src klasörüdür. Src klasörü Java kaynak kodunu içeren yerdir. Zaten Eclipse sizin için bir proje oluşturduğu için MainActivity.java dosyasını bu klasörün içinde bulabilirsiniz.
NOT :
Android uygulamaları çoğunlukla Java dili kullanarak yazıldığından geliştiriciler uygulama geliştirme platformu olarak Java dünyasında epey popüler bir IDE olan Eclipse platformunu tercih etmektedir. Üzerine eklenen modüllerle Java dünyasında nerdeyse her türlü uygulama geliştirme çatısına (framework) destek veren Eclipse , Google'ın Android eklentisi ile Android uygulamaları geliştirmeye uygun hale getirilebilir. Eclipse, bir Android projesi oluşturduğunuzda size gerekli bütün dosya ve klasörleri otomatik olarak oluşturmaktadır.
Src klasörünün yanı sıra , gen adında bir klasör daha vardır. Burada bir R.java dosyası yer almaktadır. Biz uygulamamıza yeni kaynaklar ekledikçe bu dosya kendiliğinden otomatik olarak güncellenecektir. R sınıfını uygulamayı yazarken kullanırız. gen ismi de , oluşturulan (generated) kelimesinin kısaltmasıdır.
R.java , gen klasörü içerisinde yer alan bu dosya yukarıda da belirttiğimiz gibi sistem tarafından oluşturulan bir dosyadır. Dosya içerisinde, res klasörünün içerisinde oluşturduğumuz kaynakların referansları yer alır Src klasörü içerisinde yazdığımız kodlar bu kaynakları kullanabilmemiz için bu referansların üretilmesi şarttır. Bu sebeple bu referanslar res klasörü içerisinde yer alan her kaynak için otomatik olarak üretilir. Bu dosyaya dışarıdan müdahale edilmemesi önerilir.
Assets klasöründe , Android tarafından tanınmayan verilerin tutulduğu dosyalar yer alır. Android platformu bu tür kaynakları tanımadığından R.java dosyası içerisinde herhangi bir referans üretilemez.
Burada yer alan dosyalar uygulama paketi içerinde yer alırlar. Örneğin ; bir sqLite dosyasını uygulamada kullanmak istiyorsanız, bu dosyayı assets içerisine koymalısınız. Bu tür verilere , kodunuz içerisinde AssetsManeger sınıfını ve getAssets () metodunu kullanarak ulaşabilirsiniz.
Bin klasörü , uygulamanızın derlenmiş halini içerisinde bulundurur. Sizin bu klasöre müdahale etmenize gerek yoktur. Buradaki .apk uzantılı dosyayı alıp herhangi bir Android cihaza attığınızda , uygulamanız o cihaza yüklenir.
Libs klasörü, adından da anlaşılacağı gibi kütüphanelerin (libraries) koyulduğu klasördür. Android SDK içerisinde yer almayan ve projenizde kullanmak istediğiniz java kütüphanelerini bu klasör içerisine koymanız gerekmektedir.
.jar uzantılı bu kütüphaneleri libs klasörü içerisine kopyaladıktan sonra dosyaya SAĞ tıklayıp Add to Build Path seçeneğini seçmelisiniz. Aksi taktirde kütüphaneniz proje tarafından tanınmaz.
Res klasörü , kaynak yani resource kelimesinin kısaltmasıdır. Projeniz için gerekli kaynaklar burada yer almalıdır. Buradaki kaynaklar, platform tarafından tanınan kaynaklardır ve bu kaynaklar için R.java dosyası içerisinde referanslar üretilir. Bu sayede kodlarınız arasından bu kaynaklara rahat bir şekilde ulaşabilirsiniz.
Drawable klasörleri , uygulamanızda kullanacağınız resimleri koymanız içindir. Uygulamalarınızın kullanılacağı cihazların çözünürlükleri farklı olacağından farklı boyutlarda resimler koymanız gerekmektedir. Bu sebeple drawable klasörü bir tane değildir. Farklı çözünürlüklere uygun klasörler mevcuttur.
Layout klasörleri, bu klasör içerisinde ise , oluşturacağınız ekranlar için tasarım yapabileceğiniz XML dosyaları yer almaktadır.
Values klasörleri , uygulama içerisinde kullanmak istediğiniz sabit değişkenleri , bu klasör içerisinde tutabilirsiniz. Örneğin , bir string'i bu klasör içerisinde yer alan string.xml dosyası içerisinde tanımlarsanız istediğiniz zaman kullanabilirsiniz. Fakat kod içerisinden buradaki değişkenlerin değerini değiştiremezsiniz.
AndroidManifest.xml dosyası , bu dosyayı uygulamanızın bir taslağı olarak düşünebilirsiniz. Uygulamanızda kullanacağınız bütün ekranların burada tanımlanması gerekmektedir. Ayrıca uygulamanızın bütün özellikleri burada tanımlanmalıdır. Uygulamanızın kullanılacağı cihazlardan isteyeceği izinler de burada tanımlanmalıdır.
Uygulamanızın içerisinde bütün activity'leri , içerik sağlayıcıları ,BroadcastReceivers'ları ve servisleri tanımlanır.
Basit bir uygulama için bu kadar bilgi yeterli . Artık uygulamamızı cihazda görelim . Android cihazınızı bilgisayarınıza bağlayın. Ardından menüden Run dedikten sonra ilk olarak karşımıza bir menü açılacaktır. Oradan Android Application seçeneğini işaretleyerek çalıştırın .
Eğer her şey düzgün çalışıyorsa , cihazınızda başlayan uygulamayı göreceksiniz. Eğer sistem cihazınızı tanımadıysa eksik sürücülerden olabilir. O zaman ise Eclipse uygulamanızı bir Android Sanal Makinesinde (AVD) başlatacaktır.
29 Nisan 2017 Cumartesi
UYGULAMA BİLEŞENLERİ
ACTİVİTY
(AKTİVİTE ):
Activity tarafından oluşturulan
nesneler uygulama içinde kullanılan ekranları temsil eder. Örneğin bir e-posta
uygulaması düşünün . E-postaların listelerini göstermek için bir Activity ’e
sahiptir. Başka bir Activity ise e-postayı okumak için , diğer bir Activity ise
e-posta yazmak için var olmalıdır. Yani her ekran için ayrı ayrı Activity ‘ler
olması gerekir.
Activity’ler iyi bir kullanıcı
deneyimi oluşturmak için birlikte çalışmasına rağmen , her birini diğerinden
bağımsız şekilde başlatabilirsiniz. Örneğin
bir kamera uygulaması fotoğrafı paylaşmak için bir e-posta uygulamasını başlatabilir.
SERVİCİES(SERVİSLER)
:
Bir servis uzun çalışan işlemleri
gerçekleştirmek için veya uzak işlemleri çalıştırmak için arkaplanda çalışan
bir bileşendir. Servisler kullanıcıya bir arayüz sağlamaz. Örneğin kullanıcı
farklı bir uygulamada iken bir servis
arkaplanda bir müzik çalabilir veya kullanıcıyı bloke etmeden ağ üzerinden
veri alabilir.
Bir Activity bir servisi
başlatabilir veya onunla etkileşime geçebilir.
CONTENT
PROVİDERS (İÇERİK SAĞLAYICILAR) :
Bir içerik sağlayıcısı bir
uygulamanın ortak veri kümesini yönetir. Bu sayede bir SQLite veritabanı
oluşturabilirsiniz ya da web üzerinde kalıcı olarak veri depolayıp
sonradan erişebilirsiniz. İçerik
sağlayıcılar aracılığıyla , diğer uygulamalar ile , (içerik sağlayıcı izin
veriyorsa ) verileri değiştirebilir ve sorgu yapabilirsiniz.
Örneğin , Android işletim sistemi
içerik sağlayıcı olarak bize kullanıcının kişiler listesini vermektedir. Uygun
izinlere sahip bir uygulama içerik sağlayıcı (örneğin Contacts.Data) kullanarak
cihazın rehberine ulaşılabilir. Rehberden okuma ve yazma işlemini
gerçekleştirebilir. Örnek vermek gerekirse WhatsApp gibi mesajlaşma
uygulamaları içerik sağlayıcı kullanarak rehbere ulaşır.
İçerik sağlayıcılar , bir
uygulamaya özel verileri yazmak ve okumak içinde kullanılabilir. Not defteri ,
notları kaydetmek için bir içerik sağlayıcısını kullanır.
BROADCAST
RECEIVER :
İşletim sistemi tarafından
uygulamalara gönderilen sinyalleri dinlemek ve takip etmekte görevlidir. Bu
sinyaller işletim sistemiyle birlikte gelen sistem uygulamaları tarafından
oluşturulabileceği gibi Android Market üzerinden indirilen uygulamalar
tarafından da gönderilebilir. Bu şekilde uygulamamız telefona gelen çağrılardan
,kısa mesajlardan ve diğer olaylardan haberdar olacaktır.
INTENT:
Intent nesnesi , uygulamadaki diğer sınıfların çalıştırılmasına olanak veren bir nesnedir. Bu nesne sayesinde başka bir sınıf aracılığı ile yeni bir görünüm , yani yeni bir sayfaya geçiş yapabiliyorsunuz.
MERHABA ANDROİD UYGULAMASI
Android uygulamaları bilindiği
üzere java programlama dilinde yazılmaktadır.
Android SDK araçları kodunuz apk uzantılı bir arşiv dosyasına derlemektedir.
NOT
: Derlemeyi(Compile), kaynak kodunun makine okunabilir koda çevrimli
olarak da tanımlayabiliriz.
Bir APK dosyası Android uygulaması için gerekli olan tüm
içeriği kapsamaktadır. Android cihazlara
yüklemek için kullandığımız dosyadır.
MERHABA ARDUINO UYGULAMASI
İlk olarak Arduino’IDE ‘yi
açıyoruz. Bir Arduino Sketch’i (her bir Arduino çalışmasına verilen ad ) iki
tane ana fonksiyondan oluşur. Bunlardan ilki setup() fonksiyonudur ,sadece kod
çalıştırıldığında bir defa çalışır. Bu
fonksiyonun içinde değişkenler ve pinler tanımlanır. Kütüphaneler kullanılmaya
başlanır. Bu fonksiyon Arduino çalıştığında ve resetlendiğinde bir defa
çalışır.
İkincisi ise 1oop( ) fonksiyonudur.
Bu fonksiyon ise setup() fonksiyonunda tanımlanan G/Ç
(giriş-çıkış/input-output) birimlerinin kontrolünü bizim yazdığımız koda göre
yapar.
1oop ()fonksiyonu Arduino çalışmaya
başladıktan sonra devamlı olarak çalışır, devamlı olarak başa döner ve döngüyü
devam ettirir.
Bu iki fonksiyonu öğrendikten sonra
artık meşhur “Merhaba Dünya” programımızı yazabiliriz. Arduino IDE’sinde
yeni bir sketc’i açıyoruz
Arduino “Merhaba Dünya” Sketch’i
:
#define ARRAY_SİZE 14
Char merhaba [ARRAY_SİZE]={“m,”e,”r,”h,”a,”b,”a,”d,”ü,”n,”y,”a”,”!”};
Voild setup() {
Serial.begin(115200);
}
Void loop (){
For (int x =0;x<ARRAY_SİZE; x++){
Serial.print(merhaba[x]);
Delay(100);
}
Serial.println();
Delay(100);
}
Ve şimdi kodun ne yaptığını
açıklayalım . İlk olarak dizimizin boyutunu belirlemek için bir tane sabit
belirledik. Değer olarak ise 14 değerini verdik setup () fonksiyonu içerisinde
Arduino kartımızı seri iletişim için ayarlıyoruz.
115200 olarak verdiğimiz değer baud-rate olarak adlandırılır. Baud-rate bir saniyede ne kadar bit transfer
edileceğini gösterir. Seri iletişimde
verinin doğru aktarılması için baud-rate
‘in aynı olması gerekmektedir.
NOT : Seri iletişim , en basit anlamıyla :
dijital bilginin yani 1 ve 0’ların tek bir hat üzerinden peşi sıra iletilmesi anlamına gelmektedir.
Daha sonra ise loop () fonksiyonu
içerisinde for döngüsü oluşturarak bu
döngünün içerisinde karakterleri 100 milisaniye aralıkla Serial Monitor’ de
yazmaktadır.
NOT: Serial Monitör , seri haberleşme
ile Arduino’dan gönderilen verileri
görüntülemek için kullandığımız eklentidir.
Serial Monitör ‘de sketch’imizin
sonucunu görmeden yapmamız gereken iki adımımız var . İlk adımımız menüden girip Arduino Mega ADK board’unu
seçmek :
İkinci adım ise kartımızın doğru
bağlanıp bağlanmadığını kontrol etmek için :
Bütün ayarları ve bağlantıları
doğru yaptıktan sonra yapmamız gereken oldukça basit: kodu Verify ettikten sonra karta Upload etmek. Kodu karta
yükledikten sonra Serial Monitor’u açıp sonucu görebiliriz. Serial Monitor’u Tools
menüsü altında bulabilirsiniz.
NOT: Serial Monitor’un baud-rate kısmındaki sayı ile programımızdaki
baud-rate’in aynı olmasına dikkat edin. Aksi taktirde anlamsız yazılar
görebilirsiniz.
Şuan da ilk Arduino programımızı çalıştırmış ve ADK içinde bütün ayarları yapmış bulunmaktayız.
PROCESSING
Processing 2001 yılından beri
geliştirilen bir programlama dili ve geliştirme ortamıdır. İlk zamanlarında görsel sanatlara teknolojiyi
katmak için geliştirilse de bugünlerde programlamanın temelini anlayabilmek ve
anlatmak için öğrenciler , sanatçılar
,araştırmacılar, tasarımcılar ve sadece hobi amaçlı kullanan insanlar
tarafından kullanılmaktadır. Processing ‘i kullanmak için nedenleri sıralarsak :
*Ücretsiz ve açık kaynak olması
*2D 3D ve PDF çıktısı alabilme bu
sayede interaktif uygulamalar oluşturabilme
*3D için OpenGL desteği
*Linux ,Mac OSX, Windows
platformlarında çalışabilmesi
*Andorid desteği
*100 ‘den fazla kütüphane desteği
ile çekirdek yazılımı genişletebilme
*Processing’e özel geliştirme
ortamı
*Güncel kitaplar ve en önemlisi
büyük geliştirici topluluğu desteği
Processing’den bahsetmemizin nedeni Arduino ile seri veri iletimi
sayesinde Data Visualization kolayca yapılabilmesidir .
NOT : Data
Visualization (Veri Görselleştirme ) en resmi tarifiyle ,istatiksel ve
değişken bilgi birimlerinin klasik şematik formlardan soyutlanarak , farklı ve
yaratıcı bir şekilde grafiksel olarak
sunulmasına verilen isimdir. Çok yorucu bir tanım oldu J . Siz verileri
görselleştirmenin albenisi yüksek yolu olarak bilin yeterli.
Processing’i processing.org/download adresinden
indirebilirsiniz.
FRITZING NEDİR ?
Opisyonel olarak kullanacağımız
Fritzing programıdır.
Fritzing açık kaynak kodlu bir devre tasarım
programıdır. Projeleriniz üretime geçmeden önce prototip hazırlamakta
kullanılabilir. Linux, Windows,Mac OS X
işletim sistemlerinde çalışabilen program , Arduino ve diğer elektronik
tabanlı projelerde prototipten üretime geçerken üretim maliyetlerini azaltmayı
ve ortaya çıkabilecek fiziksel sorunları en aza indirmeyi amaçlamaktadır.
Fritzing ‘indirmek için fritzing.org/dowlnond adresinden
aşağıdaki ekrana ulaşılacaktır.
WİNDOWS
MAC OS X
LİNUX
SOURCE
Fritzing’ indirmek için
fritzing.org/download adresinden yukarıdaki ekrana ulaşılır. Buradan işletim
sisteminizi seçerek indirip çalıştırabilirsiniz.
MAC OSX KURULUMU
Arduino websitesinden zip dosyasını
indirdikten sonra ,çift tıklayıp Arduino uygulamasını Applications klasörüne
koyduktan sonra Arduino IDE’sini kullanabilirsiniz.
LİNUX KURULUMU
Eğer bir Ubuntu kullanıcısıysanız Ubuntu Software Center’dan
direk olarak kurabilirsiniz.
Veya Arduino ‘nun sitesinden Linux için olan versiyonunu
indirip doğrudan çalıştırabilirsiniz.
Diğer bir yol ise Ubuntu 12.04 ve üzeri için terminalden
aşağıdaki kodu girerseniz Arduino
yüklenecektir.
Sudo apt-get update && sudo
apt-get install arduino arduino-core
WİNDOWS 8 KURULUMU
Windows 8 üzerinde bir sorunla karşılaşacaksınız. “The
driver is not digitally signed “ hata mesajını alacaksınız.
Bu sorunu çözmek için bilgisayarınızda Bilgisayar Ayarları
menüsünden Genel sekmesinde , Gelişmiş Başlangıç başlığı altında ,Şimdi
Yeniden Başlat butonuna tıklayarak bilgisayarınızı yeniden başlatın.
Sorun giderme menüsünü seçin .
Gelişmiş Seçenekler’i seçin.
Açılan pencerede Başlangıç Ayarları’nı seçin.
Karşınıza çıkan menüde
7. Sırada bulunan Sürücü İmzalarını
Zorlayın “ sekmesini klavyeden 7 veya F7 ‘ye basarak seçin. Bilgisayarınız
başladığında aygıt yöneticisinden Arduino sürücüsünü yükleyebilirsiniz.
24 Nisan 2017 Pazartesi
WINDOWS KURULUMU
Aygıt Yöneticisi' ni açmak için Başlat düğmesini , Denetim Masası'nı ,Sistem ve Güvenlik 'i ve ardından Sistem'in altında Aygıt Yöneticisi 'ni tıklatın . Yönetici parolası veya onay istenirse, parolayı yazın veya onay verin.
Aygıt yöneticisi penceresinde Diğer cihazlar adı altında Arduino donanımını göreceksiniz. Bu donanıma SAĞ tıklayıp özellikleri açalım.
Daha sonra ise Sürücüleri Güncelle diyelim .
Sürücü yazılımı için Bilgisayarımı Tara'yı seçerek Arduino klasörünü açalım.
NOT !
Arduino Windows'ta Belgelerim klasörü altında yer almaktadır.
Arduino klasörü içinde drivers klasörünü seçip Tamam dedikten sonra Burada da " Install this driver software anyay " diyerek kurulumu tamamlıyoruz.
Aygıt yöneticisi penceresinde Diğer cihazlar adı altında Arduino donanımını göreceksiniz. Bu donanıma SAĞ tıklayıp özellikleri açalım.
Daha sonra ise Sürücüleri Güncelle diyelim .
Sürücü yazılımı için Bilgisayarımı Tara'yı seçerek Arduino klasörünü açalım.
NOT !
Arduino Windows'ta Belgelerim klasörü altında yer almaktadır.
Arduino klasörü içinde drivers klasörünü seçip Tamam dedikten sonra Burada da " Install this driver software anyay " diyerek kurulumu tamamlıyoruz.
ARDUINO IDE
Arduıno Ide
(Tümleşik geliştirme ortamı ) Eclipse ‘ e oranla oldukça hafif bir geliştirme
ortamıdır. Yani kullanımı kolaydır ve sisteminizi yormaz . Bu geliştirme
ortamını Arduino tabanlı mikrodentleyiciye sahip kart için kod yazmak için
kullanacağız.
Arduıno
IDE’si Java tabanlı olsa da ,Arduıno dil olarak C dilini temel almaktadır. Arduino
IDE ‘si avr-gcc’yi kullanarak kodu derlemektedir.
Arduino’da
yazdığımız kodların her biri Sketch olarak adlandırılır. Arduıno IDE kod editörü ,kod renklendirmek ,
hata ayıklamak ,mesajları göstermek için bir konsola sahiptir. Arduıno IDE Ayrıca kullanıcıya kolaylık sağlamak
amacıyla bir çok kütüphane ile gelmektedir.
Arduıno IDE
‘yi arduino.cc/en/Main/Software#toc1
sayfasından işletim sisteminize bağlı olarak indirebilirsiniz.
Arduıno IDE
Arduınıo 1.0.6
Download
Arduıno 1.0.6 (release notes):
-Windows Installer , Windows ZIP file (for non –
administrator install )
-Mac OS X
-Linux :32 bit ,64 bit
-Source
MAC OSX İÇİN KURULUM
Mac için Oracle tarafından dağıtılan bir sürüm mevcut
değildir. JDK önyüklü olarak gelse de ,
Apple Store ‘dan yeniden indirilebilir.
ANDROİD SDK
Android uygulaması geliştirmeniz için Android Yazılım
geliştirme kiti yani Android SDK’ya
ihtiyacınız vardır. Android SDK ‘yi developer.android.com/sdk/index.html
adresinden ADT Bundle olarak indirebilirsiniz.
NOT : ADT Bundle Nedir ?
ADT Bundle
içinde Eclipse ,ADT Plugin ,Android SDK Tools gibi ihtiyacımız olan her şeyi içeren , bizi uğraşmak zorunda bırakmayan zip halinde bir
pakettir.
Eğer
sisteminizde Eclipse gibi bir IDE var ise sadece SDK
Tools’u indirebilirsiniz.
Androis SDK
‘yi kullandığınız sisteme uygun olarak indirdiğinizde , bütün araçları ve versiyonları içermediğini
göreceksiniz. Bunları yüklemek için SDK Manager’ı kullanabilirsiniz. Örneğin ,yeni bir Andoid versiyonu
yayınladığınızda bu aracı kullanarak
güncellemelerinizi yapabilirsiniz.
-SDK
Manager’ı çalıştırmak için şu yollardan herhangi birini kullanbilirsiniz :
-Eclipse’den
(ADT ile ) Windows>Android SDK Manager
-Android
Studio’dan Tools>Android>SDK Manager
-Windows’ta,Android
SDK dizininde SDK Manager.exe’ye çift tıklayarak
-Mac OS X
veya Linux ‘te terminali açarak Android SDK dizininde tools/dizininine gelerek android dosyasını çalıştırın.
13 Mart 2017 Pazartesi
LINUX İÇİN KURULUM
Sisteminiz için tar.gz dosyasını indirin ve JDK 'yi yüklemek istediğiniz yere taşıyın . Genellikle JDK usr/java içine yüklenir. Ayrıca kök dizine erişim izni gerektirdiğini unutmayın. Paketten çıkarmak ve yüklemek için terminalde
# tar zxvf jdk-7-Linux-i586.tar.gz
# tar zxvf jdk-7-Linux-i586.tar.gz
dedikten sonra /jdk1.7.0 dizininde yüklenmiş olacaktır. Windows için yaptığımız gibi Linux'te de JDK'nın her yerden çalışması için bir şeyler yapmamız gerekmektedir. Bunun için /etc/profile.d dizininde bir komut dosyası oluşturmamız gerekecek. Bunu yapmak gayet kolay : dizin içerisinde java_env.sh isimli bir komut dosyası oluşturun ve içerisine bu script'i ekleyin.
#!/bin/bash
JAVA_HOME=/usr/java/jdk1.7.0
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME
export CLASSPATH=.
Son olarak , kullanıcının oturum açtığında kullanması için gerekli izni vermek için ise şunu giriyoruz.
# chmod 755 java_env.sh
Daha sonra yeniden giriş yaptığımızda sistem değişkeni ayarlanmış olacaktır. Ayrıca Ubuntu kullanıcıları webupd8 takımının depolarından kurabilirler. Bunun için bu paketi depomuza eklememiz gerekecek. Terminal'i açıp şu komutu verin :
sudo add-apt-repository ppa:webup8team/java
Ardından yeni depodaki paketlerin de ulaşabilir olması için paket listenizi şu komutla güncelleyin :
sudo apt-get update
Şimdi de bize Oracle JDK 'yı indirip hazır edecek olan paketi şu komut ile kurun :
sudo apt-get install oracle-java7-set-default oracle-java7-insaller oracle-jdk7-installer
Bu komuttan sonra Oracle'ın sunucularından sisteminize uygun JDK paketi indirilecek ve kurulacaktır. Bunun süresi bağlantı hızınıza göre değişebilir. JDK kurulumunu yaptıktan sonra tekrardan konsola
java -version
komutunu vererek hangi java sürümünü kullandığınızı görebilirsiniz.
12 Mart 2017 Pazar
WINDOWS İÇİN KURULUM
Exe dosyayı indirip çalıştırdıktan sonra size rehberlik edecek yönergeleri izleyin. Ardından kurulumu gerçekleştirin.
Kurulumda sonraki adımlarda Next'e basarak ilerlediğimizde ve kurulumu tamamladığımız zaman bir sonraki ekran görüntüsü ile karşılaşırız .
Daha sonra asıl önemli olay ise Windows'ta PATH (Yol ) değişkeninde JDK yolunu ayarlamamız gerektiğidir. P A T H değişkeninin belirlenmesinin amacı herhangi bir yerden çalıştırılabilir dosyalar oluşturabilmektir. Aksi taktirde her zaman komut satırından bir şey yürütmek istediğinizde tam yolunu yazmanız gerekecektir.
Ayrıca Eclipse'de JAVA_HOME değişkenine bağlıdır. Sistem ortam değişkenlerini ayarlamak için aşağıdakileri yapmanız gerekmektedir. JDK'nızın
C:/java/jdk/jdk1.6.0_12/bin
adresi üzerinde olduğunu varsayalım.
1. Path'i eklemek için Windows 7'ye göre (Farklı Windows sürümlerinde farklı olabilir) Denetim Masası>Sistem>Gelişmiş Sistem Ayarları 'na tıklayın .
2.Açılcak olan penceredeki Ortam Değişiklikleri... butonuna tıklayın.
3. Ortam Değişiklikleri bölümünde Düzenle... butonuna tıklayın.
4.Değişken adı yazan bölüme JAVA_HOME , Değişken değeri yazan bölüme de C:/java/jdk/jdk1.6.0_12 yazın ve Tamam butonuna basarak kapatın .
5.Sistem değişkenleri bölümünden Path bölümünü bulun Düzenle butonuna basın.
6.Açılan penceredeki Değişken değeri alanının başına %JAVA_HOME%/bin; ekleyin.
Kurulumda sonraki adımlarda Next'e basarak ilerlediğimizde ve kurulumu tamamladığımız zaman bir sonraki ekran görüntüsü ile karşılaşırız .
Daha sonra asıl önemli olay ise Windows'ta PATH (Yol ) değişkeninde JDK yolunu ayarlamamız gerektiğidir. P A T H değişkeninin belirlenmesinin amacı herhangi bir yerden çalıştırılabilir dosyalar oluşturabilmektir. Aksi taktirde her zaman komut satırından bir şey yürütmek istediğinizde tam yolunu yazmanız gerekecektir.
Ayrıca Eclipse'de JAVA_HOME değişkenine bağlıdır. Sistem ortam değişkenlerini ayarlamak için aşağıdakileri yapmanız gerekmektedir. JDK'nızın
C:/java/jdk/jdk1.6.0_12/bin
adresi üzerinde olduğunu varsayalım.
1. Path'i eklemek için Windows 7'ye göre (Farklı Windows sürümlerinde farklı olabilir) Denetim Masası>Sistem>Gelişmiş Sistem Ayarları 'na tıklayın .
2.Açılcak olan penceredeki Ortam Değişiklikleri... butonuna tıklayın.
3. Ortam Değişiklikleri bölümünde Düzenle... butonuna tıklayın.
4.Değişken adı yazan bölüme JAVA_HOME , Değişken değeri yazan bölüme de C:/java/jdk/jdk1.6.0_12 yazın ve Tamam butonuna basarak kapatın .
5.Sistem değişkenleri bölümünden Path bölümünü bulun Düzenle butonuna basın.
6.Açılan penceredeki Değişken değeri alanının başına %JAVA_HOME%/bin; ekleyin.
11 Mart 2017 Cumartesi
JAVA GELİŞİRME KİTİ (JDK)
İlk olarak yüklemeniz gereken yazılım Java Geliştirme Kitidir. www.oracle.com/technetwork/java/javese/downloads/intex.html sayfasına giderek JDK indir (Download) butonuna tıklamanız gerekmektedir. Karşımıza şöyle bir sayfa gelecek :
Lisan sözleşmesini kabul edip işletim sisteminize uygun sürümü seçerek indirin. x86 dosyalarının 32 bit ve x64 dosyalarının 64 bit işletim sistemleri için olduğunu unutmayın. Doğru versiyonu seçtiğinizden emin olun..
Buradaki listeden fark edebileceğiniz gibi Mac OSX için JDK Oracle sitesinde yer almamaktadır. Çünkü Apple kendi JDK 'sini sağlamaktadır. Bütün Mac OS X bilgisayarda yüklü halde gelmektedir. Terminalde :
java -versiyon
Yazarak versiyonu kontrol edebilirsiniz.
Lisan sözleşmesini kabul edip işletim sisteminize uygun sürümü seçerek indirin. x86 dosyalarının 32 bit ve x64 dosyalarının 64 bit işletim sistemleri için olduğunu unutmayın. Doğru versiyonu seçtiğinizden emin olun..
Buradaki listeden fark edebileceğiniz gibi Mac OSX için JDK Oracle sitesinde yer almamaktadır. Çünkü Apple kendi JDK 'sini sağlamaktadır. Bütün Mac OS X bilgisayarda yüklü halde gelmektedir. Terminalde :
java -versiyon
Yazarak versiyonu kontrol edebilirsiniz.
DESTEKLENEN ANDROİD CİHAZLAR
Açık Aksesuar Standardı , Android tabletlere yönelik versiyonu olan Android Honeycomb 3.1'in parçası olarak duyurulmuştur. Daha sonra Google bununla yetinmeyip Android 2.3.4 'e geriye dönük portlamıştır.
Açık Aksesuar Standardı desteğini alan ilk cihazlar Motorola Xoom ve Google Nexus S olmuştur. Diğer cihazlar da bu cihazları takip ederek bu standarda sahip oldu. Ama bu seferde Android için problem olan fragmentation yani parçalama sorununa yol açtı. Bunun kötü sonucu ise Açık Aksesuar modunun bazı cihazlarda çalışmaması olmuştur.
Bunun nasıl olduğunu şöyle ifade edeyim : Donanım katmanındaki USB sürücülerinin Açık Aksesuar Modu ile uyumlu olmaması bu sorunu ortaya çıkarmıştır. Yani sadece Google 'ın Android işletim sisteminde yaptığı değişiklikler yeterli olmamıştır. USB sürücülerinin de Açık Aksesuar Modu ile uyumlu hale getirilmesi gerekmektedir. Bu nedenle bir çok geliştirici cihazlarını daha üst bir sürüme (3.1 ve üzeri ) güncelledi veya root ederek başka Android Rom 'ları yükleyerek bu sorunu aşmaya çalıştı.
NOT !
Android işletim sisteminde en geniş yetkilere sahip olan kullanıcılara root kullanıcısı adı verilir. Sizler telefonlarınızı veya mobil cihazlarınızı satın aldığınızda , telefonunuzdaki bu işletim sisteminin aslında tam yetkili kullanıcısı değilsinizdir. İçerisinde belli kısıtlamalar bulunur. Örneğin üreticinin size zorunlu kıldığı programları "uygulamalar" bölümünden kaldıramazsınız. Ya da üreticinin onay vermediği ayarları değiştiremezsiniz. Çünkü siz bir root kullanıcısı değilsinizdir. Eğer Android işletim sistemine sahip bu cihazların tam yetkisini ele almak istiyorsanız telefonunuzu teknik tabirle root etmeniz gerekir..
Ancak bazı Android cihazlar Açık Aksesuar modu ile test edilmiş ve mükemmel çalıştığı söylenmiş , bazıları resmi olarak bazıları ise geliştiriciler tarafından denenmiştir. Burada ADK ile uyumlu cihazların bazılarını bir liste halinde vereceğim. Bu demek değil ki sadece bunlarla sınırlı bu liste :
&Google Nexus S
&Google Nexus One
&Acer Iconia A100
&Acer Iconia A500
&LG Optimus Pad
&ASUS Eee Pad Transformer TF101
&Asus Memopad7
&Samsung Galaxy Tab 10.1
&Samsung Galaxy S
&Samsung Galaxy Ace
&Motorola Xoom
Açık Aksesuar Standardı desteğini alan ilk cihazlar Motorola Xoom ve Google Nexus S olmuştur. Diğer cihazlar da bu cihazları takip ederek bu standarda sahip oldu. Ama bu seferde Android için problem olan fragmentation yani parçalama sorununa yol açtı. Bunun kötü sonucu ise Açık Aksesuar modunun bazı cihazlarda çalışmaması olmuştur.
Bunun nasıl olduğunu şöyle ifade edeyim : Donanım katmanındaki USB sürücülerinin Açık Aksesuar Modu ile uyumlu olmaması bu sorunu ortaya çıkarmıştır. Yani sadece Google 'ın Android işletim sisteminde yaptığı değişiklikler yeterli olmamıştır. USB sürücülerinin de Açık Aksesuar Modu ile uyumlu hale getirilmesi gerekmektedir. Bu nedenle bir çok geliştirici cihazlarını daha üst bir sürüme (3.1 ve üzeri ) güncelledi veya root ederek başka Android Rom 'ları yükleyerek bu sorunu aşmaya çalıştı.
NOT !
Android işletim sisteminde en geniş yetkilere sahip olan kullanıcılara root kullanıcısı adı verilir. Sizler telefonlarınızı veya mobil cihazlarınızı satın aldığınızda , telefonunuzdaki bu işletim sisteminin aslında tam yetkili kullanıcısı değilsinizdir. İçerisinde belli kısıtlamalar bulunur. Örneğin üreticinin size zorunlu kıldığı programları "uygulamalar" bölümünden kaldıramazsınız. Ya da üreticinin onay vermediği ayarları değiştiremezsiniz. Çünkü siz bir root kullanıcısı değilsinizdir. Eğer Android işletim sistemine sahip bu cihazların tam yetkisini ele almak istiyorsanız telefonunuzu teknik tabirle root etmeniz gerekir..
Ancak bazı Android cihazlar Açık Aksesuar modu ile test edilmiş ve mükemmel çalıştığı söylenmiş , bazıları resmi olarak bazıları ise geliştiriciler tarafından denenmiştir. Burada ADK ile uyumlu cihazların bazılarını bir liste halinde vereceğim. Bu demek değil ki sadece bunlarla sınırlı bu liste :
&Google Nexus S
&Google Nexus One
&Acer Iconia A100
&Acer Iconia A500
&LG Optimus Pad
&ASUS Eee Pad Transformer TF101
&Asus Memopad7
&Samsung Galaxy Tab 10.1
&Samsung Galaxy S
&Samsung Galaxy Ace
&Motorola Xoom
DONANIM GELİŞTİRME KARTLARI
GOOGLE ADK 2011
Google ADK 2011,Mayıs 2011 ' de Google I/O ' da tanıtılan referans bir karttır. Ayrıca Açık Aksesuar Standardına sahip ilk karttır. Bu tüm geliştirme araçlarının ve kodlarının açık olduğu , daha doğrusu açık kaynaklı olduğu anlamına gelir. Kit olarak gelen bu donanım , anakart diyebileceğimiz bir kart ve bir shield ile birlikte gelmektedir.
NOT !
Arduino ailesinin 8 biti terkettiği ilk karttır. 32 bit ARM Cortex-MP3 işlemci , içinde Dijital Sinyal işlemcisi, 12 bit DAC ,UART, SPI, 12C ve diğer birimleri bulunmaktadır.
NOT !
Bit kavramıyla kastedilen cihazınızın işlemcisinin verileri işlediği yolun büyüklüğüdür.
Arduino DUE 'yi kullanıcılar için önemli kılan hem güçlü bir kart olması , hem de USB OTG özelliğine sahip olmasıdır. Bu özelliği sayesinde ADK uyumlu bir kart olmaktadır.
Google ADK 2011,Mayıs 2011 ' de Google I/O ' da tanıtılan referans bir karttır. Ayrıca Açık Aksesuar Standardına sahip ilk karttır. Bu tüm geliştirme araçlarının ve kodlarının açık olduğu , daha doğrusu açık kaynaklı olduğu anlamına gelir. Kit olarak gelen bu donanım , anakart diyebileceğimiz bir kart ve bir shield ile birlikte gelmektedir.
NOT !
Shield, Arduino'nun yeteneklerini ve kapasitesini artırmaya veya genişletmeye yarayan kartlardır. Bunlar Arduino kartımızın üzerine kolayca takılıp sökülebilmektedir.
Bu kartın üzerinde 3 tane belirgin giriş vardır (kartın pinleri hariç):
1. Bilgisayarınıza bağlamak için bir DC güç girişi
2. Telefon ve tabletinizi bağlamak için USB A tipi bir giriş
3. Kartınızı programlamak ve hata ayıklamak için USB B tipi bir girişe sahiptir.
Google ADK 2011 , ATmega2560 AVR mikrokontröllere sahip bir karttır. C dilinde programlanmak için dizayn edilmiştir. Bunun kullanıcılara getirisi Assembly dilini kullanan kartlara göre daha kolay programlamasıdır.
ATmega 2560 , 256 KB bir dahili Flash belleğe ve 8 bit bir işlemciye sahiptir. Ayrıca 16 mhz hızında çalışır. İlaveten 8 KB SRAM ve 4 KB EEPROM hafızası vardır. Kart 16 analog giriş/çıkış pinine sahiptir. Analog değeri dijitale 10 bit çözünürlüğünde dönüştürerek 1024 farklı değeri gösterebilir.
Kart varsayılan olarak 5V ile çalışmaktadır. 54 tane dijital giriş/çıkış pini bulunan kartta 14 pin PWM ' ye izin verilmektedir.
Demo Shield farklı sensör ve aktüatörleri ( bir mekanizmayı veya sistemi kontrol eden veya hareket ettiren bir tür motor ) içeren ek karttır. Shield kelimesinin bir Arduino terimi olduğunu ve ayrıca genişletme kartlarına verilen bir isim olduğunu söylemiştik. Shield 'lar anakartın üzerine oturacak şekilde tasarlanmıştır. Böylelikle Shield 'ın kullanmadığı bağlantı pinlerini kullanabilmekteyiz.
Demo Shield ' de bulunan bazı sensör ve aktüatörler :
& Bir Analog Joystick
& 3 Buton
& 3RGB LED
& Sıcaklık Sensörü
& Işık Sensörü
& Kapasitif dokunmatik alan
& 3 Servo bağlantısı
& Ekstra güç için iki tane röle (24 V 1A 'e kadar )
GOOGLE ADK 2012
Adın da anlaşıldığı gibi Google ADK 2012 Google I/O da tanıtılmıştır. ADK2012 Arduino Due platformunu temel almaktadır.
Donanım özellikleri şöyle :
& ARM 32 bit Cortex MP3 işlemci
&Andoid cihaz ve bilgisayar için iki ayru USB bağlantısı
& Işık , renk, yakınlık , sıcaklık , nem , barometrik basınç ve ivme sensörü
& Micro SD kart desteği
& Bluetooth desteği
ADK 2011 ' e göre oldukça güçlü olan bu kart ne yazık ki sınırlı sayıda üretilmiş ve Google IO etkinliğinde geliştiricilere dağıtılmıştır.
ARDUİNO ADK
Arduino ADK ,Arduino geliştiricileri tarafından geliştirilen ATmega 2560 mikrokontrölere sahip bir karttır. Temel olarak Arduino Mega 2560 karını alsa da USB host özelliği sayesinde ondan ayrılmaktadır.
Google ADK 'ya oldukça benzeyen kart , DC güç için bir USB girişine , Android cihazları bağlamak için ise USB A tipi bir girişe sahiptir. Programlamak ve hata ayıklamak için ise USB B tipi bir girişi vardır. CPS için 6 adet pin bulunur. CPS 'nin Türkçe karşılığı : devre üzerinde programlamadır. Bu kullanıcılara , mikrokontrolörü programlarken , kod atmak için mikrokontrolörü her seferinde yerinden söküp takmak yerine sadece kablo yardımıyla devre üstünden program atma imkanı verir.
ARDUINO DUE
ARDUINO DUE
Arduino ailesinin 8 biti terkettiği ilk karttır. 32 bit ARM Cortex-MP3 işlemci , içinde Dijital Sinyal işlemcisi, 12 bit DAC ,UART, SPI, 12C ve diğer birimleri bulunmaktadır.
NOT !
Arduino DUE 'yi kullanıcılar için önemli kılan hem güçlü bir kart olması , hem de USB OTG özelliğine sahip olmasıdır. Bu özelliği sayesinde ADK uyumlu bir kart olmaktadır.
NOT !
USB OTG 'nin açılımı On-The-Go . Bu sayede OTG desteği ile telefon kullanıcıları USB üzerinden diğer cihazlara hızlıca bağlanabiliyor .
IOIO
IOIO (yo-yo şeklinde telaffuz ediliyor ) PIC mikro denetleyici tabanlı bir geliştirme kartıdır. IOIO Sparkfun Electronics tarafından Açık Aksesuar standardı duyurulmadan önce geliştirilmiş bir karttır. IOIO kartı Android 1.5 ve üzeri bütün cihazları ile çalışacak şekilde tasarlanmıştır.
Ürün Sparkfun tarafından artık satılmadığı için üzerinde durmaya gerek yoktur...
7 Mart 2017 Salı
ADK NEDİR ?
Accessory Development Kit (ADK) yani Aksesuar geliştirme Kit'i temelde Google tarafından oluşturulan basit Açık Aksesuar Standardına bağlı mikrokontrolör geliştirme kartıdır.
NOT: Daha konunun başındayken belirtmek istedim ; Konu boyunca Aksesuar olarak ifade edilecek her şey ,Android cihaza bağlanabilen her türden donanım olarak anlaşılmalıdır.
Herhangi bir özelliğe sahip kart , ADK uyumlu olabilmesine rağmen şu an piyasada bulunan ADK uyumlu kartlar büyük çoğunlukla Arduino tabanlıdır. Google da bu yönde karar vermiştir. Bu nedenle , referans kitinde Arduino Mega 2560 tabanını referans alınmıştır. Ayrıca Google bunu yazılım ve donanım geliştiricilerine açık kaynaklı olarak sunmuştur.
Donanım kartları ile iletişime geçmek için Android cihazların belirli kriterleri yerine getirmesi lüzumludur. Bu kriterleri Android 3.1 ve üzeri sürümleri kullanan veya Android 2.3.4 kullanan ( geri dönük port edilmiş - backported )cihazlar sağlamaktadır. Bildiğiniz gibi Android Cihazlar USB sürücü desteğine sahiptir ve bu sürücüler aksesuar modunda çalışabilmeyi sağlamaktadır.
NOT: Aksesuar modu USB host yeteneğine sahip olan Android cihazlara harici donanımlarla iletişim izni vermektedir.
Açık aksesuar standardı ,USB Host için güç temin etmektedir. Ayrıca bağlı aygıtların numaralandırılmasını da sağlamaktadır. Bununla birlikte , USB 2.0 standartlarına göre Android cihaz şarj amacıyla 5V'luk 500mA güç sağlamak zorundadır. İlaveten ADK geliştirme kartları için birçok firmware sağlamakta ve bunların içerisinde kütüphaneler , kaynak kodları ve Arduino Sketch'leri yer almaktadır.
NOT: Bağlı aygıtların numaralandırılması ,bize Android cihaza bağlı hangi aksesuarla (aygıtla ) iletişime geçileceğinin tespiti için gereklidir. Bu sayede uygulama geliştirme esnasında doğru aygıtla iletişimi temin etmiş oluyoruz.
Ayrıca Google örnek bir uygulama yayınlayarak sensörlerle Android cihazların yeteneklerini bir uygulamada göstererek referans oluşturmuştur.
İPUCU !!!
Standart Andoid ADK Demo Kit uygulamasını Google Play Store'dan indirebilirsiniz.
Bir ADK donanım projesi oluşturduğunuzda , artık siz de Android cihazlar için bir aksesuar geliştiriyorsunuz demektir.
NOT: Daha konunun başındayken belirtmek istedim ; Konu boyunca Aksesuar olarak ifade edilecek her şey ,Android cihaza bağlanabilen her türden donanım olarak anlaşılmalıdır.
Herhangi bir özelliğe sahip kart , ADK uyumlu olabilmesine rağmen şu an piyasada bulunan ADK uyumlu kartlar büyük çoğunlukla Arduino tabanlıdır. Google da bu yönde karar vermiştir. Bu nedenle , referans kitinde Arduino Mega 2560 tabanını referans alınmıştır. Ayrıca Google bunu yazılım ve donanım geliştiricilerine açık kaynaklı olarak sunmuştur.
Donanım kartları ile iletişime geçmek için Android cihazların belirli kriterleri yerine getirmesi lüzumludur. Bu kriterleri Android 3.1 ve üzeri sürümleri kullanan veya Android 2.3.4 kullanan ( geri dönük port edilmiş - backported )cihazlar sağlamaktadır. Bildiğiniz gibi Android Cihazlar USB sürücü desteğine sahiptir ve bu sürücüler aksesuar modunda çalışabilmeyi sağlamaktadır.
NOT: Aksesuar modu USB host yeteneğine sahip olan Android cihazlara harici donanımlarla iletişim izni vermektedir.
Açık aksesuar standardı ,USB Host için güç temin etmektedir. Ayrıca bağlı aygıtların numaralandırılmasını da sağlamaktadır. Bununla birlikte , USB 2.0 standartlarına göre Android cihaz şarj amacıyla 5V'luk 500mA güç sağlamak zorundadır. İlaveten ADK geliştirme kartları için birçok firmware sağlamakta ve bunların içerisinde kütüphaneler , kaynak kodları ve Arduino Sketch'leri yer almaktadır.
NOT: Bağlı aygıtların numaralandırılması ,bize Android cihaza bağlı hangi aksesuarla (aygıtla ) iletişime geçileceğinin tespiti için gereklidir. Bu sayede uygulama geliştirme esnasında doğru aygıtla iletişimi temin etmiş oluyoruz.
Ayrıca Google örnek bir uygulama yayınlayarak sensörlerle Android cihazların yeteneklerini bir uygulamada göstererek referans oluşturmuştur.
İPUCU !!!
Standart Andoid ADK Demo Kit uygulamasını Google Play Store'dan indirebilirsiniz.
Bir ADK donanım projesi oluşturduğunuzda , artık siz de Android cihazlar için bir aksesuar geliştiriyorsunuz demektir.
Kaydol:
Kayıtlar (Atom)