Pada program ini berfungsi untuk memberikan nilai OCR untuk menentukan sudut yang diinginkan sesuai kondisi. Program diatas salah satu kondisi lengan robot pada
kondisi siaga. Program ditulis sebagai berikut: Program diatas merupakan program penulisan angka 1 Untuk mempermudah dalam
penentuan tahapan sudut motor servo, digunakan fungsi “for” untuk mencacah nilai OCR secara satu per satu. Setiap tahap diberikan fungsi “for” dan diberi “delay” supaya
pergerakan lengan robot lebih halus dan pelan. Program pengulisan angka 1 mengacu pada flowchart 3.30. Program pergerakan lainnya dapat di lihat pada Lampiran L37
void siaga_robot {
data1=64; 90 delay_ms100;
data2=69; 80 delay_ms100;
data3=75; 90 delay_ms100;
}
void angka_satu {
12 data1=64; 90
delay_ms100; data2=69; 90
delay_ms100; for data3=75;data3=80;data3++ 100
{ delay_ms100;
}; mundur
for data2=69;data2=50;data2-- {
delay_ms100; };
siaga2_robot; delay_ms500;
for data2=50;data2=69;data2++ {
delay_ms100; };
}
4.2. Implementasi GUI Matlab dan Program Pengenalan Font Angka
Pengujian aplikasi dilakukan bertujuan untuk mengetahui apakah sistem yang telah dirancang berjalan sesuai perancangan. Pengujian program dilakukan dengan spesifikasi
sebagai berikut: Processor
: Intel Core i5 RAM
: 2 GB Windows
: 7 GUI dibuat supaya dapat mempermudah user dalam menggunakan aplikasi
penelitian ini. Terdapat beberapa komponen yang dapat digunakan untuk mengeksekusi atau menampilkan perintah. Komponen tersebut dapat diprogram sehingga user dapat lebih
mudah dalam mengeksekusi aplikasi tersebut. Hasil pembuatan GUI ditunjukan pada Gambar 4.7:
Gambar 4.7. Tampilan GUI Program Pengenalan Pada tampilan GUI digunakan tools pada Matlab seperti axes, pop_upmenu, text,
dan pushbutton. User dapat menjalankan program pengenalan angka dengan mengisi pengaturan user,
“PILIH PORT” dan “FONT TULISAN” pada pop up menu yang akan diproses untuk pengenalan gambar font angka. Setelah selesai memilih pengaturan yang
diinginkan, program bisa dijalankan dengan menekan tombol MULAI apabila user tidak
contents = gethObject,Value; switch contents
case 1 handles.PORT=COM15;
case 2 handles.PORT=COM16;
case 3 handles.PORT=COM17;
case 4 handles.PORT=COM18;
case 5 handles.PORT=COM19;
case 6 handles.PORT=COM20;
case 7 handles.PORT=COM21;
case 8 handles.PORT=COM22;
case 9 handles.PORT=COM23;
case 10 handles.PORT=COM24;
case 11 handles.PORT=COM25;
case 12 handles.PORT=COM26;
melakukan pengaturan pada variasi nilai yang terdapat pada aplikasi GUI maka program tidak bisa dijalankan. HASIL scan gambar font angka akan ditampilkan pada axes HASIL
SCAN FONT ANGKA, nilai penjumlahan biner akan ditampilkan pada edit text NILAI BINER dan hasil pencocokan dengan table look up akan ditampilkan pada edit text
ANGKA seperti pada gambar 4.5. Tombol pushbutton KELUAR digunakan jika user ingin menyelesaikan program dan keluar dari tampilan utama program pengenalan gambar font
angka.
4.2.1. Pop Up Menu
Pada aplikasi pengenalan ini terdapat dua macam pop up menu untuk meleakukan pengenalan gambar font
angka yaitu “PILIH PORT” dan “FONT TULISAN”. Pop up menu
“PILIH PORT” berfungi untuk menentukan pada port mana usb to ttl tersambung dengan nilai variasi 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15. Dan pop up menu
“FONT TULISAN” berfungi untuk memilih jenis font apa yang akan di scan dengan nilai variasi
1;2;3. Program variasi pop up menu “PILIH PORT” akan dituliskan seperti berikut:
Pada program pop up menu satu digunakan untuk variasi user dengan variasi 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15.
Inisialisasi tiap nilai dengan variabel “port” kemudian diubah menjadi “COM” dengan menggunakan fungsi “handles” .
contents = gethObject,Value; switch contents
case 1 handles.FONT=1;
case 2 handles.FONT=2;
case 3 handles.FONT=3;
end guidatahObject,handles;
proses inisialisasi webcam Imaqhwinfo;
vid=videoinputwinvideo,1,RGB24_320x240; proses capture gambar
gambar=getsnapshotvid; proses merubah ke grayscale
grey=rgb2graygambar;
Pada program pop up menu dua diguanakan untuk variasi nilai “FONT TULISAN”
dengan nilai 1;2;3 . Inisialisasi tiap nilai dengan variabel “contents” kemudian diubah
menjadi “FONT” menggunakan fungsi “handles” . Proses ini sama dengan program popup menu sebelumnya.
Program variasi pop up menu “FONT TULISAN” akan dituliskan seperti berikut:
4.2.2. Tombol Mulai
T ombol “MULAI” merupakan tombil yang berfungsi untuk melakukan pengenalan
gambar font angka mulai dari inisialisasi webcam, pengambilan gambar, mengubah gambar ke grayscale, normalisasi, mengubah gambar grayscale menjadi gambar biner, cropping,
resizeing, menjumlahkan nilai biner, mencocokan dengan table look up, penentuan hasil keluaran pada GUI dan pengiriman data serial menuju mikrokontroler.
Penulisan program untuk melakukan inisialisasi webcam capture gambar dan merubah k grayscale ditulis secara berurut sebagai berikut.
case 13 handles.PORT=COM27;
case 14 handles.PORT=COM28;
case 15 handles.PORT=COM29;
end guidatahObject,handles;
proses normalisasi greycale grey=doublegrey;
grey=greymaxmaxgrey; proses merubah ke biner
biner=im2bwgrey; croping
crop=imcropbiner,[124.51 36.51 83.98 104.98]; proses resizing
y=imresizecrop,[64 32]; c=doubley;
Perintah program “imaqhwinfo” adalah perintah program untuk menampilkan informasi yang akan disampaikan oleh webcam dan kemudian informasi tersebut akan
diinisialisasi ke dalam program. Hal ini bertujuan agar antara webcam dengan software Matlab dapat melakukan komunikasi. Informasi yang tampil adalah adaptor kamera,
portwebcam, jenis warna dan resolusi piksel. Berkut ini adalah program normalisasi grayscale, merubah grayscale ke biner,
cropping, resizeing menjumlahkan semua data biner, dan ditampilkan pada axes. dituliskan ditulis secara berurut sebagai berikut.
perintah program normalisai adalah untuk membuat nilai grayscale menjadi maksimum yaitu 1, setelah itu gambar grayscale diubah menjadi gambar biner, kemudian
proses cropping atau pemotongan gambar. Hal ini bertujuan untuk menghilangkan background atau latar belakang yang tidak dibutuhkan untuk diproses. Dan resizeing
berfungsi untuk mengubah ukuran factor skala untuk mempertahankan aspek rasio gambar. Seelah itu menghitung dan menjumlahkan semua pixel, dan ditampilakn pada axes.
Berikut ini merupakan program range table look up untuk tiap font angka.
forte if handles.FONT==1
if data=846data=855 sethandles.edit1, string, ANGKA NOL;
guidatahObject,handles; fprintfkomunikasi,0;
guidatahObject,handles; elseif data=535data=545
sethandles.edit1, string, ANGKA SATU; guidatahObject,handles;
fprintfkomunikasi,1; guidatahObject,handles;
elseif data=685data=700 sethandles.edit1, string, ANGKA EMPAT;
guidatahObject,handles; fprintfkomunikasi,4;
guidatahObject,handles; elseif data=795data=810
sethandles.edit1, string, ANGKA LIMA; guidatahObject,handles;
fprintfkomunikasi,5; guidatahObject,handles;
elseif data=835data=845 sethandles.edit1, string, ANGKA ENAM;
guidatahObject,handles; fprintfkomunikasi,6;
guidatahObject,handles; elseif data=670data=690
sethandles.edit1, string, ANGKA TUJUH; guidatahObject,handles;
fprintfkomunikasi,7; guidatahObject,handles;
elseif data=815data=825 sethandles.edit1, string, ANGKA DELAPAN;
guidatahObject,handles; fprintfkomunikasi,8;
guidatahObject,handles; elseif data=770data=790
sethandles.edit1, string, ANGKA SEMBILAN; guidatahObject,handles;
fprintfkomunikasi,9; guidatahObject,handles;
end harrington
elseif handles.FONT==2 if data=414data=420
sethandles.edit1, string, ANGKA NOL; guidatahObject,handles;
fprintfkomunikasi,0; guidatahObject,handles;
elseif data=215data=220 sethandles.edit1, string, ANGKA SATU;
guidatahObject,handles; fprintfkomunikasi,1;
guidatahObject,handles; elseif data=380data=385
sethandles.edit1, string, ANGKA DUA; guidatahObject,handles;
fprintfkomunikasi,2; guidatahObject,handles;