Tài liệu Chương 4: Giao diện chương trình docx

6 355 1
Tài liệu Chương 4: Giao diện chương trình docx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chương 4: Giao diện chương trình 2.2. Chương trình: a. Lưu đồ giải thuật: 2. Code chương trình: //*************k ết nối ComPort************************ function btnConnect_Callback(hObject, eventdata, handles) try global s;global hand;global comport; global open; if (open == 0) Kết nối Bắt đầu Chọn thông số cho COM port S Đ Nhận dữ liệu: giá trị tọa độ 0x, Oy t ừ VĐK gởi l ên Xử lý dữ liệu: cắt chuỗi, chuyển thành s ố Vẽ biên dạng 2D của vật (tập hợp các tọa độ x,y nhận được). Kết thúc s = serial(comport); s.BytesAvailableFcnCount = 1; s.BytesAvailableFcnMode = 'terminator'; s.BytesAvailableFcn = @BytesAvailable_Callback; % s.TimeOut = 10; fopen(s); open = 1; set(hand.btnConnect,'string','Disconnect'); set(hand.lblStatus,'string','Connected '); else set(hand.btnConnect,'string','Connect'); set(hand.lblStatus,'string','Not Connected '); open = 0; fclose(s); clear s; end catch set(hand.lblStatus,'string','Connection Error '); msgbox('ComPort not available! Try again!','Connection Error','error'); end //**********chương trình nhận dữ liệu từ VĐK và vẽ biên d ạng********* function BytesAvailable_Callback(obj,event) global hand; global t; % axes(hand.axes1); set(hand.lblStatus,'string','Scanning '); string = fscanf(obj); str = str2num(string); if (str(1) == 2012) j2 = str(2); %top j1 = str(3); %bottom i2 = str(4); %right i1 = str(5); %left % gioi han 2 truc x,y xlim('manual'); ylim('manual'); if ((i2-i1)> (j2-j1)) xlim([(i1-20) (i2+20)]); ylim([(i1-20) (i2+20)]); else xlim([(j1-20) (j2+20)]); ylim([(j1-20) (j2+20)]); end % ve khung bien dang % ve top x = i1:0.05:i2; line(x,j1,'Color','r','LineWidth',10); % ve bottom x = i1:0.05:i2; line(x,j2,'Color','r','LineWidth',10); % ve left y = j1:0.05:j2; line(i1,y,'Color','r','LineWidth',10); % ve right y = j1:0.05:j2; line(i2,y,'Color','r','LineWidth' ,10); else x = str(1); k=num2str(x); y = str(2); m=num2str(y); set(hand.tbxRxx,'string',k); set(hand.tbxTx,'string',m); hold all; plot(x,y,'*','LineWidth',2, 'MarkerEdgeColor','k', 'MarkerFaceColor','g', 'MarkerSize',2) % plot(x,y); % hold off; end D. Những khó khăn gặp phải trong quá trình thực hiện đề tài: * Phần cứng: - Hệ Pan-Tilt còn là 1 đề tài mới mẻ, cho nên còn gặp chút khó khăn lúc đầu trong việc thiết kế 1 hệ Pan -Tilt. - C ảm biến siêu âm SRF04 có góc phát tương đối lớn, cho nên việc quét biên dạng vật gặp khó khăn ở khâu lấy chính xác tọa độ điểm đang quét. Chúng em đã khắc phục bớt vấn đề này (dùng ống nhựa gắn vào 2 đầu bộ phát - thu để giảm góc quét xuống). * Phần mềm: Mới đầu nghiên cứu MatLab nên còn gặp nhiều vấn đề khó khăn (lập tr ình thiết kế giao diện GUIDE, giao tiếp cổng COM giữa VĐK với MatLab…). Tuy nhiên sau khi tìm hiểu thì đã giải quyết được vấn đề, Đây là 1 phần mềm thực sự mạnh. E. Hướng phát triển của đề tài: - Vấn đề quét biên dạng còn nhiều sai xót (do góc quét rộng, hệ Pan-Tilt chưa thực sự vững chắc). Có thể dùng 1 cảm biến khác có góc quét nhỏ như: cảm biến laze…thì việc quét biên d ạng 2D của vật sẽ chính xác hơn. - Có thể phát triển đề tài này để quét xác định hình dạng 3D của vật. hết . Chương 4: Giao diện chương trình 2.2. Chương trình: a. Lưu đồ giải thuật: 2. Code chương trình: //*************k ết nối. again!','Connection Error','error'); end //********* *chương trình nhận dữ liệu từ VĐK và vẽ biên d ạng********* function BytesAvailable_Callback(obj,event)

Ngày đăng: 26/01/2014, 14:20