Wednesday, October 30, 2002

Lego Oyuncaklarınızı Java ile Kodlayın

Java proglama dilinin esnekliği kendini her yerde gösteriyor. Bu yazımızda ufak ortamlarda calışan bir örnek sunmaya calışacağım.

Büyük çoğunlugumuz küçükken Lego ile oynadık, ya da ne olduğunu biliyoruz. Bizim zamanımızda olan Lego parçaları, mekanik ve yerinden oynamayan parçalardı. Oynayan parçalar olsa bile, çocuklar eliyle tutup evirip çevirirdi. Buna rağmen, Lego parçaları zeka geliştirmesi ve çocukları üretmeye teşvik ettiği için muazzam bir ortam olmuştur. Hayal dünyası ile yakın bağlantı halinde olan çocukların, yaptıkları şeylere hayat vermesi ve oynamaları gayet rahattı.

Simdi filimi ileri sararak 21. yüzyıla gelelim. Lego tekrar büyük bir devrim yaratarak, oyuncak parçalarının içine programlanabilen bir beyin ekledi. RCX adı verilen bu beyin, öteki parçalar gibi, ötekilere yapışabilen türden tabii ki. Fakat en önemli özelliği, üzerinde 5 tane olan çıkış bağlantısı, ve bu bağlantıların tekerlek, ışık kontrol, dokunma kontrolü gibi öteki parçalara bağlanması. Bu bağlantı çok basit. Aç/Kapa şeklinde komutlar, beyinden uzuv parçalara basit komutlar ile gönderilebiliyor.

Programlama diline gelelim. Lego Mindstorm kutusunu alırsanız, içinden çıkan CD-ROM üzerinde, görsel bir program ortamı bulacaksınız. Fakat bu program, görsel çoğu ortamın olduğu gibi zaman alan bir ortam. Ayrıca gelişmiş bir programlama dilinin gücü yok.

İşte burada, Java sahneye giriyor. RCX kodunu anlayıp tersine çeviren programcılar, ufak bir Java VM programını Lego beynine koymayı başardılar. Tiny VM denen bu ortam üzerinde, Lego Mindstorm motor ve arayıcı/tarayıcı kontroller icin arayüzü yazdılar, ve sonuç olarak Java kullanarak Lego oyuncağımızi kontrol etmeniz mümkün oldu. Bu yeni Lego işletim sistemine LeJos deniyor. (Lego Java Operating System/Lego Java İşletim Sistemi)


Bu yazımızda, LeJos ortamını nasıl kuracağımızı anlatacağız.

Lego Mindstorm icin yazılan programlar, önce dizüstü yada masaüstü bilgisayarında geliştirilir. Geliştirme ortamı bilgisayarınızda USB çıkış noktası olmasına dikkat edin. Mindstorm kutusundan çıkan bir İnfrared verici USB ile bağlandıktan sonra, derlenen programları infrared üzerinden Lego beynine aktarılır. Java ya da basit RCX programları için bu işlem aynıdır.

Lego Mindstorm paketinizi alınca, CD-ROM'u takip sistemi kurun. Menüden çıkan seçenekleri takip edip bunu yapabilirsiniz. Bu işlem tamamlanınca, Lego işletim sisteminin kurulması lazım. (Bu sistem LeJos'dan farklı, ama kurulması gerekir).

Bu işlemler bittikten sonra, LeJos sitesinden gerekli programı yükleyin. Windows ve Linux ortamları için geliştirme kodları bulacaksınız. Bu kodlar, sıkıştrılmış şekilde tar yada zip ortamında gelecek. Bu dosyaları açıp, sabit disk üzerine kurun. Nereye kurduğunuz önemli değil.

Kurulduktan sonra, bazı 'ortam değişkenlerini' tanımlamanız gerekiyor. Windows ortamında iseniz, Settings | Control Panel üzerinden Environment Variables seçeneğine gelin. Buradan, PATH değişkeni için c:\lejos\bin; ekleyin, ve RCXTTY değişkeni için USB yazın.

Ayrıca Java geliştirme ortamınız olması lâzım. Bunun için ekteki baglantidan alabilirsiniz.

Bu işlemler bittikten sonra, komut satırına gelin ve şu komutu işletin.
lejosfirmdl

İşlem sonunda Lego beyni, iki kere 'bip' sesi çıkartacak. Kutlarım, artık Lego'nuz Java için hazır.

import josx.platform.rcx.*;

public class Test
{
public static void main (String[] arg)
throws Exception
{
for (int rot = 0; rot < 2; rot++)
{
Motor.A.forward();
Motor.C.forward();
for (int k = 0; k < 10000; k++) { }
Motor.A.stop();
Motor.C.stop();
for (int k = 0; k < 10000; k++) { }

}

for (int rot = 0; rot < 2; rot++)
{
Motor.A.backward();
Motor.C.backward();
for (int k = 0; k < 10000; k++) { }
Motor.A.stop();
Motor.C.stop();
for (int k = 0; k < 10000; k++) { }
}

}
}


Programı yazıp kaydedin. Tekrar komut satırına dönün ve şunu işletin:
lejos Test
lejos -o Test.bin Test
lejosrun Test.bin

Tekrar kutlarım, yeni yazdığınız program, Lego beynine yüklendi. Geriye kalan tek yapmanız gereken, Legoyu açıp (On-Off düğmesi), Run (çalıştır) düğmesine basmak. Programınız işleme girecek.

Örnek olarak gördüğünüz program için, Lego beyni üzerindeki A ve C motor bağlantılarını iki tekerleğe baglayın. Program çalışınca, oyuncak arabanız iki kere ileri, iki gere geri gidecek.

Türkiye'den LEGO Mindstorm temini için
Adore Oyuncak
Maslak/İstanbul

Tel: 212 286 0748 / 0765
e-mektup adresi: yurur@adoreoyuncak.com

No comments: