Anda di halaman 1dari 45

PEMROGRAMAN LEGO NXT

dengan

JAVA

Drs. Kushartantya, MIKomp Adi Wibowo, M.Kom Sutikno, M.Cs

Daftar Isi
PENGENALAN LEGO NXT..................................................................................1 A. Sejarah......................................................................................................... 1 B. NXT BRICK...................................................................................................3 C. LeJOS........................................................................................................... 4 LeJOS Firmware ........................................................................................... LeJOS NXJ ...................................................................................................! INSTALASI LeJOS................................................................................................" A. I#s$a%asi Ja&a J'K ......................................................................................." B. Pe#(e)e*a# I#s$a%asi J+SE........................................................................1, '. I#s$a% LeJOS -irmware *e .a%am NXT Bri)* ...............................................1! SENSOR 'AN AKT/ATOR................................................................................1" A. Se#s0r /%$ras0#i)........................................................................................1" B. Se#s0r Se#$1h............................................................................................12 E. Se#s0r 3ar#a.............................................................................................+, F. Se#s0r S1ara..............................................................................................+1 G. A*$1a$0r 4NXT m0$0r5..................................................................................++ G/I .a# K0m1#i*asi *e NXT..............................................................................+ A. LC'.............................................................................................................+ B. K0m1#i*asi B%1e$00$h.................................................................................+! C. K0m1#i*asi /SB.........................................................................................31 I6PLE6ENTASI LeJOS 'ALA6 ROBOTIKA LEGO NXT..................................33 A. KEB/T/7AN A3AL...................................................................................33 B. PERAKITAN ROBOT..................................................................................33 C. I6PLE6ENTASI........................................................................................3" ii

REFERENSI.......................................................................................................41

iii

PENGENALAN LEG

N!"

Lego Mindstorms NXT merupakan suatu kit robotika yang diluncurkan pada akhir Juli 2006. Kit ini menggantikan Lego Mindstorms generasi pertama atau yang lebih dikenal dengan nama obotics !n"ention #ystem. Kit robotika ini mempunyai komponen dan so$t%are yang sudah mendukung se&umlah pro&ek mulai dari yang sederhana hingga yang kompleks. Kit ini cocok untuk pemula yang berminat menekuni pemrograman robot. Lego telah menyediakan NXT'( yang berbasis gra$is sebagai de$ault dari bahasa pemrograman untuk Mindstorms NXT. )emrograman dengan NXT'( relati$ mudah. Lingkungan pemrograman NXT'( berbasis gra$is dan menyediakan se&umlah blok yang dapat digunakan untuk menyusun program. #o$t%are ini memerlukan lisensi alias berbayar. #elain itu terdapat se&umlah bahasa pemrograman yang dapat digunakan dalam pemrograman Mindstorms NXT. *ahasa pemrograman lain yang banyak digunakan adalah + dan Ja"a. A. S#$arah )roduk ini telah berkembang selama puluhan tahun dan pada saat ini Lego Mindstorms NXT merupakan generasi ketiga dari produk yang sama. %&'' Kolaborasi antara (rup Lego dengan Massachusetts !nstitute o$ Technology ,M!T- dimulai pada pengembangan .intelegence brick/ yang akan memba%a kreasi Lego hidup melalui pemrograman komputer.

%&'& 0r.#eymour )apert1 dari Laboratorium )engembangan )embela&aran Teknologi Komputer M!T men&adi .)ro$esor )enelitian )embela&aran Lego/ 2334 Lego Mindstorms dan )enemuan #istem obotika diperkenalkan kepada publik pada pameran Mainan ,Toy- di Nurnberg1 London dan Ne% 5ork.

%&&' oboTour6 734 meluncurkan dari Museum #cience dan !ndustry +hicago selama dua bulan melakukan pengembaraan ke 80 kota di 9merika untuk mencari1 melihat dan bela&ar segala sesuatu tentang obot.

%&&& The obotics 0isco"ery #et61 turunan dari )enemuan #istem obotika memungkinkan pengguna ke program langsung pada intelegence brick selain melalui komputer1 dan kit robot yang dikendalikan dari &arak &auh diresmikan pada pameran !nternasional Toy di Ne% 5ork. )enemuan #et obotika1 #et 9ksesori :ltimate1 0roid 0e"eloper Kit dan )enemuan #istem obotika 2.; dirilis di 9merika #erikat. 0roid 0e"eloper Kit dan )enemuan #istem obotika 2.; dirilis di <ropa dan 9sia1 dan )enemuan #et obotika dan )enemuan #istem obotika 2.; diluncurkan di !nggris.

())) )enemuan obotika #istem 2.01 #ide 0e"eloper Kit (elap 6 ,sebuah terprogram1 robot constructible terkontrol-1 =isi #istem Komando 6 ,kamera )+ ekspansi kit untuk !#- dan Mars <>ploration 6 ,tantangan robot bertema1 bangunan instruksi dan game untuk !#- set ekspansi yang diresmikan di !nternational Toy ?air di Ne% 5ork. )enemuan obotika #istem 2.01 Kit #ide 0e"eloper 0ark dan #istem =isi +ommand yang dirilis di 9merika #erikat.

())% #py*otics1 seri robot mata'mata berorientasi permainan yang dapat dikendalikan dan diprogram1 diresmikan di !nternational Toy ?air di Ne% 5ork.

())* (enerasi berikutnya dari obot Lego Mindstorms ini diresmikan di !nternational +onsumer <lectronics #ho%.

())& Lego meluncurkan Lego Mindstorms NXT 2.0 dengan kit komersial lebih baik1 tetapi perangkat kerasnya sama.

+. N!" +,I-K NXT control module1 atau lebih terkenal dengan nama NXT *rick adalah otak dari setiap obot Lego Mindstorm. Keberadaan NXT brick ini memungkinkan robot men&adi hidup dan dapat melakukan operasi yang berbeda. Modul ini dapat dihubungkan dengan komputer melalui :#* atau koneksi nirkabel melalui *luetooth.

Gambar %.%. NXT *rick beserta motor dan sensor

*agian'bagian yang ada pada NXT *rick a. Motor ports NXT brick memiliki tiga port keluaran untuk memasang motor yaitu port 91 port * dan port +. Melalui ketiga motor port ini kita dapat memasang 8 motor dengan

$ungsi yang dapat dibuat berbeda pada masing'masing motor. 8. S#nsor ports NXT brick &uga memiliki empat buah port masukan untuk memasang sensor yaitu port 21 port 2 port 81 dan port @. Melalui @ buah port ini kita dapat mengkombinasikan komponen sensor yang tersdia sehingga robot akan mempunyai kemampuan menangkap data masukan dengan lebih lengkap sesaui dengan $ungsinya. ). .S+ port #ebagaimana telah diketahui bah%a pemrograman pada robot L<(A ini dapat dikembangkan pada sebuah komputer1 sehingga pada NXT brick telah dilengkapi dengan :#* port yang dapat digunakan untuk mengunduh program dari komputer ke NXT brick atau menggunggah data dari NXT brick ke komputer #elain melalui port ini kita &uga dapat menggunakan koneksi nirkabel *luetooth untuk mengunggah dan mengunduh. .. P#n/#ras Suara *agian ini memungkinkan kita untuk membuat program dengan suara nyata dan mendengarkan mereka ketika kita men&alankan program ini e. N!" Disp0ay NXT anda dilengkapi dengan $itur layar banyak ' lihat Mindstorms )anduan )enggunaan NXT yang berada pada kit NXT untuk mendapatkan in$ormasi spesi$ik tentang ikon layar dan pilihannya 1. "ombo02tombo0 pada N!" bri3k B AnC<nter C un B 0igunakan untuk memindah ke kiri dan ke kanan pada menu NXT B +learC(o back

Arange button )anah 9bu'9bu Muda Tombol 9buD9bu Tua

-. L#4 S LeJA# adalah sebuah proyek open source yang diciptakan untuk mengembangkan in$rastruktur teknologi dalam mengembangkan perangkat lunak pada produk Lego Mindstorm. LeJA# menggunakan teknologi Ja"a. LeJA# mena%arkan dukungan untuk Lego Mindstorms NXT dan produk sebelumnya1 Lego Mindstorms +X. LeJA# mampu memberikan solusi berikutB

Lego Mindstorms NXT o J=M $or NXT *rick o LeJA# 9)! $or NXT brick o LeJA# )+ +omms o LeJA# Ja"aM< +omms o LeJA# Tools E Lego Mindstorms +X o J=M $or +X *rick o LeJA# 9)! $or NXT brick o LeJA# )+ +omms o LeJA# Tools

