• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN PENELITIAN

4.3. Analisa dan Pembahasan Perangkat Lunak

4.3.2. Aplikasi MATLAB

4.3.2.5. Proses Pengenalan Bentuk Benda

Berdasarkan nilai-nilai dari tabel 4.3, maka dibuat sebuah range yang menentukan bentuk benda tersebut. Untuk benda kubus range data yang digunakan yaitu antara 81 sampai 110, sedangkan untuk benda balok range data yang digunakan yaitu antara 111 sampai 140, kemudian untuk benda tabung range data yang digunakan yaitu antara 65 sampai 80, dan untuk benda bola range data yang digunakan yaitu antara 42 sampai 64. Dari data tersebut, maka dapat dibuat range nilai untuk mengetahui dan mengenali dari masing-masing bentuk benda. Listing program ditunjukan gambar 4.50.

Gambar 4.50. Listing Program Pengenalan Bentuk Benda

Proses berjalannya program jika data memiliki nilai antara 81-110 maka akan

tampil pada “edit6” benda yang terdeteksi yaitu kubus, kemudian menjumlahkan nilai

kubus yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada “edit1” lalu mengirimkan karakter „a‟ secara serial. Jika data memiliki nilai antara 111-140 maka

akan tampil pada “edit6” benda yang terdeteksi yaitu balok, kemudian menjumlahkan nilai balok yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada “edit2” lalu mengirimkan karakter „b‟ secara serial.

Jika data memiliki nilai antara 65-80 maka akan tampil pada “edit6” benda yang

terdeteksi yaitu tabung, kemudian menjumlahkan nilai tabung yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada “edit3” lalu mengirimkan karakter „c‟

secara serial. Jika data memiliki nilai antara 42-64 maka akan tampil pada “edit6” benda

yang terdeteksi yaitu bola, kemudian menjumlahkan nilai bola yang terdeteksi sebanyak 1 dan hasil penjumlahan tersebut ditampilkan pada “edit4” lalu mengirimkan karakter „b‟

secara serial. Apabila data tidak berada didalam range yang ada, maka itu berarti benda tidak terdeteksi oleh sistem kemudian sistem akan mengirimkan karakter „e‟ secara serial.

80

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil pengujian serta pengambilan data pada aplikasi pengenalan objek untuk lengan robot pemisah benda berdasarkan bentuk benda, dapat diambil kesimpulan:

1. Sistem dapat mengenali bentuk benda dengan baik ketika mendeteksi benda. 2. Waktu yang dibutuhkan sistem tanpa looping untuk menyelesaikan proses

yaitu + 27 detik sedangkan waktu yang dibutuhkan sistem dengan menggunakan looping untuk menyelesaikan proses yaitu + 33 detik.

3. Sistem mampu mengenali bentuk benda dan berhasil melakukan counting

jumlah benda yang telah terdeteksi.

4. Peletakan dan posisi benda sesuai dengan batasan masalah, membuat sistem dan lengan robot bekerja dengan baik.

5. Posisi benda yang tidak sesuai dengan batasan masalah membuat gripper

lengan robot tidak dapat mencengkram benda untuk memindahkannya.

6. Motor servo berfungsi dengan baik sebagai aktuator lengan robot dalam mengerjakan proses pengambilan dan peletakan benda. Tetapi lebar pulsa motor servo jenis Towerpro MG946R berbeda dengan lebar pulsa pada teori.

5.2. Saran

Saran-saran bagi pengembangan selanjutnya adalah: 1. Lebih banyak variasi bentuk benda yang dideteksi. 2. Peletakan dan posisi benda dibuat bebas.

3. Waktu sistem untuk proses pengenalan objek dibuat lebih cepat.

4. Lengan robot dibuat lebih baik lagi agar pergerakan menjadi fleksibel dan mampu mengambil benda pada posisi apapun.

5. Menggunakan jenis motor servo yang sesuai dengan dasar teori dan memiliki spesifikasi lebar pulsa yang lengkap agar selama penentuan sudut motor servo tidak mengalami kesulitan.

81

Daftar Pustaka

[1] Budiharto, W., 2014, Robotika Modern – Teori dan Implementasi,edisi revisi, C.V Andi Offset, Yogyakarta.

[2] Budiharto, W. dan Purwanto, D., 2012, Robot Vision – Teknik Membangun Robot Cerdas Masa Depan, C.V Andi Offset, Yogyakarta.

[3] Arismarjito, 2011, Robot Lengan Otomatis Sebagai Pemisah Barang Berdasarkan Warna Dengan Menggunakan ATmega8535, Skripsi, Universitas Sanata Dharma, Yogyakarta.

[4] Paul A. Tipler, 1998, FISIKA Untuk Sains dan Teknik, edisi 3 jilid 1, Erlangga, Bandung.

[5] http://www.servodatabase.com , diakses pada tanggal 20 November 2014.

[6] ----, 2011,Data Sheet Mikrokontroler ATmega32, Atmel.

[7] Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokonroler ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.

[8] Setiawan, A., 2011, 20 Aplikasi Mikrokontroler ATmega8535 dan ATmega16, Andi, Yogyakarta.

[9] Boylestad, R. and Nashelsky. L., Electronic Devices and Circuit Theory, seventh edition, Prentice Hall, New Jersey Columbus, Ohio.

[10] Fathoni, Oktober 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element Transistor NPN dan PNP, Jurnal Neutrino,Vol.3, No.1.

[11] Budiharto, W., 2008, Panduan Praktikum Mikrokontroler AVR Atmega16, PT Elex Media Komputindo, Jakarta.

[12] Enterprise, Jubilee, 2010, Teknik Mengendalikan PC dari Jarak Jauh, PT Elex Media Komputindo, Jakarta.

[13] http://www.logitech.com/en-in/product/hd-webcam-c270h ,diakses pada tanggal 20 November 2014.

[14] http://cantiknyailmu.com/daftar-lengkap-rumus-bangun-ruang.html , diakses pada tanggal 21 November 2014.

[16] Wijaya, M.Ch., dan Prijono, A., 2007, Pengolahan Citra Digital Menggunakan MATLAB, Informatika, Bandung.

[17] http://www.servodatabase.com/servo/towerpro/mg946r, diakses 20 November

2014.

[18] http://www.vcc2gnd.com/2014/05/sg90-tower-pro-9g-micro-servo.html, diakses 20 November 2014.

[19] ----, 2002, Data Sheet Transistor 2N3904, KEC.

Rangkaian Minimum System Atmega8535

Rangkaian Regulator

Spesifikasi Servo Towerpro MG946R [17]

Towerpro MG946R [5] Towerpro SG90 [5]

Spesifikasi Webcam Logitech C270h [13]

Datasheet Transistor 2N3904 [19]

Datasheet Transistor 2N3055 [20]

LISTING PROGRAM CVAVR

/***************************************************** Project : APLIKASI PENGENALAN OBJEK MENGGUNAKAN WEBCAM UNTUK LENGAN ROBOT

PEMISAH BENDA BERDASARKAN BENTUK BENDA Date : 19/03/2015

Chip type : ATmega32 Program type : Application Clock frequency : 11,059200 MHz Memory model : Small

External RAM size : 0

Data Stack size : 512

*****************************************************/ #include <mega32.h>

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

#include <lcd.h>

// Standard Input/Output functions #include <stdio.h>

#define servo1 PORTB.0 #define servo2 PORTB.1 #define servo3 PORTB.2 #define servo4 PORTB.3

signed int i=0,data1=0,data2=0,data3=0,data4=0; int sensor,a;

unsigned char sens[16],b[16];

// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) {

// Place your code here i++;

if (i>864){i=0;} else

{

else{servo1=0;} if (i<data2) {servo2=1;} else{servo2=0;} if (i<data3){servo3=1;} else{servo3=0;} if (i<data4) {servo4=1;} else{servo4=0;} } } #include <delay.h> #define ADC_VREF_TYPE 0x40 // Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here void photodioda() { sensor=read_adc(0)/2; lcd_gotoxy(0,1); sprintf(sens,"sensor=%d",sensor); lcd_puts(sens); delay_ms(10); } void komunikasi() { a=getchar(); lcd_gotoxy(0,0); sprintf(b,"komunikasi= %d" ,a); lcd_puts(b); delay_ms(3000); lcd_clear();delay_ms(10); } void siaga() { data1=71; delay_ms(100); data3=94; delay_ms(100); data2=53; delay_ms(100); data4=89; delay_ms(100); } void siaga_grip() {

data1=71; delay_ms(100); data2=53 ; delay_ms(100); data3=94; delay_ms(100); data4=122; delay_ms(100); } void ambil_benda() { data1=71; delay_ms(100); data3=76; delay_ms(100); data2=84; delay_ms(100); data4=122; delay_ms(100); } void kubus() { data1=33; delay_ms(100); data2=53 ; delay_ms(100); data3=90; delay_ms(100); data4=89; delay_ms(100); } void balok() { data1=48; delay_ms(100); data3=67; delay_ms(100); data2=82 ; delay_ms(100); data4=89; delay_ms(100); } void tabung() { data1=92; delay_ms(100); data3=67; delay_ms(100); data2=82 ; delay_ms(100); data4=89; delay_ms(100); } void bola()

