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.

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. 

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.
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.

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:

  • 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

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.

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.


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.

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

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.

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.




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




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 !

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 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.

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.