Implementasi Lengan Robot Aplikasi pengenalan angka menggunakan webcam untuk lengan robot penulis angka.

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;