1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) thiết kế thi công hệ thống phân loại sản phẩm

87 11 0

Đ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 VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA THIẾT KẾ THI CÔNG HỆ THỐNG PHÂN LOẠI SẢN PHẨM GVHD: THS PHÙNG SƠN THANH SVTH: NGUYỄN VĂN YÊN MSSV: 16151319 SVTH: LÝ QUANG KHẢI MSSV: 16151033 SKL 0 Tp Hồ Chí Minh, tháng 07/2020 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ THI CÔNG HỆ THỐNG PHÂN LOẠI SẢN PHẨM SVTH : NGUYỄN VĂN YÊN MSSV: 16151319 LÝ QUANG KHẢI MSSV: 16151033 Khóa : 2016 Ngành : CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA GVHD : THS PHÙNG SƠN THANH Thành phố Hồ Chí Minh, tháng 07 năm 2020 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ THI CÔNG HỆ THỐNG PHÂN LOẠI SẢN PHẨM SVTH : NGUYỄN VĂN YÊN MSSV: 16151319 LÝ QUANG KHẢI MSSV: 16151033 Khóa : 2016 Ngành : CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA GVHD : THS PHÙNG SƠN THANH Thành phố Hồ Chí Minh, tháng 07 năm 2020 an CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC -*** Tp Hồ Chí Minh, ngày 09 tháng 07 năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Văn Yên MSSV: 16151319 Họ tên sinh viên 2: Lý Quang Khải MSSV: 16151033 Chuyên ngành: CNKT Điều khiển Tự động hóa Lớp: 16151CLB Giảng viên hướng dẫn:ThS Phùng Sơn Thanh Điện thoại: 0983960600 Ngày nhận đề tài: 04/03/2020 Ngày nộp đề tài: 27/07/2020 Tên đề tài: Thiết kế thi công hệ thống phân loại sản phẩm Các số liệu, tài liệu ban đầu - Về tài liệu: nghiên cứu tìm hiểu đề tài có hệ thống phân loại màu sắc sản phẩm, phân loại sản phẩm dựa vào barcode , số lượng, logo Phân tích ưu nhược điểm chúng để tìm phương hướng cải tiến, nâng cao thuật toán điều khiển để tối ưu hóa phần cứng, tăng tốc độ xử lí nhằm tiết kiệm chi phí đầu tư cũng nâng cao xuất hoạt động - Về thiết bị: Camera, PLC, băng tải, van điện từ khí nén, xilanh, cảm biến quang, khung hệ thống Nội dung thực - Tìm hiểu cấu tạo, nguyên lý hoạt động lập trình điều khiển Camera ngơn ngữ lập trình Python và truyền thơng sang cho PLC Song song là đưa số liệu được xử lí lên web server để dễ dàng theo dõi và giám sát - Nghiên cứu thuật toán xử lý ảnh để nhận diện barcode, nhận diện logo số lượng sản phẩm dựa thư viện nguồn mở OpenCV - Điều khiển hệ thống van điện từ khí nén và xilanh phân loại sản phẩm vào lane thích hợp - Hoàn thiện, sửa lỗi cải thiện hệ thống Sản phẩm: Báo cáo tiểu luận, mơ hình phần cứng, chương trình điều khiển TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN Khoa ĐT CLC – ĐH SPKT TP.HCM an i CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ******* PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Họ tên sinh viên 1: Nguyễn Văn Yên MSSV: 16151319 Họ tên sinh viên 2: Lý Quang Khải MSSV: 16151033 Chuyên ngành: CNKT Điều khiển Tự động hóa Tên đề tài: Thiết kế thi công hệ thống phân loại sản phẩm Họ tên Giảng viên hướng dẫn: ThS Phùng Sơn Thanh NHẬN XÉT Về nội dung đề tài khối lượng thực hiện Ưu điểm Khuyết điểm Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Bằng chữ: Tp Hồ Chí Minh, ngày tháng năm 2020 GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) Khoa ĐT CLC – ĐH SPKT TP.HCM an ii CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ******* PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN Họ tên sinh viên 1: Nguyễn Văn Yên MSSV: 16151319 Họ tên sinh viên 2: Lý Quang Khải MSSV: 16151033 Chuyên ngành: CNKT Điều khiển Tự động hóa Tên đề tài: Thiết kế thi cơng hệ thống phân loại sản phẩm Họ tên Giảng viên phản biện: NHẬN XÉT Về nội dung đề tài khối lượng thực hiện Ưu điểm Khuyết điểm Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Bằng chữ: Tp Hồ Chí Minh, ngày .tháng .năm 2020 GIẢNG VIÊN PHẢN BIỆN (Ký ghi rõ họ tên) Khoa ĐT CLC – ĐH SPKT TP.HCM an iii CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ******* LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Văn Yên MSSV: 16151319 Họ tên sinh viên 2: Lý Quang Khải MSSV: 16151033 Chuyên ngành: CNKT Điều khiển Tự động hóa Tên đề tài: Thiết kế thi công hệ thống phân loại sản phẩm Tuần/ngày Nội dung 1-2 Thực hiện chọn đề tài Nhận đề tài, Gặp GVHD để phổ biến quy định 4-5 Nghiêm cứu đề tài, tìm tài liệu đề tài Viết đề cương chi tiết 7-8 Tìm hiểu sở lý thuyết 9-11 Tiến hành thi công phần cứng 12-14 Viết chương trình 15 Nạp code và cân chỉnh hệ thống 16-17 Viết sách đồ án, Báo cáo đề tài tốt nghiệp Xác nhận GVHD Khoa ĐT CLC – ĐH SPKT TP.HCM an iv CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ******* LỜI CAM ĐOAN Đồ án tốt nghiệp cơng trình nghiên cứu nhóm, được thực hiện hướng dẫn khoa học ThS Phùng Sơn Thanh Các số liệu, mơ hình được trình bày luận văn này hoàn toàn trung thực Nhóm xin cam kết đề tài nhóm tự thực hiện dựa vào số tài liệu trước và khơng chép từ tài liệu hay cơng trình có trước Nhóm thực hiện đề tài xin hồn tồn chịu trách nhiệm lời cam đoan này Nhóm thực hiện đề tài Nguyễn Văn Yên Lý Quang Khải Khoa ĐT CLC – ĐH SPKT TP.HCM an v LỜI CẢM ƠN Lời đầu tiên, nhóm thực hiện đề tài xin gửi lời cảm ơn chân thành nhất đến ThS Phùng Sơn Thanh tận tình giúp đỡ, giải đáp thắc mắc, hướng dẫn nhóm thực hiện đề tài, tạo điều kiện tốt nhất từ bố trí phịng thí nghiệm đến thiết bị vật tư suốt thời gian nhóm thực hiện đề tài Những kiến thức bổ ích từ Thầy được áp dụng vào đề tài rất nhiều, từ kiến thức nhỏ nhặt bài học lớn Một lần nhóm thực hiện đề tài xin được gửi lời cảm ơn chân thành đến Thầy Để hoàn thành tốt đồ án tốt nghiệp này, nhóm nhận được giúp đỡ nhiệt tình quý thầy cô khoa Điện – Điện tử nói chung giảng viên ngành Điều khiển Tự động hóa nói riêng trang bị kiến thức cần thiết, đóng góp ý kiến giải đáp thắc mắc liên quan đến đề tài Nhóm cũng xin gửi lời cảm ơn đến tập thể lớp 16151CLB đóng góp ý kiến giúp cải thiện hệ thống, giúp đỡ nhóm suốt q trình thực hiện đề tài Xin cảm ơn gia đình và bạn bè ln bên cạnh động viên, khích lệ tinh thần để nhóm hồn thành tốt đề tài này Nhóm thực đề tài! Khoa ĐT CLC – ĐH SPKT TP.HCM an vi TÓM TẮT Trong đề tài này, nhóm sử dụng băng chuyền để vận chuyển sản phẩm, Camera được sử dụng để phân loại vật thể dựa barcode, logo và số lượng chúng bao gồm khâu chính: xử lý liệu thu thập được từ camera so sánh, phân loại Quá trình phân loại sản phẩm dựa việc thu thập thông tin mã, logo, số lượng, đối tượng thơng qua hệ thống Camera Nếu sản phẩm có yếu tố quy định mã, logo, số lượng, được lưu trữ kho Còn ngược lại sản phẩm khác với quy định, được gỡ khỏi băng chuyền phân loại thành làn thích hợp Sau nhận dạng được barcode, số lượng, logo vật thể băng chuyền công nghệ xử lý ảnh được thực nghiệm đạt được độ xác cao Cơ cấu van điện từ khí nén và xilanh nhận tín hiệu từ PLC phân loại sản phẩm vào lane quy định Tuy nhiên, hệ thống đôi lúc hoạt động thiếu ổn định ảnh hưởng số yếu tố ánh sáng tự nhiên gây nên bóng vật thể nên gây nhận dạng ảnh bị lỗi Cuối cùng, nhóm sử dụng phần mềm Pycharm để lập trình chương trình xử lý ảnh dựa ngơn ngữ lập trình Python thư viện nguồn mở OpenCV giao tiếp được với PLC Kết quả thu được hệ thống phân loại sản phẩm dựa yếu tố : logo, barcode, số lượng và giao tiếp với PLC hoạt động với yêu cầu đề Khoa ĐT CLC – ĐH SPKT TP.HCM an vii CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận 6.1.1 Ưu điểm Sau tổng hợp kết quả đạt được và đem so sánh với yêu cầu mục tiêu thiết kế cho thấy hệ thống đáp ứng tương đối đầy đủ, với xác cao Mơ hình phần cứng hoạt động tốt, thiết bị nhỏ gọn, lắp đặt dễ dàng, có tính kinh tế, thuận tiện cho việc học tập và cũng phát triển thành dây chuyền sản xuất Nhận diện gần xác barcode, logo, số lượng sản phẩm, bị ảnh hưởng nhiễu sử dụng thêm led hắt sáng nhằm cố định mức sáng cũng thử nhiều lần tìm ngưỡng phù hợp Với việc cố định ánh sáng từ led ( không bị ảnh hưởng nhân tố ánh sáng bên ngoài mơi trường) việc xử lí ảnh bị sai số dẫn đến tình trạng nhận diện sai lệnh, phân loại sai lane quy định 6.1.2 Nhược điểm Với việc sử dụng led hắt sáng gây tình trạng đổ bóng vật thể, cũng hệ thống khơng hoạt động được nếu có nguồn sáng bên ngoài mạnh led ảnh hưởng đến hệ thống Tốc độ hoạt động hệ thống chưa cao băng tải hoạt động đồng thời với cấu van điện từ khí nén và xi lanh Do băng tải phải dừng lại để camera thu thập liệu cũng phải dừng lại hệ thống van và xilanh hoạt động phân loại Hệ thống đọc được mã barcode chưa thực hiện việc phân loại dựa vào barcode Vì để phân loại barcode cùng với logo và số lượng cần tới tổ hợp trường hợp sản phẩm , quy mô hệ thống không đáp ứng đủ 6.2 Hướng phát triển Từ mặt hạn chế đề tài, để đề tài hoạt động tốt và áp dụng vào thực tế sau này nhóm đề hướng phát triển sau: Làm thành dây chuyền sản xuất với cấu hình mạnh hơn, cải tiến thêm chức phân loại sản phẩm dựa vào barcode, tìm hiểu phát triển thêm chức vận hành giám sát từ xa Cải thiện giải thuật để không nhận dạng được logo mà cịn nhận dạng được rất nhiều logo khác nhau, phân biệt được số lượng sản phẩm với kích thước khác nhau,… Thay sử dụng cấu van điện từ khí nén và xilanh , sử dụng robot Dobot Magician (Hình 6.0) để gắp thả vật thể hệ thống, Robot công nghiệp Dobot M1 (Hình 6.1) nhằm cải thiện tốc độ hoạt động nâng cao độ xác cho hệ thống Khoa ĐT CLC – ĐH SPKT TP.HCM an 53 Hình 6.1 Dobot Magician Hình 6.2 Dobot M1 Khoa ĐT CLC – ĐH SPKT TP.HCM an 54 TÀI LIỆU THAM KHẢO Tiếng Việt [1] TS Nguyễn Thanh Hải (2014), “Giáo trình Xử lý ảnh”, Nhà xuất Đại học Quốc gia Thành phố Hồ Chí Minh [2] Phạm Trần Lam Hải, Trần Thanh Hùng, Nguyễn Văn Khanh, Lưu Trọng Hiếu (2015), “Ứng dụng xử lý ảnh số việc phân loại sản phẩm”, Tạp chí Khoa học Trường Đại học Cần Thơ [3] Nguyễn Văn Long (2016), “Ứng dụng Xử lý ảnh thực tế với thư viện OpenCV” [4] Võ Đức Khánh, Hoàng Văn Kiếm (2008), “Giáo trình xử lý ảnh số”, Nhà xuất Đại học Quốc gia Thành phố Hồ Chí Minh [5] Nguyễn Tiến Phúc (2017), “Xử lý ảnh phân loại sản phẩm theo màu sắc”, Bài báo nghiên cứu khoa học Trường Đại học Sao Đỏ [6] Nguyễn Quang Hoan (2006), “Xử lý ảnh”, Lưu hành nội Học viện cơng nghệ bưu viễn thơng [7] Chí Trương (2013), “Thư viện thuật tốn Pyzbar”, OpenCV https://techtutorialsx.com/2020/01/01/python-pyzbar-detecting-and-decodingbarcode/ [8] Việt Anh (2018), “Thư viện thuật toán Hough Circle”, OpenCV https://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/hough_circle/hough_circ le.html [9] Tạ Hải (2017), “Thư viện thuật toán Brute-Force Matching”, OpenCV https://docs.opencv.org/3.4/dc/dc3/tutorial_py_matcher.html [10] Team Việt Dev (2018), “OpenCV là gì? Ứng dụng thế giới thực”, Blog Team Việt Dev https://teamvietdev.com/opencv-la-gi-ung-dung-opencv-trong-the-gioi-thuc/ Khoa ĐT CLC – ĐH SPKT TP.HCM an 55 Tiếng Anh [1] Krutika Bapat (2019), “Hough Transform with OpenCV”, LearnOpenCV.com [2] Gonzalez, RC and Woods, RE (2008), “Digital Image Processing”, Pearson Prentice Hall, Upper Saddle River [3] Bhabatosh Chanda, Dwijesh Dutta Maumder (2001), “Digital Image Processing and Analysis”, Prentice Hall of India [4] Wilhelm Burger and Mark J Burge (2009), “Principles of Digital Image Processing”, Fundamental Techniques, Sprigner Khoa ĐT CLC – ĐH SPKT TP.HCM an 56 PHỤ LỤC  Chương trình xử lí ảnh from multiprocessing import Process, Queue # chay ham song song ( Ham count product & ham barcode+check logo) import cv2 # thu vien Open CV from pyzbar import pyzbar # Thu vien doc Barcode import time from pyModbusTCP.client import ModbusClient import numpy as np def bar_logo_function(q): """ Processed Barcode Function :return: """ # thu vien OpenCV(cv2) chuyen dung xu li anh cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) #doc hinh anh tu camera # hình mẫu template = cv2.imread('tao3.PNG', cv2.IMREAD_GRAYSCALE) # cv2.imshow("template", template) w, h = template.shape[::-1] sift = cv2.xfeatures2d.SIFT_create() kp1, des1 = sift.detectAndCompute(template, None) count_check_ = list_result_logo = [] while True: count_check_ += ret, image = cap.read() # lay hinh anh tu camera if not ret: # ktra neu hinh anh fail thi stop while true break # kiểm tra logo Khoa ĐT CLC – ĐH SPKT TP.HCM an 57 img_gray = cv2.cvtColor(image, cv2.IMREAD_GRAYSCALE) kp2, des2 = sift.detectAndCompute(img_gray, None) if des2 is None: list_result_logo = [0, 0, 0, 0, 0] count_check_ = else: matches = cv2.BFMatcher().knnMatch(des1, des2, k=2) good = [] count_point_match = try: for m, n in matches: if m.distance < 0.73 * n.distance: count_point_match += good.append([m]) list_result_logo.append(1) list_result_logo.append(0) if count_point_match > 10 else except: list_result_logo = [0, 0, 0, 0, 0] count_check_ = # img_out_logo = cv2.drawMatchesKnn(template, kp1, img_gray, kp2, good, None, flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS) # cv2.imshow('dgd', img_out_logo) barcodes = pyzbar.decode(img_gray) barcodeData = for barcode in barcodes: (x, y, w, h) = barcode.rect cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2) barcodeData = barcode.data.decode("utf-8") barcodeType = barcode.type # draw the barcode data and barcode type on the image text = "{} ({})".format(barcodeData, barcodeType) cv2.putText(image, text, (x - 10, y), cv2.FONT_HERSHEY_SIMPLEX, Khoa ĐT CLC – ĐH SPKT TP.HCM an 58 0.5, (0, 0, 255), 2) if count_check_ == 5: check_logo_final = max(list_result_logo, key=list_result_logo.count) if barcodeData != 0: print("Barcode_logo: ", str(barcodeData) + str(check_logo_final)) q.put(str(barcodeData) + str(check_logo_final)) print("Done - send barcode and logo.") count_check_ = list_result_logo = [] cv2.putText(image, str(True if check_logo_final == else False), (20, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) cv2.imshow("Barcode and Logo Detection", image) k = cv2.waitKey(1) if k % 256 == 27: # ESC pressed print("Closing ") break if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() def shape_detection(q, c): """ Đếm sp Sp màu sáng, màu tối :return: """ cap = cv2.VideoCapture(1, cv2.CAP_DSHOW) count_true = count_product = [] while True: Khoa ĐT CLC – ĐH SPKT TP.HCM an 59 count_true += ret, image = cap.read() gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # gray = cv2.medianBlur(cv2.cvtColor(image, cv2.COLOR_BGR2GRAY), 5) circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.6, gray.shape[0] / 8) # circles = #gray.shape[0] / 8) cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2, 100) num_products = if circles is not None: circles = np.uint16(np.around(circles)) for i in circles[0, :]: center = (i[0], i[1]) radius = i[2] cv2.circle(image, (i[0], i[1]), i[2], (255, 0, 255), 3) num_products = len(circles[0]) count_product.append(num_products) if count_true >= 9: num_products = max(count_product, key=count_product.count) try: # print("Getting data ") barcode_logo = q.get(timeout=0.1) # print ("Done") send_data_plc = barcode_logo + str(num_products) + '1' # print(send_data_plc) for addr in range(0, len(send_data_plc)): # print(send_data_plc[addr]) is_ok = c.write_single_register(addr, int(send_data_plc[addr])) # print("Check send data: ", is_ok) except: pass print("Co {} san pham.".format(num_products)) count_true = count_product = [] Khoa ĐT CLC – ĐH SPKT TP.HCM an 60 cv2.imshow("Count Product", image) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() if name == ' main ': c = ModbusClient() c.host("192.168.0.1") c.port(502) c.unit_id(1) c.open() q = Queue() barcode_process = Process(target=bar_logo_function, args=(q,)) barcode_process.start() count_object_process = Process(target=shape_detection, args=(q,c, )) count_object_process.start() Khoa ĐT CLC – ĐH SPKT TP.HCM an 61  PLC Tag Khoa ĐT CLC – ĐH SPKT TP.HCM an 62  Chương trình PLC Khoa ĐT CLC – ĐH SPKT TP.HCM an 63 Khoa ĐT CLC – ĐH SPKT TP.HCM an 64 Khoa ĐT CLC – ĐH SPKT TP.HCM an 65 Khoa ĐT CLC – ĐH SPKT TP.HCM an 66 S an K L 0 ... việc thi? ?́t kế thi cơng hệ thống Chương 3: Tính tốn thi? ??t kế: X́t phát từ yêu cầu thi? ?́t kế yêu cầu điều khiển đề tài, trình bày tính tốn thi? ?́t kế lựa chọn thi? ?́t bị phần cứng hệ thống. .. thống Chương 4: Thi công hệ thống: Tiến hành thi công, lắp ráp mơ hình thi? ?́t kế; trình bày lưu đồ thuật tốn lập trình điều khiển; vận hành hệ thống Chương 5: Kết quả, nhận xét đánh giá: Trình... phố Hồ Chí Minh, tháng 07 năm 2020 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THI? ?́T KẾ THI CÔNG HỆ THỐNG PHÂN LOẠI SẢN PHẨM SVTH

Ngày đăng: 02/02/2023, 09:28

Xem thêm: