Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
856,6 KB
Nội dung
Đồ Án 2B Mô Hình Xe Thông Minh TÓM TẮT NỘI DUNG ĐÒ ÁN NỘI DUNG > Dùng Matlab nhận dạng trạng thái đèn giao thông màu Đổ nhận biết màu sắc đèn giao thông càn trải qua bước: Bước 1: Tách biên dạng hình tròn đèn giao thông Bước 2: Nhận dạng màu sắc đèn giao thông biên hình tròn > Từ Matlab xuất tín hiệu Vi Xử Lý (thông qua cổng COM) để điều khiển xe KÉT QUẢ ĐẠT ĐƯỢC v' Tìm hiểu tách biên sử dụng tách biên Sobel để tách biên đèn giao thông ✓ Nhận dạng màu sắc đèn giao thông (xanh, đỏ) s Xuất tín hiệu từ Matlab cổng COM để điều khiển Vi Xử Lý từ Vi Xử Lý điều khiển xe (đèn xanh xe chạy, đèn đỏ xe dừng) HAN CHẾ Xe chạy khoảng cách không xa khoảng 4m Trang NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Ngày tháng .năm Giáo viên hướng dẫn Ký tên NHẬN XÉT CỦA HỘI ĐỒNG GIÁM KHẢO Ngày tháng .năm Hội đồng Ký tên LỜI CẢM ƠN Chúng em xin chân thành cảm ơn tất thày cô trường Đại Học Công Nghiệp TP Hồ Chí Minh dạy dỗ, bảo chúng em suốt thời gian qua Chúng em xin chân thành cảm ơn thầy Trần Văn Trinh tận tình hướng dẫn chúng em thời gian làm Đồ Án 2B Chúng xin cảm ơn tất bạn bè giúp đỡ nghiên cứu học tập Nhóm sinh viên thực hiện: Lê Văn Hoan Nguyễn Thành Luân MỤC LỤC PHÀN A: LÝ THUYẾT TỒNG QUAN 1.1.1 Trang Đồ Án 2B Mô Hình Xe Thông Minh Trang Đồ Án 2B Tài liệu khảo tham Mô Hình Xe Thông Minh 56 Đồ Án 2B Mô Hình Xe Thông Minh LỜI MỞ ĐẦU Hiện đất nước ta chuyển theo phát triển chung giới việc Việt Nam gia nhập tổ chức kinh tế giới WTO Đây bước ngoặt quan trọng nhằm thúc đẩy kinh tế nước ta phát triển sánh vai với cường quốc năm châu.Với tốc độ phát triển không càn lượng lao động khổng lồ mà đòi hỏi có trình độ, chất lượng tay nghề, kỹ thuật lao động thiết bị sản xuất Mức độ phát triển khoa học kỹ thuật ngày cao vấn đề tự động hoá ngày trọng Những năm gần MATLAB Toolbox kèm theo trở thành công cụ thiếu cán nghiên cứu giảng dạy, sinh viên đại học, cao học nghiên cứu sinh thuộc ngành khoa học kỹ thuật nước ta Điều có MATLAB cung cấp công cụ tính toán lập trình bậc cao dễ sử dụng hiệu thân thiện với người dùng MATLAB cung cấp cho người sử dụng phương thức để thực mô máy tính, MATLAB giao tiếp với Vi Xử Lý, PLC, với thiết bị phàn cứng để thực ứng dụng vào thực tế Vì phạm vi hiểu biết mình, chúng em tìm hiểu thực đề tài “Mô hình xe thông minh” Đây kết họp MATLAB Vi Xử Lý để điều khiển xe không người lái (xe thông minh) Trong trình thực Đồ Án 2B với nỗ lực thân áp dụng kiến thức trang bị trường, chúng em có nhiều cố gắng để thực tốt Đồ Án Tuy nhiên kiến thức khả có hạn nên khó tránh khỏi thiếu sót Chúng em mong nhận thông cảm đóng góp ý kiến thày cô hội đồng giám khảo để Đồ Án chúng em hoàn chỉnh Xin chân thành cảm ơn TP Hồ Chí Minh, ngày 03 tháng 11 năm 2010 Nhóm sinh viên thực hiện: Lê Văn Hoan Nguyễn Thành Luân Trang Đồ Ấn 2B Mô Hình Xe Thông Minh CHƯƠNG I THUÂT TOÁN TÁCH BIÊN VÀ NHÂN DANG MAU GIỚI THIỆU VỀ CẤC Bộ TÁCH BIÊN 1.1 Cơ sở vỉêc tách bỉên Biên tập hợp pỉxel (nằm đường hiên giới vùng) liên kết với Một biên lý tưởng có thuộc tính mô hình hình 1.1 Hình 1.1: Mô hình biên ỉỷ tưởng Mođel úf an klcìil cdjỉc (ịfiiV‘lcuí prolik" «tf il hOTii/OAIal lim the inta^c Tuy nhiên thực tế yếu tố chất lượng hệ thống thu nhện hình ảnh, tốc độ lấy mẫu, điều kiện chiếu sáng ảnh, ảnh hưởng đến chất lượng hình ảnh Vì kết biên gỉếng với đoạn dốc thể hình 1.2 M«teỉ ol ramp diÿital cdfLc Trang 10 2.3 Tách bỉên loạỉ bỏ thành phần nhiễu bw=edge(d,’sobeT); % tach bỉen imshow(bw); bw = bwareaopen(bw,30); %tach bỉen theo thong so dat truoc Ảnh tách biên 2,4 Làm phăng nhị phân lấp đầy lẫ trống se = strel( disk',2); bw = imclose(bw,se); bw = imfill(bw,’holes'); imshow(bw); Ảnh lấp đầy cảc ỉỗ trống 2.5 Xác định trọng tâm, bỉên, tính khoảng cách L = bwlabel(bw); s = regionpropsíL, 'centroid'); dt = regionprops(L, 'area'); cv = regionprops(L, 'perimeter'); dim = size(s); BW.flUed = imfill(bw,'holes'); boundaries = bwboundaries(BW_ỉllled); %xac dinh bỉen hold on; for k=l:dỉm(l) b= boundaríes{k}; dim = size(b); for ỉ=lĩdỉm(l) khoangcach{k}(l,i) = sqrt ( ( b(i,2) - s(k).Centroid(l) )A2 + ( b(i,l) s(k).Centroid(2) )A2 ); end a=max(khoangcach{k}); b=min(khoangcach{k}); end 2.6 Xác định màu đèn giao thông dolech=a-b if dolech < 20 c=imread('d.jpg'); d=imresize(c,[8 8]); % Thay doi kỉch thuoc anh thao don vỉ pixcel dl=d(:,:,l); %ma tran mau dl=reshape(dl',8*8,1); %giam kich thuoc anh de de xu ly dll=sum(dl); d2=d(:,:,2); %ma tran mau xanh duong d2=reshape(d2', 8*8,1); d22=sum(d2); d3=d(:,:,3); % ma tran mau xanh la cay d3=reshape(d3',8*8,1); d33=sum(d3); if dll>d22 && dll>d33 dỉsp('mau do'); set(handles.textl,'string','den do'); z=l; else if d22>dll && d22>d33 disp('mau xanh’); set(handles.textl,'string',' den xanh'); z=2; end end subplot(l,2,2); imshow(c); end Đồ Án 2B 2.7 Cửa sỗ giao dỉện PHANC: KẾT LUÂN KẾT LUẬN KẾT QUẢ Sau thời gian thực Đồ Án 2B, với hướng dẫn tận tình thầy Trần Văn Trinh, chúng em hoàn thành theo thời gian quy định Đe thực yêu cầu đề tài, chúng em nghiên cứu, tìm hiểu vấn đề Matlab, vi xử lý, giao tiếp Matlab vi xử lý, vấn đề khác liên quan đến đề tài Đối với phần thiết kế thi công, chúng em thực bước sau: - Lập sơ đồ khối toàn mạch - Thiết kế sơ đồ nguyên lý - Lập lưu đồ giải thuật - Viết chương trình - Làm mạch in, lắp ráp kiểm tra HẠN CHẾ Chưa cho phép nhận diện đèn vàng để điều khiển xe chạy chậm PHƯƠNG HƯỚNG PHÁT TRIỂN Để đề tài tăng thêm hiệu sử dụng càn thiết kế mô hình xe thông minh có quy mô lớn hơn, chạy ổn định hơn, đạt tiêu chuẩn cao Đó yêu càu mà chúng em chưa có điều kiện thực được, mong yêu cầu thực thời gian không xa để tạo sản phẩm có chất lượng tốt Sau cùng, chúng em xin chân thành cảm ơn thày Tràn Văn Trinh thầy cô khoa Công Nghệ Điện Tử tận tình hướng dẫn dẫn dắt chúng em suốt thời gian học tập vừa qua Xin chân thành cảm ơn bạn lóp đóng góp ý kiến quý báu để đề tài hoàn thành tốt đẹp PHẦND: PHULUC CODE CÛA CALLBACK function varargout = HINH(varargin) % HINH M-file for HINH.fig % HINH, by itself, creates a new HINH or raises the existing % singleton* % H = HINH returns the handle to a new HINH or the handle to % the existing singleton* % HINH('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in HINH.M with the given input arguments % % HINH('Property','Value', ) creates a new HINH or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before HINH_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to HINH_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 HINH % Last Modified by GUIDE v2.5 25-Oct-2009 20:14:31 % Begin initialization code - DO NOT EDIT gui_S ingle ton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_S ingle ton, 'gui_OpeningFcn', @HINH_OpeningFcn, 'gui_OutputFcn', @HINH_OutputFcn, 'gui_LayoutFcn', [] , Đồ Án 2B Mô Hình Xe Thông Minh 'gui_Callback', []); if nargin && ischar(varargin{ 1}) gui_State.gui_Callback = str2func(varargin{ 1}); end if nargout [varargout{l:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % — Executes just before HINH is made visible function HINH_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 HINH (see VARARGIN) % Choose default command tine output for HINH handles, output = hObject; % Update handles structure guidata(hObject, handles); global z; global com; global ketnoi; ketnoi=0; % UIWAIT makes HINH wait for user response (see UIRESUME) % uiwait(handles.figurel); % — Outputs from this function are returned to the command line, function varargout = HINH_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 CHUP_HINH function CHUP_HINH_Callback(hObject, eventdata, handles) % hObject handle to CHUP_HINH (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) vid=videoinput('win video', 1); hinh=getsnapshot(vid); imwrite(hinh,'d.jpg'); delete (vid); a=imread('d.jpg'); subplot(3,3,6); imshow(a); % — Executes on button press in TACH_BIEN Trang 45 Do An 2B Mo Hinh Xe Thong Minh function TACH_BIEN_Callback(hObject, eventdata, handles) % hObject handle to TACH_BIEN (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) a=imread('d.jpg'); f = imcrop(a, [75 30 190 180]); T=0; [VG_S,A_S,PPG_S]=colorgrad(f,'sobel',T); titleC"); hold on; [VG_P,A_P,PPG_P]=colorgrad(f,'prewitt',T); subplot(3,3,5); imshow(VG_P); title ('Anh tach bien'); hold on; % — Executes on button press in HIEN_THI function HIEN_THI_Callback(hObject, eventdata, handles) % hObject handle to HIEN_THI (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global z; a=imread('d.jpg'); a=rgb2gray(a); bw=edge(a,'sobel'); imshow(bw); bw =bwareaopen(bw,30); se = strel('disk',2); bw = imclose(bw,se); bw = imfill(bw,'holes'); imshow(bw); L = bwlabel(bw); s = regionprops(L, 'centroid'); dt = regionprops(L, 'area'); cv = regionprops(L, 'perimeter'); dim = size(s); BW_filled = imfill(bw,'holes'); boundaries = bwboundaries(BW_filled); hold on; for k=l:dim(l) b= boundaries {k}; dim = size(b); for i=l:dim(l) khoangcach{k}(l,i) = sqrt ((b(i,2) - s(k).Centroid(l) )A2 + sqrt( b(i,l) s(k).Centroid(2) )A2 ); end a=max(khoangcach{k}); Trang 46 Đồ Án 2B Mô Hình Xe Thông Minh b=min(khoangcach{k}); end dolech=a-b if dolech < 20 c=imread('d.jpg'); d=imresize(c,[8 8]); dl=d(:,:,l); dl=reshape(dl',8*8,l); dll=sum(dl); d2=d(:,:,2); d2=reshape(d2',8*8,l); d22=sum(d2); d3=d(:,:,3); d3=reshape(d3',8*8,l); d33=sum(d3); if dll>d22 &&dll>d33 disp('mau do'); set(handles text4,'string','den do'); z=l; else Trang 47 Đồ Án 2B Mô Hình Xe Thông Minh if d22>dll && d22>d33 disp('mau xanh'); set(handles.text4,'string',' den xanh'); z=2; end end subplot(3,3,4); imshow(c); end % — Executes on button press in GIAO_TIEP function GIAO_TIEP_Callback(hObject, eventdata, handles) % hObject handle to GIAO_TIEP (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global com ketnoi z; if ketnoi==0 com=serial('COM 1'); s et(com, 'baudrate', 1200); com.DataBits=8; com.Parity= 'none'; com.StopBit=l; com.By tes AvailableFcnCount= 1; com.Terminator='LF'; com.ReadAsyncMode='continuous'; com.By tes AvailableFcnMode= 'Byte'; %com.BytesAvailableFcn=@TU_DONG Callback; fopen(com); ketnoi=l; if z==l fwrite(com,l); elseif z==2 fwrite(com,0); end end % — Executes on button press in NGAT_GIAO_TIEP function NGAT_GIAO_TIEP_Callback(hObject, eventdata, handles) % hObject handle to NGAT_GIAO_TIEP (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global com ketnoi; if ketnoi==l ketnoi=0; fclose (com); delete(com); clear com; end % — Executes on button press in TU_DONG function TU_DONG_Callback(hObject, eventdata, handles) % hObject handle to TU_DONG (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global com; n=l; while nd22 &&dll>d33 dispOmau do'); set(handles.text4,'string','den do'); z=l; else if d22>dll && d22>d33 dispCmau xanh'); set(handles.text4,'string',' den xanh'); z=2; end end subplot(3,3,4); imshow(c); end com=serial('COM 1'); s et(com, 'baudrate', 1200); com.DataBits=8; com.Parity= 'none'; com.StopBit=l; fopen(com); if z==l fwrite(com,l); eiseif z==2 fwrite(com,0); end fclose (com); delete(com); clear com; end Trang 50 Do An 2B Mo Hinh Xe Thong Minh CHƯƠNG TRÌNH GIAO TIẾP VỚI VI xử LÝ **************************************************** •CHUÔNG TRINH DIEU KHIEN THU PHAI DU LIEU DANG NOI TIEP **************************************************** ;KET NOI: LED -> Pl, RXD -> TXD, KEYO -> INTO (ACT = 0) **************************************************** SMOD51 ORG 00H MAIN: MOV TMOD,#20H MOV THI,#-3 MOV TLl,#-3 MOV SCON,#50H SETB TRI MOV P0,#04h MOV A,#0 BEGIN: ACALL RXDDAT A MOV P0,A SJMP BEGIN RXD_DATA: JNB RI,$ CLR RI MOV A,SBUF RET END **************************************************** Trang 51 TÀI LIỆU THAM KHẢO Nguyễn Đức Thành, “MATLAB ứng dụng điều khiển ”, NXB Đại Học Quốc Gia TPHCM Pham Quang Trí, “Giảo trình Vi Xử Lỹ\ Đai Hoc Công Nghiệp TPHCM Phạm Hồng Liên, Đặng Ngọc Khoa, Trần Thanh Phương, “MATLAB ứng dụng viễn thông”, NXB ĐẠI HỌC QUỐC GIA TPHCM www.google.com www.alldatasheets.com [...]... xám Hình 1.3: Mô hình miêu tả độ dày của biên HÌNH 1.4 CHO THẤY ĐẠO HÀM BẬC 1 CỦA BIÊN Trang 11 Đồ Ấn 2B Mô Hình Xe Thông Minh Hình 1.4: Mô hình miêu tả đạo hàm bậc 1 của biên Từ hình vẽ ta thấy đạo hầm bậc 1 có giá trị 1 tại nơi biên được tách và gỉá trị 0 tại nod biên không được tách Vì vậy độ lớn của đạo hàm bậc 1 có thể được sử dụng để phát hiện ra dấư hiệu của một biên tại một điểm trong hình. .. tác động của màu trong ngữ cảnh nhất định Không có mô hình màu nào là đầy đủ cho mọi khía cạnh của màu, người ta sử dụng các mô hỉnh màu khác nhau để mô tả các tính chất được nhận biết khác nhau của màu Thí dụ: + Mô hình màu RGB: ánh sáng Red, Green và Blue ứng dụng cho màn hình, TV + Mô hình HSV: Nhận thức của con người + Mô hình CYK: Máy in 2.1» Mô hình màu RGB - Mọi màu được biểu diễn bởi không gian... dựng giao diện mô phỏng, cuối cùng là xuất tín hiệu ra Vi Xử Lý thông qua cổng COM Chuông trì nh của Vi Xử Lý sẽ thu nhận tín hiệu đó và điều khiển xe (chạy hoặc dừng) CHƯƠNG IV Sơ ĐỒ NGUYÊN LÝ VÀ NGUYÊN LÝ HOẠT ĐÔNG CỦA MACH •• 1 Sơ ĐỒ NGUYÊN LÝ Hình 4J: Sơ đồ nguyên ỉỷ của mô hình xe thông minh 2 NGUYÊN LÝ HOẠT ĐỘNG Webcam chụp liên tiếp trạng thái của đèn giao thông, nếu đèn giao thông không thay... Blue) - Mô hình màu RGB được biểu diễn bởi khối lập phương với các trục R, G, B Nhận xét • Mô hình này không thể biểu diễn mọi màu trong phổ nhìn thấy ĐỒ Án 2B • Đủ eho các ứng dụng máy tính • Màn hình máy tính và TV sử dụng mô hình này • Được sử dụng rộng rãi nhất • Đơn giản Xám hóa ảnh màu RGB: Màu = Gắn thiết bị thu hình vào máy tính > Cài đặt driver (trình điều khiển) cho thiết bị (được cho bởi nhà sản xuất) > Xem thử hình ảnh video hiện trên máy tính thông qua phần mềm của nhà sản xuất > Khởi động MATLAB Bước 2: Chỉ định thông tin phần cứng: > Ta càn chỉ định