• Tidak ada hasil yang ditemukan

LA-1. tracking.m. % Edit the above text to modify the response to help tracking

N/A
N/A
Protected

Academic year: 2021

Membagikan "LA-1. tracking.m. % Edit the above text to modify the response to help tracking"

Copied!
10
0
0

Teks penuh

(1)

tracking.m

Listing Code tracking.m adalah listing code untuk tampilan GUI dari sistem Object Tracking.

Komentar yang diberikan menggunakan %

function varargout = tracking(varargin) % TRACKING M-file for tracking.fig

% TRACKING, by itself, creates a new TRACKING or raises the existing

% singleton*. %

% H = TRACKING returns the handle to a new TRACKING or the handle to

% the existing singleton*. %

% TRACKING('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in TRACKING.M with the given input arguments.

%

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

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

% applied to the GUI before tracking_OpeningFunction gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to tracking_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 tracking

% Last Modified by GUIDE v2.5 12-Jun-2012 14:09:47

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

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

'gui_OpeningFcn', @tracking_OpeningFcn, ... 'gui_OutputFcn', @tracking_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); 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

(2)

function tracking_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 tracking (see VARARGIN)

% Choose default command line output for tracking

handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes tracking wait for user response (see UIRESUME)

% uiwait(handles.figure1);

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

function varargout = tracking_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 pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles)

maintracking %memanggil program utama % 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)

% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles)

openserial

% 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)

% --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles)

%delete(handles.tracking) exit

(3)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes during object deletion, before destroying properties.

function pushbutton4_DeleteFcn(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in close_pushbutton. function close_pushbutton_Callback(hObject, eventdata, handles)

% hObject handle to close_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get the current position of the GUI from the handles structure

% to pass to the modal dialog.

pos_size = get(handles.tracking,'Position'); % Call modaldlg with the argument 'Position'. user_response = modaldlg('Title','Confirm Close'); switch user_response

case {'No'} % take no action case 'Yes'

% Prepare to close GUI application window % .

% . % .

delete(handles.tracking) end

% --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles)

s = serial('COM1','BaudRate',9600,'DataBits',7,'Parity', 'even','StopBits',2 ,'FlowControl', 'none');

fopen(s); %open serial

fprintf(s,'%s\r\n','nt') pause(10)

fprintf(s,'%s\r\n','sp 5') pause(5)

(4)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles)

s = serial('COM1','BaudRate',9600,'DataBits',7,'Parity', 'even','StopBits',2 ,'FlowControl', 'none');

fopen(s); %open serial pause(1)

fprintf(s,'%s\r\n','og') pause(1)

fclose(s);

% hObject handle to pushbutton7 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

(5)

maintracking.m

maintracking.m adalah listing code untuk program utama yang berisi proses dari sistem.

Komentar dalam %

%open serial

% s adalah variabel untuk menampung format serial

s = serial('COM1','BaudRate',9600,'DataBits',7,'Parity', 'even','StopBits',2 ,'FlowControl', 'none');

fopen(s); %open serial

%-loop dengan area yang terlihat

%pause digunakan untuk menahan perintah lain sebelum robot berhenti

pause(1)

%format pengiriman adalah fprintf(variabel serial,’%s\r\n’,’perintah’)

fprintf(s,'%s\r\n','sp 5')

vid = videoinput('winvideo',1,'YUY2_640x480'); %untuk

menerima input video

start(vid); %inisialisasi video

set(vid,'ReturnedColorSpace','grayscale'); %melakukan setting ke mode grayscale

pause(2)

%menuju ke posisi awal(di tengah)

fprintf(s,'%s\r\n','MP 0,300,300,-90,0') pause(3)

%variabel posisi awal

z=300; xa=0; ya=300; za=300;

%xs, ys, dan zs adalah variabel untuk menampung nilai x, y dan z sebelumnya xs=xa; ys=ya; zs=za; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% I = getsnapshot(vid);

level=0.34; %level/nilai threshold

bw = im2bw(I,level); %mengubah ke black n white bw = bwareaopen(bw, 50);

abcdef = bwarea (bw); %mencari nilai/besarnya area yang

terdeteksi kamera

%outer loop 1

if (abcdef <10) pause(1)

%nilai variabel untuk memindahkan robot ke sisi kiri

dari platform q=1 xa=200; ya=200; za=300; xs=xa; ys=ya; zs=za;

%menghitung nilai sudut T5 T5= fix(atan(xa/ya)*180/pi);

fprintf(s,'%s\r\n','MP 200,200,300,-90,45') pause(3)

(6)

%variabel yang menunjukkan bahwa robot tetap berada pada posisi awal

xa=0; ya=300; za=300; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% I = getsnapshot(vid);

level=0.34; %level/nilai threshold

bw = im2bw(I,level); %mengubah ke black n white bw = bwareaopen(bw, 50);

abcdef = bwarea (bw) %mencari nilai/besar nya area yang

terdeteksi kamera

%outer loop 2

if (abcdef <10) pause(1)

%nilai variabel untuk memindahkan robot ke sisi kanan

dari platform w=1 xa=-200; ya=200; za=300; xs=xa; ys=ya; zs=za;

%menghitung nilai sudut T5 T5= fix(atan(xa/ya)*180/pi);

fprintf(s,'%s\r\n','MP -200,200,300,-90,-45') pause(3)

else

