Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc

104 88 0
Thiết kế và thi công mô hình hệ thống kiểm tra lỗi vỉ thuốc

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG KIỂM TRA LỖI VỈ THUỐC GVHD: PGS.TS Nguyễn Thanh Hải SVTH: Nguyễn Hồng Thơng-13141347 Lê Minh Phúc-14141234 Tp Hồ Chí Minh - 1/2020 i BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG KIỂM TRA LỖI VỈ THUỐC GVHD: PGS.TS Nguyễn Thanh Hải SVTH: Nguyễn Hồng Thơng-13141347 Lê Minh Phúc-14141234 Tp Hồ Chí Minh - 1/2020 i TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -Tp HCM, ngày 25 tháng 12 năm 2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Khóa: 2013 Họ tên sinh viên 2: Khóa: 2014 Chuyên ngành: Hệ đào tạo: Nguyễn Hồng Thơng Lớp : 13141DT Lê Minh Phúc Lớp : 14141DT Kỹ thuật Điện - Điện tử Đại học quy MSSV: 13141347 MSSV: 14141234 Mã ngành: Mã hệ: 01 I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG KIỂM TRA LỖI VỈ THUỐC II NHIỆM VỤ Các số liệu ban đầu: - Sử dụng board Arduino Uno R3 để thực điều khiển làm xử lý trung tâm - Sử dụng Webcam Logitech C270p để thu nhận ảnh - Kiểm tra loại vỉ thuốc với hình dạng, kích thước, màu sắc số lượng viên thuốc khác - Mơ hình băng tải loại bỏ vỉ thuốc lỗi có báo hiệu phát lỗi Nội dung thực hiện: - Nghiên cứu board Arduino Uno R3 - Tìm hiểu module camera - Tiến hành thiết kế mơ hình băng tải bảo đảm ánh sáng, màu sắc, diện tích - Tiến hành thi cơng lắp ráp hệ thống - Lập trình kết nối điều khiển - Chạy thử nghiệm hệ thống - Cân chỉnh hoàn thiện hệ thống - Viết báo cáo - Báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 10/10/2019 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 07/01/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS Nguyễn Thanh Hải CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT KHOA ĐIỆN-ĐIỆN TỬ NAM BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y ĐỘC LẬP - TỰ DO - HẠNH PHÚC SINH o0o -Tp HCM, ngày 25 tháng 12 năm 2019 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Hồng Thơng Lớp: 13141DT2B MSSV: 13141347 Họ tên sinh viên 2: Lê Minh Phúc Lớp: 14141DT1A MSSV: 14141234 Tên đề tài: THIẾT KẾ VÀ THI CÔNG MƠ HÌNH HỆ THỐNG KIỂM TRA LỖI VỈ THUỐC Tuần/ngày Nội dung Tuần Gặp giáo viên hướng dẫn, nhận đề tài đồ án (23/9 – 28/9) Tuần Xác nhận GVHD tốt nghiệp Tìm tài liệu phục vụ cho nghiên cứu thực (30/10 – 05/10) đề tài, viết đề cương đồ án tốt nghiệp Tuần Thiết kế sơ đồ khối, tìm tài liệu, nghiên cứu (07/10 – 12/10) đề tài Tuần 9,Tuần 10 Cài đặt phần mềm, kết nối với module camera (14/10 – 26/10) Tuần 11 Điều khiển động DC, lập trình điều khiển (28/10 – 02/11) Module camera chụp ảnh, lập trình xử lý ảnh đầu vào Tuần 12,13 Lập trình xử lý ảnh kiểm tra lỗi, lập trình điều (04/11 – 16/11) khiển Servo,đèn chuông cảnh báo hoạt động iii Tuần 14 Chỉnh sửa, hồn thiện lập trình cho tồn hệ (18/11 – 23/11) thống Tuần 15 Thiết kế thi công mơ hình, chỉnh sửa, hồn (25/11 – 30/11) thiện mơ hình hệ thống Tuần 16 Chạy thử nghiệm thực tế tinh chỉnh, đóng (02/12 – 07/12) gói sản phẩm Tuần 17 Lấy kết thực nghiệm viết đề cương cho (09/12 – 14/12) báo cáo Tuần 18,19 Viết báo cáo tốt nghiệp (16/12 – 28/12) Tuần 20 Chỉnh sửa, kiểm tra lần cuối nộp (30/12 – 04/01) báo cáo Tuần 21 Báo cáo đồ án tốt nghiệp (06/01 – 11/01) GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv LỜI CAM ĐOAN Đề tài nhóm đồ án tự thực dựa vào số tài liệu cơng trình nghiên cứu, khơng chép từ tài liệu hay cơng trình có trước Nếu có chép nhóm đồ án hồn tồn chịu trách nhiệm Tp Hồ Chí Minh, ngày 25 tháng 12 năm 2019 Sinh viên thực đề tài 1: Nguyễn Hồng Thơng Sinh viên thực đề tài 2: Lê Minh Phúc v LỜI CẢM ƠN “Uống nước nhớ nguồn, ăn nhớ kẻ trồng cây” truyền thống mang giá trị nhân văn vô quý báu mà từ xưa đến ông cha ta dạy gìn giữ tận ngày hơm Chính lẽ mà nhóm nghiên cứu ln ln vơ tỏ lịng biết ơn chân thành đến tất người giúp đỡ nhóm tận tình thời gian qua để hoàn thành tốt đề tài đồ án tốt nghiệp “Thiết kế thi cơng mơ hình hệ thống kiểm tra lỗi vỉ thuốc” Và điều vô đặc biệt mà không nhắc đến hướng dẫn vơ tận tình Thầy PGS.TS Nguyễn Thanh Hải Thầy Cô môn Điện Tử Công Nghiệp – Y Sinh, Khoa Điện-Điện Tử giúp đỡ nhiệt tình nhóm suốt q trình nghiên cứu hồn thành đề tài giao Quả với câu “Không Thầy đố mày làm nên” Vì thế, lời báo cáo đồ án tốt nghiệp này, nhóm muốn dành lời cảm ơn chân thành sâu sắc đến Thầy PGS.TS Nguyễn Thanh Hải Thầy Cô môn Điện Tử Công Nghiệp – Y Sinh, khoa Điện-Điện Tử Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chính Minh Đồng thời nhóm nghiên cứu thể biết ơn bạn lớp góp ý kiến xây dựng đề tài hồn thiện Khơng thể qn được, nhóm nghiên cứu xin gửi lời cảm ơn đến đấng sinh thành dưỡng dục hỗ trợ, động viên niềm động lực lớn lao để nhóm hoàn thành tốt đề tài Mặc dù cố gắng nhiều, nhóm khó tránh khỏi lúc làm Thầy Cơ, bạn phiền lịng Kính mong quý Thầy Cô, bạn lượng thứ bỏ qua Với vốn kiến thức hạn hẹp kinh nghiệm sống ỏi chắn báo cáo có sai lầm thiếu sót Nhóm nghiên cứu làm thứ lỗi mong nhận dạy, đóng góp vơ q báu q Thầy bạn để nhóm hồn thiện tốt đề tài Một lần nữa, xin chân thành cảm ơn! Sinh viên thực Nguyễn Hồng Thơng Sinh viên thực Lê Minh Phúc vi MỤC LỤC TRANG BÌA Error! Bookmark not defined NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN v LỜI CẢM ƠN vi MỤC LỤC vii LIỆT KÊ HÌNH VẼ x LIỆT KÊ BẢNG VẼ xiii TÓM TẮT xiv Chương 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN CỦA ĐỀ TÀI 1.5 BỐ CỤC .3 Chương 2: CỞ SỞ LÝ THUYẾT .4 2.1 GIỚI THIỆU VỀ XỬ LÝ ẢNH 2.2 KHÔNG GIAN MÀU CỦA ẢNH .6 2.2.1 Không gian màu RGB 2.2.2 Không gian màu HSV 2.2.3 Chuyển đổi RGB sang HSV 2.3 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH .10 2.3.1 Điểm ảnh .10 2.3.2 Ảnh số 11 2.3.3 Phân loại ảnh 11 2.3.4 Quan hệ điểm ảnh 11 2.3.5 Chuyển đổi ảnh màu sang ảnh xám 12 2.3.6 Nhị phân hóa ảnh .13 2.3.7 Lọc nhiễu .14 2.3.8 Phương pháp phát biên 14 2.3.9 Phân đoạn ảnh 15 Chương 3: TÍNH TỐN THIẾT KẾ HỆ THỐNG .16 3.1 THIẾT KẾ PHẦN CỨNG .16 3.1.1 Khối thu nhận ảnh .17 vii 3.1.2 Khối điều khiển 17 3.1.3 Khối chấp hành 20 a Mô tả động DC 20 b Mô tả động Servo 20 c Mô tả Module Relay kênh 21 d Mô tả Buzzer: 22 e Mô tả đèn báo hiệu: 22 3.1.4 Khối nguồn 23 a Nguồn cấp cho động DC, đèn báo 24VDC 23 b Nguồn cấp cho Arduino Uno R3 24 c Nguồn cấp cho động Servo, Module Relay 5VDC 24 3.2 SƠ ĐỒ KẾT NỐI HỆ THỐNG .25 3.3 NGUYÊN LÝ HOẠT ĐỘNG 26 Chương 4: THI CÔNG HỆ THỐNG 27 4.1 GIỚI THIỆU .27 4.2 THI CÔNG HỆ THỐNG 27 4.2.1 Thiết kế giao diện .27 4.2.2 Thi công mô hình .28 4.3 LƯU ĐỒ GIẢI THUẬT HỆ THỐNG 33 4.3.1 Lưu đồ tìm nhận dạng vỉ thuốc 34 a Tiền xử lý ảnh 35 b Nhị phân hóa ảnh 37 c Lưu đồ tìm vỉ thuốc 38 d Giới thiệu hàm regionprops 39 e Lưu đồ nhận dạng vỉ thuốc 41 f Bộ chuyển đổi RGB sang HSV 42 g Phân ngưỡng 43 4.3.2 4.4 Lưu đồ giải thuật kiểm tra lỗi vỉ thuốc .46 TÀI LIỆU HƯỚNG DẪN THAO TÁC 47 Chương 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ .49 5.1 KẾT QUẢ TỔNG QUAN 49 5.2 KẾT QUẢ ĐẠT ĐƯỢC 49 5.2.1 Giao diện chương trình .49 5.2.2 Kết mơ hình hệ thống thực tế 50 5.2.3 Kết kiểm tra 50 5.2.4 Kết mơ hình hệ thống hoạt động 51 viii 5.2.5 5.3 Kết thực nghiệm 56 NHẬN XÉT VÀ ĐÁNH GIÁ 56 Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57 6.1 KẾT LUẬN 57 6.2 HƯỚNG PHÁT TRIỂN 57 TÀI LIỆU THAM KHẢO PHỤ LỤC ix PHỤ LỤC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% elseif vi_do_10==1 & vi_do_10_detected ==1 %%Nếu lựa chọn vỉ 10 viên đỏ nhận dạng cho kết vỉ 10 viên đỏ labelImageBWCC = bwconncomp(coloredObjectsMaskRed,8); stats = regionprops(coloredObjectsMaskRed, 'BoundingBox'); imshow(rgbImage, 'Parent', handles.axes_kq); hold on %%Vẽ bounding box quanh đối tượng viên thuốc for object = 1:length(stats) bb = stats(object).BoundingBox; rectangle(handles.axes_kq,'Position',bb,'EdgeColor','r','LineWidth',2) end hold off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% elseif vi_trang_1==1 & vi_trang_1_detected==1 %%Nếu lựa chọn vỉ viên trắng nhận dạng cho kết vỉ viên trắng coloredObjectsMaskWhite_1=iswhite_1(hImage,sImage,vImage,img_sang_bw); labelImageBWCC = bwconncomp(coloredObjectsMaskWhite_1,8); stats = regionprops(coloredObjectsMaskWhite_1, 'BoundingBox'); imshow(rgbImage, 'Parent', handles.axes_kq); hold on %%Vẽ bounding box quanh đối tượng viên thuốc for object = 1:length(stats) bb = stats(object).BoundingBox; rectangle(handles.axes_kq,'Position',bb,'EdgeColor','w','LineWidth',2) end PHỤ LỤC hold off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Else %%Lỗi sai loại vỉ imshow(hinh_vi_thuoc, 'Parent', handles.axes_kq); imshow(vi_khac_loai, 'Parent', handles.axes_ket_luan); labelImageBWCC.NumObjects=loai_vi_thuoc+1;? %%neu khong phai vi nao => loi => servo gat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% end %%Đếm số viên thiếu hiển thị bảng kết so_vien_thieu=loai_vi_thuoc-labelImageBWCC.NumObjects; if so_vien_thieu >= set(handles.txt_so_vien_thieu,'string',so_vien_thieu); else set(handles.txt_so_vien_thieu,'string',' '); end %%Kiểm tra kết luận lỗi vỉ thuốc %%Điểu khiển servo gạt vỉ thuốc if labelImageBWCC.NumObjects < loai_vi_thuoc %%Lỗi thiếu viên writePWMVoltage(a,'D11',3); axes(handles.axes_animation); imshow(ani_error); so_vi_loi=so_vi_loi + 1; set(handles.txt_so_vi_loi,'string',so_vi_loi);%% loi thieu vien imshow(vi_thieu_vien, 'Parent', handles.axes_ket_luan); %% ghi ket qua vi thieu vien PHỤ LỤC set(handles.txt_so_vien_dem_duoc,'string',labelImageBWCC.NumObjects); %% for pau=1:2 if readDigitalPin(a,'D2')==0 %%khi nhan nut stop tren bang tai btn_stop_Callback(hObject, eventdata, handles); %% goi ham nut nhan stop break; end writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',0); %% DEN DO BAT pause(.5); writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); end %%Loại vỉ thuốc servo writePosition(ser_thieu_vien, 4); %% vi tri gat for pau=1:4 %%4s if readDigitalPin(a,'D2')==0 %%khi nhan nut stop tren bang tai btn_stop_Callback(hObject, eventdata, handles); %% goi ham nut nhan stop break; end writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',0); %% DEN DO BAT pause(.5); writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT PHỤ LỤC writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); end writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',0); %% DEN DO BAT writePosition(ser_thieu_vien, 0.0); %%gat writePWMVoltage(a,'D11',0); %chuong tat elseif labelImageBWCC.NumObjects == loai_vi_thuoc %% du thuoc %%Vỉ không lỗi imshow(vi_dung, 'Parent', handles.axes_ket_luan); so_vi_hoan_thien = so_vi_hoan_thien + 1; set(handles.txt_so_vi_hoan_thien,'string',so_vi_hoan_thien); set(handles.txt_so_vien_dem_duoc,'string',labelImageBWCC.NumObjects); axes(handles.axes_animation); imshow(ani_success); writePWMVoltage(a,'D11',0); %chuong tat writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',1); %% DEN DO TAT for pau=1:3 if readDigitalPin(a,'D2')==0 %%khi nhan nut stop tren bang tai btn_stop_Callback(hObject, eventdata, handles); %% goi ham nut nhan stop break; end pause(1); end else %% loi khac loai vi %%Lỗi sai loại vỉ writePWMVoltage(a,'D11',3); %% bat chuong PHỤ LỤC axes(handles.axes_animation); imshow(ani_error); so_vi_khac_loai=so_vi_khac_loai + 1; set(handles.txt_so_vi_khac_loai,'string',so_vi_khac_loai); set(handles.txt_so_vien_dem_duoc,'string',' '); %%Loại vỉ thuốc servo writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',0); %% DEN VANG BAT writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); writePosition(ser_sai_loai_vi, 1); %% vi tri gat for pau=1:2 if readDigitalPin(a,'D2')==0 %%khi nhan nut stop tren bang tai btn_stop_Callback(hObject, eventdata, handles); %% goi ham nut nhan stop break; end writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',0); %% DEN VANG BAT writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); end writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',0); %% DEN VANG BAT PHỤ LỤC writeDigitalPin(a,'D7',1); %% DEN DO TAT writePosition(ser_sai_loai_vi, 4); %% gat writePWMVoltage(a,'D11',0); %chuong tat end %%Tăng biến số hộp đạt đủ số vỉ đóng thành hộp if mod(so_vi_hoan_thien,so_vi_cai_dat) == %%so_vi_cai_dat vi dong thannh hop if so_vi_hoan_thien > & (so_vi_hoan_thien ~= so_vi_reg) so_vi_reg=so_vi_hoan_thien; so_hop=so_hop +1; set(handles.txt_so_hop,'string',so_hop); end end end cla(handles.axes_animation); %% xoa bieu tuong success,error %%Nếu đủ số hộp cần sản xuất cho chương trình dừng if so_hop >= so_hop_cai_dat %% so_hop_cai_dat thi dung ctrinh for dem_giay=1:5 %5 giay dau tien if readDigitalPin(a,'D2')==0 %%khi nhan nut stop tren bang tai btn_stop_Callback(hObject, eventdata, handles); %% goi ham nut nhan stop break; end writeDigitalPin(a,'D5',0); %% DEN XANH BAT writeDigitalPin(a,'D6',0); %% DEN VANG BAT writeDigitalPin(a,'D7',0); %% DEN DO BAT pause(.5); writeDigitalPin(a,'D5',1); %% DEN XANH TAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',1); %% DEN DO TAT pause(.5); end PHỤ LỤC for dem_giay=1:3 %%3 giay cuoi if readDigitalPin(a,'D2')==0 %%khi nhan nut stop tren bang tai btn_stop_Callback(hObject, eventdata, handles); %% goi ham nut nhan stop break; end if dem_giay==1 writeDigitalPin(a,'D7',0); %% DEN DO BAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D5',1); %% DEN XANH TAT pause(1); elseif dem_giay==2 writeDigitalPin(a,'D7',1); %% DEN DO TAT writeDigitalPin(a,'D6',0); %% DEN VANG BAT writeDigitalPin(a,'D5',1); %% DEN XANH TAT pause(1); else writeDigitalPin(a,'D7',1); %% DEN DO TAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D5',0); %% DEN XANH BAT pause(1); writeDigitalPin(a,'D7',1); %% DEN DO TAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D5',1); %% DEN XANH TAT end end writeDigitalPin(a,'D12',1); %% MOTOR DUNG break; end end end end PHỤ LỤC Chương trình cho nút stop function btn_stop_Callback(hObject, eventdata, handles) global input; global loai_vi_thuoc; global so_vien_thieu; global so_vi_loi; global so_vi_hoan_thien; global so_vi_khac_loai; global start; global a; global status_open; global status_start; global status_stop; axes(handles.axes_hoat_dong); imshow(status_stop); %%Tắt hết đèn writeDigitalPin(a,'D5',1); %% DEN XANH TAT writeDigitalPin(a,'D6',1); %% DEN VANG TAT writeDigitalPin(a,'D7',1); %% DEN DO TAT %%Dừng motor writeDigitalPin(a,'D12',1); set(handles.btn_stop,'userdata',1); %%stop while %%khi bam nut stop tren chuong trinh %%Kiểm tra xem có nhấn nút start lại không if get(handles.btn_start,'userdata')== %% nhan nut start tren chuong trinh set(handles.btn_stop,'userdata',0); %% start break; elseif readDigitalPin(a,'D2')==1 %%khi nhan nut start tren bang tai set(handles.btn_stop,'userdata',0); %% start btn_start_Callback(hObject, eventdata, handles); %% goi ham nut nhan start break; else PHỤ LỤC set(handles.btn_stop,'userdata',1); %% stop continue; end end Chương trình áp ngưỡng cho vỉ 10 viên vàng function coloredObjectsMaskYellow = isyellow(hImage,sImage,vImage,rgbImage) smallestAcceptableArea= 3000; %%Ngưỡng màu hueThresholdLowYellow = 0.1; hueThresholdHighYellow = 0.4; saturationThresholdLowYellow = 0.1; saturationThresholdHighYellow = 0.4; valueThresholdLowYellow = 0.4; valueThresholdHighYellow = 0.8; %%Áp ngưỡng vào kênh màu hueMaskYellow = (hImage >= hueThresholdLowYellow) &(hImage = saturationThresholdLowYellow) & (sImage = valueThresholdLowYellow) & (vImage = hueThresholdLowPink) &(hImage = saturationThresholdLowPink) & (sImage = valueThresholdLowPink) & (vImage = hueThresholdLowGreen) &(hImage = saturationThresholdLowGreen) & (sImage = valueThresholdLowGreen) & (vImage = hueThresholdLowWhite_1) &(hImage = saturationThresholdLowWhite_1) & (sImage = valueThresholdLowWhite_1) & (vImage = hueThresholdLowRed) &(hImage = saturationThresholdLowRed) & (sImage = valueThresholdLowRed) & (vImage = hueThresholdLowWhite_4) &(hImage = saturationThresholdLowWhite_4) & (sImage = valueThresholdLowWhite_4) & (vImage 10000 ; roundObjects = find(keeperBlobs); coloredObjectsMaskWhite_4 = ismember(L, roundObjects); Chương trình áp ngưỡng cho vỉ 10 viên nâu function coloredObjectsMaskBrown = isBrown(hImage,sImage,vImage,rgbImage,img_sang_bw) smallestAcceptableArea= 3000; %%Ngưỡng màu hueThresholdLowBrown = 0.5; hueThresholdHighBrown = 75; saturationThresholdLowBrown = 0.1; saturationThresholdHighBrown = 0.2; valueThresholdLowBrown = 0.0; valueThresholdHighBrown = 44; %%Áp ngưỡng vào kênh màu hueMaskBrown = (hImage >= hueThresholdLowBrown) &(hImage = saturationThresholdLowBrown) & (sImage = valueThresholdLowBrown) & (vImage

Ngày đăng: 22/04/2020, 19:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan