IMPLEMENTASI ROBOT NXT LEGO PADA PERMAINAN TIC...
Transcript of IMPLEMENTASI ROBOT NXT LEGO PADA PERMAINAN TIC...
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