implementasi robot nxt lego pada permainan tic...

6
TUGAS AKHIR PERIODE JULI 2010 1 ANDRI IRWANTO - 5106100142 IMPLEMENTASI ROBOT NXT LEGO PADA PERMAINAN TIC TAC TOE Andri Irwanto Wahyu Suadi, S.Kom.,M.Kom.,M.M Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi e-mail : [email protected] Abstrak Perkembangan teknologi yang berkembang saat ini terus membuka berbagai alternatif baru dalam pemanfaatan teknologi robot yang lebih efisien dan cepat. Salah satu teknologi robot yang terkenal saat ini adalah LEGO NXT dengan platform Mindstorm NXT. Lego Mindstorm NXT menawarkan lebih dari sekedar mainan. Lego Mindstorm NXT ini memungkinkan pembangunan robot dengan menggunakan beberapa motor dan juga sensor. Sebuah contoh sederhana yang dapat disimulasikan pada robot adalah permainan Tic Tac Toe. Penulis berusaha membuat sebuah robot yang mampu bermain Tic Tac Toe melawan manusia dengan mengimplementasikan suatu konstruksi dan algoritma yang digunakan, maka robot mampu untuk bermain Tic Tac Toe tanpa bantuan komputer maupun alat pemroses lainnya. Kata Kunci : Robot, LEGO, NXT, Tic Tac Toe. 1. PENDAHULUAN Perkembangan robotika di tanah air selama beberapa tahun terakhir ini terus mengalami peningkatan. Peserta event-event lomba robot yang secara tetap diadakan tiap tahun mulai bertambah khususnya di kalangan mahasiswa. Namun perkembangan robotika tidak hanya di kalangan mahasiswa saja, tetapi juga pada kalangan SD, SMP maupun SMA. Robot yang digunakan adalah LEGO ROBOTIC yaitu sebuah produk lego yang bisa dirangkai menjadi sebuah robot dan dapat diprogram dari komputer. LEGO Robotic ini memadukan kemampuan mekanika dan kemampuan programming untuk memecahkan berbagai masalah. Di Indonesia baru mulai dirintis mulai 7 tahun lalu. Sedangkan event lomba robot tingkat SD, SMP dan SMA baru mulai dirintis tahun 2005 dengan diselenggarakannya Indonesian Robotics Olympiad (IRO) di Medan. Sekarang ini sudah banyak bahasa yang bisa digunakan untuk memprogram LEGO Robotic ini mulai dari icon based programming seperti ROBOLAB (untuk siswa SD dan SMP) dan text based programming (Untuk SMA) seperti Visual Basic, C (NXC), LegOS, BrickOS dan Java. Melihat perkembangan robotik yang pesat, khususnya LEGO Robotic, di kalangan SD dan SMP, penulis merasa perlu memperkenalkan programming LEGO Robotic dengan menggunakan bahasa NXC. 2. LEGO Mindstorm NXT LEGO Mindstorm NXT adalah robot yang sangat mengasikan untuk bermain secara kreatif, karena disusun dari komponen- komponen yang bisa dilepas pasang. Kita dapat membangun berbagai konstruksi robot, kemudian memrogrammnya untuk berbagai tugas. 1.2.1 Komponen 1.2.1.1 Brick Brick adalah komponen paling penting dari robot NXT, karena berfungsi sebagai pengendali (otak robot). Brick dapat diisi program untuk melakukan berbagai aksi. Gambar 2.6 Gambar BRICK Untuk interaksi langsung, pada Brick terdapat: Satu layar LCD Speaker untuk mengeluarkan suara Empat Tombol (Cancel, OK, Left, Right).

Upload: ngothuan

Post on 02-Mar-2019

237 views

Category:

Documents


0 download

TRANSCRIPT

TUGAS AKHIR PERIODE JULI 2010

1 ANDRI IRWANTO - 5106100142

IMPLEMENTASI ROBOT NXT LEGO PADA PERMAINAN TIC TAC

TOE

Andri Irwanto – Wahyu Suadi, S.Kom.,M.Kom.,M.M

Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi

e-mail : [email protected]

Abstrak

Perkembangan teknologi yang

berkembang saat ini terus membuka berbagai

alternatif baru dalam pemanfaatan teknologi

robot yang lebih efisien dan cepat. Salah satu

teknologi robot yang terkenal saat ini adalah

LEGO NXT dengan platform Mindstorm

NXT.

Lego Mindstorm NXT menawarkan

lebih dari sekedar mainan. Lego Mindstorm

NXT ini memungkinkan pembangunan robot

dengan menggunakan beberapa motor dan juga

sensor. Sebuah contoh sederhana yang dapat

disimulasikan pada robot adalah permainan Tic

Tac Toe. Penulis berusaha membuat sebuah

robot yang mampu bermain Tic Tac Toe

melawan manusia dengan

mengimplementasikan suatu konstruksi dan

algoritma yang digunakan, maka robot mampu

untuk bermain Tic Tac Toe tanpa bantuan

komputer maupun alat pemroses lainnya.

Kata Kunci : Robot, LEGO, NXT, Tic Tac

Toe.

1. PENDAHULUAN Perkembangan robotika di tanah air

selama beberapa tahun terakhir ini terus

mengalami peningkatan. Peserta event-event

lomba robot yang secara tetap diadakan tiap

tahun mulai bertambah khususnya di kalangan

mahasiswa. Namun perkembangan robotika

tidak hanya di kalangan mahasiswa saja, tetapi

juga pada kalangan SD, SMP maupun SMA.

Robot yang digunakan adalah LEGO

ROBOTIC yaitu sebuah produk lego yang bisa

dirangkai menjadi sebuah robot dan dapat

diprogram dari komputer. LEGO Robotic ini

memadukan kemampuan mekanika dan

kemampuan programming untuk memecahkan

berbagai masalah.

Di Indonesia baru mulai dirintis mulai 7

tahun lalu. Sedangkan event lomba robot

tingkat SD, SMP dan SMA baru mulai dirintis

tahun 2005 dengan diselenggarakannya

Indonesian Robotics Olympiad (IRO) di

Medan.

Sekarang ini sudah banyak bahasa yang

bisa digunakan untuk memprogram LEGO

Robotic ini mulai dari icon based

programming seperti ROBOLAB (untuk siswa

SD dan SMP) dan text based programming

(Untuk SMA) seperti Visual Basic, C (NXC),

LegOS, BrickOS dan Java. Melihat

perkembangan robotik yang pesat, khususnya

LEGO Robotic, di kalangan SD dan SMP,

penulis merasa perlu memperkenalkan

programming LEGO Robotic dengan

menggunakan bahasa NXC.

2. LEGO Mindstorm NXT

LEGO Mindstorm NXT adalah robot yang

sangat mengasikan untuk bermain secara

kreatif, karena disusun dari komponen-

komponen yang bisa dilepas pasang. Kita

dapat membangun berbagai konstruksi robot,

kemudian memrogrammnya untuk berbagai

tugas.

1.2.1 Komponen

1.2.1.1 Brick

Brick adalah komponen paling penting

dari robot NXT, karena berfungsi sebagai

pengendali (otak robot). Brick dapat diisi

program untuk melakukan berbagai aksi.

Gambar 2.6 Gambar BRICK

Untuk interaksi langsung, pada Brick terdapat:

Satu layar LCD

Speaker untuk mengeluarkan suara

Empat Tombol (Cancel, OK, Left,

Right).

TUGAS AKHIR PERIODE JULI 2010

2 ANDRI IRWANTO - 5106100142

Selain itu Brick dapat menerima masukan dari

4 sensor, dan menjalankan 3 motor.

Gambar 2.7 Komponen – komponen NXT

Robot

2.3.1.2 Motor

Motor berfungsi untuk mengerakan

bagian robot, seperti memutar roda atau

menjadi sendi. Satu brick bisa dipasangi

hingga 3 motor.

Gambar 2.8 Motor

2.3.1.3 Sensor Sentuh

Sensor sentuh berkerja seperti indra

peraba pada manusia. Gunanya untuk

membuat robot yang kalau tesentuh akan

bereaksi seperti berjalan mundur,belok ke

kanan atau ke kiri,dll tergantung progamnya.

Gambar 2.9 Sensor Sentuh

2.3.1.4 Sensor Ultrasonik

Sensor Ultrasonik berfungsi seperti

mulut dan telinga pada kelelawar,

memancarkan Ultrasonik dan mendengar

pantulannya supaya dapat memperkirakan

jarak benda di depannya.

Gambar 2.10 Sensor Ultrasonik

2.3.1.5 Sensor Cahaya

Sensor cahaya seperti mata, berguna

untuk mengetahui gelap terangnya sesuatu

(mode pasif). Pada mode aktif, bisa

memancarkan cahaya dan menerima

pantulannya, antara lain untuk membedakan

warna benda.

Gambar 2.11 Sensor Cahaya

2.3.1.6 Sensor Suara

Sensor suara berfungsi seperti telinga,

yaitu untuk menangkap suara.

Gambar 2.12 Sensor Suara

3. NXC

NXC singkatan Not eXactly C. Ini adalah

bahasa sederhana untuk pemrograman LEGO

NXT INDSTORMS produk. NXT ini memiliki

juru bytecode (disediakan oleh LEGO), yang

dapat digunakan untuk menjalankan program.

NXC compiler menerjemahkan program

sumber menjadi bytecode NXT, yang

kemudian dapat dijalankan pada target itu

sendiri. Meskipun preprocessor dan struktur

pengendalian NXC sangat mirip dengan C,

NXC bukanlah bahasa pemrograman untuk

tujuan umum - ada pembatasan banyak yang

berasal dari keterbatasan bytecode interpreter

NXT.

Logikanya, NXC didefinisikan sebagai dua

bagian yang terpisah. Bahasa NXC

menjelaskan sintaks yang akan digunakan

dalam penulisan program. The NXC

Application Programming Interface (API)

TUGAS AKHIR PERIODE JULI 2010

3 ANDRI IRWANTO - 5106100142

menjelaskan fungsi sistem, konstanta, dan

macro yang dapat digunakan oleh program.

API ini didefinisikan dalam file khusus yang

dikenal sebagai file header "" yang, secara

default, termasuk secara otomatis ketika

mengkompilasi program.

Dokumen ini menjelaskan kedua bahasa

NXC dan API NXC. Singkatnya, ia

menyediakan informasi yang diperlukan untuk

menulis program NXC. Karena terdapat

antarmuka yang berbeda untuk NXC, dokumen

ini tidak menjelaskan bagaimana untuk

menggunakan implementasi NXC tertentu

(seperti compiler baris perintah atau Bricx

Command Center). Lihat dokumentasi yang

diberikan dengan alat NXC, seperti NXC User

Manual, untuk informasi khusus untuk

implementasi itu.

4. Desain dan Implementasi Sistem

Pada bab ini akan dijelaskan hal-hal yang

berkaitan dengan desain dan implementasi

sistem yang akan dibuat dalam Tugas Akhir ini

4.1 Arsitektur sistem

Robot Tic Tac Toe dirancang sebagai

aplikasi dengan Brick sebagai otak utama yang

di dalamnya terdapat program dan motor

sebagai aktuator yang mampu menggerakkan

robot agar pemain maupun robot sendiri dapat

mengisi bola pada setiap sel yang ada di dalam

papan permainan Tic Tac Toe. Pada layar LCD

terdapat tampilan papan yang dipergunakan

oleh pemain untuk memainkan Tic Tac Toe.

Untuk mengisi sel-sel tersebut pemain harus

menggunakan alat input berupa tombol-tombol

yang ada di brick NXT. robot sendiri juga

memiliki algoritma agar bisa beramin Tic Tac

Toe melawan manusia. Program juga berfungsi

untuk menggerakkan motor agar pemain dan

robot dapat menempatkan bola ke dalam papan

permainan Tic Tac Toe secara bergantian.

Berikit ini akan digambarkan diagram alir

untuk permainan Tic Tac Toe sesuai arsitektur

sistem yang telah dijelaskan.

Gerak

pemain

Cek pemain

menang

Gerak robot

Cek robot

menang

Pemenangnya

robot

Pemenangnya

pemain

keluar

Main lagi

Main lagi

ya

tidak

yatidak

ya tidak

ya tidak

mulai

selesai

Gambar 4.1 Arsitektur Umum Sistem

4.2 Mengatur Gerakan Robot

Robot Tic Tac Toe ini menggunakan tiga

motor yang digunakan untuk malakukan

gerakakan agar bola dapat dimasukkan ke tiap-

tiap sel pada papan permainan Tic TAc Toe

yang sesuai gerakan yang diinginkan pemain

maupun sesuai gerakan robot sendiri. Motor A

berfungsi untuk memutar papan permainan Tic

Tac Toe. Bola yang akan masuk ke sel tersebut

akan diatur oleh motor A ini. Kemudian motor

B berfungsi untuk mengatur posisi motor C.

motor B ini akan menggerakkan motor C ke

depan dan ke belakang agar bola yang akan

dimasukkan ke dalam sel bisa tepat pada

posisinya. Dan motor yang terakhir adalah

motor C yang berfungsi untuk melontarkan

bola agar masuk ke papan permaianan. Motor

C ini akan membawa Sembilan bola yang

disusun secara bergantian antara bola warna

putih dan bola waran hitam. Bola warna hitam

digunakan untuk menandai gerakan pemain,

sedangkan untuk bola waran putih digunakan

untuk menandai gerakan robot. Berikut ini

gambaran mengenai gerakan robot dalam

mengisi sel pada papan permainan Tic Tac

Toe.

4.3 Perancangan Tampilan Aplikasi

Dengan memanfaatkan layar LCD dari

Brick NXT, kita bisa membuat papan

permainan yang terdiri atas empat garis yang

disusun sedemikain hingga menjadi papan

permainnan Tic Tac Toe 3x3. Garis dapat

dibuat dengan memanfaatkan fungsi API yang

disediakan oleh firmware atau sistem operasi

standart NXT. Gerakan pemain ditandai

TUGAS AKHIR PERIODE JULI 2010

4 ANDRI IRWANTO - 5106100142

dengan simbol silang, sedangkan gerakan

untuk robot sendiri ditandai dengan symbol

lingkaran. Untuk membedakan antara gerakan

pemain maupun gerakan robot, maka untuk

nilai positif akan digambar X sebagai tanda

gerakan pemain, sedangkan untuk nilai

negative akan digambar O (lingkaran) sebagai

tanda gerakan robot pada layar LCD NXT.

Input yang digunakan adalah tombol kanan,

tombol kiri, tombol tengah, dan tombol cancel.

Tombol inilah yang digunakan pemain untuk

melakukan gerakan yang ada pada layar LCD

NXT.

Menggambar

papan

Mengecek

positif/negatif

Menggambar X

Sebagai tanda

gerakan pemain

Menggambar O

Sebagai tanda

gerakan robot

positif negatif

mulai

selesai

Gambar 4.2 Perancangan Tampilan

4.4 Perancangan Algoritma yang digunakan

Algoritma yang digunakan berfungsi agar

robot dapat memutuskan geraknya secara

maksimal. Algoritma ini diperlukan agar robot

bisa menghambat gerak pemain agar pemain

tidak bisa memenangkan permainan, hal ini

bisa diketahui apabila setelah dicek ternyata

skor untuk pemain adalah dua. Selain itu,

Algoritma yang digunakan mampu melihat

apakah dalam permaian ini pemain keluar

sebagai pemenang atau robot yang keluar

sebagai pemenang

mulai

Mengecek

pemenang

Pemain

menang

Robot

menang

pemain

robot

Belum

ada

Menghadang

gerak pemain

Robot

mneghadang

gerakan

pemain

ya

Papan tengan

kosong

Robot mengisi

sel tengah

Robot

melakukan

gerakn lain

ya

tidak

tidak

selesai

Gambar 4.3 Perancangan Algoritma

4.5 Perancangan Gerakan Pemain Untuk melakukan gerakan, pemain harus

menggunakan tombola arah kanan, kiri,

maupun tombol tengah. Tombol kanan dan

tombol kiri digunakan untuk memilih lokasi

sel mana yang nantinya akan diisi oleh tanda

X, kemudian tombl tengah berfungsi untuk

melakukan gerakan sesuai sel yang telah

dipilih tadi dengan tanda X.

mulai

Menekan

tombol

Gerakan pemain

diincrement satu

Gerakan pemain

didecrement satu

kanan kiri

tengah

Menggambar

simbol X pada sel

yang telah dipilih

selesai

Gambar 4.4 Perancangan Gerakan Pemain

5. Uji Coba

Uji coba yang dilakukan adalah uji coba

fungionalitas dari aplikasi yang telah dibuat.

5.1 Uji coba fungsionalitas

Uji coba ini dilakukan untuk melihat

apakah fungsi-fungsi dasar dari perangkat

TUGAS AKHIR PERIODE JULI 2010

5 ANDRI IRWANTO - 5106100142

lunak ini berjalan sebagaimana mestinya atau

tidak.

5.1.1 Menampilkan Papan Tic Tac Toe

Layar LCD digunakan untuk

menampilkan papan permainan Tic Tac Toe,

layar ini yang nantinya akan digunakan oleh

pemain untuk mengontrol gerakan pemain itu

sendiri.

Gambar 5.1 Tampilan Papan Permainan

Input yang digunakan adalah tombol

kanan, tombol kiri, tombol tengah dan tombol

exit. Tombol kanan dan tombol kiri digunakan

untuk mengarahkan, kemudian tombol tengah

digunakan untuk menaruh bola. Gambar 5-1

dapat dilihat sebuah kursor yang membantu

pemain untuk menentukan gerakannya.

5.1.2 Menggerakkan Motor

Pemain dan robot secara bergantian

melakukan gerakan untuk mengisi papan

permainan. Dibawah ini merupakan hasil

pengujian untuk menggerakkan ketiga motor

agar gerakan yang dinginkan oleh pemain

maupun robot dapat tepat dan akurat.

Gambar 5.2 Gerakan Motor

5.1.3 Algoritma Untuk Gerakan Robot

Agar robot mampu bermain dengan

pemain, maka diperlukan algoritma supaya

robot dapat melakukan gerakan yang

maksimal. Berikut iki uji coba agar robot

mampu menghadang gerak pemain agar tidak

bisa memenangkan permainan.

Gambar 5.3 Gerakan Robot

5.1.4 Gerakan Pemain

Untuk gerakan pemain disediakan LCD

sebagai alat output dan tombol sebagai alat

inputannya. Pemain hanya bisa melakukan

gerakan di papan yang selnya kosong.

Kemudian apabila pemain menekan tombol

tengah, maka tanda X akan ditempatkan pada

sel tersebut.

Gambar 5.4 Posisi Kursor Telah

Digerakkan oleh pemain

5.2 Uji coba performa

5.2.1 Robot Mengalahkan Pemain

Pada uji coba ini pemain sengaja

mengalah agar robot bisa memenangkan

permainan. Pada uji coba ini akn dihitung

jumlah step yang terjadi ketika robot

mengalahkan pemain serta mekanikal errornya.

