BAB III PERANCANGAN SISTEM
Pada bab ini akan dijelaskan mengenai perancangan dari sistem instruksi, perangkat keras, serta perangkat lunak dari algoritma robot. 3.1 Sistem Instruksi Robot Sistem instruksi pada robot dibagi menjadi 3 bagian utama, yaitu smartphone Android sebagai main processor yang menentukan gerakan robot yang akan dilakukan, mikrokontroler ATmega324P sebagai kontrol utama yang mengatur kesinambungan antara prosesor utama dengan controller servo robot kondo KHR-3HV (RCB4) dan controller servo robot robotis CM-510 dan CM-530, serta pemroses data komunikasi dan koordinasi yang menggunakan mikrokontroler ATmega8 dan Xbee 2mW wire antenna – series 2 sebagai media komunikasinya. Smartphone
Servo
Xbee
OC1A/OC1B PORT I/O PORT I/O
ATmega 324P TX1/RX1
Bluetooth TX0/RX0
Servo Controller
Gambar 3.1 Blok Diagram Sistem.
8
TX/RX PORT I/O INT0
ATmega 8
3.1.1
Processor Utama Prosesor Utama yang digunakan dalam robot adalah sebuah
smartphone Android. Dalam smartphone ini algoritma pergerakan dan komunikasi dan koordinasi robot akan ditanamkan. Tugas utama dari perangkat ini memproses gambar kamera yang diletakkan di kepala robot sebagai mata dan mengunci bola. Kemudian menentukan pergerakan robot berdasarkan algoritma komunikasi dan koordinasi dan posisi bola terhadap robot. Algoritma komunikasi dan koordinasi ditentukan dari hasil request data komunikasi oleh smartphone kepada ATmega324P yang akan dihubungkan dengan media bluetooth.
3.1.2 Kontrol Utama Kontrol utama robot menggunakan mikrokontroler ATmega324P yang bertugas mengolah perintah berupa paket data dari smartphone melalui serial bluetooth serta mengembalikan data komunikasi ke smartphone dan menyalurkan data komunikasi dari robot lain yang diterima oleh ATmega8 menuju ke smartphone. Ada 5 macam perintah yang dikirim dari smartphone yaitu : 1. Perintah untuk menggerakan robot. 2. Perintah untuk menggerakan servo kepala. 3. Perintah untuk me-initialisasi data komunikasi ke robot teman. 4. Perintah untuk memberi data komunikasi pada robot teman. 5. Perintah untuk request data komunikasi dari teman robot lain.
3.1.3
Pemroses Data Komunikasi Pemroses data komunikasi menggunakan mikrokontroler ATmega8
yang bertugas mengirimkan data komunikasi ke robot teman dan menerima data dari robot teman via Xbee 2mW wire antenna – series 2 melalui serial yang kemudian akan disalurkan ke mikrokontroller ATmega324P dengan menggunakan pin Input/Output (I/O).
9
3.2 Komunikasi dan Koordinasi Untuk membentuk suatu tim sepak bola yang baik, dibutuhkan kerja sama dan komunikasi yang baik. Oleh sebab itu dirancang suatu jaringan wireless personal dalam lingkup robosoccer humanoid R2C-R9 dengan menggunakan metode topologi mesh. Pada topologi mesh ini, setiap perangkat memiliki hubungan jalur data langsung dengan semua perangkat lainnya. Untuk menemukan jumlah jalur fisik agar n perangkat terhubung secara langsung, harus dimastikan bahwa setiap perangkat harus terhubung dengan perangkat lainnya. Perangkat-1 harus terhubung dengan n-1 perangkat lainnya, perangkat-2 harus terhubung dengan n-1 perangkat lainnya, dan perangkat-n terhubung dengan n-1 perangkat lainnya. Kita membutuhkan n(n-1) jalur fisik. Namun, jika setiap jalur fisik memungkinkan untuk berkomunikasi dua arah (duplex mode), dapat dibagi dua jumlah hubungan jalurnya. Dengan kata lain, dapat dikatakan bahwa mesh topology membutuhkan
n(n-1)/2 jalur data[5].
Gambar 3.2 Mesh Topology[5].
Dengan menggunakan topologi jaringan ini semua robot yang digunakan akan dapat berkomunikasi satu sama lain. Penulis menggunakan Xbee 2mW wire antenna – series 2 sebagai media komunikasi antar robot dan ATmega8 sebagai pemroses data komunikasi.
10
MF
`
GK
CF
Gambar 3.3 Topologi Mesh dan Pembagian Job antar robot dalam lapangan.
Koordinasi antar robot dapat berjalan dengan baik dengan menganggap salah satu robot sebagai captain (master). Robot yang sudah mendapat bola dan berjarak tertentu pada bola akan dianggap sebagai captain (master) dan akan mengirimkan data kepada teman robot yang lain untuk saling berkoordinasi. Captain (master) dapat berpindah dari robot satu ke robot yang lain, namun jika sudah terdapat satu captain (master), maka robot lain tidak mungkin dapat menjadi captain(master). Dalam algoritma komunikasi dan koordinasi ini, dibedakan algoritmanya menjadi dua, yaitu algoritma menyerang dan algoritma bertahan serta membagi job robot menjadi tiga, yaitu goalkeeper, striker, dan midfielder . Pembagian job robot ini bertujuan untuk mengefektifkan kinerja pergerakan robot dengan jangka lapangan yang sangat besar. Perincian tugas dari beberapa job yang ditentukan :
11
3.2.1 GoalKeeper (GK) Tugas utama dari goalkeeper adalah menjaga gawang dan memberi data komunikasi pada robot teman lain apabila bola dekat dengan gawang sendiri untuk segera menuju ke daerah pertahanan sendiri. Pada job ini digunakan robot Robotis Bioloid Premium yang sudah dimodifikasi.
Gambar 3.4 Robot sebagai Goal Keeper.
3.2.2
MidFielder (MF) Tugas utama dari midfielder adalah membantu striker mencetak goal
dan membantu back dalam posisi bertahan untuk membuang bola menuju ke daerah lawan.Pada job ini digunakan robot Kondo KHR-3HV yang sudah dimodifikasi.
Gambar 3.5 Robot sebagai Mid Fielder.
12
3.2.3 Striker (CF) Tugas utama dari striker adalah mencetak goal ke gawang lawan.Pada job ini digunakan robot Kondo KHR-3HV yang sudah dimodifikasi.
Gambar 3.6 Robot sebagai Striker.
3.3 Jalur Data Komunikasi Jalur data komunikasi dibagi menjadi 2, yaitu saat robot ingin memberikan data komunikasi ke robot lain (robot sebagai transmitter data), dan saat robot menerima data komunikasi dari robot teman yang lain (robot sebagai receiver data). 3.3.1
Pengiriman data komunikasi Pada saat robot ingin mengirimkan data komunikasi ke robot lain, data yang dikirimkan berasal dari algoritma koordinasi pada smartphone. Data akan disalurkan ke ATmega324P melalui bluetooth yang akan selanjutnya dikirimkan ke ATmega8 dengan melalui pin Input/Output (I/O). ATmega324P akan mengirimkan sinyal interrupt kepada ATmega8 sebagai tanda bahwa robot akan mengirimkan data. Setelah ATmega8 mendapatkan kiriman data, data akan segera dikirimkan ke robot lain melalui Xbee 2mW wire antenna – series 2.
3.3.2
Penerimaan data komunikasi Data yang diterima dari robot teman lain akan langsung ditangkap oleh Xbee 2mW wire antenna – series 2. Data lalu disalurkan ke ATmega8 melalui serial dan ATmega8 memproses data tersebut menjadi suatu nilai pada pin Input/Output (I/O) yang tersambung dengan ATmega324P. ATmega324P membaca nilai pin Input/Output (I/O) secara sequential untuk mendapatkan data komunikasi dari robot teman dan menyimpan data tersebut ke sebuah 13
variable. Data akan disalurkan menuju smartphone jika smartphone memberikan data request kepada ATmega324P melalui bluetooth.
Smartphone
Bluetooth
Xbee
Robot Teman
ATmega 324P
ATmega 8
Gambar 3.7 Jalur Data Komunikasi.
Jalur pengiriman data ke robot teman. Jalur penerimaan data dari robot teman. Jalur request data dari smartphone.
3.4 Bagian Perangkat Keras 3.4.1
Smartphone
Smartphone pada tugas akhir ini digunakan sebagai perangkat pemroses utama untuk memberi instruksi pada robot. Smartphone yang digunakan adalah Sony Xperia mini ST15i yang telah tertanam OS android di dalamnya. Aplikasi dirancang untuk smartphone ini untuk mengenali bola dan kemudian mengatur segala pengambilan keputusan pergerakan robot berdasarkan algoritma komunikasi dan koordinasi. Perintah untuk menggerakan robot kemudian dikirimkan melalui bluetooth ke board ATmega324P untuk kemudian diproses dan diteruskan ke kontroler servo robot.
14
3.4.2 Modul Bluetooth Modul bluetooth digunakan untuk media pengiriman data yang berupa perintah dari smartphone android ke mikrokontroler. Perintah akan dikirimkan dari smartphone melalui bluetooth sehingga diperlukan modul bluetooth agar mikrokontroler dapat terhubung dengan smartphone dan menerima data yang dikirimkan. Modul bluetooth yang digunakan adalah modul bluetooth tipe DF-Bluetooth V3, HC-05, dan HC-06. Penulis memilih jenis bluetooth ini karena atribut dari bluetooth seperti nama perangkat, password, baudrate, data parity, dan lainnya dapat diatur sendiri oleh pengguna. Berikut adalah gambar dari bluetooth yang digunakan.
Gambar 3.8 DF-
Gambar 3.9 HC-
Gambar 3.10
Bluetooth V3
05 Bluetooth
HC-06 Bluetooth
3.4.3 Xbee 2mW wire antenna – series 2 Modul Xbee ini digunakan untuk media pengiriman data komunikasi antara robot satu ke robot yang lain. Data akan dikirimkan dari satu Xbee ke Xbee yang lain agar robot dapat saling bertukar data dan robot dapat berkoordinasi seperti tim sepak bola. Modul Xbee yang digunakan adalah Xbee 2mW wire antenna – series 2. Penulis hanya menggunakan 4 pin, yaitu VCC (+3.3V), Data Out (TX), Data In (RX), dan GND. Berikut gambar dari Xbee 2mW wire antenna – series 2.
Gambar 3.11 Xbee 2mW wire antenna – series 2 [4].
Gambar 3.12 Configuration Xbee
15
3.4.4 Regulator Tegangan 3.3v (LP2950-3.3v) Regulator tegangan 3.3 volt digunakan karena modul Xbee 2mW wire antenna – series 2 bekerja dalam range tegangan 3.3 volt. Selain itu, tegangan yang dihasilkan pada pin Input/Output (I/O) mikrokontroller sebesar 5 volt, maka agar data sampai ke modul Xbee dan tidak membahayakan modul Xbee diperlukan regulator tegangan sebesar 3.3 volt, tetapi penulis hanya menggunakan 2 buah resistor pada pin ini untuk mengubah tegangan 5 volt menjadi 3.3 volt.
5v
7.8v
5v
3.3v
Gambar 3.13 Skematik
Gambar 3.14 Skematik resistor
LP2950-3.3v.
sebagai pembagi tegangan.
3.4.5 Board Mikrokontroller ATmega324P Mikrokontroler tipe ATmega324P digunakan karena selain dapat diprogram dengan bahasa C dan banyak dijual dipasaran, mikrokontroler ini memiliki dua pin serial yang masing-masing terdiri atas pin Tx dan Rx sehingga mikrokontroler ini dapat berkomunikasi secara serial dengan servo controller dan modul bluetooth yang digunakan untuk berkomunikasi dengan smartphone android untuk memberikan perintah kepada robot. Board ini juga digunakan untuk mengirimkan data komunikasi yang dikirimkan melalui pin interrupt dan pin Input/Output (I/O) ke board komunikasi ATmega8 yang kemudian diteruskan dengan modul Xbee 2mW wire antenna – series 2 ke robot lainnya.
16
Gambar 3.15 Skematik board ATmega324P. 3.4.6 Board Mikrokontroller ATmega8 Mikrokontroler ATmega8 digunakan dengan pertimbangan dimensi modul yang kecil. Board mikrokontroler ATmega8 ini digunakan untuk memproses data komunikasi dari robot teman lain. Data komunikasi yang diproses pada mikrokontroller ini ada 2 yaitu : 1. Data dari smartphone yang dikirim melalui board mikrokontroler ATmega324P yang akan dikirimkan ke robot teman lain. 2. Data yang diterima dari robot teman lain yang akan dikembalikan ke smartphone melalui ATmega324P.
Gambar 3.16 Skematik board ATmega8. 17
3.5 Bagian Perangkat Lunak 3.5.1
Komunikasi
Algoritma komunikasi ditanamkan pada keseluruhan sistem, yaitu pada smartphone¸ ATmega324P, dan ATmega8 yang saling berhubungan. Pada kondisi robot ingin mengirimkan data, maka data berawal dari smartphone, dan pada saat kondisi robot menerima data dari robot teman, data berawal dari ATmega8. ATmega324P hanya berfungsi sebagai penyalur data yang sudah siap diproses menjadi algoritma koordinasi oleh smartphone dari ATmega8. Beberapa kendala ditemukan saat robot ingin mengirimkan data, karena trigger dari pengiriman data adalah sudut kepala yang menunjukkan robot jauh atau dekat dengan bola, sedangkan kepala dari robot saat berjalan tidak pada posisi yang konstan. Oleh sebab itu, penulis membuat suatu algoritma pada smartphone untuk sampling data yang ingin dikirimkan, yang bertujuan untuk memastikan bahwa data yang dikirim pada kondisi yang benar. Mulai
CountCom = 0
YES
A
Apakah data yang ingin dikirim sama?
NO
Apakah CountCom > 10 ?
NO
A
CountCom ++
YES
Pengiriman Data
Gambar 3.17 Diagram Kotak Algoritma Sampling Data Komunikasi pada Smartphone.
18
Mulai
YES
Data-1
Apakah ada data dari robot lain?
Apakah data = data1||data2?
NO
Data-2
Captain = 0
Captain = 1
YES
Data-1
NO
Apakah data sebelumnya =
Apakah Captain = 1?
Data apa yang akan dikirim?
YES
data2?
NO
Data-2
Apakah data sebelumnya =
NO
data1? A
A Kirim Data
A
Gambar 3.18 Diagram Kotak Algoritma Pengiriman Data Komunikasi pada Smartphone.
Pada saat pengiriman data, smartphone akan mengecek kembali beberapa kondisi apakah dia boleh atau tidak untuk mengirimkan data komunikasi ke robot lain. Apabila dalam satu team sudah ada yang menjadi captain (master) dengan mengirimkan data-1 19
ke robot lain, maka robot lain tidak diperbolehkan untuk mengirimkan data komunikasi apapun sampai captain (master) sudah menyelesaikan data komunikasinya dengan mengirimkan data-2. Pada saat captain (master) mengirimkan data-1, maka robot lain akan hanya berfungsi untuk mendengarkan data komunikasi selanjutnya yang akan dikirimkan oleh captain (master) dan ketika captain (master) sudah menyelesaikan data komunikasinya dengan mengirimkan data-2, semua robot memiliki hak untuk mengirimkan data komunikasi ke robot lain yang menandakan bahwa dia akan menjadi captain (master) selanjutnya. Rx1 Interrupt
Main Mulai
Membaca nilai pin I/O dari ATmega8
YES
Apakah nilai input = nilai sebelumnya?
B
YES
NO
Apakah Count > 10?
Apakah request data?
NO
Kirim data dari variable X melalui Tx1
YES
Count=0
Count ++
YES
Mulai
Apakah mengirim data?
NO Simpan data ke variable Y
Simpan data ke variable X
Ubah nilai pin I/O sesuai dengan data di variable Y
B Kirim sinyal interrupt ke ATmega8
Selesai
Gambar 3.19 Diagram Kotak Algoritma Komunikasi pada ATmega 324P. 20
NO
Setelah data komunikasi diproses oleh smartphone, data dikirimkan ke ATmega324P. Pada ATmega324P data komunikasi dari smartphone akan diolah menjadi suatu nilai pin Input/Output (I/O) agar bisa dibaca oleh ATmega8. Ketika terdapat data masukan dari smartphone, ATmega324P langsung membaca data tersebut, merubah nilai pin Input/Output (I/O), dan memberikan sinyal interrupt kepada ATmega8 agar ATmega8 langsung dapat membaca data tersebut dan mengirimkan data ke robot lain. ATmega8 yang berfungsi sebagai pemroses data komunikasi akan selalu menyediakan data komunikasi yang siap dibaca oleh ATmega324P. Saat ATmega8 menerima sinyal interrupt pada pin INT0, maka ATmega8 akan membaca pin Input/Output (I/O) dari ATmega324P untuk menyiapkan data komunikasi yang akan dikirimkan ke robot lain dan saat ATmega8 menerima Rx Interrupt, maka ATmega8 akan langsung mengambil data komunikasi yang diberikan Xbee 2mW wire antenna – series 2 dan menyimpannya dalam suatu variable dan akan mengubah nilai pin Input/Output (I/O) berdasarkan data yang baru diterima agar dapat dibaca oleh ATmega324P. Main
INT0 Interrupt
Rx Interrupt
Mulai
Mulai
Mulai
Ubah nilai pin I/O dari data pada variable Z
Baca pin I/O dari ATmega324P
Simpan data ke variable Z
Konversi dari nilai I/O menjadi data komunikasi
Selesai
Kirim data ke robot lain melalui pin Tx
Selesai
Gambar 3.20 Diagram Kotak Algoritma Komunikasi pada ATmega8.
21
3.5.2 Koordinasi Pada tugas skripsi ini, algoritma koordinasi dibagi antar robot, tidak hanya untuk 2 robot, melainkan untuk satu tim sepak bola R2C-R9 yang terdiri atas 3 robot. Agar koordinasi berjalan dengan lancar, maka job robot dibagi menjadi 3, yaitu striker, mid fielder, dan goal keeper. Masing-masing dari job robot memiliki algoritma koordinasi menyerang dan bertahan yang berbeda-beda agar dapat saling melengkapi dalam penguasaan lapangan yang semakin luas. Mulai
Kejar Bola
Sudut tilt kepala sudah mengunci bola
YES
No
Apakah sudut tilt >= 75?
flagCaptain = 1
flagCaptain = 0 Kirim data1 ke robot teman
YES
Apakah bola hilang dari depan kaki??
No Tendang Bola
Kirim data2 ke robot teman
flagCaptain = 0
Gambar 3.21 Diagram Kotak Algoritma Koordinasi R2C-R9 (striker, dan mid fielder) 22
Dua job yaitu striker, dan mid fielder memiliki algoritma koordinasi untuk pergantian captain (master) atau pengiriman data komunikasi yang sama, tetapi untuk algoritma koordinasi ketika job satu menerima data dari job lain, ketiga robot tersebut memiliki algoritma yang jauh berbeda satu sama lain. Sedangkan untuk robot goal keeper hanya akan mengirimkan data ke robot teman lain untuk memanggil robot teman untuk segera menuju daerah pertahanan untuk membantu menjauhkan bola dari daerah pertahanan sendiri.
Mulai
Sudut tilt kepala sudah mengunci bola
YES
Apakah sudut tilt >= 75?
flagCaptain = 1
No
flagCaptain = 0 Instruksi teman bola didaerah pertahanan
flagCaptain = 0
Selesai
Gambar 3.22 Diagram Kotak Algoritma Koordinasi R2C-R9 (goal keeper). 3.5.2.1 Striker (CF) Robot yang berfungsi sebagai striker akan mengirimkan data-1 jika dia dekat dengan bola dan memberikan data ke robot lain bahwa dia adalah captain (master) dan akan mengirimkan data-2 jika dia kehilangan bola atau bola sudah dieksekusi.
23
Pada saat robot striker mendapatkan data-1 dari robot mid fielder, maka robot striker akan langsung mencari posisi untuk menunggu bola di daerah depan gawang lawan untuk mencetak goal sampai robot mid fielder mengirimkan data-2 yang menunjukkan dia kehilangan bola atau bola telah dieksekusi. Pada saat robot striker mendapatkan data-1 dari robot goal keeper maka robot striker akan segera mengarahkan pandangan ke daerah pertahanan diri sendiri dan segera bergerak menuju daerah sendiri untuk mencari bola. Mulai
Kejar Bola
YES
NO
Apakah ada data1 dari mid fielder?
flagCaptain = 0 YES
Apakah ada data1 dari goal keeper?
Positioning
NO
flagCaptain = 0
Cek Orientasi
YES
Apakah orientasi robot membelakangi gawang lawan?
NO
Putar hingga membelakangi gawang lawan
Gambar 3.23 Diagram Kotak Algoritma Koordinasi pada robot striker.
24
3.5.2.2 Mid Fielder (MF) Robot yang berfungsi sebagai mid fielder akan mengirimkan data-1 jika dia dekat dengan bola dan memberikan data ke robot lain bahwa dia adalah captain (master) dan akan mengirimkan data-2 jika dia kehilangan bola atau bola sudah dieksekusi. Pada saat robot mid fielder mendapatkan data-1 dari robot striker, maka robot mid fielder akan tetap mencari bola dan mendekati bola hingga jarak tertentu dengan tujuan menjaga striker yang akan mengeksekusi bola dan jika posisi robot mid fielder menutupi arah tendangan, maka robot mid fielder akan segera bergeser memposisikan dirinya agar tidak menutupi arah tendang bola. Pada saat robot mid fielder mendapatkan data dari robot goal keeper, algoritma koordinasi sama dengan robot striker. Robot akan menghadap kearah gawang sendiri dan terus maju untuk mencari bola. Mulai
Kejar Bola
YES
Apakah ada data dari goal keeper?
C
NO
flagCaptain = 0 YES
Apakah ada data1 dari striker?
Cek Orientasi D YES
Apakah orientasi robot membelakangi gawang lawan?
NO
Putar hingga membelakangi gawang lawan
25
NO
D
flagCaptain = 0
Cek Bola
Cek Orientasi
YES
YES
Apakan orientasi robot membelakangi gawang lawan?
NO
Apakah sudut tilt > 25?
Geser menjauhi bola
NO
Apakah sudut tilt > 50?
Mundur menjauhi bola
Berhenti
YES C
Apakah ada data2 masuk dari robot pengirim data1?
YES
NO
Gambar 3.24 Diagram Kotak Algoritma Koordinasi pada robot mid fielder.
3.5.2.3 Goal Keeper (GK) Robot yang berfungsi sebagai goal keeper akan mengirimkan data jika dia dekat dengan bola dan memberikan data ke robot lain bahwa dia adalah captain (master) untuk memanggil robot lainnya untuk segera membantu ke daerah pertahanan.
26
Data yang diterima robot goal keeper tidak semuanya diproses menjadi algoritma koordinasi. Data yang diproses hanya data yang berasal dari robot striker. Ketika robot goal keeper menerima data-1 dari robot striker, robot goal keeper akan segera memposisikan dirinya untuk kembali pada posisi yang benar. Mulai
Jaga Gawang
YES
Apakah ada data1 dari striker?
NO
Positioning
Gambar 3.25 Diagram Kotak Algoritma Koordinasi pada robot goal keeper. Keterangan diagram alir : 1. Data1 : data yang menunjukkan bahwa dalam satu team sudah terdapat captain yang siap untuk menendang bola. 2. Data2 : data yang menunjukkan bahwa captain sudah selesai mengeksekusi bola atau kehilangan bola.
3. Pan
: nilai sudut servo kepala yang bergerak pada sumbu y.Minimal nilai
pan = 0 (kepala robot menghadap kiri) dan maksimal nilai pan = 180 (kepala robot menghadap ke kanan). 4. Tilt
: nilai sudut servo kepala yang bergerak pada sumbux. Minimal nilai
tilt = 0 (kepala robot menengadah ke atas) dan maksimal nilai tilt = 90 (kepala robot menunduk hingga melihat ujung kaki. 27