PERANCANGAN SISTEM 3.1 Sistem Instruksi Robot · dengan bola, sedangkan kepala dari robot saat...
Transcript of PERANCANGAN SISTEM 3.1 Sistem Instruksi Robot · dengan bola, sedangkan kepala dari robot saat...
8
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.
Gambar 3.1 Blok Diagram Sistem.
OC1A/OC1B
PORT I/O
PORT I/O
ATmega 324P
TX1/RX1
TX0/RX0
Servo
Controller
TX/RX
PORT I/O
INT0
ATmega 8
Smartphone Servo Xbee
Bluetooth
9
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).
10
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.
11
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 :
`
GK
MF
CF
12
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.
13
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
14
variable. Data akan disalurkan menuju smartphone jika smartphone
memberikan data request kepada ATmega324P melalui bluetooth.
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.
Smartphone Bluetooth ATmega 324P
ATmega 8 Xbee Robot Teman
15
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.
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.8 DF-
Bluetooth V3
Gambar 3.9 HC-
05 Bluetooth
Gambar 3.10
HC-06 Bluetooth
Gambar 3.11 Xbee 2mW wire
antenna – series 2 [4].
Gambar 3.12
Configuration Xbee
16
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.
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.
Gambar 3.13 Skematik
LP2950-3.3v.
Gambar 3.14 Skematik resistor
sebagai pembagi tegangan.
5v 3.3v 7.8v 5v
17
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.
18
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.
Gambar 3.17 Diagram Kotak Algoritma Sampling Data Komunikasi pada
Smartphone.
Mulai
CountCom ++
Apakah
CountCom > 10 ?
CountCom = 0
Apakah data yang
ingin dikirim sama?
Pengiriman
Data
A
A
YES
YES NO
NO
19
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
Mulai
Apakah ada data
dari robot lain?
Captain = 1
Apakah data =
data1||data2?
Captain = 0
Apakah
Captain = 1?
Data apa yang
akan dikirim?
Apakah data
sebelumnya =
data2?
Apakah data
sebelumnya =
data1?
Kirim Data
A A
A
YES
YES NO
YES NO NO
Data-1
Data-1
Data-2
Data-2
NO
20
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.
Gambar 3.19 Diagram Kotak Algoritma Komunikasi pada ATmega 324P.
Selesai
Mulai
Membaca nilai pin I/O
dari ATmega8
Apakah nilai input =
nilai sebelumnya?
Count ++ Count=0
Apakah Count >
10?
Simpan data ke
variable X
Mulai
Apakah request
data?
Kirim data dari variable
X melalui Tx1
Apakah
mengirim data?
Simpan data ke
variable Y
Ubah nilai pin I/O
sesuai dengan data di
variable Y
Kirim sinyal interrupt ke
ATmega8
Main Rx1 Interrupt
YES
YES
NO
NO
YES
YES NO
NO B
B
21
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.
Gambar 3.20 Diagram Kotak Algoritma Komunikasi pada ATmega8.
Mulai
Ubah nilai pin I/O dari
data pada variable Z
Mulai
Baca pin I/O dari
ATmega324P
Konversi dari nilai I/O
menjadi data komunikasi
Kirim data ke robot lain
melalui pin Tx
Mulai
Simpan data ke variable Z
Main INT0 Interrupt Rx Interrupt
Selesai
Selesai
22
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.
Gambar 3.21 Diagram Kotak Algoritma Koordinasi R2C-R9
(striker, dan mid fielder)
Kirim data2 ke robot
teman
Mulai
Apakah sudut tilt
>= 75?
flagCaptain = 1 flagCaptain = 0
Kirim data1 ke robot
teman
Tendang Bola
flagCaptain = 0
YES No
Sudut tilt kepala
sudah mengunci
bola
Apakah bola hilang
dari depan kaki??
Kejar Bola
No YES
23
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.
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.
Mulai
Apakah sudut
tilt >= 75?
flagCaptain = 1 flagCaptain = 0
Instruksi teman bola
didaerah pertahanan
Selesai
flagCaptain = 0
YES No
Sudut tilt kepala
sudah mengunci
bola
24
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.
Gambar 3.23 Diagram Kotak Algoritma Koordinasi pada robot striker.
Mulai
Kejar Bola
Apakah ada data1
dari mid fielder?
flagCaptain = 0
Apakah ada data1 dari
goal keeper? Positioning
flagCaptain = 0
Cek Orientasi
Apakah orientasi robot
membelakangi gawang
lawan?
Putar hingga membelakangi
gawang lawan
YES
YES
YES
NO
NO
NO
25
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
Apakah ada data
dari goal keeper?
flagCaptain = 0
Cek Orientasi
Apakah orientasi robot
membelakangi gawang
lawan?
Apakah ada data1 dari
striker?
Putar hingga membelakangi
gawang lawan
D
YES
YES
YES
NO
NO
NO
C
26
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.
D
flagCaptain = 0
Cek Bola
Cek Orientasi
Apakan orientasi
robot membelakangi
gawang lawan?
Geser
menjauhi bola
Mundur
menjauhi bola
Apakah sudut
tilt > 50?
Berhenti
Apakah ada data2
masuk dari robot
pengirim data1?
Apakah sudut
tilt > 25?
C
YES
YES
YES
YES
NO
NO
NO
27
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.
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.
Mulai
Jaga Gawang
Apakah ada data1
dari striker?
Positioning
YES NO