Gambar 5.5 Robot Memenangkan

Permainan

Tabel 5.1 Informasi Percobaan

Pemenang Robot

Step 8

Mekanikal error -

5.2.1 Robot Menghadang Gerakan Pemain

Pada uji coba ini akan dilihat apakah

robot mampu menghadang gerak pemain agar

pemain tidak bisa memenangkan permainan.

Gambar Robot Menghadang Gerakan

Pemain

TUGAS AKHIR PERIODE JULI 2010

6 ANDRI IRWANTO - 5106100142

Tabel 5.2 Informasi Percobaan II

Pemenang No

Step 9

Mekanikal

error

-

5.2.1 Perbandingan NXC dan LeJOS

Uji coba kali ini untuk membandingkan

tingkat presisi robot ketika menggunakan NXC

maupun menggunakan LeJOS. Uji coba ini

menggunakan sebuah motor yang diputar

dengan kecepatan dan sudut putar tertentu.

Berikut ini merupakan hasil pengujian untuk

merotasi motor.

Tabel 5.3 Menghitung Persen Error Motor

pada rotasi 7200

Rotasi ke NXC LeJOS 1 20 00

2 20 00

3 30 00

4 30 00

5 40 00

6 40 00

7 30 00

8 30 00

9 40 00

10 30 00

Total error 310 00

persen error 0.43% 0%

Dari pengujian diatas dapat diperoleh

hasil bahwa LeJOS masih unggul dalam

tingkat kepresisian gerakan motor bila

dibandingkan dengan menggunakan NXC

yang merupakan standat firmware dari NXT.

6. Kesimpulan

Dari hasil pengamatan selama

perancangan, implementasi, dan proses uji

coba perangkat lunak yang dilakukan, dapat

diambil kesimpulan sebagai berikut :

1. Sistem yang dibuat sudah mampu

memenuhi kebutuhan sebagai aplikasi

yang bisa mengimplementasikan

permainan Tic Tac Toe menggunakan

robot nxt dengan beberapa batasan.

2. Aplikasi ini dapat dijalankan tanpa

menggunakan computer atau server lain

untuk memproses program maupun

algoritma. Untuk sementara penggunaan

robot hanya dapat di deploy pada Lego

Mindstorms NXT dengan firmware

standart.

Uji coba menunjukkan bahwa penggunaan

Firmware LeJOS untuk mengganti

firmware standart NXT terbukti lebih

unggul dalam hal tingkat kepresisian

untuk menggerakkan motor bila

dibandingkan dengan NXC yang

menggunakan firmware asli NXT.

7. Saran

Berikut merupakan beberapa saran untuk

pengembangan sistem di masa yang akan

datang, berdasar pada hasil perancangan,

implementasi, dan uji coba yang telah

dilakukan.

1. Membuat robot yang bisa bermain Tic Tac

Toe pada papan selain 3x3.

2. Membangun konstruksi robot yang lebih

baik agar dihasilkan keakuratan gerak

yang lebih sempurna.

3. Penggunaan bahasa pemrograman yang

berbeda agar lebih bisa digunakan dengan

tidak terbatas pada semua robot dan

komputer.

4. Penggunaan algoritma yang lebih baik

sehingga bisa menghasilkan langkah robot

yang lebih efektif.

8. Daftar pustaka

1. Benedettelli, Daniele, Lego

Mindstorms NXT Thinking Robots,

2010, no starch press.

2. Hansen, John C, Lego Mindstorm

NXT Power Programming Robotics

In C. Second Edition.

3. http://bricxcc.sourceforge.net/nbc/nxc

doc/nxcapi/index.html, tentang

petunjuk pemrograman NXC, diakses

pada 28 Februari 2010.

4. Perdana, Dian, 2010, Penyelesaian

Rubic Cube Dengan Menggunakan

Robot NXT, Tugas Akhir, Jurusan

Teknik Informatika, Fakultas

Teknologi Informasi ITS, Surabaya