{ data1=111; delay_ms(100); data2=53 ; delay_ms(100); data3=90; delay_ms(100); data4=89; delay_ms(100); } void gripper() { data4=89; delay_ms(100); } void gerak_ambil() { siaga(); delay_ms(500); for (data3=94;data3>=78;data3--) {delay_ms(50); }; for (data2=53;data2<=84;data2++) {delay_ms(50);}; for (data4=89;data4<=122;data4++) {delay_ms(50);}; ambil_benda(); delay_ms(500); for (data2=84;data2>=53;data2--) {delay_ms(50);}; delay_ms(50); for (data3=72;data3<=94;data3++) {delay_ms(50);}; siaga_grip(); delay_ms(500); } void gerak_kubus() { //kubus gerak_ambil(); delay_ms(500); for (data3=94;data3>=90;data3--) {delay_ms(50);}; for (data1=71;data1>=33;data1--) {delay_ms(50);}; for (data4=122;data4>=89;data4--) {delay_ms(50);}; kubus(); delay_ms(500); gripper(); delay_ms(500);

for (data1=33;data1<=71;data1++) {delay_ms(50);}; for (data3=90;data3<=94;data3++) {delay_ms(50);}; } void gerak_balok() { //balok gerak_ambil(); delay_ms(500); for (data3=94;data3>=67;data3--) {delay_ms(50);}; for (data1=71;data1>=48;data1--) {delay_ms(50);}; for (data2=53;data2<=82;data2++) {delay_ms(50);}; for (data4=122;data4>=89;data4--) {delay_ms(50);}; balok(); delay_ms(500); gripper(); delay_ms(500); for (data2=82;data2>=53;data2--) {delay_ms(50);}; for (data1=48;data1<=71;data1++) {delay_ms(50);}; for (data3=67;data3<=94;data3++) {delay_ms(50);}; } void gerak_tabung() { //tabung gerak_ambil(); delay_ms(500); for (data3=94;data3>=67;data3--) {delay_ms(50);}; for (data1=71;data1<=92;data1++) {delay_ms(50);}; for (data2=53;data2<=82;data2++) {delay_ms(50);}; for (data4=122;data4>=89;data4--) {delay_ms(50);}; tabung(); delay_ms(500); gripper(); delay_ms(500); for (data2=82;data2>=53;data2--) {delay_ms(50);}; for (data1=92;data1>=71;data1--) {delay_ms(50);}; for (data3=67;data3<=94;data3++)

{delay_ms(50);}; } void gerak_bola() { //bola gerak_ambil(); delay_ms(500); for (data3=94;data3>=90;data3--) {delay_ms(50);}; for (data1=71;data1<=111;data1++) {delay_ms(50);}; for (data4=122;data4>=89;data4--) {delay_ms(50);}; bola(); delay_ms(500); gripper(); delay_ms(500); for (data1=111;data1>=71;data1--) {delay_ms(50);}; for (data3=90;data3<=94;data3++) {delay_ms(50);}; } void main(void) {

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;

DDRB=0xFF; // Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0xFF;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 11059,200 kHz // Mode: Normal top=FFh

// OC0 output: Disconnected TCCR0=0x01;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;

UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 691,200 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

// LCD module initialization lcd_init(16);

// Global enable interrupts #asm("sei") siaga(); delay_ms(500); while (1) { photodioda(); delay_ms(10); if (sensor>=200) { delay_ms(100); PORTD.2=0;delay_ms(5); putchar('a');delay_ms(1000); putchar('a');delay_ms(1000); putchar('a');delay_ms(1000); z=1;delay_ms(100); while(z) { a=getchar(); delay_ms(5); if(a=='a') { lcd_gotoxy(0,1);lcd_putsf("BENDA KUBUS");delay_ms(1000); gerak_kubus();delay_ms(10); lcd_clear();delay_ms(10);z=0; } else if(a=='b') { lcd_gotoxy(0,1);lcd_putsf("BENDA BALOK");delay_ms(1000); gerak_balok();delay_ms(10); lcd_clear();delay_ms(10);z=0; } else if(a=='c') { lcd_gotoxy(0,1);lcd_putsf("BENDA TABUNG");delay_ms(1000); gerak_tabung();delay_ms(10); lcd_clear();delay_ms(10);z=0; } else if(a=='d')

{ lcd_gotoxy(0,1);lcd_putsf("BENDA BOLA");delay_ms(1000); gerak_bola();delay_ms(10); lcd_clear();delay_ms(10);z=0; } else if(a=='e') { lcd_gotoxy(0,1);lcd_putsf("TIDAK TERDETEKSI");delay_ms(1000); PORTD.2=1;delay_ms(500); lcd_clear();delay_ms(10);z=0; } } } else {PORTD.2=1;delay_ms(5);} }; } LISTING PROGRAM GUI MATLAB DENGAN MENGGUNAKAN LOOPING function varargout = realtime(varargin) % REALTIME MATLAB code for realtime.fig % REALTIME, by itself, creates a new REALTIME or raises the existing % singleton*. % % H = REALTIME returns the handle to a new REALTIME or the handle to % the existing singleton*. % % REALTIME('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in REALTIME.M with the given input arguments. % % REALTIME('Property','Value',...) creates a new REALTIME or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before realtime_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to realtime_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help realtime % Last Modified by GUIDE v2.5 02-Jul-2015 18:45:25 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @realtime_OpeningFcn, ...

'gui_OutputFcn', @realtime_OutputFcn, ...

'gui_LayoutFcn', [] , ...

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before realtime is made visible.

function realtime_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn. % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to realtime (see VARARGIN) % Choose default command line output for realtime

clc; set(handles.edit1, 'String','0' ); set(handles.edit2, 'String','0'); set(handles.edit3, 'String','0' ); set(handles.edit4, 'String','0' ); set(handles.edit5, 'String','' ); set(handles.edit6, 'String','' ); handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes realtime wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = realtime_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

clc; global z global kubus global balok global tabung global bola z=1; kubus=0; balok=0; tabung=0; bola=0; guidata(hObject,handles); while z

%data yang dikirimkan

komunikasi=serial(handles.PORT); guidata(hObject,handles);

%setting hardware diperlukan

set(komunikasi,'BaudRate',9600,'DataBits',8,'parity','none','StopBits',1,'FlowControl','none'

);

%membuka port untuk komunikasi

fopen(komunikasi); out=fscanf(komunikasi); out1=sprintf('%s',out); pause(0.5); if(out1==161)

%proses inisialisasi webcam

vid=videoinput('winvideo',1,'RGB24_320x240'); %proses capture gambar

gambar=getsnapshot(vid); %proses merubah ke grayscale

grey=rgb2gray(gambar); %proses merubah ke biner

biner=im2bw(grey); %croping crop=imcrop(biner,[17.51 60.51 255.98 176.98]); %proses resizing y=imresize(crop,[16 16]); c=double(y); %menjumlahkan keseluruhan data=sum(sum(c)); %tampilkan pada axes

axes(handles.axes1); imshow(crop);

set(handles.edit6, 'string', ''); set(handles.edit5, 'string', data);

if ((data>=81)&&(data<=110))

set(handles.edit6, 'string', 'KUBUS'); kubus=kubus +1;

set(handles.edit1, 'String', kubus); guidata(hObject,handles);

fprintf(komunikasi,'a'); guidata(hObject,handles);

elseif ((data>=111)&&(data<=140)) set(handles.edit6, 'string', 'BALOK'); balok=balok +1;

set(handles.edit2, 'String', balok); guidata(hObject,handles);

fprintf(komunikasi,'b'); guidata(hObject,handles);

elseif ((data>=65)&&(data<=80))

set(handles.edit6, 'string', 'TABUNG'); tabung=tabung +1;

set(handles.edit3, 'String', tabung); guidata(hObject,handles);

fprintf(komunikasi,'c'); guidata(hObject,handles);

elseif ((data>=42)&&(data<=64)) set(handles.edit6, 'string', 'BOLA'); bola=bola +1;

set(handles.edit4, 'String', bola); guidata(hObject,handles); fprintf(komunikasi,'d'); guidata(hObject,handles);

elseif (data<=30)

set(handles.edit6, 'string', 'TIDAK TERDETEKSI'); fprintf(komunikasi,'e'); guidata(hObject,handles); end end fclose(komunikasi); delete(komunikasi) clear komunikasi clc; end

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

global z global kubus global balok global tabung global bola z=0; kubus=0; balok=0; tabung=0; bola=0;

set(handles.edit1, 'String', kubus); set(handles.edit2, 'String', balok); set(handles.edit3, 'String', tabung); set(handles.edit4, 'String', bola);

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

global z z=0; close all; clear all;

function edit5_Callback(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text

% str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties.

function edit5_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit6_Callback(hObject, eventdata, handles)

% hObject handle to edit6 (see GCBO)

% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text

% str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties.

function edit6_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit1_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties.

function edit1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit2_Callback(hObject, eventdata, handles)

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text

% str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties.

% hObject handle to edit2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit3_Callback(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text

% str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties.

function edit3_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit4_Callback(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text

% str2double(get(hObject,'String')) returns contents of edit4 as a double % --- Executes during object creation, after setting all properties.

function edit4_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on selection change in popupmenu1.

function popupmenu1_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1

contents = get(hObject,'Value');

switch contents case 1 handles.PORT='COM1'; case 2 handles.PORT='COM2'; case 3 handles.PORT='COM3'; case 4 handles.PORT='COM4'; case 5 handles.PORT='COM5'; case 6 handles.PORT='COM6'; case 7 handles.PORT='COM7'; case 8 handles.PORT='COM8'; case 9 handles.PORT='COM9'; case 10 handles.PORT='COM10'; case 11 handles.PORT='COM11'; case 12 handles.PORT='COM12'; case 13 handles.PORT='COM13'; case 14 handles.PORT='COM14'; case 15 handles.PORT='COM15'; end guidata(hObject,handles);

function popupmenu1_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

LISTING PROGRAM GUI MATLAB TANPA MENGGUNAKAN LOOPING

function varargout = realtime(varargin)

% REALTIME MATLAB code for realtime.fig

% REALTIME, by itself, creates a new REALTIME or raises the existing % singleton*.

%

% H = REALTIME returns the handle to a new REALTIME or the handle to % the existing singleton*.

%

% REALTIME('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in REALTIME.M with the given input

arguments. %

% REALTIME('Property','Value',...) creates a new REALTIME or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before realtime_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application

% stop. All inputs are passed to realtime_OpeningFcn via varargin. %

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)". %

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help realtime % Last Modified by GUIDE v2.5 02-Jul-2015 18:45:25

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

Dokumen terkait