3 Mart 2014 Pazartesi

MIT Application İnventor da Android Uygulaması Geliştirme

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

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

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


Şekil 1


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

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


Eclipse ile Android Uygulama Geliştirme

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

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

eclipse android sdk kurulumu

Şekil 1





Şekil 2: Örnek Android Uygulaması

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



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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >



<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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



<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView1"

android:layout_below="@+id/textView1"

android:layout_marginLeft="47dp"

android:layout_marginTop="21dp"

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



<ProgressBar

android:id="@+id/progressBar1"

style="?android:attr/progressBarStyleLarge"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/button1"

android:layout_marginTop="56dp"

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

</RelativeLayout>



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

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

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


Şekil 3: Android Lamba Kontrol Uygulaması




Şekil 4: Android Araba Kontrol Uygulaması





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






16 Şubat 2014 Pazar

Quadrokopter Dizaynları


İnsansız hava araçları üretiminde yapılan modellerin dizaynları kullanım alanlarına göre farklılık göstermektedir. Dar bir alanda kullanılacaksa motorlar ve pervanelerin zarar görmemesi ve etrafa zarar vermemesi için korumaya alınır. Bu sayede güvenli bir uçuş gerçekleştirilir. Şekil 1’de pervane ve motorların korumaya alınması için tüm pervaneyi içeri alacak şekilde quadrokoptere karbon çubuklar eklenmiştir. Şekil 2’de ise tamamen pervane ve motorlar bir çember içerisine alınarak hem motor ve pervanelerin korunması sağlanmış hem de daha güvenli uçuş şartları oluşturulmuştur.

Şekil 1


Şekil 2

Kapalı ya da kalabalık alanlarda kullanılacak bir quadrokopterin dizaynında dikkat edilmesi gereken noktalar şu şekilde tanımlanabilir:
Ø  Pervaneler korumaya alınmalıdır. Yukarda gösterilen şekiller buna örnek gösterilebilir.
Ø  Motor tutacakları sağlam bir malzemeden yapılmalıdır. Titreşime ve çekmeye karşı mukavemeti yüksek olmalıdır.
Ø  Pervanenin monte edildiği motor şaftı pervane hub genişliğiyle uyumlu olmalıdır.
Ø  Pervane, motor şaftına kontra somun tarzı titreşimde gevşemeye müsaade etmeyen parçalar takılmalıdır.
Ø  Pervane şafta takılırken gevşemeye karşı direnç oluşturan cıvata yapıştırıcıları (LOCTITE) kullanılmalıdır.
Ø  Kullanılacak malzemeye ve sisteme göre kontrol kartı üzerinde plate olarak adlandırılan malzemelerin monte edileceği alanlar oluşturulmalıdır.
Ø  Oluşturulacak tüm platelerin titreşimden az etkilenmesi için, onların özel yapılar ile kaplanması gerekir. Bunlara titreşim önleyici (vibration prevent) denilmektedir  (Şekil 3).


Şekil 3

Ø  İniş takımlarının monte edileceği yerler önceden tespit edilip, sert inişlerde burulma yapmaması için destekleyici önlemler alınmalıdır. Şekil 4’deki iniş takımı burulma dikkate alınmadan imal edilmiş ve karbon gövdenin şeklini sert inişlerde değiştirmiştir.

Şekil 4

Ø  Quadrokopterlerde ağırlık merkezinin yeri önemlidir. Bu sebepten dizayn edilecek gövdede ağırlık merkezi ortada olmalıdır. Bu, yapılan ayarlamaları kolaylaştırır.
Ø  Genellikle quadrokopterlerde lion polimer (lipo) piller kullanılmaktadır. Bu pillerin kullanımı tehlikelidir ve model üzerinde montajı doğru yerlere yapılmadığı takdirde herhangi bir kırım sonucu patlayarak yangına sebep olabilir. Bu sebeple pilin korunması önemlidir. Ek olarak pilin kendi plastik yalıtımı üzerine ek yalıtım da yapılarak koruma artırılır. Şekil 5’de pil bir kafes içerisine alınarak ve bantla sarılarak koruma sağlanmıştır.

Şekil 5

           Quadrokopter tipleri
Quadrokopterler genelde x ve + mod denilen 2 tipte üretilirler. Bu modlar harekete verilecek tepkilerin kaç motorla yapılacağını gösterir. Örneğin ileri yönlü bir harekete verilecek tepkide hangi motorlar daha etkindir sorusunun cevabı bu modlarda saklıdır.
            X tipi quadrokopter
X mod quadrokopterde aracın önü 2 motorun orta noktasına denk gelmektedir. İstenen hareket için 2 motor tepkisi gözlenmektedir. Bu anlamda aracın önünde 2, arkasında 2 motor bulunmaktadır. Örneğin ileri yönlü bir hareket için arkadaki 2 motor öndeki 2 motordan daha fazla itki üretir. Böylece 2 motor ile daha hızlı bir şekilde ileri yönlü hareket gerçekleştirilir. Sağ sapma için hareketi tanımlarsak sol 2 motor sağ 2 motora göre daha fazla itki üretir. Aracın sağa doğru kayma denilen hareketi bu şekilde 2 motorun üretmiş olduğu itki ile daha hızlı gerçekleştirilir. Bu birinci avantajıdır. X modun diğer avantajı ise istenen hareketler için 2 motorun birlikte çalışarak tek motora fazla yüklenilmemesidir. X modda motor dönüş yönleri Şekil 6’da gösterilmiştir. Bu modda ön ve arka iki motorun dönüş yönleri birbirlerinin tersidir. Ön sağ ve arka sol saat yönü tersine (counter clockwise) , ön sol ve arka sağ saat yönüne (clockwise) dönmektedir.

Şekil 6

             +  tip quadrokopter
+ mod quadrokopterde aracın önü tek motorun tutturulmuş olduğu eksendedir (Şekil 7). Bu modta istenen hareketlere tek motor tepki vermektedir. Bu sebepten x moda göre daha yavaş ve motorları yoran bir sistemdir. İleri yönlü bir hareket için arka motor ön motora göre daha faza itki üretir ve hareket gerçekleşir. Sağa kayma hareketinde sol motor sağ motora göre daha fazla itki üreterek araç sağ yönlü kayma hareketini gerçekleştirir. + mod için motor dönüş yönleri Şekil 7’de gösterilmiştir. Ön ve arka motor saat yönü tersi sağ ve sol motor saat yönünde dönmektedir.