%variabel yang menunjukkan bahwa robot tetap berada

pada posisi awal

xa=0; ya=300; za=300; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pause(1) for k= 1:10 k pause(1) %capture image I = getsnapshot(vid); level=0.34; %nilai threshold bw = im2bw(I,level); bw = bwareaopen(bw, 50);

%memberi label pada objek yang terdeteksi

L = bwlabel(bw);

%mencari titik pusat massa dari objek

sa = regionprops(L, 'centroid'); centroids = cat(1, sa.Centroid);

figure, imshow(bw), title('center of mass of the object') hold on

%menampilkan plot image dengan memberi tanda * pada titik pusat massa objek

plot(centroids(:,1), centroids(:,2), 'g*') axis on

center_xObj = sa.Centroid(1); %mendapatkan centroid X center_yObj = sa.Centroid(2); %mendapatkan centroid Y

(7)

hold off pause(2)

if (z==300)

%offset adalah selisih nilai jarak antara gambar yang ditangkap kamera

%dengan gambar yang ada pada kenyataan/real

offsetx=-(-8.44272); offsety=(-2.88309);

%xcen dan ycen adalah selisih nilai centroid objek dengan centroid dari

%kamera

xcen=(((-((center_xObj+offsetx-320)))/640))*230.1; ycen=(((center_yObj-offsetx-240))/480)*170.4;

else %if (z==200)

%offset adalah selisih nilai jarak antara gambar yang ditangkap kamera

%dengan gambar yang ada pada kenyataan/real

offsetx=-(-7.74465); offsety=(-2.93148);

%xcen dan ycen adalah selisih nilai centroid objek dengan centroid dari

%kamera

xcen=(((-((center_xObj+offsetx-320)))/640))*148.6; ycen=(((center_yObj+offsetx-240))/480)*110.8; end

%menentukan posisi x,y dan z yang dituju

x=fix(xs + xcen); y=fix(ys + ycen); z=200;

%T5 adalah variabel penampung untuk pandangan end effector agar sejajar dengan bidang

T5= fix(atan(x/y)*180/pi);

% b adalah variabel yang digunakan untuk menampung data yang akan dikirim ke robot, -90 digunakan untuk menunjukkan end effector menghadap ke bawah

b=[x;y;z;-90;T5] %variable untuk penampung data pause(5)

fprintf(s,'MP %d,%d,%d,%d,%d\r\n',b)

%memindahkan nilai x,y dan z saat ini menjadi nilai xs,ys,dan

%zs atau x,y dan z sebelumnya saat loop terulang

xs=x; ys=y; zs=z;

%toleransi untuk membuat program berhenti jika jarak antara titik pusat

%objek dengan kamera kurang dari 0.5 cm

if (sqrt(xcen^2+ycen^2)<=5) I = getsnapshot(vid); level=0.34; %nilai threshold

bw = im2bw(I,level); %membuat image menjadi black n

white

bw = bwareaopen(bw, 50);

%memberi label pada objek yang terdeteksi

L = bwlabel(bw);

%mencari titik pusat massa dari objek

sa = regionprops(L, 'centroid'); centroids = cat(1, sa.Centroid);

figure, imshow(bw), title('LAST IMAGE karena mencapai objek (Toleransi 0.5cm)')

hold on

%menampilkan plot image dengan memberi tanda * pada titik pusat massa objek

(8)

plot(centroids(:,1), centroids(:,2), 'b*') axis on

center_xObj = sa.Centroid(1); %mendapatkan titik pusat

massa objek untuk koordinat x

center_yObj = sa.Centroid(2); %mendapatkan titik pusat

massa objek untuk koordinat y

hold off z=100; b=[x;y;z;-90;T5]; fprintf(s,'MP %d,%d,%d,%d,%d\r\n',b) break end end fclose(s);

(9)
(10)

Referensi

Dokumen terkait

yang ditemukan selama pengamatan adalah Gejala serangan Penggerek Batang padi, populasi Wereng hijau dan Walang sangit (lihat gambar 4, 5 dan Lampiran 2), Hasil pengamatan rata

Yohanes Indrayono/Iman Santoso, S.E.. Yohanes Indrayono/Iman

Ditunjukkan dari hasil penelitian bahwa sebagian besar status gizi bayi usia 0-3 tahun adalah baik yaitu sebanyak 33 responden atau 82,5% dari seluruh responden yang berjumlah

Instrumen penelitian pada penelitian ini menggunakan kuesioner untuk mengetahui perilaku beresiko masyarakat terhadap demam berdarah dengue (DBD), dan keberadaan

Setelah berdiskusi siswa diharapkan mampu menyajikan dalam bentuk tulisan tentang perkembangan kerajaan –kerajaan Islam di Jawa.. Setelah berdiskusi siswa diharapkan

dalam pasal 11 ayat (1) dilakukan paling lama 1 (satu) bulan sejak diterimanya permohonan pengembalian kelebihan pembayaran pajak sehubungan diterbitkannya Surat

Demikian juga dengan kepemimpinan manajer yang menunjukkan kategori kurang baik dengan persentase 70%.Hasil penelitian ini juga menunjukkan bahwa adanya hubungan yang

Hal itu dipertegas melalui Permendiknas Nomor 41 Tahun 2007 tentang standar proses yang berbunyi perencanaanproses pembelajaran yang mensyaratkan pendidik untuk mengembangkan