JStamp - Elde Taşınan Java


Java dilinin yaratılış amacı küçük sistemler idi. Kablolu televizyon üzerinde duran kontrol kutusu için tasarlanan Java, şimdi büyük sistemlerde kullanılsa bile, ilk önceleri kibrit kutusuna sığmak amacı güdüyordu. Daha iyi bir dil arayan nesnesel programcılar, Java'nin üzerine atlayıp, birçok değişik yöne çekmişlerdir. Bu yüzden Java, Internet sayfalarından, veri tabanı işlemcilerine kadar her yerde kullanılmaya başlamıştır.

Java, hic kuşkusuz nesnesel programcılığa büyük rahatlık getirdi. C++ dilinin yaptığı hatalardan ders alarak, kurallarını temiz tuttu, ve programcılık hatalarını azaltmaları için programcılara "yardım" etmiş oldu. Ayrıca, Java'nın sektöre kazandırdığı çok önemli kavram, "arakod" kavramı olmuştur.

Diğer diller makina koduna derleme yaparken, Java, arakod denilen "sanal" bir makina için derleme yapıyordu. Tabii o zaman arakod çalıştırmak için bu sanal makinayı her işletim sisteminde 'yaratmak' gerekmiştir. Su anda aşağı yukarı her işletim sistemi için bir sanal makina yazılmış durumda. Simdi gelelim ufak sistemlere. C++ örneğindeki gibi, Assembler dili ile uğraşmak istemeyen ufak sistem programcıları ve Java yaratıcılarının ilk amaçlarını hiç unutmamaları sayesinde ufak sistemler için Java yönünde bir atılım başladı. Javelin Stamp, TINI adlı ürünler bu alanda çözüm getirmeye uğraştılar. TINI devresi, ufak alanda TCP/IP servisi sağlamak, Java Stamp ise aynı firmanın ürünü olan Basic Stamp kavramını Java'ya taşımak için yola çıktı. Bu iki devre başarılı oldular.

Burada PIC kavramından bahsetmemiz lazım. Javelin Stamp ve TINI bir PIC sistemidir. PIC, Programmable Integrated Circuit yani Programlanabilir Devre anlamına gelir. OOPIC, Nesnesel Programlanabilir Devre olarak anılır. Yani Javelin Stamp ve TINI bir OOPIC sistemidir (Java kullandıkları ve küçük oldukları için).

Bir PIC sisteminin genelde yaptığı, giriş uçlarından gelen '1' yada '0' sinyallerini saklayıp ve işleyip, çıkış PIN'leri üzerinde '1' ve '0' yaratmaktır. Bunu öyle basit bir seymiş gibi görmeyin: Sonuçta, çoğu veriyi 1/0 olarak temsil etmek mümkündür. Sonuç sinyali olarak 1/0'lar kapı açıp kapama, motor başlatma gibi işler yapabilirler. Üstüne üstlük, şimdiki PIC'ler üzerinde seri port bağlantısı var (PC'niz üzerindeki COM1 yada COM2 olduğu gibi) ve büyük miktarda veriyi böylece alıp işleyebiliyorlar.

Java seçeneklerine dönelim. Javelin Stamp ve TINI iyi olsalar bile, hafıza kapasiteleri çok az olduğu için (32K civarı) bazı uygulamalar için eksik kaldılar. Örnek olarak, etrafta dolaşabilen bir robotun gördüğü nesneleri tanıması, yani görüntü işlemesi örneğini verebiliriz. Bu tur işlemler için, yeni nesil bir Java devresi gerekiyordu. Buyrun size JStamp.




JStamp Devresinin Özellikleri

JStamp, 512K bellek, ve 70Mhz mikroişlemci hızı ve küçücük ölçüleri ile elde taşınan uygulamalar için biçilmiş kaftan olmuştur. En önemli özelliği, üzerinde aj-80 denen, Java arakodları kökten destekleyen bir işlemci kullanmasıdır. Yani aj-80 işlemcisine "tamı tamına bir Java makinası" diyebiliriz. Sanal bir makina değildir, yani Java arakodları aj-80 üzerinde "anakod" haline gelmiştir.

Örnek bir uygulama gösterelim. Mesela, JStamp kullanarak, herhangi bir PIN (çıkış noktası) üzerinde 3 Volt'luk bir voltaj yaratalım. Bu voltajı '1' sinyali anlamında kullanabiliriz.

import com.ajile.drivers.gpio.GpioPin;

public class SinyalYarat
{
GpioPin pin;

public static void main (String [] args) {
pin = new GpioPin(GpioPin.GPIOA_BIT4);
pin.setOutputPin(true);
motor1.setPinState(true);
}

}

Burada GPIOA_BIT4, çıkış noktalarından birinin adıdır. Bütün PIN'lerin tarifini görmek için şu adrese bakabilirsiniz.

Bu kadar basit. Ayrıca JStamp üzerinde iki tane RS-232, yani seri port bulacaksınız. Büyük miktarda veri transferi için bunları kullanabilirsiniz. 152000 baud'a kadar hızlı veri transferi yapmak mümkün.

JSTamp üzerine Flash ROM desteği de bulunuyor. 512 K ölçüde olan Flash ROM içinde, devre kapansa bile 'kaybolmayan' türden olması gereken programlar tutulabilir.

www.bilgidata.com sitesinde JStamp ve robotlar hakkında daha ayrıntılı bilgiler bulabilirsiniz.

Saygılar,

Burak Bayramlı

Yazıyla ilgili görüş ve yorumlarınızı burak_junk@yahoo.com veya yorum@teknoTurk.org adreslerine yollayabilirsiniz.