Đồ án tốt nghiệp chuyên ngành cơ điện tử ứng dụng xử lý ảnh vào quản lý và phân loại sản phẩm theo mã QR code. Trong đồ án, nhóm thực hiện đã tiến hành phân tích, tính toán, lựa chọn các chi tiết, thành phần cho hệ thống cơ khí và hệ thống điều khiển. Sau khi tính toán, nhóm tiến hành xây dựng mô hình thực nghiệm kết nối các chi tiết cơ khí với nhau và với động cơ servo. Sau khi tiến hành chạy thực nghiệm bằng mô hình, về cơ bản hệ thống đã nhận diện và phân loại được, đạt 10 sản phẩmphút.
ĐỒ ÁN TỐT NGHIỆP GVHD: TS … MỤC LỤC MỤC LỤC LỜI CẢM ƠN DANH MỤC HÌNH ẢNH DANH MỤC BẢNG 10 DANH MỤC TỪ VIẾT TẮT 11 LỜI NÓI ĐẦU 12 CHƯƠNG 1: TỔNG QUAN VỀ QUẢN LÝ, PHÂN LOẠI SẢN PHẨM ỨNG DỤNG XỬ LÝ ẢNH 14 1.1 Đặt vấn đề 14 1.2 Giới thiệu chung hệ thống phân loại sản phẩm 15 1.2.1 Phân loại sản phẩm theo kích thước sử dụng cảm biến quang 16 1.2.2 Phân loại sản phẩm theo màu sắc sử dụng cảm biến màu sắc 17 1.2.3 Phân loại sản phẩm xử lý ảnh 18 1.2.4 Ý nghĩa hệ thống phân loại sản phẩm .19 CHƯƠNG 2: TÍNH TỐN THIẾT KẾ HỆ THỐNG CƠ KHÍ .26 2.1 Yêu cầu thiết kế .26 2.2 Mô hình đề xuất .26 2.3 Lựa chọn, tính toán thiết kế phận hệ thống khí .28 2.3.1 Băng tải 28 2.3.2 Các thông số thiết kế .30 2.3.3 Tính tốn sơ liệu đầu vào .31 2.3.4 Tính tốn thiết kế chọn động dẫn động băng tải 32 2.4 Động truyền động băng tải 33 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … 2.4.1 Tính P1 34 2.4.2 Tính P2 36 2.4.3 Tính P3 36 2.5 Tính tốn chọn ổ lăn 38 2.5 Động servo tay gạt 39 CHƯƠNG 3: HỆ THỐNG ĐIỆN – ĐIỀU KHIỂN 43 3.1 Các thành phần hệ thống điều khiển 43 3.1.1 Cảm biến E18-D80NK 43 3.1.2 Camera 44 3.1.3 Arduino R3 45 3.1.4 Module Buck DC-DC dùng XL4016 46 3.1.5 Động servo tay gạt driver điều khiển .47 3.1.6 Module relay 5VDC 49 3.2 Các phần mềm lập trình điều khiển .51 3.2.1 Arduino IDE 51 3.2.2 Visual Studio 2017 52 3.2.3 Microsoft SQL Server 2017 53 Kết luận chương .55 CHƯƠNG 4: LẬP TRÌNH ĐIỀU KHIỂN, THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 56 4.1 Lập trình Arduino 56 4.1.1 Sơ đồ khối 56 4.1.2 Chức khối .56 4.1.3 Lập trình upload chương trình cho Arduino 57 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … 4.1.4 Sơ đồ kết nối phần cứng 57 4.1.5 Lưu đồ thuật toán 58 4.2 Hệ thống quản lý sản phẩm 59 4.2.1 Tổng quát hệ thống quản lý sản phẩm 59 4.2.2 Biểu đồ cấu trúc liệu theo mơ hình quan hệ .59 4.2.3 Biểu đồ phân cấp chức 60 4.2.4 Từ điển liệu .60 4.2.5 Tạo sở liệu 61 4.3 Sơ lược QR code .63 4.4 Ứng dụng thư viện mở rộng dll để giải toán 66 4.4.1 Xây dựng hệ thống giao tiếp với thiết bị ngoại vi (Camera Arduino) 68 4.4.2 Chuyển đổi ảnh trích xuất sang dạng chuỗi kết hợp SQL để xử lý .70 4.5 Thiết kế giao diện người dùng .72 4.5.1 Form đăng nhập 72 4.5.2 Form 72 4.5.3 UserControl đổi mật 73 4.5.4 UserControl lưu khôi phục liệu 74 4.5.5 UserControl phân loại sản phẩm 75 4.5.6 UserControl trợ giúp .77 Kết luận chương .80 CHƯƠNG 5: XÂY DỰNG MƠ HÌNH HỆ THỐNG VÀ THỰC NGHIỆM 81 5.1 Xây dựng mơ hình thực nghiệm 81 5.1.1 Động Servo Futaba S3003 38G 81 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … 5.1.2 Động JGB37-3530 83 5.1.3 Nguyên lý hoạt động .87 5.2 Kết thực nghiệm 88 KẾT LUẬN 89 TÀI LIỆU THAM KHẢO .91 PHỤ LỤC 92 [1] Chương trình Arduino 92 [2] Truy vấn SQL .95 [3] Lập trình Visual Studio .103 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … LỜI CẢM ƠN Ngoài hoa phượng nở rực khoảng trời, tiếng ve kêu râm ran, mùa hè lại Mùa chia tay mái trường, mùa lưu luyến, nhung nhớ tuổi học trò…với Bách Khoa cịn mùa thi, mùa tình nguyện mùa học lại Hình mùa hè năm thật lạ, chúng em nghĩ đến hai chữ “sau này” Chúng ta sau này, người ước mơ, người đường, liệu cịn ngồi lại lúc không? Chớp mắt, ngoảnh đầu lại ta qua bốn năm, vừa ngày cịn cậu sinh viên năm ngây ngô Bốn năm khoảng thời gian dài Bách Khoa cho chúng em kỉ niệm, nhiệt huyết tuổi trẻ, ước mơ, niềm tin hi vọng Là nơi có thầy u thương vỗ về, có bạn bè kề vai sát cánh, nơi bắt đầu thử thách nơi nuôi dưỡng, rèn giũa chúng em ngày trưởng thành Qua nhóm xin gửi lời cảm ơn trân thành tới thầy Viện Cơ khí, Bộ mơn Cơ điện tử trường Đại học Bách Khoa Hà Nội đặc biệt thầy giáo TS … Em chúc thầy, cô luôn mạnh khỏe, nhiệt huyết để dạy bảo, dẫn, giúp đỡ hệ sinh viên tiếp theo, nên thợ, nên người Cảm ơn gia đình ln tin tưởng hy vọng, nơi khơng mệt mỏi khó khăn chạm tới, nơi cần trở bình yên, ấm áp nguồn động lực lớn cho chúng Với Bách Khoa khoa vội vã có, luyến tiếc có, người ta nói khơng có nuối tiếc gọi xuân Tuổi trẻ dám làm, dám đương đầu, dám vấp ngã Cảm ơn bạn, người khóc, cười, vượt qua khó khăn, sẵn sàng chia sẻ, yêu thương Thanh xuân có cậu tươi đẹp đến Hà Nội, ngày 24 tháng 05 năm 2019 Nhóm sinh viên DANH MỤC HÌNH ẢN Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … Hình 1.1 Cảm biến quang .16 Hình 1.2 Cảm biến màu sắc 18 Hình 1.3 Nhu cầu giao chuyển hàng hóa 20 Hình 1.4 Một số mơ hình kiểm tra, phân loại chất lượng sản phẩm 21 Hình 1.5 Một số dây chuyền phân loại theo mã vạch giới 22 Hình 1.6 Hệ thống phân loại VNPost 23 Hình 1.7 Hệ thống phân loại Lazada 24 Y Hình 2.1 Sản phẩm tiến hành phân loại 26 Hình 2.2 Mơ hình đề xuất .27 Hình 2.3 Băng tải công nghiệp 28 Hình 2.4 Sơ đồ hệ thống phân loại sản phẩm 30 Hình 2.5 Đồ thị biểu diễn trình tăng tốc – giảm tốc băng tải .31 Hình 2.6 Mặt cắt dây đai 31 Hình 2.7 Động điện chiều 34 Hình 2.8 Các lực tác dụng lên băng tải 35 Hình 2.9 Catalog động DC DLHSV Series 38 Hình 3.1 Cảm biến E18-D80NK .43 Hình 3.2 Camera LogitechWebcam B525 .44 Hình 3.3 Arduino R3 ATmega 328P .45 Hình 3.4 Module Buck DC-DC dùng XL4016 .47 Hình 3.5 Động servo 86J18118EC-1000 + driver 2HSS86H 48 Hình 3.6 Module relay 5VDC 50 Hình 3.7 Phần mềm Arduino IDE 51 Hình 3.8 Phần mềm Visual Studio 2017 52 Hình 3.9 Phần mềm Microsoft SQL Server 2017 53 Hình 4.1 Sơ đồ khối lập trình Arduino 56 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … Hình 4.2 Upload chương trình cho Arduino 57 Hình 4.3 Lưu đồ thuật toán Arduino .58 Hình 4.4 Biểu đồ phân cấp chức 60 Hình 4.5 Kết nối tới sở liệu SQL 61 Hình 4.6 Tạo database chọn đường dẫn .61 Hình 4.7 Tạo bảng Ba Đình database 62 Hình 4.8 Tạo bảng Đống Đa database 62 Hình 4.9 Tạo bảng UserSystem database .62 Hình 4.10 Tạo bảng Hoàn Kiếm database .63 Hình 4.11 Tạo bảng Ba Đình database 63 Hình 4.12 Mã QR Code 64 Hình 4.13 Cấu trúc chung mã QR 64 Hình 4.14 Điểm khác mã QR mã vạch truyền thống 65 Hình 4.15 Các cấp độ hư hỏng mã QR đọc 65 Hình 4.16 Cấu trúc mã QR .66 Hình 4.17 Lưu đồ thuật tốn kết nối camera, kết nối qua cổng serialport .69 Hình 4.18 Lưu đồ thuật tốn xử lý mã QR từ ảnh trích xuất 71 Hình 4.19 Giao diện form đăng nhập 72 Hình 4.20 Giao diện form .73 Hình 4.21 Giao diện UC đổi mật 74 Hình 4.22 Giao diện UC lưu khôi phục liệu 75 Hình 4.23 Giao diện UC kết nối .76 Hình 4.24 Giao diện UC trợ giúp .78 Hình 5.1 Mơ hình thực nghiệm .81 Hình 5.2 Động Servo Futaba S3003 38G 82 Hình 5.3 Các lực tác dụng lên băng tải 84 Hình 5.4 Lực kéo tác động lên tang băng tải 85 Hình 5.5 Thơng số động JGB37-3530 86 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … Hình 5.6 Trích xuất ảnh xử lý .87 Hình 5.7 Đẩy sản phẩm phân loại khỏi băng tải .88 Sinh viên thực hiện: … Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … DANH MỤC BẢN Bảng 2.1 Bảng khối lượng tiếng loại vật liệu 32 Bảng 2.2 Catalog động DC DLHSV Series 38 Bảng 2.3 Thông số ổ lăn 1000099 39 Bảng 2.4 Danh sách chi tiết sử dụng cho mơ hình 41 Y Bảng 4.1 Sơ đồ kết nối phần cứng 57 Bảng 4.2 Từ điển liệu sở liệu SQL 60 Bảng 4.3 Các thành phần form đăng nhập 72 Bảng 4.4 Các thành phần form .73 Bảng 4.5 Các thành phần UC đổi mật 74 Bảng 4.6 Các thành phần UC lưu khôi phục liệu 75 Bảng 4.7 Các thành phần UC kết nối .76 Bảng 4.8 Các thành phần UC trợ giúp 78 Bảng 5.1 Thông số động JGB37-3530 .86 Sinh viên thực hiện: … 10 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt SSAS SSRS SSIS Nội dung viết tắt SQL Server Analysis Services SQL Server Reporting Services SQL Server Integration Services 10 11 QR DLL AREF PWM CSDL ETL QL COM Quick Response Dynamic Link Library Analog Reference Pulse Width Modulation Cơ Sở Dữ Liệu Extract Transform Load Quản Lý Componet Object Model Sinh viên thực hiện: … 11 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … } } private void tmrThoiGian_Tick(object sender, EventArgs e) { DateTime today = DateTime.Now; lblThoiGianHienThi.Text = "Bây : " + today.ToString("dd/MM/yyyy -HH:mm:ss:tt"); } private int KiemTraMa1(string MaQR) { if (lstHoanKiem.Items.Count > 0) for (int i = 0; i < lstHoanKiem.Items.Count ; i++) { if (lstHoanKiem.Items[i].ToString() == MaQR) { return i; } } return -1; Sinh viên thực hiện: … 156 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … } private int KiemTraMa2(string MaQR) { if (lstBaDinh.Items.Count > 0) for (int j = 0; j < lstBaDinh.Items.Count; j++) { if (lstBaDinh.Items[j].ToString() == MaQR) return j; } return -1; } private int KiemTraMa3(string MaQR) { if (lstDongDa.Items.Count > 0) for (int k = 0; k < lstDongDa.Items.Count; k++) { if (lstDongDa.Items[k].ToString() == MaQR) Sinh viên thực hiện: … 157 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … return k; } return -1; } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { try { if (serialPort1.IsOpen) { InputData = serialPort1.ReadLine(); } else { InputData = serialPort1.ReadExisting(); } if (InputData != String.Empty) { sosp = sosp + 1; Sinh viên thực hiện: … 158 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … SPDauVao = sosp.ToString(); SetText(SPDauVao); } } catch (Exception ex) { MessageBox.Show("Lỗi: " + ex.Message); } } private void SetText(string text) { if (this.lblDauVao.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); } else this.lblDauVao.Text = text; } } } UserControl UCSaoLuuKhoiPhuc Sinh viên thực hiện: … 159 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.Data.SqlClient; namespace BaiTap { public partial class UCSaoLuuKhoiPhuc : UserControl { public UCSaoLuuKhoiPhuc() { InitializeComponent(); } FileDialog dt; //Khai báo biến kiểu dialog file Sinh viên thực hiện: … 160 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … private void btnTimKiem_Click(object sender, EventArgs e) { if (rdoSaoLuu.Checked == true) { dt = new SaveFileDialog(); } else { dt = new OpenFileDialog(); } dt.Filter = "File type (*.bak)|*.bak"; //Lọc file dt.DefaultExt = "bak"; //Kiểu file mặc định if (dt.ShowDialog()==DialogResult.OK) { txtDuongDan.Text = dt.FileName; } } private void btnThucHien_Click(object sender, EventArgs e) { if(txtDuongDan.Text == "") { Sinh viên thực hiện: … 161 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … MessageBox.Show(" Vui lòng chọn đường dẫn."); } else if(rdoSaoLuu.Checked == true) { if (!Directory.Exists(Path.GetDirectoryName(txtDuongDan.Text))) { MessageBox.Show(" Thư mục không tồn tại."); } else { string conn = @"server=DESKTOP-B498D4G\WINCC; database=ME4992_PhanLoaiSpTheoQR; integrated security=true;"; SqlConnection connect = new SqlConnection(conn); connect.Open(); string sqlBackup = "BACKUP DATABASE ME4992_PhanLoaiSPTheoQR TO DISK= '" + txtDuongDan.Text + "'WITH FORMAT"; SqlCommand cmdbackup = new SqlCommand(sqlBackup,connect); cmdbackup.ExecuteNonQuery(); connect.Close(); Sinh viên thực hiện: … 162 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … MessageBox.Show(" Q trình lưu thành cơng."); } } else if(rdoKhoiPhuc.Checked == true) { if (!File.Exists(txtDuongDan.Text)) { MessageBox.Show(" Thư mục không tồn tại."); } else { string conn = @"server=DESKTOP-B498D4G\WINCC; database=ME4992_PhanLoaiSpTheoQR; integrated security=true;"; SqlConnection connect = new SqlConnection(conn); connect.Open(); string sqlRestore = "ALTER DATABASE ME4992_PhanLoaiSPTheoQR SET OFFLINE WITH ROLLBACK IMMEDIATE USE master RESTORE DATABASE ME4992_PhanLoaiSPTheoQR FROM DISK= '" + txtDuongDan.Text + "' WITH REPLACE ALTER DATABASE ME4992_PhanLoaiSPTheoQR SET ONLINE"; SqlCommand cmdrestore = new SqlCommand(sqlRestore, connect); cmdrestore.ExecuteNonQuery(); Sinh viên thực hiện: … 163 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … connect.Close(); MessageBox.Show(" Q trình khơi phục thành công."); } } } } } UserControl UCTroGiup using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net.Mail; using System.Net; using System.Data.SqlClient; namespace BaiTap Sinh viên thực hiện: … 164 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … { public partial class UCTroGiup : UserControl { OpenFileDialog tepdinhkem; string fileName = ""; public UCTroGiup() { InitializeComponent(); } private void btnTimKiem_Click(object sender, EventArgs e) { try { tepdinhkem = new OpenFileDialog(); tepdinhkem.Filter = "Images(.jpg,.png)|*.png;*.jpg;|Pdf Files|*.pdf"; if (tepdinhkem.ShowDialog()==DialogResult.OK) { fileName = tepdinhkem.FileName; } } catch (Exception ex) Sinh viên thực hiện: … 165 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … { MessageBox.Show("Lỗi : " + ex.ToString()); } } SqlConnection connect = null; string strCon = @"server=DESKTOP-B498D4G\WINCC; database=ME4992_PhanLoaiSpTheoQR; integrated security=true;"; private string user; private void UCTroGiup_Load(object sender, EventArgs e) { if (connect == null) { connect = new SqlConnection(strCon); } if (connect.State == ConnectionState.Closed) { connect.Open(); } SqlCommand command = new SqlCommand(); command.CommandType = CommandType.Text; command.CommandText = " select * from UserSystem "; Sinh viên thực hiện: … 166 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … command.Connection = connect; SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { user = Value.FullName; } reader.Close(); } private void btnGui_Click(object sender, EventArgs e) { try { string to = txtToi.Text.Trim(); string subject = txtChuDe.Text.Trim(); string content = rtxtNoiDung.Text.Trim(); string username = txtTenDangNhap.Text.Trim(); string password = txtMatKhau.Text.Trim(); string stmpserver = "smtp.gmail.com"; string body = ""; body += "Dear admin,"; body += ""; body += ""; Sinh viên thực hiện: … 167 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … body += "The system has been errored
"; body += content; body += " "; body += " I am looking forward to hearing from you"; body += " "; body += "Thank you,"; body += ""; body += user; SmtpClient client = new SmtpClient(); client.Port = 587; client.Host = stmpserver; client.EnableSsl = true;// mã hóa kết nối client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(username,password); MailMessage message = new MailMessage(); message.From = new MailAddress(username); message.To.Add(to); message.Subject = subject; message.Body = body; Sinh viên thực hiện: … 168 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … message.IsBodyHtml = true; if (fileName.Length > 0) { Attachment attachment = new Attachment(fileName); message.Attachments.Add(attachment); } client.Send(message); MessageBox.Show("Gửi Email thành công."); fileName = ""; } catch (Exception ex) { MessageBox.Show("Lỗi gửi Email:" + ex.ToString()); } } } } Sinh viên thực hiện: … 169 Trang | … ĐỒ ÁN TỐT NGHIỆP GVHD: TS … Sinh viên thực hiện: … 170 Trang | … ... để phân loại sản phẩm có lẫn kim loại Nó ứng dụng dây chuyền sản xuất thực phẩm bánh kẹo, thủy sản, ngũ cốc… Hệ thống phân loại sản phẩm theo mã vạch: dựa vào mã vạch sản phẩm để phân loại Mã. .. động nhằm chia sản phẩm nhóm có thuộc tính với để thực phân loại, đóng gói hay loại bỏ sản phẩm hỏng Có nhiều cách phân loại hệ thống phân loại sản phẩm: Hệ thống phân loại sản phẩm theo màu sắc:... dụng xử lý ảnh việc phân loại sản phẩm so với số ứng dụng khác sau Linh hoạt việc thay đổi mẫu mã sản phẩm phân loại Có khả phân loại nhiều loại sản phẩm khác Phân loại sản phẩm phức tạp mà