Bab III. Implementasi Robot Kendali Jarak Jauh III.1. Disain Global
Diagram blok dari sistem robot kendali jarak jauh yang dikembangkan dalam tugas akhir ini diperlihatkan dalam Gambar III.1 berikut.
Personal Computer Parallel port
Radio TV Receiver
Wireless Camera
Driver motor
RF Transmitter
RF Receiver
Microcontroller
Sensor Micro SW
Gambar III.1 Diagram blok sistem robot kendali jarak jauh.
Mikrokontroller pada robot memberi sinyal pada driver motor berdasarkan data dari penerima RF (RF receiver) dan kondisi sensor micro switch. Gambar yang ditangkap oleh kamera robot dikirim ke pengontrol pusat (komputer beserta radio TV receiver dan pengirim/transmitter RF). Komputer, baik secara otomatis maupun perintah dari operator sesuai interpretasi gambar yang diterima, mengirim perintah gerak ke pengirim RF melalui port parallel yang akan diterima oleh penerima RF.
III.2. Rangka Robot
Rangka robot menggunakan enam roda dengan tipe kemudi differential drive, diperlihatkan dalam Gambar III.2.
Roda penopang
Roda utama
gap
(a)
(b)
Gambar III.2 Disain rangka robot, (a), dan foto rangka robot, (b).
15
Roda penggerak utama ialah dua roda besar yang berada di tengah, sedangkan empat roda kecil lain di depan dan di belakang digunakan untuk penopang saja (free wheel, tidak bermotor). Permukaan bawah roda utama diturunkan sedikit dari permukaan bawah roda penopang untuk memastikan roda utama menghasilkan traksi 4 optimal, yakni agar roda utama menopang sebagian besar berat robot, dan untuk memperbesar sudut elevasi yang bisa didaki oleh robot. Sudut elevasi ini sama dengan sudut garis singgung roda utama dengan roda penopang yang terangkat, seperti pada Gambar III.3 berikut.
θ Gambar III.3 Sudut garis singgung antara roda utama dengan roda penopang yang terangkat sama dengan sudut elevasi yang dapat didaki robot.
III.3. Pengontrol Pusat
Pengontrol pusat dapat bervariasi tergantung dari fungsi yang akan dikerjakan, apakah mode manual atau otomatis. Walaupun begitu, konfigurasi hardwarenya tetap, sebagaimana ditunjukkan dalam Gambar III.4 berikut. TV Tuner Card
Radio TV Receiver
CPU (processing)
Monitor
Port parallel
Transmitter
Gambar III.4 Konfigurasi hardware pengontrol pusat.
Pada sub bab ini hanya akan dijelaskan fungsi pengontrol pusat sebagai pengontrol manual, pengontrolan otomatis akan dijelaskan pada Bab III.7 Sistem Kamera dan Contoh
4
Traksi ialah jumlah dorongan maksimum yang dapat diberikan pada roda sebelum mengalami slip. Traksi didefinisikan sebagai perkalian antara berat yang menekan roda (umumnya 25% dari berat kendaraan) dengan koefisien gesekan, yang bergantung pada bahan ban dan permukaan jalan [16].
16
Aplikasi Robot Vision Sederhana. Gambar III.5 berikut memperlihatkan antarmuka software pengontrol manual.
(b)
(a)
Gambar III.5 Tampilan antarmuka kendali manual (a) dan tampilan dari kamera robot (b).
Pengaksesan port parallel menggunakan dynamic link library inpout32.dll yang mengandung fungsi inp32 (alamatport) untuk mengambil data dari port parallel dengan alamat alamatport dan fungsi out32 (alamatport, data) untuk mengirim data data ke port parallel dengan alamat alamatport. Kaki-kaki pada parallel port yang digunakan ialah sebagai berikut. 6
5
4
3
2
D4 D3 D2 D1 D0 TE
Data 4-bit
Data yang dikirim untuk tiap instruksi ialah sebagai berikut, ditunjukkan dalam Tabel III.1. Tabel III.1 Data yang dikirim untuk tiap instruksi.
Instruksi Maju Kiri1step Kanan1step Mundur Stop motor Maju1step Kiri Kanan Mundur1step Kamera up Kamera down Kamera stop
Data 4-bit 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C
17
Untuk mengirim satu instruksi, digunakan perintah berikut. Out Val("&H" + Str(alamatport)), data + 16 Out Val("&H" + Str(alamatport)), data Tunda (100) Out Val("&H" + Str(alamatport)), data + 16
Perintah tersebut akan memicu pengiriman data karena pin TE diberi logika 1-ke-0. Pengambilan gambar dari kamera melalui TV tuner dijelaskan pada sub sub bab Bab III.7.a Sistem Kamera. III.4. Sistem Telemetri Radio dan Pengontrol
Skematik global sistem telemetri radio dan pengontrol diperlihatkan pada Gambar III.6 berikut.
Transmitter
Receiver
Transmit enable Port parallel
Valid transmission
4-bit
uC AT89S52
Driver motor DC (kamera dan roda) Sensor micro switch
Gambar III.6 Skematik global sistem telemetri dan pengontrol.
a. Sistem Telemetri Radio
Pemancar/transmitter dan penerima/receiver menggunakan modul TLP434 dan RLP434, diperlihatkan dalam Gambar III.7, buatan Laipac Technology Inc, Canada. Modul tersebut menggunakan modulasi ASK (amplitude shift keying) dengan frekuensi carrier 315.0 MHz (314.8 – 315.2 MHz) [12]. Agar penerima tidak mengeksekusi data yang diterima dari gelombang radio lain dengan frekuensi carrier yang sama, maka sinyal yang dikirim pemancar diberi alamat tertentu, yakni sinyal terdiri dari 8 bit alamat dan 4 bit data. Proses pemberian alamat ini dilakukan oleh IC encoder HT12E dan selektor alamat oleh IC decoder HT12D dari Holtek Semicondictor Inc., Taiwan.
16.1 mm 13.5 mm
1 : VCC 2 : GND 3 : RF Output 4 : Code Input
43.5 mm 10.5 mm
1
4
(a) Gambar III.7
(b)
1 : GND 2 : Digital Output 3 : Linear Output 4 : VCC 5 : VCC 6 : GND 7 : GND 8 : Antenna
Modul pemancar TLP434, (a); dan modul penerima RLP434, (b).
18
Kaki-kaki IC encoder HT12E dan decoder HT12D untuk kemasan PDIP diperlihatkan dalam Gambar III.8 dan deskripsi tiap kaki pada kedua IC tersebut diberikan dalam Tabel III.2.
(a) Gambar III.8
(b)
Kaki-kaki IC encoder HT12E, (a); dan kaki-kaki IC decoder HT12D.
Tabel III.2 Deskripsi kaki-kaki IC encoder HT12E dan decoder HT12D.
Pin A0 – A7 AD8 – AD11 D8 – D11 DOUT TE DIN VT
OSC1 OSC2 VSS VDD
HT12E HT12D Deskripsi √ √ Kaki input untuk pengesetan alamat 8-bit. √ Kaki input untuk data 4-bit. √ Kaki output untuk data 4-bit. √ Output data serial encoder. √ Transmission enable, active low. Kaki DOUT mengeluarkan data serial ketika kaki TE diberi logika 0 atau transisi 1-ke-0. √ Kaki input data serial. √ Valid transmission, active high. Berlogika 1 ketika data dinyatakan valid, dan akan berlogika 0 jika kode alamat tidak sesuai atau tidak ada sinyal yang diterima. √ √ Kaki input osilator. √ √ Kaki output osilator. √ √ Catu daya negatif atau ground. √ √ Catu daya positif.
Dengan demikian, rangkaian untuk pemancar dan pemancar ialah sebagai berikut, ditunjukkan dalam Gambar III.9.
19
(a)
(b) Gambar III.9 Skematik untuk pemancar, (a); dan penerima, (b).
Antenna yang digunakan ialah antenna whip, dibuat dari kabel tunggal dengan panjang ialah ½ panjang gelombang carrier. panjang antenna = 12 ⋅ λ =
1 c 1 3.00 × 108 m/s = = 0.476 m 2 f 2 315 × 106 s -1
Data 4-bit pada pemancar diberikan oleh port parallel dan kaki TE dipicu transisi 1-ke-0 oleh kaki Data 4 port parallel. Sedangkan data 4-bit yang diterima penerima diteruskan ke mikrokontroller untuk diolah. Tiap kali data diterima, dan dinyatakan valid oleh decoder, kaki VT menghasilkan transisi 0-ke-1. Dengan bantuan gerbang NOT yang dibuat dari transistor NPN, transisi ini diubah menjadi 1-ke-0 dan memicu terjadinya interupsi eksternal melalui kaki INT0 pada mikrokontroller AT89S52. Agar tidak terjadi salah baca, frekuensi osilator encoder perlu disesuaikan dengan frekuensi osilator decoder, yakni fOSC (decoder) ≈ 50 × fOSC (encoder) [17,18]. Frekuensi osilator ini dipengaruhi oleh hambatan resistor pada OSC1 dan OSC2 dan tegangan catu daya pada antara VCC dan GND, diperlihatkan dalam Gambar III.10. Pada sistem yang dibangun, tegangan catu daya ialah 5V, dengan pertimbangan ketersediaan nilai hambatan resistor di pasaran, maka dipilih hambatan resistor pada encoder sebesar 820 kΩ ± 5% dan 20
decoder sebesar 43 kΩ ± 5% yang menghasilkan frekuensi osilator encoder sebesar 3.50 kHz dan decoder sebesar 175 kHz. Selain itu, pemilihan nilai frekuensi osilator pada nilai tengah daerah kerja encoder/decoder ialah karena jika frekuensi osilator terlalu kecil maka jangkauan pemancar akan membesar tetapi laju pengiriman data melambat, sedangkan jika frekuensi osilator terlalu besar maka laju pengiriman data makin cepat tetapi jangkauan pemancar akan mengecil [19].
(a)
(b) Gambar III.10 Kurva frekuensi osilasi terhadap tegangan catu daya untuk encoder HT12E, (a); dan decoder HT12D, (b). [17,18]
21
Data yang dikirim oleh encoder memiliki komposisi sebagai berikut, ditunjukkan dalam Gambar III.11(a), yakni terdiri dari 1/3 bit sinkronisasi + 8-bit periode alamat + 4-bit periode data yang menghabiskan 1 siklus + 8 bit × 3 siklus/bit + 4 bit × 3 siklus/bit = 37 siklus. Lama satu siklus dalam sistem yang dibangun ialah 1/3.50 kHz = 0.286 milidetik. Sehingga 1 word menghabiskan waktu 37 siklus × 0.286 mdet/siklus = 10.58 milidetik. Jika pin TE dilowkan selama kurang dari waktu untuk 1 word, maka encoder akan mengirim 4 word sebanyak satu kali, sedangkan jika pin TE dilowkan terus maka encoder akan mengirim word terus menerus sampai pin TE dihighkan kembali.
(a)
(b)
(c) Gambar III.11 Komposisi informasi untuk 1 word, (a); bentuk gelombang alamat/data, (b); dan pewaktuan transmisi, (c); untuk encoder HT12E. [17]
b. Pengontrol
Pengontrol menggunakan mikrokontroller AT89S52, digunakan untuk menerjemahkan data yang diterima penerima menjadi gerakan roda utama dan kamera, serta menghindarkan robot dari tabrakan. Gambar III.12 memperlihatkan skematik dari pengontrol.
22
Gambar III.12 Skematik pengontrol.
Output kaki VT (valid transmission) dari penerima dimasukan ke gerbang NOT sebelum masuk ke kakai INT0 karena ketika transmisi dinyatakan valid, maka VT berubah dari logika 0 ke 1 [18], agar terjadi interupsi eksternal maka digunakan gerbang NOT untuk mengubah transisi menjadi 1-ke-0. Untuk mendeteksi tabrakan, yakni tabrakan pada bagian depan dan belakang ataupun karena kamera terangkat terlalu tinggi atau terlalu rendah, digunakan micro switch sebagai sensor sentuhan. Gambar III.13 memperlihatkan bentuk fisik micro switch dan fungsi tiap kakinya.
C
NO
NC
(b)
(a)
Gambar III.13 Bentuk fisik micro switch (a) dan fungsi kaki-kakinya (b). Ketika micro switch tidak ditekan maka kaki C terhubung ke NO, ketika ditekan maka kaki C terhubung ke NC; yakni saklar SPDT.
Gambar III.14 memperlihatkan pemasangan sensor micro switch pada mobile robot.
23
atas
belakang depan
kamera bawah : sensor micro switch
(a) (b)
(c)
(d)
Gambar III.14 Koneksi sensor micro switch pada robot (a), pemasangan sensor micro switch pada kamera (b), pada bagian depan (c), dan pada bagian belakang (d) robot.
Kaki C (common) pada micro switch dihubungkan sebagai output sensor tersebut, kaki NO (normaly open) dihubungkan ke GND, dan kaki NC (normaly closed) dihubungkan ke pull-up resistor, lihat Gambar III.12. Sehingga ketika tidak ada satupun dari sensor micro switch yang tertekan, maka input pada gerbang AND-4-input ialah 1 semua. Jika satu saja sensor micro switch tertekan sehingga logika keluaran dari sensor tersebut menjadi 0 (karena ketika tertekan terhubung ke GND), maka keluaran gerbang AND menjadi 0 (transisi 1-ke-0) dan menimbulkan interupsi eksternal. Keluaran sensor micro switch depan dan belakang dihubungkan ke kaki P2.6 dan P2.7 untuk mengetahui bagian robot mana yang menabrak, ditambahkan gerbang NOT untuk memastikan sinyal tidak jatuh tegangan (sebagai buffer-not). Diagram alir dari program pada mikrokontroller untuk menerjemahkan data dari komputer dan menghindari tabrakan diperlihatkan dalam Gambar III.15 berikut.
24
Eksekusi (id_cmd): Id_cmd Aksi 0x01 Maju 0x02 Kiri1step 0x03 Kanan1step 0x04 Mundur 0x05 Stop motor 0x06 Maju1step 0x07 Kiri 0x08 Kanan 0x09 Mundur1step 0x0A Kamera up 0x0B Kamera down 0x0C Kamera stop
Aksi: Maju Mundur Kiri Kanan Stop
Motor kiri mL1 mL2 1 0 0 1 0 1 1 0 1 1
Kamera Up Down Stop
mC1 1 0 1
Main
Motor kanan mR1 mR2 1 0 0 1 1 0 0 1 1 1 Aksi XXX1step:
mC2 0 1 1
XXX Delay(127) stop
Interupsi 1 : EXT1 Dari micro switch
Inisialisasi Beres = 1 Beres = 0? ya
stop kamera senFr = 1 // pull-up senRe = 1 // pull-up
tidak
senFr = 1?
Eksekusi (id_cmd) Mundur1step
senRe = 1?
End
Maju1step
Interupsi 0 : EXT0 Dari receiver Beres = 0x00 P1 = 0xFF // pull-up Id_cmd = P1 and 0x0F
Beres = 0x01 RETI
RETI Inisialisasi EX0=1, IT0=1 EX1=1, IT1 = 1 EA = 1 RETI Gambar III.15 Diagram alir pada mikrokontroller.
25
Pada saat robot pertama kali dinyalakan, mikrokontroller mengeksekusi program utama (main). Terdapat dua variabel global, yakni beres dan id_cmd. •
Variabel beres, digunakan untuk memberi tanda apakah terdapat data dari penerima RF yang belum dieksekusi. Jika ada maka diberi nilai 0x00 dan jika tidak (artinya data telah dieksekusi) maka diberi nilai 0x01.
•
Variabel id_cmd, digunakan untuk menampung data yang diterima oleh penerima RF. Subrutin eksekusi akan mengirim data ke driver motor yang bersesuaian dengan data yang diterima.
Program utama menginisialisasi interupsi yang akan diaktifkan pada mikrokontroller, yakni interupsi eksternal 0 dan eksternal 1 dengan sinyal pemicu bertipe transisi 1-ke-0, dan memberi nilai awal 0x01 pada variabel beres. Kemudian program utama mengecek apakah variabel beres bernilai 0x00. Jika tidak, maka program utama kembali mengecek nilai variabel beres. Jika ya, maka program utama memanggil subrutin eksekusi untuk menggerakan motor berdasarkan nilai variabel id_cmd.
Subrutin interupsi 0 : EXT0 akan dipanggil ketika terdapat data baru yang diterima oleh penerima RF, yakni ketika pin ~VT bertransisi dari 1-ke-0. Variabel beres akan diberi nilai 0x00 untuk menandakan ada data baru dan nibble rendah pada port 1 akan disalin ke variabel id_cmd. Subrutin interupsi 1 : EXT1 akan dipanggil ketika minimal ada satu dari sensor micro switch yang tertekan. Subrutin ini akan menghentikan gerak kamera dan menggerakan robot satu step ke depan jika sensor micro switch belakang tertekan atau satu step ke belakang jika sensor micro switch depan tertekan. Subrutin rutin ini berguna untuk menghindarkan robot dari objek penghalang dan menghentikan gerak kamera jika telah menyimpang melewati batas tertentu (untuk mencegah motor kamera terganjal).
III.5. Sistem Penggerak Roda dan Kamera
Sistem penggerak roda dan kamera menggunakan driver L293D. Dengan pemasangan motor DC seperti pada Gambar III.16 (b), maka satu IC L293D dapat digunakan untuk dua buah motor DC.
26
(a)
(b)
Gambar III.16 Rangkaian internal IC driver L293D [27] (a) dan rangkaian yang digunakan untuk menggerakan satu motor DC 24 V (b), VS ialah 24 V.
Arah putaran motor dikendalikan oleh sinyal TTL pada IN1, IN2, dan EN1 (pada pasangan lain: IN3, IN4, dan EN2). Jika kaki EN1 diberi logika 0, maka keluaran 3-state buffer akan berada pada keadaan Impedansi Tinggi dan OUT1 memiliki tegangan yang sama dengan OUT2 sehingga motor berhenti. Jika kaki EN1 diberi logika 1 dan kaki IN1 diberi logika 0, maka tegangan OUT1 ialah tegangan Ground. Sedangkan jika kaki EN1 diberi logika 1 dan kaki IN1 diberi logika 0, maka OUT1 ialah tegangan VS [27]. Tabel III.3 berikut meringkas kondisi kaki-kaki input serta reaksi pada motor DC.
Tabel III.3
EN1 0 1 1 1 1
Reaksi motor terhadap logika input
IN1 X 0 1 0 1
IN2 X 1 0 0 1
Reaksi motor Diam Berputar ke arah-1 Berputar ke arah berlawanan arah-1 Diam Diam
X : don’t care, 0 atau 1 Gambar III.17 berikut memperlihatkan skematik driver motor DC yang digunakan. Hanya sepasang output saja yang digunakan untuk DR2, yakni driver untuk motor kamera.
27
Gambar III.17 Skematik driver motor DC yang digunakan. Mot supply ialah catu daya 24V untuk motor utama, dan motcam supply ialah catu daya 12V untuk motor kamera.
III.6. Catu Daya
Sumber catu daya ialah dua buah batere kering 12 V / 2 Ah yang disusun seri sehingga setara dengan batere 24 V / 2 Ah [5] dan satu batere 12 V /1.2 Ah (khusus untuk penggerak motor kamera). Sistem catu daya robot yang dibangun terdiri dari dua bagian yakni switch charging dan regulator.
Switch Charging Switch/saklar ini berguna untuk mengubah mode penggunaan batere dengan mode charging/isi ulang, sehingga tidak perlu melepas batere untuk diisi ulang, cukup menekan tombol. Gambar III.18 memperlihatkan skematik rangkaian switch charging. Jika mode penggunaan batere (secara seri) yang aktif, maka LED D1 akan menyala. Sedangkan jika mode charging yang aktif, maka LED D2 dan LED D3 akan menyala (jika tidak terjadi masalah pada kabel ke batere 1 dan batere 2).
28
Gambar III.18 Skematik switch charging.
Regulator Regulator yang digunakan terdiri dari regulator 5 V arus rendah (untuk rangkaian mikrokontroller), regulator 5 V arus tinggi (untuk rangkaian penerima, catu daya TTL driver motor, dan rangkaian sensor micro switch), dan regulator 8 V arus tinggi (untuk catu daya kamera wireless). Regulator 15 V arus tinggi digunakan untuk menurunkan tegangan dari 24 V menjadi 15 V sebelum masuk ke regulator 5 V dan 8V agar tidak terjadi pemanasan berlebih akibat beda tegangan yang terlalu tinggi antara tegangan input dengan tegangan teregulasi.
Batere 12V 2 Ah
Switch charging
Batere 12V 2 Ah Batere 12V 1.2 Ah
Driver
Regulator 15 V arus tinggi
Motor kamera
Regulator 5 V arus rendah
Mikrokontroler
Regulator 5 V arus tinggi
Receiver, driver, sensor
Regulator 8 V arus tinggi
Wireless camera
Gambar III.19 Diagram blok catu daya sistem robot.
Regulator 5 V arus rendah menggunakan IC regulator 7805 (arus maksimal 1 A [26]) sebagai berikut. Kapasitor C1 dan C2 berguna untuk meratakan tegangan input dan output (sebagai low pass filter).
29
Gambar III.20 Regulator 5 V arus maksimal 1 A.
Regulator 5 V, 8 V, dan 15 V arus tinggi menggunakan IC regulator 7805, 7808, dan 7815 ditambah dengan transistor PNP BD536 sebagai penguat arus.
Gambar III.21 Regulator arus tinggi. [26]
Sehingga arus output menjadi sebagai berikut. I OUT = I REG + I C ,Q1 = I REG + β Q1 ⋅ ( I REG − VBE ,Q1 / R1) Makin besar arus yang ditarik oleh regulator (akibat beban membesar) maka makin besar arus yang ditarik dari basis transistor PNP, sehingga makin besar arus yang melintasi emmiter-collector yang akan menambah arus output.
III.7. Sistem Kamera dan Contoh Aplikasi Robot Vision Sederhana
a.
Sistem Kamera
Kamera yang digunakan ialah wireless camera dengan spesifikasi sebagai dalam Tabel III.4 berikut.
30
Gambar III.22 Kamera wireless dan penerima RC100A+208CWA. [25] Tabel III.4
Spesifikasi kamera
Image sensor Validity pixel Horizontal definition Visual angle Minimum illumination Frequency Transmission power Open transmission distance Power Work temperature Size Weight
1/3” OmniVision CMOS PAL 628×582 / NTSC 510×492 320 line 54° 3 Lux/F1.2 1000 – 1250 MHz 50 mW 100 m DC 8 V / 200 mA -10 to 50°C 25×35×15 mm 65 g
Sumber : [25]. Modul penerimanya dihubungkan ke TV tuner ePro dan diakses dari Visual Basic 6 menggunakan active X control VideoCap.ocx buatan Viscom Software (dapat didownload di http://www.viscomsoft.com/demo/videocapprodemosetup.exe atau melalui http://www.pcdownloadworld.com/development-tools/video/videocap-pro-video-captureactivex-ocx.htm). b.
Contoh Aplikasi Robot Vision Sederhana
Pada tugas akhir ini diambil contoh robot vision sederhana untuk mengikuti garis hitam dan untuk mengikuti bola merah. Contoh ini dimaksudkan untuk menunjukkan bahwa sistem robot kendali jarak jauh yang dibangun dapat digunakan sebagai sistem robot navigasi berbasis kamera. Pengikut Garis Hitam Untuk mengetahui keberadaan garis hitam, dilakukan transformasi grayscale diikuti dengan proses binarisasi. Aturan yang digunakan untuk memandu robot agar tetap
31
mengikuti garis hitam ialah dengan menghitung jumlah pixel warna hitam pada separuh kiri gambar dan pada separuh kanan gambar sebagai berikut. ⎧kanan arah belok = ⎨ ⎩ kiri
jika S R − S L > 100 jika S L − S R > 100
Dengan SR ialah jumlah pixel warna hitam pada separuh gambar kanan, dan SL ialah jumlah pixel warna hitam pada separuh gambar kiri. Setelah melakukan aksi arah belok, robot maju satu step/langkah. Jika kondisi di atas tidak terpenuhi, maka robot hanya mengambil aksi maju satu langkah. Gambar III.23 berikut menunjukkan kondisi yang mungkin terjadi.
SL=2221, SR=2152 (a)
SL=2225, SR=2729 (b)
SL=3111, SR=2038 (c)
Gambar III.23 Kondisi ketika robot mengambil aksi maju saja (a), aksi belok kanan (b), dan aksi belok kiri (c).
Pengikut Bola Merah Aksi mengikuti bola merah diperoleh dengan menggerakkan robot agar posisi pusat bola merah berada di tengah pusat screen kamera. Dengan demikian proses yang dilakukan ialah sebagai ditunjukkan dalam Gambar III.24 berikut.
Set point: Area 5 Area 5 ialah pusat screen kamera.
Output: Posisi robot terhadap bola
Pengontrol: Aksi gerak
Kamera: Ambil gambar Processing: Filter warna merah Pusat warna merah
Gambar III.24 Diagram alir proses mengikuti bola merah.
32
Robot mengambil gambar yang tertangkap oleh kamera. Gambar tersebut kemudian difilter untuk meloloskan warna merah saja dan dicari titik pusat warna merah. Titik pusat ini dibandingkan apakah sudah berada dalam area set point atau belum. Jika belum maka diambil aksi gerak robot untuk mendekati pusat warna merah yang sebanding dengan jarak pusat warna terhadap kamera robot. Karena sistem robot belum memiliki sensor posisi dan sudut, maka penentuan aksi gerak (sebagai respon kontrol semi-proporsional) dilakukan dengan percobaan berapa langkah yang diperlukan untuk mencapai posisi tertentu, dipilih sembilan area, seperti pada Gambar III.25 dan Tabel III.5.
Gambar III.25 Area percobaan pada lantai untuk menentukan jumlah step aksi gerak. Tabel III.5
Nomor area 1 2 3 4 5 6 7 8 9
Hasil percobaan jumlah step yang diperlukan untuk aksi gerak.
Step yang diperlukan Kiri 3 step Maju 7 step Maju 7 step Kanan 3 step Maju 7 step Kiri 3 step Maju 2 step (kondisi target) Kanan 3 step Maju 2 step Kiri 3 step Mundur 2 step Mundur 3 step Kanan 3 step Mundur 2 step
Filter warna merah dimaksudkan untuk meloloskan warna merah saja, yakni nilai warna dalam rentang RGB(130-255, 0-90, 0-90), nilai ini diperoleh dari percobaan mencocokan warna gambar bola merah dengan warna hasil komposisi RGB. Gambar III.26 berikut
33
menunjukkan hasil pemfilteran warna merah terhadap gambar beberapa bola dengan warna berbeda.
(a)
(b)
Gambar III.26 Gambar asli (a), dan gambar setelah proses filter warna merah (b). Cara sederhana ini berhasil mensegmentasi bola merah.
Penentuan pusat warna merah meniru proses penentuan pusat massa benda diskrit, yakni pixel warna merah dimodelkan sebagai benda dengan massa 1 satuan sedangkan pixel warna hitam dimodelkan sebagai ruang kosong (massa 0 satuan). ⎛ ⎛ tinggi ⎞ ⎞ ⎜⎜ ⎜ ∑ mi , j ⎟ ⋅ i ⎟⎟ ∑ i =1 ⎝ ⎝ j =1 ⎠ ⎠ xcm = M tinggi lebar ⎛⎛ ⎞ ⎞ ⎜ ⎜ ∑ mi , j ⎟ ⋅ j ⎟ ∑ j =1 ⎝ ⎝ i =1 ⎠ ⎠ ycm = M lebar
lebar tinggi
M =∑ i =1
∑m j =1
i, j
Pada Gambar III.26(b), pusat screen kamera ditandai dengan perpotongan dua garis hijau dan pusat warna merah ditandai dengan perpotongan dua garis merah. Pada implementasi ini, jika jumlah pixel warna merah kurang dari 500 maka benda tersebut tidak diartikan sebagai bola merah. Hal ini untuk menghindari keterdeteksian tepian bola warna pink sebagai warna merah (tetapi dengan jumlah pixel merah kurang dari 500).
34