i TUGAS AKHIR
PENGGERAK DAN PENGOLAH POSISI ROBOT
STRIKER PADA ROBOT SEPAKBOLA
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh :
NICKOLAUS SATRIA BAGASKARA
NIM : 165114044
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
FINAL PROJECT
MOVEMENT AND POSITION PROCESSING OF
STRIKER ROBOTS IN SOCCER ROBOTS
Presented as Partial Fulfillment of The Requirements To Obtain The Sarjama Teknik Degree
In Electrical Engineering Study Program
NICKOLAUS SATRIA BAGASKARA
NIM : 165114044
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO
:
“Deus Providebit, karena semua akan indah pada saatnya. Selalu
membuat koma dalam hidup”
Skripsi ini saya persembahakan untuk... Tuhan Yesus Juruslamatku Bapak, Ibu, Kakak dan keluarga besar tercinta Dan teman-teman dari teknik elektro lainnya
viii
INTISARI
Dunia akan selalu berkembang dari waktu ke waktu khususnya dalam bidang robotika. Di Indonesia ada suatu wadah yang disediakan oleh pemerintah untuk mengembangkan robotika dalam lingkup kampus, hal ini dinamakan Kontes Robot Indonesia (KRI). Dalam KRI terdapat divisi lomba KRSBI beroda. Hal ini dimanfaatkan oleh teknik elektro untuk pengembangan kreatifitas dan keterampilan dalam bidang robotika.
Penelitian ini menggunakan mini komputer raspberry pi 3 sebagai pengendali utama robot. Pengendalian robot berdasarkan perintah yang dikirimkan dari base station secara wireless. Robot yang dibuat menggunakan bahasa pemrograman Python. Penelitian ini menggunakan Motor DC sebagai penggerak utama, sensor kompas sebagai penentu arah, sensor ping dan kamera sebagai pendeteksi bola, dan sensor rotary encoder untuk mengetahui perpindahan robot.
Dalam penelitian kinerja yang diperoleh dari robot belum memperoleh hasil yang maksimal. Pengujian dari sistem yang dilakukan meliputi pengujian gerakan robot, sensor kompas, rotary encoder, sensor kamera, sensor ping, komunikasi dengan base station, dan pengujian cara bermain robot. Dari pengujian tersebut robot 1 dapat bergerak ke segala arah walaupun tidak sempurna, tetapi robot 2 hanya dapat melakukan 2 gerakan. Komunikasi dengan base staion berhasil dilakukan. Untuk cara bermain robot 1 sudah dapat merespon walapun belum bisa berhenti dengan akurat dan robot 2 dapat mengeluarkan perintah walaupun belum dapat merespon sebab terkendala penggerak.
ix
ABSTRACT
The world will always develop from time to time, especially in robotics. In Indonesia there is a forum provided by the government to develop robotics within the scope of the colage, this is called the Indonesian Robot Contest (KRI). In the KRI there is a KRSBI competition division. This is utilized by electrical engineering for the development of creativity and skills in robotics.
This research uses a Raspberry Pi 3 mini computer as the main controller of the robot. Control of the robot based on commands sent from the base station wirelessly. Robots are made using the Python programming language. This study uses a DC motor as a prime mover, a compass sensor as a direction determinant, a ping sensor and a camera as a ball detector, and a rotary encoder sensor to determine the robot's displacement.
In this research the performance obtained from the robot has not yet maximum. The testing of the system includes testing robot motions, compass sensor, rotary encoder, camera sensor, ping sensor, communication with the base station, and testing how to play the robot. From this test, robot 1 can move in all directions even though it is not perfect, but robot 2 have 2 movement only. Communication with the base station was successfully. For how robot 1 paly has been able to respond even though it has not been able to stop accurately and robot 2 can issue commands even though it has not been able to respond due to constrained movers.
xi
Daftar isi
TUGAS AKHIR ... i
FINAL PROJECT ... ii
Lebar persetujuan ... iii
Lebar Pengesahan ... iv
PERNYATAAN KEASLIAN KARYA ... v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ... vii
KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii
INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
Daftar isi ... xi
Daftar gambar ... xiii
Daftar tabel ... xv
1 BAB I ... 1
1.1 Latar Belakang ... 1
1.2 Tujuan dan Manfaat ... 2
1.3 Batasan Masalah ... 2 1.4 Metodologi Penelitian ... 2 2 BAB II ... 5 2.1 Raspberry Pi 3 ... 5 2.1.1 Spesifikasi ... 5 2.1.2 Port GPIO ... 6 2.2 Python 3.7 ... 7
2.2.1 Modul Open Computer Vision ... 7
2.2.2 Modul Socket.IO ... 9
2.2.3 Modul Serial ... 9
xii 2.3 Kamera ... 11 2.4 Sensor Ultrasonik ... 11 2.5 Sensor kompas ... 12 2.6 Driver Motor BTS 7960 ... 13 2.7 Motor DC ... 13 2.8 Omni Wheel ... 14 2.9 Rotary Encoder ... 14 3 BAB III ... 16 3.1 Diagram Blok ... 16
3.2 Perancangan Perangkat Keras ... 17
3.3 Perancangan Perangkat Lunak ... 18
3.3.1 Perancangan Perangkat Lunak secara umum ... 18
3.3.2 Sub Proses Robot Berjalan Mendekati Target ... 19
3.3.3 Sub Proses Robot Berputar Sampai ke Sudut yang Diingikan ... 20
3.3.4 Sub Proses Mencari Bola ... 21
3.3.5 Sub Proses Mendekati Bola ... 22
3.3.6 Sub Proses Mendekati Bola ... 22
3.3.7 Sub Proses Mengirim ke Penendang ... 23
3.3.8 Sub Proses Menunggu Kabar dari Penendang ... 23
3.3.9 Sub Proses Mencatat Hasil Pergerakan Robot ... 24
3.3.10 Komunikasi data ... 24
3.4 Skema Pengolahan Posisi ... 26
3.4.1 Target Berada di Timur Laut Robot ... 26
3.4.2 Target Berada di Utara Robot ... 26
3.4.3 Target Berada di Barat Laut Robot ... 27
3.4.4 Target Berada di Barat Robot ... 27
3.4.5 Target Berada di Barat daya Robot ... 28
3.4.6 Target Berada di Selatan Robot ... 28
3.4.7 Target Berada di Tenggara Robot ... 29
3.4.8 Target Berada di Timur Robot ... 30
3.4.9 Target berupa berputar... 30
xiii
4.1 Perubahan Perancagan ... 32
4.1.1 Perubahan Kamera ... 32
4.1.2 Perubahan Diagram Alir Utama ... 32
4.1.3 Perubahan diagram alir Sub Proses Mencatat Hasil Pergerakan Robot ... 33
4.1.4 Perubahan Data Komunikasi ... 33
4.2 Implementasi Penelitian ... 34
4.2.1 Hardware robot ... 34
4.2.2 Sistem Kelistrikan ... 37
4.2.3 Software robot ... 37
4.3 Pengujian Robot ... 49
4.3.1 Pengujian Sensor Ping ... 49
4.3.2 Pengujian Kemampuan Gerak Robot ... 51
4.3.3 Pengujian Sensor Rotary Encoder ... 53
4.3.4 Pengujian Pengolahan Data Kamera ... 54
4.3.5 Pengujian Sensor Kompas ... 55
4.3.6 Pengujian Komunikasi dengan Base Station ... 57
4.3.7 Pengujian Cara Bermain Robot ... 58
5 BAB V ... 60
5.1 Kesimpulan ... 60
5.2 Saran ... 60
Daftar pustaka ... 61
Daftar gambar
Gambar 1.1 Diagram blok perancangan alat ... 3Gambar 2.1 Peta GPIO Pi 3 ... 6
Gambar 2.2 Model ruang warna HSV (kanan) dan RGB (kiri) ... 8
Gambar 2.3 Gambar cara kerja sensor ping ... 12
Gambar 2.4 Gelombang ketika mengenai medium ... 12
Gambar 2.5 Bentuk fisik dari driver motor ... 13
xiv
Gambar 3.1 Diagram blok dari keseluruhan sistem ... 16
Gambar 3.2 Robot tampak atas... 17
Gambar 3.3 Robot tampak samping ... 17
Gambar 3.4 Robot tampak depan ... 17
Gambar 3.5 Diagram alir secara keseluruhan ... 19
Gambar 3.6 Diagram alir sub proses mendekati target ... 20
Gambar 3.7 Diagram alir sub proses robot berputar sampai ke sudut yang diinginkan ... 20
Gambar 3.8 Diagram alir sub proses mencari bola ... 21
Gambar 3.9 Diagram alir sub proses mendekati bola ... 22
Gambar 3.10 Diagram alir sub proses mendekati bola ... 23
Gambar 3.11 Diagram alir sub proses mengirim ke penendang... 23
Gambar 3.12 Diagram alir menunggu kabar dari penendang ... 24
Gambar 3.13 Diagram alir mencatat hasil pergenakan robot ... 24
Gambar 3.14 Kondisi target berada di timur laut robot ... 26
Gambar 3.15 Kondisi target berada di utara robot ... 26
Gambar 3.16 Kondisi target berada di barat laut robot ... 27
Gambar 3.17 Kondisi target berada di barat robot ... 27
Gambar 3.18 Kondisi target berada di barat daya robot ... 28
Gambar 3.19 Kondisi target berada di selatan robot ... 29
Gambar 3.20 Kondisi target berada di tenggara robot... 29
Gambar 3.21 Kondisi target berada di timur robot ... 30
Gambar 3.22 Kondisi target berputar ... 30
Gambar 4.1 Diagram alir utama ... 32
Gambar 4.2 Diagram alir sub proses mencatat hasil pergerakan robot ... 33
Gambar 4.3 Tampak depan robot 1 ... 35
Gambar 4.4 Tampak samping robot 1 ... 35
Gambar 4.5 Tampak belakang robot 1 ... 35
Gambar 4.6 Tampak depan robot 2 ... 36
Gambar 4.7 Tampak samping robot 2 ... 36
Gambar 4.8 Tampak belakang robot 2 ... 36
Gambar 4.9 Pembagian daya ... 37
Gambar 4.10 Listing program untuk rotary encoder ... 39
xv
Gambar 4.12 listing program sensor ping ... 41
Gambar 4.13 Listing program pengolah data kamera... 43
Gambar 4.14 Listing program cara bermain robot ... 45
Gambar 4.15 Listing program komunikasi dengan base station ... 47
Gambar 4.16 Inisiasi dan pengaktifan sistem paralel ... 48
Gambar 4.17 Listing program pelaporan ke base station ... 49
Daftar tabel
Tabel 2.1 Spesifikasi Rapsberry ... 5Tabel 2.2 Spesifikasi kamera ... 11
Tabel 3.1 Komunikasi data dari base station ke robot ... 25
Tabel 3.2 Komunikasi data dari robot ke base station ... 25
Tabel 3.3 Komunikasi data dengan penendang ... 25
Tabel 4.1 Perubahan data komuniakasi ... 34
Tabel 4.2 Data pengujian sensor ping ... 51
Tabel 4.3 Data pengujian kemampuan gerak robot ... 52
Tabel 4.4 Data pengujian rotary encoder ... 54
Tabel 4.5 Data pengujian kamera robot terhadap posisi bola ... 54
Tabel 4.6 Data pengujian kamera robot terhadap kecepatan bola ... 55
Tabel 4.7 Data pengujian sensor kompas dengan memutar secara manual... 56
Tabel 4.8 Data pengujian sensor kompas dengan memutar secara otomatis... 57
Tabel 4.9 Data pengujian penerimaan data dari base station ... 57
Tabel 4.10 Data pengujian pengiriman data ke base station ... 58
1
1
BAB I
PENDAHULUAN
1.1
Latar Belakang
Dunia akan selalu berkembang dari waktu ke waktu khususnya dalam bidang robotika. Semakin lama bidang yang dijamah oleh robotika akan semakin luas. Kerja robot dianggap dapat lebih diandalkan daripada manusia pada bagian mengerjakan tugas yang berulang yang membutuhkan konsistensi secara terus menerus. Di Indonesia ada suatu wadah yang disediakan oleh pemerintah untuk mengembangkan robotika dalam lingkup kampus, hal ini dinamakan Kontes Robot Indonesia (KRI). Kontes Robot Indonesia (KRI) adalah ajang kompetisi rancang bangun dan rekayasa dalam bidang robotika yang diselenggarakan oleh Direktorat Kemahasiswaan, Direktorat Jenderal Pembelajaran dan Kemahasiswaan, Kementerian Riset, Teknologi, dan Pendidikan Tinggi Republik Indonesia. Kontes Robot Indonesia ini diikuti oleh tim mahasiswa pada Perguruan Tinggi yang tercatat di Kemenristekdikti. “Salah satu pentingnya lomba ini diselenggarakan ialah, bahwa di zaman ini kita sering mendengar istilah revolusi industri 4.0, di mana semakin banyak kehidupan kita bersama dengan robot dan komputer. Jadi, robotisasi akan semakin lebih masif lagi dengan perkembangan teknologi internet of things. Tentu, penguasaan pengetahuan dan skill dalam robot pasti jauh lebih penting.” jelas Ismunandar, Direktur Jenderal Pembelajaran dan Kemahasiswaan, Kemenristekdikti. [1]
Sepak bola merupakan suatu cabang olahraga yang banyak diminati hampir di seluruh bagian bumi ini. Kalangan yang menikmati olahraga ini mulai dari tua hingga muda. Hingga saat ini olah raga yang paling meriah sambutannya baik di Indonesia maupun luar negeri adalah sepak bola. Oleh sebab itu, Kontes Robot Indonesia mulai melirik olahraga ini untuk dipertandingkan di kontes tersebut. KRSBI ( Kontes Robot Sepak Bola Indonesia ) merupakan cabang dari Kontes Robot Indonesia yang bermain dalam bidang sepak bola. Dalam KRSBI ini terdapat 2 divisi lagi yaitu beroda dan humanoid. KRSBI yang diikuti oleh tim robotika Sanata Dharma merupakan divisi beroda. Pada KRSBI beroda satu tim terdiri dari 3 robot. Tiga robot tersebut terdiri dari 2 robot striker dan 1 robot kiper. Tim yang dianggap sebagai tim pemenang dalam pertandingan adalah tim yang paling banyak mencetak gol saat pertandingan.
Judul tugas akhir ini menitik beratkan pada penggerak robot dan mengecek hasil perpindahan yang telah dilakukan oleh robot penyerang sepak bola. Penelitian ini akan
mendesain dan mengimplementasikan kemampuan robot untuk bergerak serta mencatat hasil perpindahannya sebagai monitoring dan bermain sesuai dengan strategi dari komputer pelatih. Pada penelitian sebelumnya terdapat beberapa peneliti yang pernah dilakukan seperti menggunakan kamera tunggal , komunikasi belum 2 arah antara penyerang dan pelatih (basestation). Dalam tugas akhir ini, akan dilakukan analisis respon terhadap perintah pelatih dan melaporkan kondisi yang terjadi pada robot di lapangan ke pelatih. [2]
1.2
Tujuan dan Manfaat
Tujuan dari penelitian ini adalah :1. Merancang robot sepak bola yang dapat berkomunikasi dengan pelatih. 2. Dapat mengendalikan yang robot yang pergerakannya bisa dipantau. Manfaat dari penelitian ini adalah :
1. Untuk masyarakat : Menyediakan sebuah edukasi, pedoman, dan rujukan untuk pengembangan pembuatan pengontrol robot sepakbola beroda bagi masyarakat luas. 2. Untuk Universitas Sanata Dharma : Perkembangan klub robotik dalam bidang robot
sepak bola beroda yang dapat digunakan sebagai bahan acuan untuk pengembangan robotika di bidang sepak bola di Universitas Sanata Dharma.
3. Untuk diri sendiri : Pengembangan diri dalam bidang robotika khususnya robot sepak bola beroda dan sebagai tugas akhir yang merupakan syarat kelulusan
1.3
Batasan Masalah
Pada penulisan tugas akhir ini akan dibuat robot sepak bola beroda yang telah menyesuaikan dengan peraturan dari panitia kontes robot indonesia. Adapun batasan masalah pada alat yang akan dibuat sebagai berikut :
1. Pengolahan kamera bawah untuk untuk menangkap bola jarak dekat pada robot sepak bola.
2. Menggerakkan robot sepak bola. 3. Membaca perpindahan posisi robot. 4. Berkomunikasi dengan base station.
1.4
Metodologi Penelitian
Gambar 1.1 Diagram blok perancangan alat
Berdasarkan pada tujuan yang ingin dicapai, langkah – langkah yang digunakan dalam penyusunan tugas akhir ini adalah
1. Studi pustaka
Pencarian bahan referensi berupa buku – buku, jurnal – jurnal, internet, dan lain – lain yang berkaitan dengan batasan masalah dan pembuatan tugas akhir. Studi pustaka mencakup teori tentang computer vision, mikrokontroler raspi 3, driver motor, sensor jarak, rotary encoder, dan sensor kompas.
Gambar 1.1 berisikan bagian dari robot sepak bola yang akan dibuat oleh tim penulis. Bagian yang dibuat oleh penulis merupakan bagian untuk merespon perintah dari base station dan melaporkan hasil yang telah dilakukan robot. Penentu keputusan dan strategi serta penendang pada robot dilakukan oleh penulis lain. Mikrokomputer yang digunakan adalah raspberry pi. Data masukan pada mikrokomputer berupa perintah dari base station, kamera, kompas, dan rotary encoder. Data yang terima tersebut akan digunakan untuk menggerakkan robot, memberi data ke penendang dan hasil pergerakannya akan dicatat dan dilaporkan ke raspberry pi pelatih.
3. Pembuatan alat
Pada tahap ini pembuatan alat berupa perangkat keras (hardware) dan perangkat lunak (software) berupa robot sepakbola.
4. Pengambilan data
Tahap ini berupa pengujian alat yang telah dibuat dengan cara mencatat dari keluaran sensor-sensor yang digunakan dan mencatat respon robot terhadap kesesuaian perintah. Sensor yang diambil datanya adalah sensor rotary encoder, kompas, dan kamera. Respon robot yang akan dilakukan saat menerima perintah dari basestation, kemampuan kamera mendeteksi bola, pergerakan robot, dan data yang akan dikirim ke basestation serta penendang.
5. Analisis dan kesimpulan
Tahap ini berupa analisis dan kesimpulan dengan melakukan perbandingan data dari hasil percobaan dengan hasil perancangan serta kesimpulan dari hasil percobaan yang didapat.
5
Tabel 2.1 Spesifikasi Rapsberry
2
BAB II
DASAR TEORI
Bab ini menjelaskan tentang komponen utama yang akan digunakan pada penelitian “Penggerak dan Pengolah Posisi Robot Striker pada Robot Sepak Bola”. Komponen-komponen yang digunakan antara lain: Raspberry pi 3, modul kamera, sensor kompas, modul step up DC, sensor jarak, driver motor, Motor DC, rotary encoder.
2.1
Raspberry Pi 3
Raspberry Pi merupakan komputer kecil seukuran saku yang diciptakan untuk kepentingan edukasi. Namun, karena kelengkapan fitur masukan dan keluaran yang dimiliki oleh raspberry pi maka banyak proyek yang menggunakan raspberry pi. Fungsi dari raspberry pi yaitu media browsing, pemutar video atau musik, membuat laporan, membuat presentasi, robotika, dan lain-lain. Kelebihan raspberry pi dari mikrokontroler adalah dapat terhubung langsung dengan layar monitor atau TV sebagai penampil, dapat menambahkan perangkat external seperti mouse, keyboard, flashdisk dan lain-lain dengan mudah menggunakan koneksi USB, memiliki koneksi modul kamera secara langsung, memiliki pin input dan output yang cukup banyak jumlahnya. [3]
2.1.1
Spesifikasi
Raspberry Pi 3 Model B
Processor Chipset
Broadcom BCM2837 64Bit ARMv7 Quad Core Processor powered Single Board Computer running at 1250MHz
GPU Videocore IV Processor
Speed QUAD Core @1250 MHz
RAM 1GB SDRAM @ 400 MHz
Storage MicroSD USB 2.0 4x USB Ports
Tabel 2.1 (Lanjutan)Spesifikasi Rapsberry Raspberry Pi 3 Model B
Power Draw /
voltage 2.5A @ 5V
GPIO 40 pin
Ethernet Port Yes
Wi-Fi Built in
Bluetooth LED Built in
Jika dilihat dari spesifikasi yang tertera pada tabel 2.1 maka raspberry pi 3 dirasa mampu untuk mengolah gambar dari kamera, menggerakan robot, dan berkomunikasi dengan base station. [4]
2.1.2
Port GPIO
Pada gambar 2.1 menunjukkan bahwa raspberry pi 3 mampu untuk berinteraksi dengan perangkat luar. Hal ini dimungkinan sebab pada raspberry pi 3 memiliki 40 pin yang memiliki fungsi yang berbeda-beda. Fungsi dari tegangan 5 V atau 3,3 V dan 0 V atau ground adalah sebagai sumber tegangan untuk sensor –sensor yang digunakan. Funsi dari GPIO adalah sebagai masukan dan keluaran dari raspberry pi 3 untuk berkomunikasi dengan perangkat luar.
2.2
Python 3.7
Python adalah salah satu bahasa pemrograman tingkat tinggi yang bersifat interpreter, interaktif, object-oriented dan dapat beroprasi di hampir semua platform, seperti keluarga UNIX, Mac, Window,OS/2, ataupun yang lain. Sebagai bahasa tingkat tinggi, Python termasuk salah satu bahasa pemrograman yang mudah untuk dipelajari karena sintaks yang jelas dan elegan, dikombinasikan dengan penggunaan modul-modul siap pakai dan struktur data tingkat tinggi yang efisien. [5]
2.2.1
Modul Open Computer Vision
OpenCV (Open Source Computer Vision Library), adalah sebuah library open source yang dikembangkan oleh intel yang fokus untuk menyederhanakan programing terkait citra digital. Di dalam OpenCV sudah mempunyai banyak fitur, antara lain : pengenalan wajah, pelacakan wajah, deteksi wajah, Kalman filtering, dan berbagai jenis metode AI (Artificial Intellegence). Dan menyediakan berbagai algoritma sederhana terkait Computer Vision untuk low level API.
2.2.1.1 Ruang warna HSV
Ruang warna HSV(Hue, Saturation, Value) merupakan model warna yang lebih baik digunakan untuk berbagai keperluan pengolahan citra dan computer vision. Hal ini biasa digunakan pada keperluan mencari benda berdasarkan warna , segmentasi citra, dan lain-lain. Hue (H) merupakan suatu nilai yang merepresentasikan sektrum warna dari cahaya tampak. Saturation (S) merupakan nilai yang menunjukan tingkat kejenuhan atau kemurnian dari suatu warna. Semakin besar nilai saturasi maka semakin murni warna yang dihasilkan. Value (V) dapat didefinisikan sebagai nilai yang menunjukkan tingkat kecerahan warna, nilainya berkisar 0-100%. Jika value bernilai 0 maka warnanya kan menjadi hitam. Jika
value semakin besar maka warna kan semakin cerah [6]. Ruang warna HSV diperoleh dari warna RGB melalui persamaan berikut
Max = (R,G,B), Min = (R,G,B) Δ = Max – Min V = Max H = { 0 , 𝑗𝑖𝑘𝑎 𝑉 = 0 60 𝑥 (𝐺−𝐵 ∆ ) , 𝑗𝑖𝑘𝑎 𝑀𝑎𝑥 = 𝑅 60 𝑥 (𝐵−𝑅 ∆ + 2) , 𝑗𝑖𝑘𝑎 𝑀𝑎𝑥 = 𝐺 60 𝑥 (𝑅−𝐺 ∆ + 4) , 𝑗𝑖𝑘𝑎 𝑀𝑎𝑥 = 𝐵} S = { 0 , 𝑗𝑖𝑘𝑎 ∆ = 0 ( ∆ 𝑀𝑎𝑥) , 𝑗𝑖𝑘𝑎 𝑀𝑎𝑥 ≠ 0 }
Dengan R= Red, G= Green, B=Blue. Ruang warna RGB dan HSV diilustrasikan pada gambar 2.2. Untuk memperoleh warna oranye maka nilai HSV berada pada rentang (71,100,100) sampai (16,100,100).
Gambar 2.2 Model ruang warna HSV (kanan) dan RGB (kiri) [2]
2.2.1.2 Pendeteksi objek
Fungsi utama dari pelacakan objek adalah untuk memisahkan objek yang dijadikan target dari lingkungannya. Ada banyak metode yang dapat digunakan untuk pelacakan objek seperti pemisahan warna, klasifikasi, pencocokan, dan lain-lain. Metode yang digunakan untuk pelacakan objek pada kali ini yaitu menggunakan permisahan objek berdasarkan warna. Digunakan metode pemisahan warna sebab warna yang dijadikan objek merupakan warna yang berbeda cukup jauh dari warna latarnya.
Kelemahan dari pemisahan warna adalah saat latar memiliki warna yang mirip dengan warna objek maka akan sulit untuk mendapatkan objek yang ditargetkan. Oleh karena itu algoritma untuk pemisahan warna objek dan latar harus dilengkapi dengan pembatasan ( 2.1) ( 2.2) ( 2.3)
( 2.4)
ukuran objek. Artinya ketika warna target yang ukurannya melebihi batas atau lebih kecil dari batas akan tidak dianggap sebagai objek.
2.2.2
Modul Socket.IO
Socket.IO adalah protokol transport yang memungkinkan komunikasi berbasis dua arah secara real-time antara klien (web browser atau aplikasi) dan server. Implementasi resmi komponen klien dan server ditulis dalam JavaScript. Modul ini menyediakan implementasi Python dari keduanya, masing-masing dengan varian standar dan asyncio [7]. Modul socketio pada sisi client memiliki kelebihan yaitu dapat terhubung ke server lain yang sesuai dengan modul ini walaupun tidak ada dalam modul ini, modul ini kompatibel dengan Python 2.7 dan 3.5+, modul ini terdapat dua versi klien yaitu untuk standar Python dan satu lagi untuk asyncio. Modul ini menggunakan arsitektur berbasis acara yang dapat diimplementasikan dengan dekorator yang menyembunyikan rincian protokol, menerapkan pemungutan suara HTTP panjang dan transport WebSocket, dan secara otomatis menyambung kembali ke server jika koneksi terputus.
2.2.3
Modul Serial
Pyserial merupakan modul yang terdapat pada Pyhon untuk berkomunikasi dengan perangkat yang memerlukan antarmuka serial. Modul ini dapat mengakses port serial pada perangkat. Modul ini dapat berjalan pada Python Windows, OSX, Linux, BSD (mungkin sistem yang mendukung POSIX) dan IronPython. [8] Pada robot penggunaan komunikasi digunakan untuk berkomunikasi dengan mikrokontroler pada penendang. Perintah yang digunakan dalam modul serial ini ialah membuka serial port, mengirim data serial, dan menutup komunikasi serial.
2.2.3.1 Membuka serial port
Cara membuka atau menginisialisasikan koneksi serial adalah dengan memasukkan perintah ser = serial.Serial('/dev/ttyUSB0', 9800, timeout=1). Ser merupakan variabel untuk memanggil koneksi serial yang dibuat. Arti dari '/dev/ttyUSB0' adalah port yang berhubungan langsung dengan perangkat serial berada pada alamat /dev/ttyUSB0. Arti dari 9800 adalah baudrate atau kecepatan memindahkan data dari satu perangkat ke perangkat lain. Arti dari timeout = 1 adalah jika dalam satu detik perangkat tidak menerima data dalam
1 detik koneksi akan diperbaharui atau jika data yang dikirimkan lebih dari 1 detik maka data akan dipotong.
2.2.3.2 Mengirim data serial
Cara mengirimkan data serial adalah dengan perintah ser.write(b'hello'). Ser.write merupakan perintah untuk mengirimkan data. Huruf b kecil merupakan kode data komunikasi pada Python 3. Arti dari ‘Hello’ merupakan data yang akan dikirimkan ke perangkat melalui jalur serial.
2.2.3.3 Menutup komunikasi serial
Cara menutup koneksi serial adalah dengan perintah ser.close(). Kegunaan dari menutup koneksi adalah untuk mengakhiri koneksi dengan perangkat yang terhubung agar jalur koneksinya dapat digunakan untuk yang lain.
2.2.4
Modul Threading
Python threading membuat Python dapat menjalankan berbagai bagian program secara bersamaan [9]. Modul ini akan digunakan agar sistem komunikasi, pemilah kondisi, mengecek sensor dan mencari bola. Perintah yang digunakan dari modul ini adalah perintah untuk membuat inisasi fungsi yang akan dilakukan secara paralel dan memulainya.
2.2.4.1 Membuat Inisasi Fungsi Yang Akan Dilakukan Secara Paralel
Cara membuat inisasi fungsi yang akan dilakukan secara paralel adalah dengan perintah threading.Thread(target=namafungsi). threading.Thread merupakan perintah untuk menginsiasi agar fungsi yang diinginkan untuk dijalakan secara paralel dapat dikenali oleh modul tersebut. Pada bagian nama fungsi diisi dengan fungsi yang akan digunakan seperti mengolah gambar, komunikasi, dan lain-lain.2.2.4.2 Memulai proses Threading
Cara memulai proses threading ialah dengan perintah namavariabel.start(). Nama variabel yang digunakan harus disesuaikan dengan nama variabel yang telah diinisiasikan pada proses sebelumnya. Banyaknya proses yang paralel yang dapat dijalankan bergantung
pada kemampuan komputer dan beban proses yang akan dikomputasikan oleh komputer tersebut.
2.3
Kamera
Modul kamera adalah sensor gambar yang terintegrasi dengan lensa, kontrol elektronik, dan antarmuka seperti CSI , Ethernet atau pensinyalan diferensial tegangan rendah mentah. Modul kamera raspberry pi dapat terkoneksi dengan raspberry pi 3 melalui antar muka CSI [10]. Tabel 2.2 merupakan spesifikasi lengkap dari modul kamera yang digunakan. Modul kamera ini dipilih sebab ukurannya yang kecil namun memiliki kemampuan yang baik.
Tabel 2.2 Spesifikasi kamera Camera Module v2
Price $25
Dimension Around 25 × 24 × 9 mm
Weight 3g
Still resolution 8 Megapixels
Video modes 1080p30, 720p60 and 640 × 480p60/90 Linux integration V4L2 driver available
C programming API OpenMAX IL and others available
Sensor Sony IMX219
Sensor resolution 3280 × 2464 pixels
Sensor image area 3.68 x 2.76 mm (4.6 mm diagonal)
Pixel size 1.12 µm x 1.12 µm
Optical size 1/4"
Full-frame SLR lens equivalent 36 mm
S/N ratio 37 dB
Dynamic range 68 dB @ 8x gain
Sensitivity 681 mV/lux-sec
Dark current 17 mV/sec @ 60 C
Well capacity 4.3 Ke-
Fixed focus 2 m to infinity
Focal length 3.04 mm
Horizontal field of view 62.2 degrees Vertical field of view 48.8 degrees Focal ratio (F-Stop) 02.00
Sensor ultrasonik adalah sebuah sensor yang memanfaatkan pancaran gelombang ultrasonik. Sensor ultrasonik ini terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan penerima ultrasonik yang disebut receiver. Gelombang ultrasonik merupakan gelombang akustik yang memiliki frekuensi mulai 20 kHz hingga sekitar 20 MHz. Frekuensi kerja yang digunakan dalam gelombang ultrasonik bervariasi tergantung pada medium yang dilalui, mulai dari kerapatan rendah pada fasa gas, cair hingga padat [2]. Jika gelombang ultrasonik berjalan melalui sebuah medium, Secara matematis besarnya jarak dapat dihitung sebagai berikut:
S = V.T / 2 V = 344 m/s
T = waktu yang diperlukan untuk sensor membaca jarak
Gambar 2.3 Gambar cara kerja sensor ping [2]
s adalah jarak dalam satuan meter, v adalah kecepatan gelombang suara yaitu 344 m/detik dan t adalah waktu tempuh dalam satuan detik. Ketika gelombang ultrasonik menumbuk suatu penghalang maka sebagian gelombang tersebut akan dipantulkan sebagian diserap dan sebagian yang lain akan diteruskan. Proses ini ditunjukkan pada gambar 2.3 dan 2.4.
Gambar 2.4 Gelombang ketika mengenai medium [2]
2.5
Sensor kompas
Modul Kompas HMC5883L adalah sebuah modul yang digunakan untuk menunjukkan arah mata angin digital, atau juga disebut kompas digital. Modul ini ( 2.6)
menggunakan komponen utama berupa IC HMC5883 yang merupakan IC kompas digital 3 axis yang memiliki antarmuka berupa 2 pin I2C. Modul kompas ini memiliki sensor magneto-resistive HMC118X series beresolusi tinggi, ASIC dengan konten amplification, automatic degaussing strap driver, offset cencelation dan 12 bit ADC yang memungkinkan keakuratan kompas sekitar 2˚. Modul ini biasa digunakan dalam sistem navigasi [11].
2.6
Driver Motor BTS 7960
BTS 7960 adalah komponen elektronik yang digunakan untuk mengontrol arah putaran dan kecepatan putaran motor DC. [12] Satu buah BTS 7960 dapat digunakan untuk mengendalikan 1 buah motor DC. Tegangan maksimum dari BTS 7960 adalah 24 V dengan arus maksimum 43A. Maksimum dari frekuensi PWM pada BTS 7960 adalah 25 KHz. Driver ini akan digunakan untuk mengendalikan motor DC pada robot sebagai pengendali arah dan kecepatan perpindahan robot. Bentuk dari driver motor yang digunakan terdapat pada gambar 2.5.
Gambar 2.5 Bentuk fisik dari driver motor [12]
2.7
Motor DC
Motor listrik merupakan perangkat aktuator yang mengubah energi listrik menjadi energi mekanik. Energi mekanik ini akan digunakan untuk memutar roda robot. Motor dc merupakan motor yang menggunakan sumber arus searah. Motor akan menghasilkan energi mekanik yang bergerak berputar. Arah putaran bergantung pada arah arus listrik. Untuk
mengubah arah putaran motor dengan cara merubah arah arus listrik atau mengubah polaritas motor dc tersebut. Jika arus lewat pada suatu konduktor, timbul medan magnet di sekitar konduktor. Arah medan magnet ditentukan oleh arah aliran arus pada konduktor. Medan magnet yang membawa arus mengelilingi konduktor. Aturan genggaman tangan kanan bisa dipakai untuk menentukan arah garis fluks di sekitar konduktor. Genggam konduktor dengan tangan kanan depan jempol mengarah pada aliran arus, maka jari-jari anda akan menunjukkan arah garis fluks [13].
2.8
Omni Wheel
Omni wheel merupakan roda yang dapat berputar bebas dalam dua arah, roda ini juga dapat berfungsi sebagai roda normal dan roda yang bergerak ke samping. Omni wheel memungkinkan mengkonversi pergerakan dari satu arah menjadi bergerak ke segala arah. Penggunaan Omni wheel tersebut memungkinkan pergerakan robot lebih efisien dalam mencapai target sebab dalam bergerak ke segala arah tanpa harus mengubah arah roda [12].
2.9
Rotary Encoder
Rotary encoder adalah perangkat elektro-mekanis yang mengubah posisi sudut atau gerakan poros atau gandar menjadi sinyal keluaran analog atau digital. Ada dua jenis utama rotary encoder: absolut dan tambahan. Keluaran dari encoder absolut menunjukkan posisi poros saat ini, menjadikannya transduser sudut . Keluaran dari encoder inkremental memberikan informasi tentang gerakan poros, yang biasanya diproses di tempat lain menjadi informasi seperti posisi, kecepatan dan jarak. Rotary encoder digunakan dalam berbagai aplikasi yang membutuhkan pemantauan atau kontrol, atau keduanya, dari sistem mekanik, termasuk kontrol industri, robotika , lensa fotografi , perangkat input komputer seperti mouse dan trackom optomekanis , rheometer tekanan yang dikendalikan, dan memutar platform radar. Pada robot rotary encoder berfungsi untuk mengetahui perpindahan yang telah dilakukan oleh robot.
Cahaya dari LED akan melewati piringan melalui lubang-lubang piringan, yang kemudian akan diterima oleh photosensor. Karena adanya lubang ini, maka sinyal yang terdeteksi photodiode akan berupa pulsa. Dari pulsa inilah nantinya dapat diketahui seberapa jauh dan cepat shaft berputar. Untuk menentukan arah putaran shaft, biasanya digunakan dua buah LED dan fotodioda sebagai penghasil pulsanya, sehingga terdapat dua channel dengan posisi LED dan fotodioda seperti gambar 2.6 Saat channel A mendahului channel B, maka
dapat diketahui shaft berputar searah jarum jam, dan sebaliknya jika channel B mendahului channel A, maka shaft berputar berlawanan jarum jam. [14] Pada gambar 2.6 terdapat sinyal Marker, sinyal Marker ini biasa disebut index signal. Sinyal ini berfungsi untuk menentukan posisi nol dengan cara memberikan pulsa tunggal setiap satu revolusi. Pada motor yang digunakan terdapat 7 pulsa dalam 1 revolusi.
16
3
BAB III
PERANCANGAN
Pada bab ini akan menjelaskan mengenai perancangan dari robot sepak bola beroda. Bagian yang akan dibahas dari perancangan ini ialah diagram blok, perancangan perangkat keras (hardware), dan perancangan perangkat lunak (software). Perancangan perangkat keras yang akan dibahas ialah perancangan mekanik dari robot sepak bola beroda. Perancangan perangkat lunak yang akan dibahas ialah perancangan mengenai perancangan perangkat lunak secara umum dan perancangan mengenai komunikasi dari robot sepak bola beroda.
3.1
Diagram Blok
Gambar 3.1 Diagram blok dari keseluruhan sistem
Gambar 3.1 merupakan blok diagram dari robot sepak bola beroda. Robot ini memiliki beberapa komponen utama yaitu raspberry pi, kamera, sensor kompas, motor DC, driver motor DC, sensor jarak, dan rotary encoder. Untuk komunikasi robot sepak bola beroda ini akan menggunakan komunikasi TCP/IP untuk berkomunikasi dengan base station dan untuk berkomunikasi dengan penendang akan menggunakan komunikasi serial. Perintah yang diterima dari base station dan data dari kamera serta sensor - sensor akan diolah oleh raspberry pi untuk menghasilkan gerakan pada robot untuk bermain bola. Data dari kamera
akan berguna untuk mengetahui posisi dari bola ketika bermain. Data dari rotary encoder berguna untuk mengetahui segala perpindahan dari robot yang telah dilakukan agar hasilnya dapat dipantau oleh base station. Sensor kompas berfungsi untuk mengetahui robot sedang menghadap. Data yang diterima dari base station merupakan perintahnya yang harus dilakukan oleh robot. Data yang dikirimkan ke base station merupakan data perpindahan robot beserta arah robot. Data yang dikirimkan ke penendang merupakan jarak target yang harus dicapai oleh penendang.
3.2
Perancangan Perangkat Keras
Gambar 3.2 Robot tampak atas Gambar 3.3 Robot tampak samping
Gambar 3.2 sampai 3.4 merupakan gambar rancangan robot sepak bola tampak dari sisi depan, atas, dan samping. Robot sepak bola memiliki 5 aktuator yaitu 3 motor yang dilengkapi dengan roda omni wheel yang membuat robot dapat berjalan ke segala arah dan 2 motor yang dilengkapi roda sebagai pemegang bola ketika bola digiring oleh robot. Roda omni wheel yang digunakan pada robot ini berukuran 100 mm atau 10 cm sebab agar dapat menanggung beban yang berat dan agar tidak terjadi roda yang selip atau lepas dari porosnya pada saat pertandingan. Gambar kamera berada di bagian depan robot yang diwakilkan dengan bentuk kotak merah. Alasan penempatan kamera pada posisi tersebut ialah agar kamera memperoleh sudut pandang yang luas sehingga dapat mencari bola dengan lebih responsif dan akurat. Roda omni wheel ditempatkan seperti bentuk segitiga agar robot dapat leluasa dalam bergerak ke segala arah dan efisien dalam penggunaan tempat serta energi untuk menggerakkan roda. Kotak berwarna kuning pada gambar 3.4 merupakan perwakilan dari lokasi raspberry pi akan diletakkan. Penempatan raspberry pi berada di tengah-tengah dari robot sebab titik tersebut merupakan sentral dari robot sehingga paling aman, mudah untuk dijangkau apabila terjadi kerusakan atau permasalahan, dan lebih efisien dalam penggunaan kabel. Pada bagian depan robot terdapat 2 roda yang berfungsi sebagai pemegang bola agar bola tidak lepas saat dibawa oleh robot. Posisi penendang berada di bagian belakang dari pemegang bola agar penendang dapat menendang bola dengan maksimal. Warna dasar dari robot yang akan dibuat adalah hitam sebab merupakan peraturan dari perlombaan. Pada sisi samping kanan, kiri, dan atas akan diberikan penanda warna cyan / magenta tergantung dari undian atau ketetapan dari panitia. Perbedaan warna ini berfungsi sebagai alat bantu untuk robot mengenali robot teman dan robot lawan.
3.3
Perancangan Perangkat Lunak
3.3.1
Perancangan Perangkat Lunak secara umum
Gambar 3.5 merupakan diagram alir secara umum dari robot sepak bola. Langkah pertama yang dilakukan adalah menginisiasikan kamera bawah, sensor kompas, sensor jarak, sensor rotary, motor, komunikasi dengan penendang, dan komunikasi dengan base station. Jika dilihat pada gambar 3.5 pada tahap inisiasi robot akan mulai mengaktifkan kamera bawah, menghubungi base station, mengecek koneksi terhadap penendang, mengaktifkan sensor kompas, dan mengaktifkan sensor jarak. Setelah tahap inisiasi robot akan menunggu perintah dari base station. Pada saat menunggu robot akan diam. Setelah perintah dari base
station diterima robot akan melakukan perintah sesuai kode yang diterima. Perintah yang diterima memiliki 4 kemungkinan yaitu move, rotate, capture ball, dan kick. Ketika menerima perintah move robot akan masuk ke sub rutin berjalan menuju target. Perintah move bermaksud untuk memindahkan robot ke posisi tertentu. Ketika robot menerima perintah rotate maka robot akan masuk ke sub rutin berputar sampai sesuai sudut yang diinginkan. Tujuan dari dilakukannya hal ini adalah untuk memutar robot agar sesuai dengan strategi yang diinginkan base station. Apabila capture ball diterima oleh robot maka robot akan masuk ke sub rutin mencari bola, kemudian sub rutin mendekati bola, lalu masuk ke sub rutin mengambil bola.
Gambar 3.5 Diagram alir secara keseluruhan
3.3.2
Sub Proses Robot Berjalan Mendekati Target
Pada gambar 3.6 menejelaskan proses robot berjalan agar robot berada di posisi yang dikehendaki oleh base station. Program ini diawali dengan robot menerima perintah move dari base station yang disertai dengan target yang dikehendaki. Kemudian robot akan berjalan menyesuaikan target yang diberikan. Robot berjalan maju ke depan bila target lokasi berada di utara robot. Robot berjalan ke arah samping kanan depan bila target berada di timur laut dari posisi robot. Robot berjalan ke arah samping kiri depan bila target berada di barat laut dari posisi robot. Robot berjalan mundur bila target berada di selatan dari posisi robot. Robot berjalan ke arah samping kanan belakang bila target berada di tenggara dari posisi robot. Robot berjalan ke arah samping kiri belakang bila target berada di barat daya dari
posisi robot. Kemampuan robot untuk bergerak ke semua arah diperoleh dari jenis roda yang digunakan yaitu omni wheel. Selama robot bergerak, proses dari sub rutin yang mencatat perpindahan akan berjalan juga. Setelah sub rutin tersebut selesai, apabila robot belum mencapai target maka akan robot akan bergerak lagi sampai target tercapai.
Gambar 3.6 Diagram alir sub proses mendekati target
3.3.3
Sub Proses Robot Berputar Sampai ke Sudut yang Diingikan
Pada gambar 3.7 merupakan sub proses yang berguna untuk memutar robot agar sesuai dengan keinginan dari basestation. Setelah robot menerima perintah rotate robot akan melihat kecenderungan dari target yang diminta. Apabila sudutnya lebih besar dari 180˚ maka robot akan berputar cw, sedangkan apabila sudutnya lebih kecil atau sama dengan 180˚ maka robot akan berputar ccw. Saat robot berputar, robot akan menjalankan sub rutin mencatat hasil perpindahan robot. Apabila hasil yang dihitung oleh sub rutin tersebut sudah sesuai dengan harapan target maka robot akan mengunggu perintah berikutnya. Namun apabila belum sesuai target, robot akan berputar lagi sampai target tercapai.
3.3.4
Sub Proses Mencari Bola
Gambar 3.8 Diagram alir sub proses mencari bola
Gambar 3.8 menjelaskan mengenai proses robot mengolah gambar untuk mencari bola. Pertama robot akan menerima perintah capture ball. Setelah itu kamera akan menangkap gambar dalam bentuk video. Gambar yang diperoleh kemudian akan dilakukan pemisahan warna. Warna yang dipisahkan adalah warna jingga. Karena pemisahan warna menggunakan jenis warna RGB maka nilai rentang yang diharapkan untuk warna jingga ialah red = 255 green = 69 blue = 0 (merah oranye) sampai red = 255 green = 165 blue = 0 (jingga). Gambar yang telah difilter kemudian diukur luasan yang berwarna jingga berdasarkan tingkat berkelompoknya. Apabila ada minimum luasan yang diinginkan maka proses akan diteruskan ke sub proses berikutnya, apabila belum proses akan diulang kembali.
3.3.5
Sub Proses Mendekati Bola
Gambar 3.9 menjelaskan hal yang dilakukan robot apabila target bola sudah ditemukan. Ketika target bola sudah ditemukan robot akan bergerak secara otomatis untuk bergerak maju atau mundur atau putar atau kanan atau kiri sesuai dari posisi target bola terhadap posisi robot. Sambil berjalan sensor jarak akan mendeteksi bola dan sub rutin membaca hasil perpindahan akan dijalankan juga. Setelah sensor jarak menemukan bola dan bola berada pada jarak tertentu maka proses akan dilanjukan oleh sub proses berikutnya.
Gambar 3.9 Diagram alir sub proses mendekati bola
3.3.6
Sub Proses Mendekati Bola
Gambar 3.10 merupakan gambar proses yang dilakukan ketika bola sudah terdeteksi sensor jarak dan berada pada jarak minimal yang telah ditentukan. Setelah bola berada pada jarak tertentu robot akan mengaktifkan gripper untuk mengambil bola, merebut bola, dan menggiring bola. Ketika gripper diaktifkan robot masih akan berjalan sedikit kedepan guna memastikan bola benar-benar sampai dipegang oleh gripper. Sub rutin mencatat hasil pergerakan tetap dijalakan sebab robot masih melakukan perpindahan. Setelah robot benar-benar memegang bola maka robot akan memberi kabar ke base station.
Gambar 3.10 Diagram alir sub proses mendekati bola
3.3.7
Sub Proses Mengirim ke Penendang
Gambar 3.11 Diagram alir sub proses mengirim ke penendang
Gambar 3.11 merupakan langkah untuk mengirimkan data dari basestation ke penendang. Pada proses ini data yang dikirimkan oleh basestation langsung dikirimkan ke mikro penendang.
3.3.8
Sub Proses Menunggu Kabar dari Penendang
Gambar 3.13 merupakan langkah untuk menerima data dari penendang ke basestation. Pada proses ini data yang dikirimkan oleh penendang langsung dikirimkan ke basestation.
Gambar 3.12 Diagram alir menunggu kabar dari penendang
3.3.9
Sub Proses Mencatat Hasil Pergerakan Robot
Gambar 3.11 berfungsi sebagai data acuan mengenai posisi robot bagi base station. Hal yang dibaca pertama kali adalah sensor rotary encoder yang terdapat pada motor. Selanjutnya yang dibaca adalah data dari sensor kompas. Ketika data dari kedua jenis sensor tersebut sudah diperoleh data tersebut diolah untuk menghasilkan nilai perpindahan. Data perpindahan yang sudah jadi dikirimkan ke basestation.
Gambar 3.13 Diagram alir mencatat hasil pergenakan robot
3.3.10
Komunikasi data
Tabel 3.1 dan 3.2 merupakan format yang digunakan untuk berkomunikasi antara robot dengan base station. Data yang diterima dari base station untuk memberi perintah menangkap bola : 'Captureball ': '1' . Data yang diterima dari base station untuk memberi perintah memindahkan robot : 'Move': '[89.100]' . Data yang diterima dari base station untuk memberi perintah untuk merotasi robot : 'Rotate ': '100' . Data yang diterima dari base station
untuk memberi perintah tendang : 'Kick': '80'. Data yang diterima dari base station untuk memberi perintah stop: 'stop'. Data yang dikirim dari robot untuk memberi memberitahukan base station mengenai sudut robot : 'Sudut ': '90'. Data yang dikirim dari robot untuk memberi memberitahukan base station mengenai perpindahan robot : 'Putaran': '[90,65]'. Data yang dikirim dari robot untuk memberi memberitahukan base station mengenai kesiapan penendang : 'Kickready': '1'. Data yang dikirim dari robot untuk memberi memberitahukan base station mengenai berhasil tidaknya bola ditangkap : 'Ballcaptured': '1'. Tabel 3.3 merupakan format yang digunakan untuk berkomunikasi dengan penendang. Data yang dikirim dari robot untuk memberi memberitahukan penendang mengenai kekuatan untuk menendang : 80. Data yang dikirim dari penendang untuk memberi memberitahukan robot mengenai kesiapan penendang : 1.
Tabel 3.1 Komunikasi data dari base station ke robot
Field Tipe data Deskripsi
Move Array of number Perintah bergerak sebanyak (x, y) dari posisi robot saat ini
Rotate Number Perintah berputar sebanyak x degree
Kick Number Perintah menendang berdasarkan skala kekuatan yang diberikan
Captureball Boolean Perintah untuk menangkap bola
Stop String Perintah untuk menghentikan aksi tertentu yang sedang dilakukan oleh robot
Tabel 3.2 Komunikasi data dari robot ke base station
Field Tipe data Deskripsi
Putaran Array of number Terdiri dari 2 angka x dan y setia kali robot bergeser Sudut Number Nilai sudut robot saat ini
Kickready Boolean Status kesiapan penendang saat charging Ballcaptured Boolean Status bola berhasil didapatkan atau tidak
Tabel 3.3 Komunikasi data dengan penendang
Field Tipe data Deskripsi
Kick Number Perintah menendang berdasarkan skala kekuatan yang diberikan
3.4
Skema Pengolahan Posisi
3.4.1
Target Berada di Timur Laut Robot
Ketika posisi target yang diberikan dari base station berada di sisi timur laut dari robot maka robot akan maju serong kanan. Kondisi ini digambarkan pada gambar 3.14. Untuk dapat maju serong kanan maka robot akan mengerakkan motor sisi kiri dengan arah berlawanan jarum jam dan motor sisi belakang dengan arah searah jarum jam. Untuk motor sebelah kanan tidak akan digerakkan namun roda tetap dapat berjalan sebab menggunakan roda omni wheel. Untuk kecepatan motor sisi kiri dan sisi belakang memiliki perbandingan 1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
Gambar 3.14 Kondisi target berada di timur laut robot
3.4.2
Target Berada di Utara Robot
Gambar 3.15 Kondisi target berada di utara robot
Ketika posisi target yang diberikan dari base station berada di sisi utara dari robot maka robot akan maju lurus ke depan. Kondisi ini digambarkan pada gambar 3.15. Untuk dapat maju lurus ke depan maka robot akan mengerakkan motor sisi kiri dengan arah berlawanan jarum jam dan motor sisi kanan dengan arah searah jarum jam. Untuk motor
sebelah belakang tidak akan digerakkan namun roda tetap dapat berjalan sebab menggunakan roda omni wheel. Untuk kecepatan motor sisi kiri dan sisi kanan memiliki perbandingan 1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
3.4.3
Target Berada di Barat Laut Robot
Ketika posisi target yang diberikan dari base station berada di sisi barat laut dari robot maka robot akan maju serong kiri. Kondisi ini digambarkan pada gambar 3.16. Untuk dapat maju serong kiri maka robot akan mengerakkan motor sisi kanan dengan arah searah jarum jam dan motor sisi belakang dengan arah berlawanan jarum jam. Untuk motor sebelah kiri tidak akan digerakkan namun roda tetap dapat berjalan sebab menggunakan roda omni wheel. Untuk kecepatan motor sisi kiri dan sisi belakang memiliki perbandingan 1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
Gambar 3.16 Kondisi target berada di barat laut robot
3.4.4
Target Berada di Barat Robot
Ketika posisi target yang diberikan dari base station berada di sisi barat dari robot maka robot akan bergeser ke kiri. Kondisi ini digambarkan pada gambar 3.17. Untuk dapat berjalan ke kiri maka robot akan mengerakkan motor sisi kiri dengan arah searah jarum jam, motor sisi belakang dengan arah berlawanan jarum jam, dan motor sebelah kanan dengan arah searah jarum jam. Untuk kecepatan motor sisi kiri, sisi belakang, dan sisi kanan memiliki perbandingan 0,3:1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
3.4.5
Target Berada di Barat daya Robot
Gambar 3.18 Kondisi target berada di barat daya robot
Ketika posisi target yang diberikan dari base station berada di sisi barat daya dari robot maka robot akan mundur serong kiri. Kondisi ini digambarkan pada gambar 3.18. Untuk dapat mundur serong kiri maka robot akan mengerakkan motor sisi kiri dengan arah searah jarum jam dan motor sisi belakang dengan arah berlawanan jarum jam. Untuk motor sebelah kanan tidak akan digerakkan namun roda tetap dapat berjalan sebab menggunakan roda omni wheel. Untuk kecepatan motor sisi kiri dan sisi belakang memiliki perbandingan 1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
3.4.6
Target Berada di Selatan Robot
Ketika posisi target yang diberikan dari base station berada di sisi selatan dari robot maka robot akan mundur lurus ke belakang. Kondisi ini digambarkan pada gambar 3.19. Untuk dapat mundur lurus ke belakang maka robot akan mengerakkan motor sisi kiri dengan arah searah jarum jam dan motor sisi kanan dengan arah berlawanan jarum jam. Untuk motor sebelah belakang tidak akan digerakkan namun roda tetap dapat berjalan sebab
menggunakan roda omni wheel. Untuk kecepatan motor sisi kiri dan sisi kanan memiliki perbandingan 1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
Gambar 3.19 Kondisi target berada di selatan robot
3.4.7
Target Berada di Tenggara Robot
Gambar 3.20 Kondisi target berada di tenggara robot
Ketika posisi target yang diberikan dari base station berada di sisi tenggara dari robot maka robot akan mundur serong kanan. Kondisi ini digambarkan pada gambar 3.20. Untuk dapat mundur serong kanan maka robot akan mengerakkan motor sisi kanan dengan arah berlawanan jarum jam dan motor sisi belakang dengan arah searah jarum jam. Untuk motor sebelah kiri tidak akan digerakkan namun roda tetap dapat berjalan sebab menggunakan roda omni wheel. Untuk kecepatan motor sisi kiri dan sisi belakang memiliki perbandingan 1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
3.4.8
Target Berada di Timur Robot
Gambar 3.21 Kondisi target berada di timur robot
Ketika posisi target yang diberikan dari base station berada di sisi timur dari robot maka robot akan bergeser ke kanan. Kondisi ini digambarkan pada gambar 3.21. Untuk dapat berjalan ke kanan maka robot akan mengerakkan motor sisi kiri dengan arah berlawanan jarum jam, motor sisi belakang dengan arah searah jarum jam, dan motor sebelah kanan dengan arah berlawanan jarum jam. Untuk kecepatan motor sisi kanan, sisi belakang, dan sisi kiri memiliki perbandingan 0,3:1:1 dan nilainya bergantung pada seberapa jarak target. Semakin jauh target maka kecepatannya akan semakin tinggi, namun akan berkurang apabila jarak target sudah semakin dekat.
3.4.9
Target berupa berputar
Gambar 3.22 Kondisi target berputar
Ketika target yang diberikan dari base station berupa berputar dengan sudut tertentu maka robot akan berputar sampai dengan sudut yang diharapkan. Kondisi ini digambarkan pada gambar 3.22. Untuk dapat berputar maka robot akan mengerakkan motor sisi kiri dengan arah berlawanan jarum jam, motor sisi belakang dengan arah searah jarum jam, dan motor sebelah kanan dengan arah searah jarum jam. Untuk kecepatan motor sisi kanan, sisi
belakang, dan sisi kiri memiliki perbandingan 1:1:1 dan nilainya sekitar 40% dari nilai maksimum.
32
4
BAB IV
HASIL DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai implementasi dan hasil dari perancangan yang telah dibuat di bab sebelumnya, perubahan hardware, perubahan software serta analisis dari hasil pengujian. Pengujian yang dilakukan digunakan untuk mengetahui kinerja dari sensor-sensor yang digunakan dan kinerja robot secara keseluruhan. Data yang diperoleh dari pengujian akan dianalisis yang bertujuan untuk menjadi bahan evaluasi alat agar dapat lebih dikembangkan lagi di kemudian hari.
4.1
Perubahan Perancagan
4.1.1
Perubahan Kamera
Pada robot 1 terjadi perubahan kamera yang digunakan. Hal ini disebabkan oleh sensor kamera yang tidak berfungsi dan keterbatasan jumlah stok kamera. Kamera pengganti yang digunakan memiliki seri logitech C270. Walaupun jenis kamera diubah, tetapi posisi peletakaan kamera tetap sama.
4.1.2
Perubahan Diagram Alir Utama
Gambar 4.1 Diagram alir utama
Gambar 4.1 merupakan diagram alir utama yang telah direalisasikan. Jika dibandingkan dengan gambar 3.5 terdapat 2 perubahan yaitu penggantian respon yang
dilakukan apabila mendapat perintah ‘kick’ dan penambahan hal yang dilakukan ketika mendapat perintah ‘stop’. Perubahan pada perintah ‘kick’ dilakukan karena komunikasi dengan penendang dilakukan pada raspberry lain sehingga perintah ‘kick’ hanya digunakan untuk menghentikan gripper. Penambahan perintah stop merupakan penambahan fungsi sebab yang sebelumnya belum dimasukkan dalam perancangan.
4.1.3
Perubahan diagram alir Sub Proses Mencatat Hasil Pergerakan
Robot
Gambar 4.2 Diagram alir sub proses mencatat hasil pergerakan robot
Hasil perubahan pada gambar 3.13 terdapat pada Gambar 4.2. Perubahan ini dilakukan sebab untuk meningkatkan efektifikas pada proses mengetahui perpindahan robot. Pengiriman data perpindahan ke base station terjadi apabila base station mengirimkan perintah move atau captureball. Robot mengirimkan data sudut ketika base station mengirimkan perintah rotate
4.1.4
Perubahan Data Komunikasi
Tabel 4.1 merupakan perubahan dari tabel 3.1 dan 3.2 mengenai data yang dikomunikasikan. Perubahan data yang dikomunikasikan disebabkan adanya perubahan diagram alir yang digunakan serta ada pembaharuan kata yang digunakan. Perintah dari base station ke robot untuk ‘kick’ dari yang sebelumnya sebagai data untuk dikirmkan ke penendang diganti menjadi data untuk mematikan gripper. Data yang dikirimkan robot ke base station pada bagian ‘kickready’ dihapuskan sebab komunikasi ke penendang ditangani
oleh raspberry A. Untuk data ‘sudut’ dan ‘putaran’ hanya terjadi penggantian kata agar lebih mudah dipahami.
Tabel 4.1 Perubahan data komuniakasi Data dari robot ke base station
Sebelum Implementasi
Field Tipe data Field Tipe data Deskripsi Putaran Array of
number
Move Array of number
Terdiri dari 2 angka x dan y setia kali robot bergeser Sudut Number Rotated Number Nilai sudut robot saat ini Kickready Boolean Dihapuskan Status kesiapan penendang
saat charging Data dari base station ke robot
Sebelum Implementasi
Field Tipe data Field Tipe data Deskripsi
Kick Number Kick Bolean Perintah menendang
berdasarkan skala kekuatan yang diberikan
4.2
Implementasi Penelitian
Pada sub bab ini akan dijelaskan mengenai implementasi dari perancangan yang telah dibuat mulai dari hardware robot, software robot, dan sistem kelistrikan robot. Pada Hardware robot akan dijelaskan hasil robot yang telah dibuat oleh peneliti. Pada Sistem kelistrikan penulis menjelaskan mengenai pembagian daya yang digunakan pada robot yang dibuat oleh peneliti. Pada software robot akan dijelakan mengenai perintah-perintah yang digunakan dalam penelitian ini secara garis besar.
4.2.1
Hardware robot
Gambar 4.3 sampai gambar 4.8 merupkan gambar bentuk fisik dari robot yang telah dibuat. Pelindung bagian luar menggunakan triplek dan rangka sebagai penopang utama dibuat dari besi L yang disambungkan dengan cara dilas. Robot 1 memiliki panjang 56 cm, lebar 45 cm , berwarna hitam, dan tinggi 75 cm dan robot 2 memiliki panjang 56 cm, lebar 45 cm , berwarna hitam, dan tinggi 75 cm. Rangka robot ditopang oleh roda dan motor. Beban pada robot dibagi menjadi 3 karena pada robot peneliti menggunakan 3 roda utama. Roda yang digunakan merupakan roda omni wheel yang membuat robot dapat bergerak ke berbagai arah. Pada gripper digunakan roda omni kecil sebab ketersediaan komponen yang ada. Hardware robot 2 memiliki kelemahan sebab motor kiri karena tidak dapat digunakan dengan semestinya yang karena motor yang hasilnya tidak dapat diprediksi.
Gambar 4.3 Tampak depan robot 1
Gambar 4.4 Tampak samping robot 1
Gambar 4.6 Tampak depan robot 2
Gambar 4.7 Tampak samping robot 2
4.2.2
Sistem Kelistrikan
Pada gambar 4.9 merupakan sistem pembagian daya yang digunakan pada penelitian ini. Sumber tegangan utama berasal dari sebuah baterai. Baterai tersebut akan digunakan untuk menghidupkan 2 buah step down ke 5 volt yang akan digunakan untuk menghidupkan raspberry, 2 buah motor gripper dan untuk menghidupkan sebuah step up ke 24 volt yang akan digunakan untuk menghidupkan motor. Pada raspberry yang digunakan oleh peneliti berguna sebagai penyedia tegangan untuk sensor rotary encoder, kompas, ping, IC driver, dan kamera. Tegangan 24 volt yang dihasilkan dari step up akan diteruskan ke motor penggerak melalui driver motor. Pada driver motor tersebut akan mengendalikan tegangan yang mengalir dari step up ke motor penggerak. Tegangan dari baterai akan diteruskan ke motor gripper melalui driver motor.
Gambar 4.9 Pembagian daya
4.2.3
Software robot
4.2.3.1 Program Rotary Encoder
Program ini berfungsi untuk membaca sensor rotary encoder yang dilengkapi dengan perhitungan perpindahan robot. Perpindahan robot dicatat agar base station dapat mengetahui posisi robot saat ini. Perpindahan robot akan dilaporkan setiap 1 detik. Program ini akan mengolah data perpindahan setiap ada perpindahan dari off ke on pada pin rotary encoder. Program ini menggunakan sistem intrupsi yang bersifat paralel sehingga tidak perlu
program utama. Pada gambar 4.10 Pin 12 merupakan pin rotary encoder yang berada pada roda kiri dan pin 7 merupakan pin rotary encoder yang berada pada roda kanan. GPIO.setup merupakan fungsi untuk menjadikan pin 12 dan pin 7 sebagai input. Perpindahan merupakan data perpindahan akan disimpan. Format yang digunakan dalam variabel tersebut yaitu [x,y]. Variabel arah merupakan variabel yang menentukan seberapa jauh robot berpindah. Jika robot bergerak maju atau mundur maka setiap pulsanya setara dengan 0,1 cm pada titik y dan 0 cm pada titik x . Jika robot bergerak serong maju serong kanan atau maju serong kiri atau mundur serong kanan dan mundur serong kiri maka setiap pulsanya setara dengan 0,05 cm pada titik x dan 0,08 cm pada titik y. Jika robot bergerak ke kanan atau ke kiri maka setiap pulsanya setada dengan 0,6 cm pada titik x dan 0 pada titik y. GPIO.add_event_detect merupakan fungsi yang digunakan untuk mengaktifkan pin 12 dan pin 7 sebagai pin intrupsi yang akan memanggil fungsi penghitung perpindahan.
Gambar 4.10 Listing program untuk rotary encoder
4.2.3.2 Program Kompas
Program ini berfungsi untuk membaca data dari sensor kompas. Pertama-tama meginisiasikan sensor kompas. Inisiasi yang dilakukan dengan cara menulis alamat register-register yang ditentukan seperti gambar 4 Fungsi magnetometer_Init() adalah untuk menuliskan data kepada alamat tertentu agar sensor kompas dapat mengirimkan data. Kemudian fungsi read_raw_data (addr) adalah fungsi untuk membaca data x,y,z pada sensor kompas.Perintah smbus.Smbus(1) berfungsi untuk menginisiasikan komunikasi i2c pada raspberry. Alamat sensor kompas pada i2c ialah 0x1e. Pada gambar 4.11 Merupakan fungsi untuk membaca sudut. Pertama-tama membaca data mentah x dan y dari sensor kompas. Kemudian dicari nilai arctan dari y dan x. Hasil arctan dari rumus itu ditambahkan dengan nilai konstanta declanation. Data yang telah diperoleh kemudian dikonversikan menjadi derajad. Karena derajad yang dari sensor kompas bersifat berputar melawan arah jarum jam maka diperlukan perhitungan untuk meupah arah derajad berdasarkan arah jarum jam. Pin kalibrasi digunakan untuk menetakpakn bahwa sisi depan robot saat ini emrupakan sudur 270. Perhoutngan berukurnya dilalukan untuk normalisasi dari perhitungan yang dilakukan sebelumya.
4.2.3.3 Program sensor ping
Pada gambar 4.12 merupakan program yang digunakan untuk membaca jarak menggunakan sensor ping. Program ini bertujuan untuk mendeteksi bola dengan menggunakan sensor jarak. Langkah awal yaitu menginisiasikan pin trigger dan echo. Pada pin trigger diatur pada pin 29 dan pin echo diatur pada pin 31 pada raspberry. Pada setup pin, pin trigger akan dijadikan output yang fungsinya sebagai pemicu dari gelombang ultrasonik dan pin echo ada dijadikan input sebagai penerima gelombang balik dari ultrasonik yang telah dipicu. Untuk mencari jarak bola dengan menggunakan ping, telah dibuat fungsi yang bernama distance(). Pada fungsi ini hal yang pertama dilakukan ialah menyalakan pin trigger untuk memicu sensor ping mengeluarkan gelombang ultrasonik. Selang 10 mikro detik pin trigger akan dimatikan. Kemudian ketika pin echo akan menghitung data durasi yang dibutuhkan agar pin echo dapat menerima umpan balik dari objek yang berada di depannya. Data durasi merupakan hasil selisih antara waktu mulai dan waktu selesai pada pin echo. Selanjutnya data durasi tersebut akan dikalikan dengan 34000 dan dibagi 2. Dikalikan 34000 sebab kecepatan udara yaitu 340 m/s sedangkan satuan yang digunakan ialah cm sehingga 34000cm/s. Dibagi 2 pada rumus jarak sebab waktu yang ditempuh agar gelombang yang dipancarkan dapat memantul setara dengan 2 kali lipat jarak tempuh sehingga dari perhitungan jarak dibagi 2. Proses berikutnya ialah mengembalikan nilai jarak.
4.2.3.4 Program Pengolah data kamera
Gambar 4.13 merupakan program yang berfungsi untuk mengolah data kamera untuk mencari bola. Hal yang diinisialisasikan yaitu kamera yang akan digunakan, warna jingga pada batas bawah dengan warna HSV dan warna jingga pada batas atas dengan warna HSV. Fungsi yang digunakan dalam program ini dinamakan dengan caribola(). Fungsi ini akan aktif secara paralel dengan fugsi lainnya. Fungsi dari pemanggilan sleep diawal fungsi ialah agar mengurangi beban proses di awal. Selanjutnya proses dilanjutkan dalam looping secara terus menerus.
Dalam pengulangan ini diawali dengan membaca gambar dari kamera. Gambar dari kamera baru akan di proses apabila terdapat perintah catch dari base station. Proses yang dilakukan terhadap gambar yang telah diambil kamera yaitu dengan mengkonversi warna dari RGB dan HSV. Selanjutnya data yang telah dubah dalam rentang warna HSV difilter dengan rentang atas dan bawah untuk warna jingga. Langkah berikutnya yaitu menghitung kontur dari objek yang lolos pada filter warna. Langkah berikutnya ialah mencari luasan kontur yang paling besar. Setelah mendapatkan area yang paling besar maka langkah berikutnya ialah mencari nilai x dan y maximum dan minimun. Setelah nilai x dan y maksimum dan minimum berhasil didapat maka langkah berikutnya ialah mencari titik tengah dari x dan y. Jika nilai x dan y maksimum dan minimum == 0 maka nilai x dan y akan otomatis bernilai 0. Data x dan y disimpan pada variabel cy dan cx. Data pada cy dan cx kemudian diletakkan pada frame gambar. Selanjutnya yaitu menampilkan frame gambar, perintah ini digunakan ketika proses pensetingan saat sudah berjalan perintah ini dapat dinonaktifkan untu meringakan beban proses kerja raspberry. Kemudian terdapat perintah sleep 0,1 detik berfungsi untuk mengurangi beban proses kerja raspberry.
Gambar 4.13 Listing program pengolah data kamera
4.2.3.5 Program Cara Bermain Robot
Gambar 4.14 merupakan program yang digunakan robot untuk mengambil keputusan untuk merespon perintah dari base station. Jika perintah yang diberikan base station berupa perintah ‘move’ maka robot akan mengambil data x dan y dari data yang diterima. Apabila nilai x dan y positif maka robot akan bergerak maju serong kanan. Jika x positif dan y = 0 maka robot akan bergerak maju. Jika nilai x negatif dan y = 0 maka robot akan bergerak mundur. Jika nilai x = 0 dan y positif maka robot akan bergerak ke kanan. Jika nilai x = 0 dan y negatif maka robot akan bergerak ke kiri. Jika nilai x positif dan y negatif maka robot akan bergerak maju serong kiri. Jika nilai x negatif dan y negatif maka robot akan bergerak mundur serong kiri.
Ketika perintah yang diberikan base station berupa perintah ‘rotate’ maka robot akan mengambil data sudut saat ini dan menjumlahkannya dengan target yang dikehendaki. Langkah berikutnya adalah membuat batas rentang toleransi karena akan sangat sulit apabila robot harus memiliki sudut yang benar-benar persis dengan target yang diinginkan base station. Rentang yang menjadi toleransi sudut yaitu ± 5˚. Setelah itu robot akan berputar