Kit pemrograman asli yang disediakan oleh L<(A adalah NXT'(. )emrograman ini berbasis gra$is sehingga sangat memudahkan orang a%am untuk segera bisa memainkan NXT1 hal ini disebabkan karena NXT diciptakan untuk pendidikan dan hiburan. Namun hal ini bukan bererti bah%a NXT hanya bisa digunakan untuk program yang standar sa&a1 kita dapat membuat NXT ini men&adi .Lebih +erdas/. Fanya sa&a &ika diinginkan untuk lebih &auh menanamkan kecerdasan buatan yang canggih ke dalam NXT maka diperlukan suatu kit pemrograman yang lebih serius dan kompleks. #alah satu pilihan untuk melakukan ini adalah LeJA#1 yang berbasis bahasa &a"a. LeJA# memiliki beberpa keunggulan1 antara lainB

LeJA# bersi$at multiplat$orm1 sehingga dapat di&alankan di Mac A#1 Linu> maupun Gindo%s. LeJA# telah mendukung pemrograman berorientasi obyek1 dengan dilengkapi pustaka Ja"a yang kaya. Fal ini tentu sangat selaras dengan konsep NXT yang mana seluruh komponen robot baik sensor1 motor maupun yang lainnya akan dide$inisikan sebagai suatu obyek. LeJA# telah mampu melakukan proses multithreading1 sehingga dapat digunakan untuk pemrograman paralel. LeJA# telah menyediakan $itur khusus untuk pemrograman robotik. Karena itu1 kita dapat menerapkan berbagai trik dengan $leksibel1

L#4 S 5irmwar# Ja"a =irtual Machine yang merupakan LeJA# $irm%are dapat dapat dido%nload ke NXT brick untuk menggantikan NXT $irm%are asli. #ecara umum1 LeJA# $irm%are lebih ringan dibanding NXT'$irm%are. 0engan demikia akan bisa memuat proyek yang lebih besar1 selain itu LeJA# $irm%are &uga lebih responsi$ sehingga lebih akurat dalam pengukuran sensor maupun dalam pergerakan motornya.

L#4 S N!4 :ntuk membuat program yang akan di'unggah ke NXT brick kita dapat menggunakan LeJA# NXJ. Fanya sa&a sebelumnya kita harus sudah memasang LeJA# $irm%are terlebih dahulu ke dalam NXT brick. )emrograman LeJA# dibangun dalam bahasa Ja"a1 dengan pustaka khusus robotik.. 9dapun secara umum LeJA# dapat digunakan dengan langkah'langkah sebagai berikutB

Tulis kode program ,dalam sintaks Ja"a- dengan suatu editor teks dan disimpan dalam suatu $ile berekstensi .&a"a ,$ile.&a"a-. Kompile $ile kode program yang telah dihasilkan dengan menggunakan kompiler khusus yang telah disediakan LeJA# dikompile Fasil kompilasi ,$ile.class- di'unggah ke NXT brick. Fal ini dapat dilakukan dengan menggunakan :#* port atau melalui koneksi bluetooth. Jalankan program tersebut di NXT brick

INS"ALASI L#4 S
:ntuk dapat menginstal LeJA# ke dalam #istem Aperasi Gindo%s dibutuhkan paling tidak dua perangkat lunak sebagai berikutB 2. Ja"a J0K 2. LeJA# release terakhir. #elain iti diperlukan &uga untuk menginstal LeJA# ke dalam NXT

A. Insta0asi 4a6a 4DK LeJA# didasarkan pada teknologi Ja"a sehingga agar dapat digunakan perlu diinstal terlebih dahulu rilis Ja"a J0K terbaru. ilis terbaru ini dapat diunduh pada alamatB httpBCC&a"a.sun.comC&a"aseCdo%nloadsCinde>.&sp Ja"a yang digunakan pada buku ini adalah Ja"a,TM- #< 0e"elopment Kit 6 update 8 untuk Gindo%s Langkah instalasi Ja"a J0K pada komputer Tahap 2B Lisensi

"

(ambar 2.2. tampilan a%al Lisensi Klik tombol ne>t sehingga akan tampil per&an&ian lisensi kemudian klik tombol 9ccept untuk menerima per&an&ian lisensiB

Gambar (.(. Tampilan Lisensi

Tahap 2B )ilih komponen untuk diinstal )ilih semua komponen dan klik di tombol ne>t. )ada saat ini1 akan menginstal diinstal komponen J0K yang anda pilih.

Gambar 2.3. Pemi%iha# *0m:0#e# #etelah proses tersebut selesai1 maka akan muncul layar di mana 9nda akan melihat komponen'komponen lain untuk menginstal. )ilih semua opsi dan klik pada tombol ne>tB

Gambar (.7. pemilihan komponen lain untuk diinstal Ketika installer menyelesaikan proses instalasi kedua maka 9nda telah menyelesaikan !nstalasi J0K di komputer 9nda.

Gambar (.8. Tampilan akhir proses instalasi

+. P#n/#3#kan Insta0asi 4(SE #etelah berhasil menginstal J2#< #0K pada komputer1 9nda perlu memeriksa bah%a 9nda dapat mengkompilasi dan mengeksekusi program &a"a. *uka konsol #hell ,command prompt- pada komputer 9nda dan ketik perintah Ja"aB H Ja"aB Ja"a perintah yang digunakan untuk men&alankan program &a"a. H Ja"acB Ja%a perintah yang digunakan untuk mengkompilasi program Ja"a "#st%9 P#rintah 4a6a :-ommand 4a6a; 9lasan untuk membuat test ini adalah karena anda perlu memeriksa bah%a sistem operasi dapat mengenali perintah &a"a yang digunakan untuk men&alankan program &a"a. Jika shell konsol mengembalikan pilihan untuk menggunakan perintah1 maka berarti tes telah sukses.

1,

Gambar (.*. )enggunaan perintah &a"a "#st(9 P#rintah 4a6a3:-ommand $a6a3; Test kedua adalah untuk mengetahui apakah sistem operasi mengenali perintah &a"ac yang digunakan untuk mengkompilasi program anda. Ketik &a"ac di konsol kemudian enter dan lihat pesan yang muncul. Jika sistem anda mengatakan bah%a perintah anda tidak dimengerti1 maka anda harus mengupdate lingkungan "ariable'"ariabel dalam sistem anda.

Gambar (.<. Tampilan ketika perintah &a"ac tidak dikenali oleh sistem operasi

11

Gambar (.'. Jendela properti sistem

Langkah untuk mengupdate lingkungan "ariabel'"arianel dalam sistem adalah klik kanan pada )+ !con anda dan pilih properties. Klik pada .ad"anced options/)ada tab .9d"anced options/ klik tombol .<n"ironment "ariables/.

1+

Gambar (.&. Jendela ad"ance system setting )ada saat anda klik pada %indo% akan terlihat %indo% baru dan anda harus mengupdate ."ariable path/. )ath ini adalah perlu karena anda akan meyampaikan ke %indo% perintah ,command- apa yang dapat di &alankan langsung dari konsol shell.

13

Gambar (.%). Jendela en"ironment "ariale

=ariable )ath berlokasi pada .system "ariables area/. 0apatkan path "ariable dan klik dan update tombol. =ariabel path dapat mempunyai banyak pernyataan untuk digunakan oleh beberapa aplikasi. 0alam .a ne% clean system/1 anda akan mempunyai konten berikutB path9 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem :ntuk mengupdate "ariable path1 dapatkan dimana lokasi J2#< #0K pada komputer anda. Fal ini dapat dilihat pada %indo%s e>plorer

14

(ambar 2.22. %indo%s e>plorer

0alam kasus ini path nya adalahB C:\Archivos de programa\Java\jdk !"!#$#%\bi&\; #etelah anda tahu pathnya1 tambahkan path tersebut di akhir konten $ pada .system "ariable path/B %program'i(es%\Java\jdk !"!#$#%\bi&\; 0an hasilnyaB Path baru9 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem; %program'i(es%\Java\jdk !"!#$#%\bi&\; #etelah melakukan perubahan1 reboot system dan cek lagi .command &a"ac/.

(ambar 2.22. Tampilan hasil test ketika berhasil Jika anda perhatikan bah%a anda melihat opsi untuk command &a"ac1 kemudian testnya telah sukses dan berarti anda telah selesai melaksanakan instalasi. #ekarang computer anda dapat mengembangkan )erangkatlunak Ja"a. 0engan instalasi ini1 anda mempunyai tool dasar &a"a yang di install dan dikon$igurasi. !nilah hal yang penting untuk meng install perangkat lunak leJA#.

D. Insta0 L#4 S 1irmwar# k# da0am N!" +ri3k Ketika 9nda membeli kit Lego Mindstorms NXT1 NXT brick memiliki $irm%are standar tapi yang satu ini tidak mampu men&alankan program Ja"a sehingga perlu untuk mengganti $irm%are dengan $irm%are Le&os.

1!

SENS , DAN AK".A" ,

LeJA# dapat menangani beberapa sensor dan aktuator. )ada *rick yang merupakan pengendali dari robot dapat menerima masukkan dari @ sensor dan men&alankan 8 motor. )ada bagian ini akan men&elaskan penggunaan sensor ultrasonik1 sensor sentuh1 sensor %arna1 sensor suara1 dan aktuator A. S#nsor .0trasoni3 #ensor ultrasonik membantu NXT robot untuk mengukur &arak dan melihat letak dari ob&ek. #ensor ultrasonik menggunakan prinsip yang sama seperti *e%e%awar yaitu mengukur &arak dengan menghitung %aktu yang diperlukan dari sebuah gelombang suara yang dipancarkan pada benda padat dan diterima kembali seperti gema. *enda berukuran besar dengan permukaan keras mengembalikan bacaan terbaik. *enda yang terbuat dari kain lembut atau dengan bentuk melengkung seperti bola atau sangat tipis atau kecil bisa sulit bagi sensor untuk mendeteksi.

Gambar =.%. #ensor ultrasonik

+ontoh menggunakan sensor ultrasonik dengan NXJB

import le&os.n>t.IJ

CII I #imple test o$ the Lego :ltra#onic #ensor. I I Kauthor La%rie (ri$$iths

1"

I IC public class #onicTest L

public static "oid main,#tringMN args- thro%s <>ception L :ltrasonic#ensor sonic O ne% :ltrasonic#ensor,#ensor)ort.#2-J

%hile,P*utton.<#+9)<.is)ressed,-- L L+0.clear,-J L+0.dra%#tring,sonic.get=ersion,-1 01 0-J L+0.dra%#tring,sonic.get)roduct!0,-1 01 2-J L+0.dra%#tring,sonic.get#ensorType,-1 01 2-J Thread.sleep,200-J L+0.dra%!nt,sonic.get0istance,-1 01 8-J L+0.re$resh,-J Thread.sleep,;00-J Q Q Q

0alam menggunakan sensor ultrasonic1 untuk membuat :ltrasonic#ensorB

:ltrasonic#ensor sonic O ne% :ltrasonic#ensor,#ensor)ort.#2-J

9gar sensor ini dapat beker&a maka harus menun&ukkan port mana sensor tersebut terhubung. )ada contoh ini sensor terhubung dengan port 2. #edangkan untuk mengetahui &arak dari sensor ke ob&ek maka digunakan methodB

19

sonic.get0istance,-

+. S#nsor S#ntuh #ensor se#$1h beker&a seperti indra peraba pada manusia. (unanya untuk membuat robot kalau tersentuh akan bereaksi seperti ber&alan mundur1 belok kekanan atau kekiri1 dan lain'lain tergantung programnya

Gambar =.(. #ensor sentuh

+ontoh penggunaan sensor ini.

import (ejos!&)t!*C+; import (ejos!&)t!Se&sor,ort; import (ejos!&)t!-o.chSe&sor;

p.b(ic c(ass -o.ch-est / p.b(ic static void mai&0Stri&g12 args3 thro4s 5)ceptio& / -o.chSe&sor to.ch 6 &e4 -o.chSe&sor0Se&sor,ort!S 3; 4hi(e 07to.ch!is,ressed033 / *C+!dra4Stri&g08Start89 29 33; : *C+!dra4Stri&g08;i&ished89 9 3; :

12

:ntuk menciptakan penggunaan sensor sentuh yaitu menggunakan methodB -o.chSe&sor to.ch 6 &e4 -o.chSe&sor0Se&sor,ort!S 3; dan untuk melakukan respon dari sensor ini dengan cara penekanan pada sensor tersebut1 maka dengan menggunakan method is,ressed03! MprogramN E. S#nsor Warna #ensor %arna adalah sensor yang bersi$at e>terocepti"e dan akti$. #ensor ini dapat membaca intensitas cahaya di suatu ruangan dan mengukur intensitas cahaya dari permukaan yang %arnanya berbeda. #ensor ini memiliki peran yang penting dalam mendeteksi garis yang diikuti dan mendeteksi persimpangan.

(ambar 8.8. #ensor Garna

+ontoh penggunaan sensor %arnaB

import le&os.n>t.+olorLight#ensorJ import le&os.n>t.L+0J import le&os.n>t.#ensor)ortJ import le&os.robotics.+olors.+olorJ

+,

public class +olor#ensorTest L pri"ate +olorLight#ensor colorDsensorJ public "oid read+olors,-L colorDsensor O ne% +olorLight#ensor,#ensor)ort.#21 +olorLight#ensor.T5)<D+ALA <0-J colorDsensor.calibrateFigh,-J colorDsensor.set?loodlight,+olor. <0-J int light=alueJ %hile,true-L light=alue O colorDsensor.read=alue,-J L+0.dra%#tring,RLight =alueB R S light=alue1 01 2-J L+0.dra%#tring,R edB R S colorDsensor.get ed+omponent,-1 01 8-J L+0.dra%#tring,R(reenB R S colorDsensor.get(reen+omponent,-1 01 @-J L+0.dra%#tring,R*lueB R S colorDsensor.get*lue+omponent,-1 01 ;-J Q Q public static "oid main,#tring MN args-L #ystem.out.print,R#tart )rogramR-J +olor#ensorTest c O ne% +olor#ensorTest,-J c.read+olors,-J Q Q

5. S#nsor Suara #ensor suara adalah sensor yang digunakan untuk mendeteksi adanya suara. #ensor ini disesuaikan dengan kemampuan pendengaran manusia1 yaitu antara 20 FT sampai 20 KFT. #ensor suara pada Lego Mind#torms NXT digunakan

+1

untuk mengukur intensitas suara lingkungan. #ensor ini dapat mendeteksi suara sampai maksimum 30 desibel ,db-.

(ambar 8.@. #endor #uara

+ontoh menggunakan sensor suaraB import (ejos!&)t!<; p.b(ic c(ass So.&dScope / p.b(ic static void mai&0Stri&g12 args3 thro4s 5)ceptio& / So.&dSe&sor so.&d 6 &e4 So.&dSe&sor0Se&sor,ort!S 3; 4hi(e 07=.tto&!5SCA,5!is,ressed033 / *C+!c(ear03; 'or 0i&t i 6 #; i > ##; i??3 / *C+!set,i)e(0 9 i9 "# @ 0so.&d!readAa(.e03 B 233; -hread!s(eep02#3; : : : :

G. Aktuator :N!" motor; Motor ber$ungsi untuk menggerakkan bagian robot1 seperti memutar roda atau men&adi sendi. #atu brick dapat dipasangi hingga 8 motor. LeJA# mampu mengelola beberapa &enis aktuator. Jika akan membangun robot mobil dengan NXT1 maka dapat menggunakan NXT motor atau motor lain yang dimiliki oleh lego.

++

(ambar 8.;. 9ktuator

+ontoh kode program menggunakan NXT motorB import (ejos!&)t!<;

p.b(ic c(ass -estCotor / p.b(ic static void mai& 0Stri&g12 aArg3 thro4s 5)ceptio& / Stri&g m 68Cotor A: 8;

Cotor!A!setSpeed0 ##3; Cotor!A!'or4ard03;

'or0;;3 / *C+!c(ear03; *C+!dra4Stri&g0m 9#9 3; *C+!dra4D&t0Cotor!A!get-achoCo.&t039E9 3; -hread!s(eep0 ###3; *C+!re'resh03; : :

+3

: )ada contoh ini1 dilakukan setting kecepatan motor 9 dengan intruksiB Cotor!A!setSpeed0 ##3; #edangkan untuk memulai putaran motor digunakan intruksiB Cotor!A!'or4ard03;

Method yang digunakan pada penggunaan sebuah motor yaituB 2. ?or%ard,2. *ack%ard,8. otate,-

@. rotateTo,;. set)o%er,6. set#peed,U. smooth9cceleration,4. stop,-

+4

G.I dan Komunikasi k# N!"


A. L-D Layar pada NXT brick dapat menampilkan dengan U baris dan 22 kolom. L+0 merupakan class yang berman$aat untuk menampilkan nilai dari status robot. )ada contoh berikut1 bagaimana menggunakan +lass L+0.

import (ejos!&)t!<; p.b(ic c(ass Fe((oWor(d/ private static 'i&a( Stri&g 4e(comeCessage68Fe((o Word8; p.b(ic static void mai& 0Stri&g12 args3/ BBSystem!o.t!pri&t(&08Fe((o Wor(d83; *C+!dra4Stri&g04e(comeCessage9#9#3; *C+!re'resh03; : : a! System!o.t import (ejos!&)t!<; p.b(ic c(ass Fe((oWor(d2/ private static 'i&a( Stri&g 4e(comeCessage68Fe((o Word8; p.b(ic static void mai& 0Stri&g12 args3/ i&t i6#; 4hi(e07=.tto&!5SCA,5!is,ressed033 / i??; System!o.t!pri&t(&08Fe((o Wor(d83; BB*C+!dra4Stri&g04e(comeCessage9#9#3; BB*C+!re'resh03; :

: :

+. Komunikasi +0u#tooth :ntuk mempela&ari teknologi LeJA# dapat mengelola koneksi bluetooth dan pertukaran data dengan perangkat bluetooth yang lain. Langkah'langkah menghubungkan dan mengelola perangkat bluetooth yaitu sebagai berikutB 2. Menemukan perangkat *luetooth 2. Menghubungkan dengan perangkat de"ice 8. )ertukaran dara diantara NXT *rick dengan yang lain atau perangkat bluetooth @. Mendengarkan koneksi bluetooth M#n#mukan p#ran/kat b0u#tooth Jika akan menghubungkan dengan NXT brick atau perangkat *luetooth yang lain1 diperlukan 2 halB 2. )erangkat apa yang akan di hubungkanV 2. 9pakah tersedia perangkat yang terhubungV

NXT *rick mempunyai memori untuk menyimpan in$ormasi perangkat bluetooth. Kita dapat menggunakan static methodB +0u#tooth./#tKnownD#6i3#sList:;J untuk mengambil nilai'nilai dari NXT *rick.

+!

Jika pada NXT brick tidak mempunyai data tentang input di sekitar lingkungan1 maka perlu menggunakan +0u#tooth.in>uir#:;.

Gambar 7.%. *luetooh inWuery

*erikut kode program yang men&elaskan konsep

#ekali menemukan perngkat bluetoot yang lain1 maka perlu menambahkan pada NXT *rictB

MprogramN

M#n/hubun/kan d#n/an p#ran/kat #ekali NXT brick menambahkan NXT brick yang lain atau perangkat bluetooth1 maka koneksi sangat mudah dilakukan.

+"

(ambar @.2. #kema koneksi

Langkah pertama membuat ob&ek targetB

emote0e"ice menggunakan nama atau

#etelah memiliki ob&ek emote0e"ice kemudian hubungkan dengan iniB

Jika perangkat bluetooth menun&ukkan iniB

mempunyai

pin

maka

ketika

terhubung1

+9

P#rtukaran data di antara N!" +ri3k d#n/an yan/ 0ain atau p#ran/kat b0u#tooth )ertukaran data antara perangkat NXT dengan yang lain1 ada 2 cara B

Menggunakan set!AMode Menggunakan 0ata!nput#tream

+ara pertama set!AMode ke NXT+onnection. 9G. potongan kode berikut men&elaskan ide ini.

+ontoh lain menggunakan cara ini

+2

+ara yang kedua mengelola koneksi bluetooth1 adalah berikutB

+ontoh kedua menggunakan komunikasi bidirectionalB

M#nd#n/arkan kon#ksi b0u#tooth Jika tu&uannya adalah menghubungkan dengan NXT brick yang lain maka NXT brick kedua harus mendengarkan koneksi bluetooth untuk pertukaran data atau menerima perintah. :ntuk mendengarkan koneksi +0u#tooth.wait5or-onn#3tion:; bluetooth menggunakanB

3,

BTConnection btc = Bluetooth.waitForConnection(); #ekali terhubung dengan NXT brick pengirim maka pertukaran data menggunakan cara iniB

-. Komunikasi .S+ LeJA# mendukung :#* mengirim dan menerima data dari )+ ke NXT. +ontoh pengiriman data dari )+ ke NXT

31

Q Q Q

3+

IMPLEMEN"ASI L#4 S DALAM , + "IKA LEG


A. KE+.".?AN AWAL

N!"

#etelah anda memahami tentang instalasi dan penggunaan bahasa pemrograman le&os untuk sensor dan actuator1 pada bab ini akan dibahas tentang bagaimana implementasi le&os dalam robotika. #ebelum anda melan&utkan di implemetasi le&os dalam robotika1 sebaiknya anda sudah memahami beberapa kosep dasar robotika1 diantaranya adalah B a. Konsep Kinematika Konsep kinematika merupakan konsep pergerakan robot dari mulai gerak keseluruhan maupun perbagian robot. b. Konsep Kecerdasan obot Konsep ini memuat bagaimana kita membuat robot kita cerdas dengan berbagai algoritma yang telah ada. +. PE,AKI"AN , + " Lego Mindstrom NXT dirancang untuk dapat dirakit men&adi berbagai &enis robot. #ecara umum terdapat tiga &enis perakitan robot lego n>t1 yaitu B a. obot beroda obot ini untuk perpindahan posisi menggunakan roda sebagai alat utama. oda telah disediakan dalam paket robot Lego dan merupakan perakitan yang paling mudah. *eberapa contoh obot *eroda yang bisa dibuat degan robot Lego NXTB i. obot Tank

33

Gambar 8.%.

obot Tank

:ntuk cara perakitan dapat dilihat di %eb berikut %%%.n>tprograms.comCNXT2Cmulti'botCinde>.html

ii.

obot Mobil

Gambar 8.(. obot mobil :ntuk perakitan dapat dilihat di %eb berikut httpBCC%%%.n>tprograms.comCNXT2CraceDcarCinde>.html iii. obot *erroda 2

Gambar 8.=. obot beroda dua :ntuk perakitan dapat dilihat di %eb berikut httpBCC%%%.n>tprograms.comCNXT2Cseg%ayCinde>.html #ecara lengkap beberapa robot beroda yang lain dapat dilihat di %eb berikut httpBCC%%%.n>tprograms.comCpro&ects2.html

34

b.

obot berkaki obot berkaki menggunakan alat selain roda sebagai untuk perpindahan robot1 secara garis besar perbedaan yang paling utama adalah alat penggerak.*eberapa contoh robot kerkaki adalah sebai berikut B

i.

obot

Kala&engking

Gambar 8.7.

obot Kala&engking

:ntuk perakitan dapat dilihat di %eb berikut httpBCC%%%.sWuidoo.comCMindstorms'L<(A'Mindstorms'NXT

ii.

obot 9ligator

Gambar 8.8. obot 9ligator

:ntuk perakitan dapat dilihat di %eb berikut httpBCC%%%.sWuidoo.comCMindstorms'L<(A'Mindstorms'NXT

c. robot manusia obot ini hampir sama dengan robot berkaki1 akan tetapi hanya menggunakan 2 kaki seperti manusia1 sehingga kinematika yang digunakan cukup berbeda1 dan memerlukan keseimbangan yang sangat tinggi. *erikut adalah contoh robot manusia dari L<(A NXT yaitu 9lpha e>

3!

(ambar ;.6.

obot Manusia

:ntuk perakitan dapat dilihat di %eb berikut httpBCCus.mindstorms.lego.comCen' usC+ommunityCNXTLogC0isplay)ro&ect.asp>VidO862a36@3'2$c8'@42;' b$c;'0$2$2;4@32Ub

-. IMPLEMEN"ASI :ntuk implementasi pada robot1 akan dicontohkan cara penggunaan pada robot mobil. #ecara garis besar untuk robot mobil dibagai men&adi 8 bagian yaitu B i. #ensor ultra sonic #ensor ini digunakan untuk mendeteksi obstacle yang ada disekelilingnya sehingga tidak ter&adi tabrakan. ii. Motor 9 :ntuk motor 9 digunakan untuk kontrol steering atau arah dari pergerakan mobil. Jika kita analogikan dengan mobil maka bagian ini merupakan bagian kemudi. iii. Motor * dan + Motor * dan + digunakan untuk control bergerak ma&u1 mundur maupun berhenti. *erikut gambar dari robot mobil yang akan digunakan.

(ambar ;.U.

obot 9utonomous Mobil

3"

:ntuk implementasi Le&os dalam obot Mobil ini diperlukan pemahaman kemudi yang baik dan kemungkinan arah yang bisa dilakukan. *erikut Kode sumber untuk membuat 9utonomous Mobil 2. import le&os.n>t.IJ 2. CII 8. #imple test o$ 9utonomous +ar @. I ;. Kauthor Tim obot !? :N0!) 6. I U. IC 4. public class #imulasiLego L 3. CI !nitialiTation "ariable IC 20. static int Le$t0istanceJ 22. static int ight0istanceJ 22. static int ?rontal0istanceJ 28. static int angleJ 2@. static int speedJ 2;. CIMain method %hich start programIC 26. public static "oid main,#tringMN args- thro%s <>ception L 2U. CI!nitialiTation :ltrasonic sensorIC 24. :ltrasonic#ensor ight#ensor O ne% :ltrasonic#ensor,#ensor)ort.#2-J 23. :ltrasonic#ensor Le$t#ensor O ne% :ltrasonic#ensor,#ensor)ort.#2-J 20. :ltrasonic#ensor ?rontal#ensor O ne% :ltrasonic#ensor,#ensor)ort.#8-J 22. CIL+0 "ie% $or start the programIC 22. L+0.dra%#tring,R(o (o (o (oR1 01 0-J 28. CIGait until )ress button $or run programIC 2@. *utton.%ait?or)ress,-J 2;. %hile,P*utton.<#+9)<.is)ressed,-- L 26. L+0.clear,-J 2U. CIstart treadIC 24. Thread.sleep,200-J 23. CIinput sensor data to "ariabelIC 80. Le$t0istance O Le$t#ensor.get0istance,-J 82. ight0istance O ight#ensor.get0istance,-J 82. ?rontal0istance O?rontal#ensor.get0istance,-J 88. CIsho% to L+0 the sensor data IC 8@. L+0.dra%!nt,Le$t0istance1 01 0-J 8;. L+0.dra%!nt, ight0istance1 01 2-J 86. L+0.dra%!nt,?rontal0istance1 01 2-J 8U. CIbuild ne% ob&ect $rom this class to call all methodIC 84. #imulasiLego robot O ne% #imulasiLego,-J 83. CIcall method go IC @0. robot.go,-J

39

@2. CIsho% result o$ control steering,angle- and speed IC @2. L+0.dra%!nt,angle1 01 8-J @8. L+0.dra%!nt,speed1 01 @-J @@. L+0.re$resh,-J @;. Thread.sleep,;00-J @6. Q @U. Q CIMethod $or +ontrol #teering,angle- and #peed $or a"oid obstacle IC @4. public "oid go,-L @3. CI ule $or +ontrol #teering and #peed IC ;0. i$ ,?rontal0istanceX8; YY ight0istanceX8; YY Le$t0istanceX8; -L ;2. set9ngle,0-J CIcall method set9ngle to rotate steeringIC ;2. +hange#peed,200-J CIcall method +hange#peed to change speedIC ;8. Q ;@. i$ ,?rontal0istanceX8; YY ight0istanceXLe$t0istance YY Le$t0istanceX2; YY Le$t0istanceZ2; -L ;;. set9ngle,2;-J ;6. +hange#peed,200-J ;U. Q ;4. else i$ ,?rontal0istanceX8; YY ight0istanceXLe$t0istance YY Le$t0istanceZ2; -L ;3. set9ngle,U0-J 60. +hange#peed,200-J 62. Q 62. else i$ ,?rontal0istanceX8; YY ight0istanceZLe$t0istance YY ight0istanceX2; YY ight0istanceZ8; -L 68. set9ngle,'2;-J 6@. +hange#peed,200-J 6;. Q 66. else i$ ,?rontal0istanceX8; YY ight0istanceZLe$t0istance YY ight0istanceZ2; -L 6U. set9ngle,'U0-J 64. +hange#peed,200-J 63. Q U0. else i$ ,,?rontal0istanceZ8; YY ?rontal0istanceX2;YY ight0istanceXLe$t0istance YY Le$t0istanceX2; YY Le$t0istanceZ8; -L U2. set9ngle,U0-J U2. +hange#peed,200-J U8. Q U@. else i$ ,,?rontal0istanceZ8; YY ?rontal0istanceX2;YY ight0istanceZLe$t0istance YY ight0istanceX2; YY ight0istanceZ8; -L U;. set9ngle,'U0-J

32

U6. UU. U4. U3. 40. 42. 42. Q

+hange#peed,200-J Q else i$ , ?rontal0istanceZ2; -L set9ngle,0-J +hange#peed,'2;-J Q

48. CIMethod +hange#peed $or change speed o$ both motorIC 4@. public "oid +hange#peed, int i4;. L 46. Motor.*.set#peed,i-J 4U. Motor.+.set#peed,i-J 44. i$ ,iX0-L 43. Motor.*.back%ard,-J 30. Motor.+.back%ard,-J 32. Q 32. elseL 38. Motor.*.$or%ard,-J 3@. Motor.+.$or%ard,-J 3;. Q 36. speed O iJ 3U. Q 34. CIMethod $or change angle o$ motor 9IC 33. public "oid set9ngle, int &200. L 202. Motor.9.set#peed,200-J 202. Motor.9.rotateTo,&-J 208. angle O &J 20@. Q 20;. Q

4,

REFERENSI

[1] Antonelli, G.; Chiaverini, S.; Fusco, G. A Fuzzy-Logic-Base A!!roach "or #o$ile %o$ot &ath 'rac(ing.)*** 'ransactions on Fuzzy Syste+s , ,olu+e- 1. , )ssue- / &u$lication 0ear- /112 , &age3s4- /11 - //1 [/] &resentation - &ro"essor 5ani 5agras -'he the 6niversity o" *sse7, *nglan , 68 'he /119 )*** )nternational Con"erence on Fuzzy Syste+s, :e;u )slan , 8orea,August /119 [<] #. Sya+saA r isas+ita=. >Pengembangan Robot Mobil Otonom Menggunakan Sistem Kendall Fuzzy Dan Jaringan Syaraf Tiruan >.%isalah Lo(a(arya 8o+!utasi ala+ Sains an 'e(nologi ?u(lir @),, :uli /11< 31.2-121 [A] A. Loria an *. &anteley, BCasca e nonlinear ti+e-varying syste+s-Analysis an esign,C in A vance 'o!ics in Control Syste+s 'heory.Berlin, Ger+any- S!ringer,erlag, /11., !!. /<DEA. [.] Len e(, F.; Ba$us(a, %.; Ge Schutter, B.Sta$ility o" Casca e Fuzzy Syste+s an H$servers., )*** 'ransactions on Fuzzy Syste+s, ,olu+e- 12 , )ssue- < 0ear/119 , &age3s4- EA1 D E.< [E] #ar, :.; 5ung-'a Lin.'he car-"olloIing an syste+ $ase 9/A [2] SiegIart, %olan an )llah %. ?our$a(hsh. 3/11A4. )ntro uction to Autono+ous on the casca e lane-changing collision !revention

"uzzy in"erence syste+ .)*** 'ransactions on

,ehicular 'echnology ,olu+e- .A , )ssue- < &u$lication 0ear- /11. , &age3s4- 911 D

#o$ile %o$ots, Lon on- #)' &ress. [J] htt!-KKen.Ii(i!e ia.orgKIi(iKAuto+ate Lgui e Lvehicle. Gia(ses !a a tanggal / A!ril /111, !u(ul 12-11 [9] 8earney %*, Stein %B, &ara+esIaran L- ) enti"ication o" intrinsic an AA-A9<-.1A. re"le7

contri$utions to hu+an an(le sti""ness yna+ics. )*** 'rans Bio+e *ng 1992,

41

[11] #ir$agheri ##, Bar$eau 5, 8earney %*- )ntrinsic an /111, 1<.-A/<-A<E.

re"le7 contri$utions to

hu+an an(le sti""ness- ,ariation Iith activation level an !osition. *7! Brain %es

[11] Laila Ali$iglou, et al.'he relation $etIeen AshIorth scores an neuro+echanical +easure+ents o" s!asticity "olloIing stro(e.:ournal o" ?euro*ngineering an %eha$ilitation /11J

4+

Anda mungkin juga menyukai