Upload
vuhanh
View
217
Download
2
Embed Size (px)
Citation preview
20
Bab III
Perangkat Pengujian
Persoalan utama dalam tugas akhir ini adalah bagaimana
mengimplementasikan metode pengukuran jarak menggunakan pengolahan citra
tunggal dengan bantuan laser pointer dalam suatu perangkat pengukuran, untuk
kemudian membandingkan hasil pengukurannya dengan alat ukur yang lebih
terpercaya. Oleh karena itu perlu dirancang dan dibuat suatu perangkat pengujian
yang dapat menjalankan fungsi pengukuran dan pengujian tersebut. Sebagaimana
telah disebutkan pada bab sebelumnya, alat ukur pembanding pada tugas akhir ini
adalah suatu laser distance sensor yang sekaligus berperan sebagai laser pointer.
Perangkat yang akan dibahas dalam bab ini terdiri dari dua bagian, yaitu
perangkat keras (hardware) dan perangkat lunak (software).
3.1 Perangkat Keras
Gambar 3.1 Diagram aliran informasi dan perintah pada perangkat keras
Pada teknik pengukuran jarak melalui pengolahan citra dengan bantuan
laser pointer, komputer adalah tempat semua data bermuara untuk diterjemahkan
21
menjadi jarak. Pada komputer inilah nantinya akan ditampilkan angka jarak hasil
pembacaan. Sesuai dasar teori pada bab sebelumnya, diperlukan dua buah
informasi agar jarak dapat terbaca. Kedua informasi tersebut yaitu berupa citra
dan besar sudut kemiringan laser pointer terhadap sumbu yang sejajar dengan
sumbu fokus kamera.
Informasi citra bisa didapat dari kamera setelah melalui proses digitizing
yang dilakukan oleh TV tuner internal yang ada di dalam komputer. Dalam hal ini
TV tuner internal bekerja sebagai frame grabber, yaitu dengan mengambil data
gambar analog dari komputer dan mengkonversinya menjadi frame-frame gambar
digital yang bisa diolah oleh komputer.
Informasi sudut bisa didapat dari rotary encoder. Namun, untuk sampai ke
komputer, sinyal dari encoder perlu diubah dulu bentuknya melalui suatu
controller board yang berisi mikrokontroller beserta kelengkapannya. Hal ini
disebabkan sinyal dari encoder berbentuk pulsa-pulsa A dan B, seperti yang telah
diterangkan pada bab dua. Pulsa-pulsa ini akan diubah menjadi data hitungan
sehigga lebih mudah untuk diterima komputer melalui jalur komunikasi USART
(Universal Synchronous/Asynchronuous Receiver/Transmitter) dengan
mikrokontroller.
Selain menerima informasi-informasi tersebut, komputer juga perlu untuk
bisa memberi perintah untuk bergerak ke posisi angular tertentu kepada laser
pointer. Hal ini bisa dicapai apabila komputer bisa memberikan perintah sudut
kepada motor servo. Perintah PWM untuk motor servo bisa diimplementasikan
dengan lebih mudah bila melalui mikrokontroller. Oleh karena itu melalui
USART juga akan dikirimkan perintah sudut dari komputer ke mikrokontroller
untuk selanjutnya perintah tersebut diterjemahkan menjadi perintah PWM ke
motor servo.
Pada gambar 3.1 dapat dilihat diagram aliran informasi dan perintah yang
akan diimplementasikan pada perangkat pengujian. Dari gambar dan keterangan-
keterangan sebelumnya juga bisa disimpulkan bahwa agar sistem dapat berjalan,
maka laser pointer, motor servo, dan rotary encoder harus berada dalam satu
sumbu poros.
22
3.1.1 Perangkat Mekanik
Perangkat mekanik dirancang sebagai tempat kamera dan laser pointer
terpasang dengan jarak yang tidak berubah. Selain itu perangkat ini juga harus
dapat memungkinkan untuk mengubah-ubah posisi angular laser pointer sambil
membaca nilai posisi angular laser pointer tersebut. Frame perangkat mekanik ini
sebagian besar berbahan aluminium dural karena pertimbangan kemudahan dalam
proses pemesinan. Bagian atas yang juga merupakan tempat terpasangnya kamera
menggunakan bahan akrilik transparan agar nilai pembacaan dari laser distance
sensor yang ditampilkan di bagian atas alat tersebut dapat terbaca. Kamera yang
digunakan adalah kamera CCTV TelView MM247. Motor servo yang digunakan
adalah Hitec HS322-HD. Rotary encoder menggunakan Autonics E40H6-1024-3-
2-24. Sedangkan laser distance sensor yang digunakan adalah IFM O1D100.
Spesifikasi teknis semua komponen tersebut dapat dilihat pada lampiran.
Gambar 3.2 Rancangan tiga dimensi perangkat mekanik
23
Gambar 3.3 Perangkat mekanik yang telah dibuat
3.1.2 Controller Board
Controller board yang digunakan dalam tugas akhir ini adalah M.B.7.2
buatan MAX-TRON. Controller board ini menggunakan mikrokontroller Atmel
ATMega8535 dan dilengkapi dengan fasilitas sambungan-sambungan untuk
input-output, servo, dan juga komunikasi USART. Fasilitas mikrokontroller yang
digunakan dalam tugas akhir ini adalah pin RXD dan TXD untuk sambungan
USART, pin PD2 untuk input PWM servo, serta pin PD3 dan PD4 untuk
sambungan ke output dari rotary encoder. Sambungan ke output rotary encoder
ini salah satunya harus pin yang mempunyai fasilitas interrupt karena akan
digunakan untuk mendeteksi perubahan pulsa.
24
Gambar 3.4 Controller board yang digunakan
3.2 Perangkat Lunak
Perangkat lunak yang digunakan untuk membuat tugas akhir ini adalah
sebagai berikut:
1. Borland C++ Builder 6
Program ini digunakan untuk membuat program aplikasi di
komputer yang dapat mengambil data untuk mengukur jarak dan sekaligus
menjadi antarmuka (interface) dengan operator. Keunggulan dari program
ini adalah kemudahannya dalam memulai membuat program karena
menyediakan Visual Component Library (VCL). Selanjutnya program
dapat dibuat berdasarkan event-event yang terjadi pada tiap komponen
visual yang telah kita pilih untuk digunakan.
2. OpenCV 1.0
OpenCV adalah library yang menyediakan perintah-perintah
pemrosesan yang umum digunakan dalam bidang computer vision.
Penggunaan library ini sangat membantu karena mempermudah dan
mempercepat pembuatan program.
25
3. Video Capture
Video Capture yang dimaksud adalah bagian dari Microsoft
DirectX 8.1 Standard Development Kit, yang merupakan contoh program
yang dibuat dengan C++ menggunakan fasilitas DirectShow. Program ini
diperlukan untuk mengeset format citra yang ditangkap oleh kamera. Hal
ini dikarenakan dalam prakteknya, dengan konfigurasi perangkat keras
yang ada, format video yang akan tertangkap baik dan mudah untuk diolah
adalah format PAL. Komputer tidak selalu secara default membaca video
dalam format ini sehingga diperlukan pengesetan terlebih dahulu tiap kali
akan memulai menggunakan program yang telah dibuat.
4. Codevision CVAVR
Berbeda dengan semua perangkat lunak sebelumnya yang berandil untuk
membuat antarmuka, program ini berguna untuk memprogram
mikrokonroller pada controller board sehingga mikrokontroller bisa
berfungsi sesuai yang diinginkan. Dengan program ini kita bisa membuat
perintah-perintah dalam bahasa C++ untuk diprogramkan pada
mikrokontroller. Pemilihan program ini juga bersesuaian dengan
mikrokontroller yang digunakan, yaitu mikrokontroller dari ATMEL.
Sebagai catatan penting, perlu diperhatikan bahwa program buatan
Borland C++Builder sebenarnya tidak bisa terkoneksi dengan DirectX. Keduanya
bisa disambungkan dengan mengikutsertakan suatu file khusus berformat .dll yang
telah dibuat pada penelitian sebelumnya.
3.2.1 Proses Penghitungan Jarak Melalui Pengolahan Citra
Untuk mempermudah pembahasan mengenai proses penghitungan jarak
melalui pengolahan citra, akan digunakan Data Flow Diagram (DFD) sebagai
ilustrasi. Seperti sudah pernah dijelaskan sebelumnya, sistem pengolahan citra
dalam tugas akhir ini menghasilkan informasi jarak dari data citra dan sudut
kemiringan laser pointer. Sesuai dengan itu, DFD level 0 pada gambar 3.5
memodelkan bahwa sistem berantarmuka dengan tiga external entity, yaitu TV
tuner, controller board, dan operator. Sistem mendapatkan data video yang sudah
berformat digital dari TV tuner, dan mendapatkan data hitungan pulsa rotary
26
encoder dari controller board, untuk kemudian mengolahnya menjadi jarak
kamera ke titik laser yang akan dibaca oleh operator.
Gambar 3.5 DFD level 0 sistem pengolahan citra
27
Gambar 3.6 DFD level 1 sistem pengolahan citra
DFD level 0 ini dapat dijabarkan lagi menjadi proses-proses pada DFD
level 1 seperti yang terlihat pada gambar 3.6. Tahapan dari pengolahan data
adalah sebagai berikut. Pertama-tama sistem mengambil memori dari tiap-tiap
frame video sehingga setiap saat didapat citra dalam format RGB. Selanjutnya
sistem men-threshold citra RGB tersebut sehingga didapatkan citra biner. Pada
citra biner tersebut hanya akan terdapat dua warna, yaitu warna putih yang
merepresentasikan titik laser, dan warna hitam yang mewakili semua yang bukan
merupakan titik laser. Selanjutnya sistem akan mencari jarak vertikal titik laser
dari titik tengah citra. Jarak tersebut akan terbaca dalam satuan pixel. Setelah
mendapatkan jarak bersatuan pixel tersebut, dengan juga menggunakan data
hitungan pulsa dari rotary encoder, sistem akan menghitung jarak dari kamera ke
28
titik laser menggunakan suatu rumus. Rumus ini akan didapat dari hasil kalibrasi
yang akan diterangkan pada bab selanjutnya berdasarkan dasar teori yang sudah
dijabarkan pada bab dua.
Proses kedua yang terdapat pada DFD level 1 dapat diterangkan lebih
lanjut dengan DFD level 2 yang ada pada gambar 3.7.
Gambar 3.7 DFD level 2 sistem pengolahan citra untuk proses nomor 2
Proses thresholding yang dimaksud sebenarnya terdiri dari dua tahap.
Tahapan pertama adalah mengambil data citra pada kanal warna merah. Seperti
yang telah dijelaskan pada bab sebelumnya, citra RGB mempunyai tiga kanal
warna, yaitu kanal merah, kanal hijau dan kanal biru. Kanal merah diambil karena
titik laser mempunyai warna merah yang spesifik. Operasi ini akan menghasilkan
suatu citra grayscale yang nilai-nilai intensitas pada tiap pixelnya menyatakan
tingkat kemerahan. Dalam pemrograman operasi pengambilan data kanal merah
ini dapat dilakukan dengan perintah OpenCV “cvCvtPixToPlane”.
Tahapan selanjutnya adalah melakukan thresholding dengan batas ambang
254. Citra yang diproses dalam tugas akhir ini mempunyai kedalaman warna 8 bit.
Oleh karena itu pada citra grayscale nilai intensitas akan berkisar diantara 0
sampai 255. Dari percobaan diketahui bahwa nilai merah titik laser pada citra
biasanya selalu 255. Maka dari itu dilakukan proses thresholding dengan
mengkonversi intensitas 255 pada citra menjadi 1 (putih), dan mengkonversi
semua nilai intensitas selain itu menjadi 0 (hitam). Proses ini dengan
mennggunakan OpenCV dapat dilakukan dengan perintah “cvThreshold”. Metode
thresholding yang dipilih adalah “CV_THRESH_BINARY”.
Proses ketiga merupakan suatu proses feature detection. Proses ini
dilaksanakan dengan cara men-scan citra untuk mencari posisi titik laser. Titik
laser pada citra akan terbaca sebagai suatu area. Scanning akan dilakukan untuk
tiap-tiap koordinat x tertentu seperti diilustrasikan pada gambar 3.8. Pada ilustrasi
29
tersebut lebar citra adalah 8 pixel. Ketika berada di koordinat x = 4, dengan
scanning pada arah sesuai tanda panah, akan terbaca bahwa pixel putih berada
pada y = 3, y = 4, dan y = 5. Program akan menjumlahkan angka-angka tersebut
dan membaginya dengan jumlah pixel putih yang ditemukan yaitu 3. Sehingga
ditemukan bahwa pada garis x = 4 titik berat ada di y = 4. Proses ini akan
berulang untuk setiap garis dengan nilai x tertentu. Hasil titik berat y di semua
titik akan dijumlahkan dan hasilnya dibagi dengan jumlah garis yang memiliki
pixel putih didalamnya sehingga ditemukan titik berat y pixel putih secara
keseluruhan.
Gambar 3.8 Ilustrasi scanning pixel putih untuk tiap garis
Dengan teknik scanning seperti di atas, maka akan didapat jarak dari titik
terbawah citra. Untuk mendapatkan jarak dari kamera ke titik laser, dibutuhkan
data jarak vertikal pixel dari titik tengah citra. Pada tugas akhir ini citra yang
diproses berukuran 320x240. Untuk itu, karena lebar citra adalah 240, maka hasil
pembacaan titik berat y pixel putih harus dikurangkan dengan 120.
Gambar 3.9 DFD level 2 sistem pengolahan citra untuk proses nomor 3
30
Proses selanjutnya pada dasarnya adalah menghitung dengan
menggunakan persamaan 2.9 yang sudah diterangkan pada bab dua. Dengan,
konfigurasi alat pengujian yang ada, persamaan tersebut menjadi:
TanCp
TZ
...(3.1)
Dimana tanda positif pada Tan terjadi karena sesungguhnya alat pengujian yang
dibuat hanya akan menghasilkan sudut yang negatif bila dilihat dari konvensi
vektor yang dilakukan selama mencari persamaan 2.9.
Karena input yang didapat dari controller board berupa hitungan pulsa,
maka sebelumnya hitungan pulsa tersebut harus dikonversi menjadi besar sudut.
Apabila hitungan pulsa adalah b, dan encoder mempunyai pulsa sebanyak 1024
dalam satu putaran, maka sudut dapat dicari melalui persamaan:
3601024
b ...(3.2)
Gambar 3.10 DFD level 2 sistem pengolahan citra untuk proses nomor 4
3.2.2 Program Aplikasi Pengukur Jarak
Program yang telah dibuat memiliki tampilan seperti pada gambar berikut.
31
Gambar 3.11 Tampilan aplikasi pengukur jarak
Dari gambar dapat dilihat bahwa program mempunyai panel-panel yang
pada gambar ditandai dengan angka-angka berwarna kuning. Deskripsi dari
masing-masing panel, dengan mengikuti penomoran, adalah sebagai berikut:
1. Panel ini memperlihatkan citra RGB yang ditangkap oleh kamera.
2. Pada panel ini diperlihatkan citra biner hasil operasi thresholding, adanya
panel ini bersama dengan panel pertama memungkinkan operator untuk
mengecek apakah program mendeteksi titik laser atau terjadi kesalahan
dimana yang terdeteksi bukan titik laser yang dimaksud.
3. Panel ini digunakan untuk menyambungkan koneksi USART dengan
controller board. Panel ini sekaligus juga menampilkan data sudut laser
yang terbaca oleh rotary encoder.
4. Panel ini menampilkan jarak vertikal titik laser dari titik tengah citra dalam
satuan pixel.
5. Panel ini menampilkan jarak dari kamera ke titik laser yang terukur
melalui metode pengukuran jarak menggunakan pengolahan citra.
32
6. Panel ini digunakan untuk membandingkan hasil pengukuran melalui
pengolahan citra dengan yang dihasilkan oleh laser distance sensor. Panel
ini dibuat karena hasil dari laser distance sensor sebenarnya adalah jarak
secara diagonal. Dengan memasukkan angka hasil pengukuran ke isian
pada panel ini dan menekan tombol “Calculate”, maka akan dihasilkan
angka hasil pengukuran melalui laser distance sensor yang sebenarnya.
7. Panel ini digunakan untuk memberi perintah posisi sudut kepada motor
servo. Posisi sudut yang dicapai nantinya akan terbaca melalui panel
ketiga yang telah diterangkan sebelumnya.
Untuk dapat menjalankan program ini dibutuhkan langkah-langkah
sebagai berikut:
1. Memastikan semua sambungan antara komputer, kamera, dan controller
board telah terhubung.
2. Menyalakan sambungan power kamera, laser pointer, dan controller
board. Jika ketika controller board dinyalakan terjadi gerakan pada laser
pointer, maka controller board harus di-reset kembali. Ini karena jika
demikian halnya maka rotary encoder sudah mulai menghitung perubahan
sudut, sedangkan perangkat sebelumnya telah diset agar pada saat pertama
kali dinyalakan laser pointer menghadap lurus ke depan, dengan kata lain
sudut kemiringannya nol derajat.
3. Membuka program Video Capture, dan mengeset agar dapat ditampilkan
gambar hasil tangkapan kamera yang berformat PAL, kemudian menutup
lagi program tersebut.
4. Menyalakan program aplikasi pengukur jarak (Cyclops).
5. Memilih serial port yang akan digunakan, dan menekan tombol “Connect
UART”.