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 : irwansh@cs.its.ac.id Abstrak Perkembangan teknologi ng berkembang saat ini terus membuka berbagai alternatif baru dalam pemanfaatan teknologi robot ng lebih efisien dan cepat. Salah satu teknologi robot ng 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 ng dapat disimulasikan pada robot adalah permainan Tic Tac Toe. Penulis berusaha membuat sebuah robot ng mampu bermain Tic Tac Toe melawan manusia dengan mengimplementasikan suatu konstruksi dan algoritma ng digunakan, maka robot mampu untuk bermain Tic Tac Toe tanpa bantuan komputer maupun alat pemroses lainn. Kata Kunci :, 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 ng secara tetap diadakan tiap tahun bertambah khususn di kalangan mahasiswa. Namun perkembangan robotika han di kalangan mahasiswa saja, tetapi juga pada kalangan SD, SMP maupun SMA. ng digunakan adalah LEGO ROBOTIC itu sebuah produk lego ng bisa dirangkai menjadi sebuah robot dan dapat diprogram dari komputer. LEGO ic ini memadukan kemampuan mekanika dan kemampuan programming untuk memecahkan berbagai masalah. Di Indonesia baru dirintis 7 tahun lalu. Sedangkan event lomba robot tingkat SD, SMP dan SMA baru dirintis tahun 2005 dengan diselenggarakann Indonesian ics Olympiad (IRO) di Medan. Sekarang ini sudah bank bahasa ng bisa digunakan untuk memprogram LEGO ic ini 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 ng pesat, khususn LEGO ic, di kalangan SD dan SMP, penulis merasa perlu memperkenalkan programming LEGO ic dengan menggunakan bahasa NXC. 2. LEGO Mindstorm NXT LEGO Mindstorm NXT adalah robot ng sangat mengasikan untuk bermain secara kreatif, karena disusun dari komponenkomponen ng bisa dilepas pasang. Kita dapat membangun berbagai konstruksi robot, kemudian memrogrammn 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 lar LCD Speaker untuk mengeluarkan suara Empat Tombol (Cancel, OK, Left, Right). 1 ANDRI IRWANTO - 5106100142
Selain itu Brick dapat menerima masukan dari 4 sensor, dan menjalankan 3 motor. Gambar 2.10 Sensor Ultrasonik Gambar 2.7 Komponen komponen NXT 2.3.1.2 Motor Motor berfungsi untuk mengerakan bagian robot, seperti memutar roda atau menjadi sendi. Satu brick bisa dipasangi hingga 3 motor. 2.3.1.5 Sensor Caha Sensor caha seperti mata, berguna untuk mengetahui gelap terangn sesuatu (mode pasif). Pada mode aktif, bisa memancarkan caha dan menerima pantulann, antara lain untuk membedakan warna benda. Gambar 2.11 Sensor Caha 2.3.1.6 Sensor Suara Sensor suara berfungsi seperti telinga, itu untuk kap suara. 2.3.1.3 Sensor Sentuh Gambar 2.8 Motor Sensor sentuh berkerja seperti indra peraba pada manusia. Gunan untuk membuat robot ng kalau tesentuh akan bereaksi seperti berjalan mundur,belok ke kanan atau ke kiri,dll tergantung progamn. Gambar 2.9 Sensor Sentuh 2.3.1.4 Sensor Ultrasonik Sensor Ultrasonik berfungsi seperti mulut dan telinga pada kelelawar, memancarkan Ultrasonik dan mendengar pantulann supa dapat memperkirakan jarak benda di depann. 3. NXC Gambar 2.12 Sensor Suara NXC singkatan Not exactly C. Ini adalah bahasa sederhana untuk pemrograman LEGO NXT INDSTORMS produk. NXT ini memiliki juru bytecode (disediakan oleh LEGO), ng dapat digunakan untuk menjalankan program. NXC compiler menerjemahkan program sumber menjadi bytecode NXT, ng 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 bank ng berasal dari keterbatasan bytecode interpreter NXT. Logikan, NXC didefinisikan sebagai dua bagian ng terpisah. Bahasa NXC menjelaskan sintaks ng akan digunakan dalam penulisan program. The NXC Application Programming Interface (API) 2 ANDRI IRWANTO - 5106100142
menjelaskan fungsi sistem, konstanta, dan macro ng dapat digunakan oleh program. API ini didefinisikan dalam file khusus ng dikenal sebagai file header "" ng, secara default, termasuk secara otomatis ketika mengkompilasi program. Main lagi Pen Dokumen ini menjelaskan kedua bahasa NXC dan API NXC. Singkatn, ia menyediakan informasi ng diperlukan untuk menulis program NXC. Karena terdapat antarmuka ng berbeda untuk NXC, dokumen ini menjelaskan bagaimana untuk menggunakan implementasi NXC tertentu (seperti compiler baris perintah atau Bricx Command Center). Lihat dokumentasi ng diberikan dengan alat NXC, seperti NXC User Manual, untuk informasi khusus untuk implementasi itu. Gerak Cek Cek robot Pen robot Main lagi Gerak robot keluar 4. Desain dan Implementasi Sistem Pada bab ini akan dijelaskan hal-hal ng berkaitan dengan desain dan implementasi sistem ng akan dibuat dalam Tugas Akhir ini 4.1 Arsitektur sistem Tic Tac Toe dirancang sebagai aplikasi dengan Brick sebagai otak utama ng di dalamn terdapat program dan motor sebagai aktuator ng mampu menggerakkan robot agar maupun robot sendiri dapat mengisi bola pada setiap sel ng ada di dalam papan permainan Tic Tac Toe. Pada lar LCD terdapat tampilan papan ng dipergunakan oleh untuk memainkan Tic Tac Toe. Untuk mengisi sel-sel tersebut harus menggunakan alat input berupa tombol-tombol ng ada di brick NXT. robot sendiri juga memiliki algoritma agar bisa beramin Tic Tac Toe melawan manusia. Program juga berfungsi untuk menggerakkan motor agar 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 ng telah dijelaskan. Gambar 4.1 Arsitektur Umum Sistem 4.2 Mengatur Gerakan Tic Tac Toe ini menggunakan tiga motor ng digunakan untuk malakukan gerakakan agar bola dapat dimasukkan ke tiaptiap sel pada papan permainan Tic TAc Toe ng sesuai gerakan ng diinginkan maupun sesuai gerakan robot sendiri. Motor A berfungsi untuk memutar papan permainan Tic Tac Toe. Bola ng 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 ng akan dimasukkan ke dalam sel bisa tepat pada posisin. Dan motor ng terakhir adalah motor C ng berfungsi untuk melontarkan bola agar masuk ke papan permaianan. Motor C ini akan membawa Sembilan bola ng disusun secara bergantian antara bola warna putih dan bola waran hitam. Bola warna hitam digunakan untuk menandai gerakan, 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 lar LCD dari Brick NXT, kita bisa membuat papan permainan ng terdiri atas empat garis ng disusun sedemikain hingga menjadi papan permainnan Tic Tac Toe 3x3. Garis dapat dibuat dengan memanfaatkan fungsi API ng disediakan oleh firmware atau sistem operasi standart NXT. Gerakan ditandai 3 ANDRI IRWANTO - 5106100142
dengan simbol silang, sedangkan gerakan untuk robot sendiri ditandai dengan symbol lingkaran. Untuk membedakan antara gerakan maupun gerakan robot, maka untuk nilai positif akan digambar X sebagai tanda gerakan, sedangkan untuk nilai negative akan digambar O (lingkaran) sebagai tanda gerakan robot pada lar LCD NXT. Input ng digunakan adalah tombol kanan, tombol kiri, tombol tengah, dan tombol cancel. Tombol inilah ng digunakan untuk melakukan gerakan ng ada pada lar LCD NXT. mneghadang gerakan Belum ada Mengecek pe Menghadang gerak Pemain robot mengisi sel tengah Papan tengan kosong Menggambar papan positif Menggambar X Sebagai tanda gerakan Mengecek positif/negatif negatif Menggambar O Sebagai tanda gerakan robot Gambar 4.2 Perancangan Tampilan 4.4 Perancangan Algoritma ng digunakan Algoritma ng digunakan berfungsi agar robot dapat memutuskan gerakn secara maksimal. Algoritma ini diperlukan agar robot bisa menghambat gerak agar bisa mekan permainan, hal ini bisa diketahui apabila setelah dicek ternta skor untuk adalah dua. Selain itu, Algoritma ng digunakan mampu melihat apakah dalam permaian ini keluar sebagai pe atau robot ng keluar sebagai pe melakukan gerakn lain Gambar 4.3 Perancangan Algoritma 4.5 Perancangan Gerakan Pemain Untuk melakukan gerakan, harus menggunakan tombola arah kanan, kiri, maupun tombol tengah. Tombol kanan dan tombol kiri digunakan untuk memilih lokasi sel mana ng nantin akan diisi oleh tanda X, kemudian tombl tengah berfungsi untuk melakukan gerakan sesuai sel ng telah dipilih tadi dengan tanda X. Gerakan diincrement satu kanan tengah Menekan tombol kiri Gerakan didecrement satu Menggambar simbol X pada sel ng telah dipilih Gambar 4.4 Perancangan Gerakan Pemain 5. Uji Coba Uji coba ng dilakukan adalah uji coba fungionalitas dari aplikasi ng telah dibuat. 5.1 Uji coba fungsionalitas Uji coba ini dilakukan untuk melihat apakah fungsi-fungsi dasar dari perangkat 4 ANDRI IRWANTO - 5106100142
lunak ini berjalan sebagaimana mestin atau. 5.1.1 Menampilkan Papan Tic Tac Toe Lar LCD digunakan untuk menampilkan papan permainan Tic Tac Toe, lar ini ng nantin akan digunakan oleh untuk mengontrol gerakan itu sendiri. 5.1.4 Gerakan Pemain Untuk gerakan disediakan LCD sebagai alat output dan tombol sebagai alat inputann. Pemain han bisa melakukan gerakan di papan ng seln kosong. Kemudian apabila menekan tombol tengah, maka tanda X akan ditempatkan pada sel tersebut. Gambar 5.1 Tampilan Papan Permainan Input ng 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 ng membantu untuk menentukan gerakann. 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 ng dinginkan oleh maupun robot dapat tepat dan akurat. Gambar 5.4 Posisi Kursor Telah Digerakkan oleh 5.2 Uji coba performa 5.2.1 Mengalahkan Pemain Pada uji coba ini sengaja mengalah agar robot bisa mekan permainan. Pada uji coba ini akn dihitung jumlah step ng terjadi ketika robot mengalahkan serta mekanikal errorn. Gambar 5.5 Mekan Permainan Gambar 5.2 Gerakan Motor 5.1.3 Algoritma Untuk Gerakan Agar robot mampu bermain dengan, maka diperlukan algoritma supa robot dapat melakukan gerakan ng maksimal. Berikut iki uji coba agar robot mampu menghadang gerak agar bisa mekan permainan. Tabel 5.1 Informasi Percobaan Pe Step 8 Mekanikal error - 5.2.1 Menghadang Gerakan Pemain Pada uji coba ini akan dilihat apakah robot mampu menghadang gerak agar bisa mekan permainan. Gambar Menghadang Gerakan Pemain Gambar 5.3 Gerakan 5 ANDRI IRWANTO - 5106100142
Tabel 5.2 Informasi Percobaan II Pe 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 ng diputar dengan kecepatan dan sudut putar tertentu. Berikut ini merupakan hasil pengujian untuk merotasi motor. Tabel 5.3 Menghitung Persen Error Motor pada rotasi 720 0 Rotasi ke NXC LeJOS 1 2 0 0 0 2 2 0 0 0 3 3 0 0 0 4 3 0 0 0 5 4 0 0 0 6 4 0 0 0 7 3 0 0 0 8 3 0 0 0 9 4 0 0 0 10 3 0 0 0 Total error 31 0 0 0 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 ng merupakan standat firmware dari NXT. 6. Kesimpulan Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba perangkat lunak ng dilakukan, dapat diambil kesimpulan sebagai berikut : 1. Sistem ng dibuat sudah mampu memenuhi kebutuhan sebagai aplikasi ng 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 han 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 ng menggunakan firmware asli NXT. 7. Saran Berikut merupakan beberapa saran untuk pengembangan sistem di masa ng akan datang, berdasar pada hasil perancangan, implementasi, dan uji coba ng telah dilakukan. 1. Membuat robot ng bisa bermain Tic Tac Toe pada papan selain 3x3. 2. Membangun konstruksi robot ng lebih baik agar dihasilkan keakuratan gerak ng lebih sempurna. 3. Penggunaan bahasa pemrograman ng berbeda agar lebih bisa digunakan dengan terbatas pada semua robot dan komputer. 4. Penggunaan algoritma ng lebih baik sehingga bisa menghasilkan langkah robot ng lebih efektif. 8. Daftar pustaka 1. Benedettelli, Daniele, Lego Mindstorms NXT Thinking s, 2010, no starch press. 2. Hansen, John C, Lego Mindstorm NXT Power Programming ics 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 NXT, Tugas Akhir, Jurusan Teknik Informatika, Fakultas Teknologi Informasi ITS, Suraba 6 ANDRI IRWANTO - 5106100142