Luận văn Thiết kế và chế tạo mô hình Robot SCARA phân loại sản phẩm theo màu sắc và hình dạng
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Thiết kế và chế tạo mô hình Robot SCARA phân loại sản phẩm theo màu sắc và hình dạng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- luan_van_thiet_ke_va_che_tao_mo_hinh_robot_scara_phan_loai_s.pdf
Nội dung text: Luận văn Thiết kế và chế tạo mô hình Robot SCARA phân loại sản phẩm theo màu sắc và hình dạng
- TRƯỜNG ĐẠI HỌC KỸ THUẬT – CÔNG NGHỆ CẦN THƠ KHOA KỸ THUẬT CƠ KHÍ LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH ROBOT SCARA PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC VÀ HÌNH DẠNG CÁN BỘ HƯỚNG DẪN: SINH VIÊN THỰC HIỆN: Ths: ĐƯỜNG KHÁNH SƠN PHAN PHÚC HẬU MSSV: 1600061 Ngành: Công nghệ kỹ thuật Cơ điện tử - 2016 Cần Thơ - 2020
- Nhận xét của giáo viên hướng dẫn Cần Thơ, ngày tháng năm 2020 GVHD
- Nhận xét của giáo viên phản biện Cần Thơ, ngày tháng năm 2020 GVPB
- CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT – CÔNG NGHỆ CẦN THƠ Cán bộ hướng dẫn: Ths. ĐƯỜNG KHÁNH SƠN Luận văn đại học được bảo vệ tại Trường Đại học Kỹ thuật – Công nghệ Cần Thơ ngày 22 tháng 07 năm 2020. Thành phần Ban chấm đánh giá luận văn đại học gồm: 1. Trưởng ban: 2. Uỷ viên phản biện: 3. Thư ký ban chấm: Xác nhận của Ban chấm đánh giá sau khi luận văn đã được sửa chữa (nếu có). TRƯỞNG BAN UỶ VIÊN PHẢN BIỆN THƯ KÝ
- TRƯỜNG ĐẠI HỌC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KỸ THUẬT - CÔNG NGHỆ CẦN THƠ Độc lập - Tự do - Hạnh phúc KHOA KỸ THUẬT CƠ KHÍ NHIỆM VỤ LUẬN VĂN ĐẠI HỌC Họ và tên sinh viên: PHAN PHÚC HẬU MSSV: 1600061 Ngày, tháng, năm sinh: 30/07/1998 Nơi sinh: Cần Thơ Ngành: Công nghệ kỹ thuật cơ điện tử Mã số: 7510203 TÊN ĐỀ TÀI: THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH ROBOT SCARA PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC VÀ HÌNH DẠNG NHIỆM VỤ VÀ NỘI DUNG Nhiệm vụ: Ứng dụng công nghệ xử lý ảnh cho Robot SCARA để phân loại sản phẩm theo màu sắc và hình dạng từ đó đưa ra quyết định cho cánh tay. Nội dung: - Thiết kế, chế tạo mô hình Robot Scara hoàn chỉnh. - Thiết kế mạch điều khiển cho Robot Scara. - Xây dựng giao diện người dùng trên máy tính bằng phần mềm Matlab. - Ứng dụng xử lý ảnh vào mô hình Robot để phân loại sản phẩm. THỜI GIAN GIAO ĐỀ TÀI: 10/01/2020 THỜI GIAN HOÀN THÀNH: 07/07/2020 Cần Thơ, ngày tháng năm 2020 KHOA KỸ THUẬT CƠ KHÍ
- LỜI CẢM ƠN LỜI CẢM ƠN Để hoàn thành đề tài luận văn và kết thúc khóa học, em xin bày tỏ lòng biết ơn sâu sắc đến trường Đại học kỹ thuật – công nghệ Cần Thơ đã tạo điều kiện cho em có môi trường học tập tốt trong suốt thời gian học tập và nghiên cứu tại trường. Đặc biệt, em xin chân thành cảm ơn thầy Đường Khánh Sơn đã tận tình hướng dẫn và giúp đỡ em trong quá trình hoàn thành luận văn. Đồng thời, em cũng gửi lời cảm ơn chân thành đến các thầy cô trong khoa Kỹ thuật cơ khí, gia đình và bạn bè đã giúp đỡ và tạo điều kiện tốt nhất cho em trong quá trình học tập cũng như trong quá trình hoàn thành luận văn tốt nghiệp. Em xin chân thành cảm ơn! SVTH: Phan Phúc Hậu Trang I
- LỜI CẢM ƠN LỜI CAM ĐOAN Em xin cam đoan đề tài: “Thiết kế và chế tạo mô hình Robot SCARA phân loại sản phẩm theo màu sắc và hình dạng” là một công trình nghiên cứu được thực hiện bởi cá nhân em dưới sự hướng dẫn của thầy Đường Khánh Sơn. Trong bài báo cáo, tất cả các số liệu, hình ảnh và thông tin trong đề tài này đều được em thu thập với một thái độ khách quan và trung thực. Ngoài ra, một số nguồn tài liệu tham khảo đã được trích dẫn nguồn và chú thích rõ ràng, không sao chép bất cứ tài liệu nào mà không có trích dẫn. Em xin hoàn toàn chịu trách nhiệm trước bộ môn, khoa và nhà trường về sự cam đoan này. Sinh viên thực hiện SVTH: Phan Phúc Hậu Trang II
- TÓM TẮT LUẬN VĂN TÓM TẮT LUẬN VĂN Đề tài luận văn “Thiết kế và chế tạo mô hình Robot Scara phân loại sản phẩm theo màu sắc và hình dạng” bao gồm các nội dung cốt lõi như: tìm hiểu các khái niệm và kiến thức cơ bản về Robot, thiết kế và chế tạo mô hình Robot Scara 3 bậc tự do hoạt động linh hoạt và chính xác, thiết kế mạch điều khiển và giao diện điều khiển cho Robot, xây dựng giải thuật PID điều khiển vị trí động cơ DC, ứng dụng xử lý ảnh vào mô hình để phân loại sản phẩm. SVTH: Phan Phúc Hậu Trang III
- MỤC LỤC MỤC LỤC LỜI CẢM ƠN I LỜI CAM ĐOAN II TÓM TẮT LUẬN VĂN III MỤC LỤC i DANH MỤC HÌNH ẢNH iv DANH MỤC BẢNG iv CHƯƠNG 1: TỔNG QUAN 2 1.1 Tổng quan đề tài 2 1.1.1 Đặt vấn đề 2 1.1.2 Mục tiêu đề tài 3 1.1.3 Giới hạn đề tài 3 1.2 Giới thiệu sơ lượt về Robot công nghiệp 4 1.2.1 Lịch sử hình thành và phát triển 4 1.2.2 Cấu trúc cơ bản của Robot công nghiệp 5 1.2.3 Ứng dụng 10 1.3 Giới thiệu sơ lượt về Robot Scara 11 CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 14 2.1 Đối tượng nghiên cứu 14 2.2 Phương pháp nghiêm cứu 14 2.2.1 Phần mềmMatlab 14 2.2.2 Matlab GUI 17 2.2.3 Xử lý ảnh trên Matlab 21 2.2.4 Phần mềm Invertor 27 SVTH: Phan Phúc Hậu Trang i
- MỤC LỤC 2.2.5 Arduino 29 2.2.6 Phần mềm Arduino IDE 32 2.2.7 PID 34 2.2.8 Chuẩn giao tiếp I2C 37 CHƯƠNG 3: THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH 41 3.1 Bài toán động học 41 3.1.1 Động học thuận 41 3.1.2 Động học ngược 42 3.2 Thiết kế mô hình cơ khí cho Robot 43 3.2.1 Cơ sở thiết kế 43 3.2.2 Bản vẽ thiết kế Robot trên Inventor 44 3.2.3 Chế tạo mô hình cơ khí 50 3.2.4 Lắp ráp mô hình Robot Scara hoàn chỉnh 55 3.3 Thiết kế mạch điều khiển 57 3.3.1 Lưu đồ giải thuật điều khiển Robot 57 3.3.2 Sơ đồ mạch điều khiển Robot 58 CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 66 4.1 Xử lý ảnh 66 4.1.1 Giới thiệu về hệ thống xử lý ảnh 66 4.1.2 Sơ lượt về quá trình xử lý ảnh trong đề tài 68 4.1.3 Thu nhận ảnh đầu vào 69 4.1.4 Xác định vùng hoạt động của Robot 70 4.1.5 Phân vùng ảnh và tách sản phẩm 72 4.1.6 Nhận dạng đối tượng 74 SVTH: Phan Phúc Hậu Trang ii
- MỤC LỤC 4.1.7 Kết quả của quá trình xử lý ảnh 77 4.2 Thiết kế giao diện người dùng 77 CHƯƠNG 5: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 79 5.1 Kết quả 79 5.1.1 Kết quả mô phỏng trên Matlab Simulink 79 5.1.2 Kết quả thực tế của mô hình Robot Scara 80 5.1.3 Kết quả chạy thực tế của mô hình Robot Scara 83 5.2 Đánh giá 90 5.3 Kết luận 90 5.3.1 Kết quả đạt được 91 5.3.2 Những hạn chế của đề tài 91 5.4 Hướng phát triển 91 TÀI LIỆU THAM KHẢO 93 PHỤ LỤC 94 SVTH: Phan Phúc Hậu Trang iii
- DANH MỤC HÌNH ẢNH DANH MỤC HÌNH ẢNH Hình 1.1: Dây chuyền sản xuất ô tô tự động bằng Robot 2 Hình 1.2: Robot Scara phân loại sản phẩm 3 Hình 1.3: Cánh tay Robot 5 bậc tự do của hãng YASKAWA MOTOMAN 4 Hình 1.4: Sơ đồ khối của Robot công nghiệp 5 Hình 1.5: Các thành phần chính của hệ thống Robot 6 Hình 1.6: Phân loại Robot theo hình dạng hình học của không gian hoạt động 8 Hình 1.7: Sơ đồ điều khiển hở 9 Hình 1.8: Sơ đồ điều khiển kín 9 Hình 1.9: Robot xếp các hàng thùng hàng lên pallet 10 Hình 1.10: Robot phun sơn tự động trong sản xuất ô tô 10 Hình 1.11: Robot hàn Panasonic 11 Hình 1.12: Ứng dụng của Robot trong một số lĩnh vực 11 Hình 1.13: Robot Scara 12 Hình 1.14: Robot SCARA của hãng MITSUBISHI 12 Hình 1.15: Robot SCARA trong dây chuyền sản xuất linh hoạt 13 Hình 2.1: Phần mềm Matlab 15 Hình 2.2; Giao diện làm việc của Matlab 16 Hình 2.3: Cửa sổ GUIDE Quick Start 18 Hình 2.4: Giao diện Blank GUI mặc định 18 Hình 2.5: Hộp thoại Inspector 20 Hình 2.6: Ảnh Index 22 Hình 2.7: Ảnh xám 23 Hình 2.8: Ảnh nhị phân 23 Hình 2.9: Ảnh RGB 24 Hình 2.10: Arduino Mega 2560 và Arduino Uno R3 29 Hình 2.11: Phần cứng của Arduino Uno R3 30 Hình 2.12: Ba loại Arduino phổ biến 31 Hình 2.13: Một số loại Arduino nâng cao 31 Hình 2.14: Phần mềm Arduino IDE 32 SVTH: Phan Phúc Hậu Trang iv
- DANH MỤC HÌNH ẢNH Hình 2.15: Một chương trình Arduino cơ bản 33 Hình 2.16: Giao diện của phần mềm Arduino IDE 33 Hình 2.17: Ba thành phần của bộ điều khiển PID 35 Hình 2.18: Mô hình hệ thống điều khiển với bộ PID 35 Hình 2.19: Sơ đồ truyền dữ liệu I2C 38 Hình 2.20: Điều kiện START và STOP 38 Hình 2.21: Điều kiện REPEATED START 39 Hình 2.22: Giao thức truyền nhận dữ liệu I2C 39 Hình 3.1: Gắn hệ tọa độ cho Robot 41 Hình 3.2: Sắt tấm 50 Hình 3.3: Sắt hộp 50 Hình 3.4: Nhôm tấm 50 Hình 3.5: Động cơ M555 51 Hình 3.6: Động cơ Planet 52 Hình 3.7: Bộ truyền Pully và dây đai 52 Hình 3.8: Bộ thanh trục vít-me đai ốc 53 Hình 3.9: Bộ thanh trượt, ray trượt và gối đỡ 54 Hình 3.10: Bạc đạn đỡ trục KFL08 54 Hình 3.11: Vòng bi trục 54 Hình 3.12: Khớp nối mặt bích cố định 54 Hình 3.13: Bulong đai ốc 54 Hình 3.14: Phần đế thực tế của mô hình Robot Scara 55 Hình 3.15: Khâu tịnh tiến thực tế của mô hình Robot Scara 55 Hình 3.16: Hai khâu quay thực tế của mô hình Robot Scara 56 Hình 3.17: Mô hình cơ khí hoàn thiện của Robot Scara 56 Hình 3.18: Lưu đồ giải thuật điều khiển 57 Hình 3.19: Mạch điều khiển Robot 58 Hình 3.20: Sơ đồ chân của Arduino Uno 59 Hình 3.21: Sơ đồ chân của Arduino Nano 61 Hình 3.22: Sơ đồ chân của Module L298N 63 SVTH: Phan Phúc Hậu Trang v
- DANH MỤC HÌNH ẢNH Hình 3.23: Nguồn tổ ong 12V-10A 64 Hình 3.24: Động cơ Servo MG995 65 Hình 4.1: Quá trình xử lý ảnh 66 Hình 4.2: Các bước cơ bản trong xử lý ảnh 67 Hình 4.3: Sơ đồ quá trình xử lý ảnh trong đề tài 69 Hình 4.4: Webcam logitech HD C270 69 Hình 4.5: Kích thước vùng hoạt động 70 Hình 4.6: Ảnh quá trình xác định vùng hoạt động của Robot 70 Hình 4.7: Sơ đồ quá trình tìm vùng hoạt động của Robot 71 Hình 4.8: Vùng hoạt động của Robot 71 Hình 4.9: Sơ đồ quá trình nhị phân ảnh 72 Hình 4.10: Ảnh quá trình nhị phân ảnh 72 Hình 4.11: Sơ đồ giải thuật phân vùng và tách đối tượng 73 Hình 4.12: Ảnh kết quả của quá trình phân vùng 73 Hình 4.13: Giải thuật quá trình nhận dạng màu sắc 74 Hình 4.14: Ảnh nhị phân từng màu của vật 75 Hình 4.15: Ảnh kết quả của quá trình nhận dạng màu sắc 75 Hình 4.16: Giải thuật quá trình nhận dạng hình dạng 76 Hình 4.17: Ảnh kết quả của quá trình nhận dạng hình dạng 76 Hình 4.18: Ảnh kết quả của quá trình nhận dạng màu sắc và hình dạng 77 Hình 4.19: Giao diện người dùng điều khiển Robot Scara 78 Hình 5.1: Mô hình hóa Robot Scara trên Matlab Simulink 79 Hình 5.2: Mô hình 3D khi mô phỏng trên Matlab Simulink 79 Hình 5.3: Kết quả chạy thực nghiệm PID trên khớp 1 80 Hình 5.4: Kết quả chạy thực nghiệm PID trên khớp 2 80 Hình 5.5: Kết quả chạy thực nghiệm PID trên khâu 3 81 Hình 5.6: Tay gắp thực hiện gắp vật 81 Hình 5.7: Tay gắp thực hiện thả vật 81 Hình 5.8: Kết quả chạy thực tế động học thuận của Robot Scara 82 Hình 5.9: Kết quả chạy thực tế động học ngược của Robot Scara 82 SVTH: Phan Phúc Hậu Trang vi
- DANH MỤC HÌNH ẢNH Hình 5.10: Kết quả nhận dạng màu sắc các vật hình tròn 83 Hình 5.11: Quá trình phân loại màu sắc các vật hình tròn của Robot Scara 84 Hình 5.12: Kết quả nhận dạng màu sắc các vật hình vuông 84 Hình 5.13: Quá trình phân loại màu sắc các vật hình vuông của Robot Scara 85 Hình 5.14: Kết quả nhận dạng hình dạng các vật màu đỏ 85 Hình 5.15: Quá trình phân loại hình dạng các vật màu đỏ của Robot Scara 86 Hình 5.16: Kết quả nhận dạng hình dạng các vật màu xanh lá 86 Hình 5.17: Quá trình phân loại hình dạng các vật màu xanh lá của Robot Scara 87 Hình 5.18: Kết quả nhận dạng hình dạng các vật màu xanh dương 87 Hình 5.19: Quá trình phân loại hình dạng các vật màu xanh dương của Robot 88 Hình 5.20: Kết quả nhận dạng màu sắc và hình dạng của tất cả các vật 88 Hình 5.21: Quá trình phân loại màu sắc và hình dạng của Robot Scara 90 SVTH: Phan Phúc Hậu Trang vii
- DANH MỤC BẢNG DANH MỤC BẢNG Bảng 2.1: Bảng thông số PID theo phương pháp Ziegler-Nichols 37 Bảng 3.1: Bảng thông số DH 41 Bảng 3.2: Bảng thông số động cơ 52 Bảng 3.3: Bảng thông số bộ truyền 53 SVTH: Phan Phúc Hậu Trang iv
- LỜI NÓI ĐẦU LỜI NÓI ĐẦU Cùng với sự phát triển của các cuộc cách mạng khoa học kỹ thuật trên thế giới là những tiến bộ trong lĩnh vực điều khiển và tự động hoá sản xuất. Một trong những thành tựu nổi bật của quá trình tự động hoá là những cánh tay máy Robot. Những Robot từ đơn giản đến phức tạp, đã đóng góp rất nhiều trong việc thay thế con người ở môi trường làm việc cường độ cao, độc hại và đòi hỏi chính xác cao. Để có thể phát triển và ứng dụng Robot rộng rãi trong sản xuất, bên cạnh những kiến thức về điện, điện tử thì việc nghiên cứu tính toán động học và điều khiển Robot cũng là một yếu tố rất quan trọng để tạo nên cơ sở và nền tảng cho việc chế tạo Robot. Với đề tài “Thiết kế và chế tạo mô hình Robot Scara phân loại sản phẩm theo màu sắc và hình dạng” em tin rằng với những kết quả đạt được trong quá trình thực hiện đề tài sẽ là một bước đệm quan trọng cho việc phát triển nhiều hơn nữa những ý tưởng trong tương lai về tính toán và thiết kế các loại Robot công nghiệp. SVTH: Phan Phúc Hậu Trang 1
- CHƯƠNG 1: TỔNG QUAN CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan đề tài 1.1.1 Đặt vấn đề Ngày nay, cùng với sự phát triển nhanh chóng của khoa học kỹ thuật nhằm mục đích giúp cho cuộc sống tốt hơn và việc giải phóng sức lao động của con người trong các môi trường làm việc khó khăn là vấn đề cần thiết thì công nghệ Robot cũng ngày càng được phát triển và sử dụng phổ biến trong sản xuất cũng như trong cuộc sống của con người. Robot được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau, đặc biệt là trong các ngành sản xuất có tính dây chuyền và công nghệ cao vì Robot có thể vừa đảm bảo tính chính xác vừa đảm bảo tính liên tục của dây chuyền mà con người và máy móc khó có thể đạt được. Đồng thời, Robot có thể thay thế con người làm việc trong những môi trường nặng nhọc, độc hại, nhiệt độ cao, Hình 1.1: Dây chuyền sản xuất ô tô tự động bằng Robot Nhận thấy được tầm quan trọng của Robot đối với đời sống con người, các nước phát triển luôn cạnh tranh với nhau về nghiên cứu và chế tạo nhiều thế hệ Robot tốt nhất. Vì vậy nhiều công ty trên thế giới đã và đang sản xuất, phát triển, nghiên cứu để đưa Robot lên một tầm cao có thể tư duy như con người. Do đó, lĩnh vực Robot đang ngày càng chiếm được sự quan tâm của các nhà nghiên cứu và xã hội. Dự đoán trong tương lai thì Robot sẽ là tâm điểm của một cuộc cách mạng lớn sau Internet. Với xu hướng này thì thị trường Robot sẽ vô cùng to lớn. SVTH: Phan Phúc Hậu Trang 2
- CHƯƠNG 1: TỔNG QUAN Từ những nhu cầu thực tế và niềm đam mê với Robot, cùng với sự góp ý và hướng dẫn của thầy Đường Khánh Sơn. Em đã chọn đề tài “ROBOT SCARA ỨNG DỤNG XỬ LÝ ẢNH PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC VÀ HÌNH DẠNG” cho luận văn tốt nghiệp của mình. Hình 1.2: Robot Scara phân loại sản phẩm 1.1.2 Mục tiêu đề tài Thiết kế và chế tạo mô hình Robot SCARA hoàn chỉnh. Từ đó, thiết kế bộ điều khiển và giao diện điều khiển cho Robot. Vận dụng xử lý ảnh vào quá trình phân loại sản phẩm tự động nhằm cải thiện năng suất và chất lượng cũng như giải phóng sức lao động cho con người trong quá trình sản xuất. Nhằm làm chủ kỹ thuật chế tạo Robot để có thể phục vụ mục đích học tập và nghiên cứu trong phòng thí nghiệm của các trường cao đẳng, đại học cũng như ứng dụng trong sản xuất công nghiệp. Vận dụng và củng cố lại những kiến thức đã học được để tìm hiểu và xây dựng mô hình cánh tay Robot có thể đạt được mục tiêu đặt ra. Bên cạnh đó nâng cao khả năng sử dụng các phần mềm bổ trợ như Inventor, Matlab, Arduino IDE, 1.1.3 Giới hạn đề tài Đề tài “Thiết kế và chế tạo mô hình Robot Scara phân loại sản phẩm theo màu sắc và hình dạng” dùng một camera đặt cố định để thu nhận ảnh, ảnh thu được sẽ được máy tính xử lý để xác định các thông số của đối tượng bao gồm: vị trí, màu SVTH: Phan Phúc Hậu Trang 3
- CHƯƠNG 1: TỔNG QUAN sắc và hình dạng từ đó điều khiển cánh tay Robot Scara thực hiện chuyển động gắp và phân loại sản phẩm ở bất kỳ vị trí nào trong phạm vi hoạt động của nó. 1.2 Giới thiệu sơ lượt về Robot công nghiệp Robot là một loại máy có thể thực hiện công việc một cách tự động bằng sự điều khiển của máy tính hoặc các vi mạch điện tử được lập trình. Robot công nghiệp được lập trình sẵn theo một trình tự nhất định và sử dụng nhằm mục đích phục vụ công việc lắp ráp, sản xuất hoặc chế biến sản phẩm. Robot hỗ trợ rất nhiều cho con người. Đặc biệt là trong những môi trường khắc nghiệt, độc hại và nguy hiểm. Robot công nghiệp có tính chính xác cao và hiệu quả vượt trội so với sản xuất thủ công. Hình 1.3: Cánh tay Robot 5 bậc tự do của hãng YASKAWA MOTOMAN 1.2.1 Lịch sử hình thành và phát triển Thuật ngữ Robot xuất hiện vào năm 1920 trong một tác phẩm văn học của nhà văn tiệp khắc có tên là Karel Capek. Thuật ngữ Inducstrial Robot (IR) xuất hiện đầu tiên ở Mỹ do công ty AMF (Americal Machine and Foundry Company) quảng cáo mô phỏng một thiết bị mang dáng dấp và có một số chức năng như tay người được điều khiển tự động thực hiện một số thao tác để sản xuất thiết bị có tên gọi Versatran. Quá trình phát triển của IR được tóm tắt như sau: - Từ những năm 1950 ở Mỹ xuất hiện viện nghiên cứu đầu tiên. - Vào đầu những năm 1960 xuất hiện sản phẩm đầu tiên có tên gọi là Versatran của công ty AMF. SVTH: Phan Phúc Hậu Trang 4
- CHƯƠNG 1: TỔNG QUAN - Ở Anh người ta bắt đầu nghiên cứu và chế tạo IR theo bản quyền của Mỹ từ những năm 1967. - Ở các nước Tây Âu khác như: Đức, Ý, Pháp, Thuỵ Điển thì bắt đầu chế tạo IR từ những năm 1970. - Châu á có Nhật Bản bắt đầu nghiên cứu ứng dụng IR từ năm 1968. - Nhất là vào những năm 1990 số lượng Robot công nghiệp đã gia tăng với nhiều tính năng vượt bậc. Ngày nay, trên thế giới có khoảng 200 công ty sản xuất IR, trong đó ở Nhật có 80, ở các nước Tây Âu có 90, ở Mỹ có 30. Nhờ áp dụng rộng rãi các tiến bộ khoa học kỹ thuật về vi xử lý, tin học cũng như vật liệu mới nên số lượng Robot công nghiệp đã tăng lên nhanh chóng, giá thành giảm đi rõ rệt, tính năng có nhiều cải tiến. Robot công nghiệp phát huy thế mạnh ở các lĩnh vực như hàn hồ quang, đúc, lắp ráp, sơn phủ và trong các hệ thống điều khiển liên hợp. 1.2.2 Cấu trúc cơ bản của Robot công nghiệp 1.2.2.1 Các thành phần chính của Robot công nghiệp Hình 1.4: Sơ đồ khối của Robot công nghiệp SVTH: Phan Phúc Hậu Trang 5
- CHƯƠNG 1: TỔNG QUAN Một Robot công nghiệp thường bao gồm các thành phần chính như: cánh tay Robot, nguồn động lực, dụng cụ gắn lên khâu chấp hành cuối, các cảm biến, bộ điều khiển, thiết bị dạy học, máy tính, các phần mềm lập trình cũng nên được coi là một thành phần của hệ thống Robot. Hình 1.5: Các thành phần chính của hệ thống Robot Cánh tay Robot (tay máy): Là kết cấu cơ khí gồm các khâu liên kết với nhau bằng các khớp động để có thể tạo nên những chuyển động cơ bản của Robot. Cổ tay tạo nên sự khéo léo linh hoạt và bàn tay trực tiếp hình thành thao tác trên đối tượng. Nguồn động lực: Là các động cơ điện (động cơ DC, động cơ servo hoặc động cơ step), hệ thống xi-lanh khí nén, thuỷ lực để tạo động lực cho tay máy hoạt động. Dụng cụ thao tác: Được gắn trên khâu cuối của Robot có thể có nhiều kiểu khác nhau như: dạng bàn tay để nắm bắt đối tượng hoặc các công cụ làm việc như mỏ hàn, đá mài, đầu phun sơn, Thiết bị dạy-học (Teach-Pendant): Dùng để dạy Robot các thao tác cần thiết theo yêu cầu của quá trình làm việc, sau đó Robot sẽ tự lặp lại các động tác được dạy. Hệ thống cảm biến: Gồm các sensor và các thiết bị chuyển đổi tín hiệu cần thiết. Các cảm biến để nhận biết trạng thái của bản thân các cơ cấu của Robot và trạng thái ngoài môi trường. Hệ thống điều khiển: Máy tính hay vi xử lý để giảm sát và điều khiển hoạt động của Robot. Các phần mềm để lập trình và các chương trình điều khiển Robot: Được cài đặt trên máy tính, dùng điều khiển Robot thông qua bộ điều khiển (controller). SVTH: Phan Phúc Hậu Trang 6
- CHƯƠNG 1: TỔNG QUAN Một bộ điều khiển có thể có các cổng vào-ra (I/O port) để làm việc với nhiều thiết bị khác nhau như: các cảm biến (giúp Robot nhận biết trạng thái của bản thân, xác định vị trí của đối tượng làm việc, ), điều khiển các băng tải hoặc cơ cấu cấp phôi hoạt động phối hợp với Robot, 1.2.2.2 Kết cấu của tay máy Tay máy là phần cơ sở quyết định khả năng làm việc của Robot. Đây là các thiết bị cơ khí đảm bảo cho Robot khả năng di chuyển, chuyển động trong không gian và khả năng thực hiện các thao tác làm việc. Các kết cấu của nhiều tay máy được phỏng theo cấu tạo và chức năng của tay người. Tuy nhiên ngày nay, tay máy được thiết kế rất đa dạng, nhiều cánh tay Robot có hình dáng rất khác xa cánh tay người. Trong thiết kế và sử dụng tay máy thì chúng ta cần quan tâm đến các thông số liên quan đến khả năng làm việc của Robot như: tầm với (hay vùng công tác), số bậc tự do (thể hiện sự khéo léo linh hoạt của Robot), độ cứng vững, tải trọng vật nâng, lực kẹp, Các tay máy có đặc điểm chung về kết cấu là gồm có các khâu được nối với nhau bằng các khớp để hình thành một chuỗi động học hở tính từ thân đến đầu công tác. Các khớp được sử dụng phổ biến là khớp trượt và khớp quay. Tùy theo số lượng và cách bố trí các khớp mà có thể tạo ra các tay máy có các kiểu tọa độ khác nhau. 1.2.2.3 Phân loại theo hình dạng hình học của không gian hoạt động Robot được phân loại theo sự phối hợp giữa ba trục chuyển động cơ bản rồi sau đó được bổ sung để mở rộng thêm bậc chuyển động nhằm tăng thêm độ linh hoạt. Vùng giới hạn tầm hoạt động của Robot được gọi là không gian làm việc. - Robot khớp bản lề (Articular Robot): Có ba bậc chuyển động cơ bản gồm ba trục chuyển động quay. - Robot toạ độ trụ (Cylindrical Robot): Có ba bậc chuyển động cơ bản gồm hai trục chuyển động tịnh tiến và một chuyển động trục quay. - Robot toạ độ cầu (Spherical Robot): Có ba bậc chuyển động cơ bản gồm một trục chuyển động tịnh tiến và hai trục chuyển động quay. - Robot Scara (Scara Robot): Có ba bậc chuyển động cơ bản gồm một trục chuyển động tịnh tiến và hai trục chuyển động quay. SVTH: Phan Phúc Hậu Trang 7
- CHƯƠNG 1: TỔNG QUAN - Robot toạ độ vuông góc (Cartesian Robot): Có ba bậc chuyển động cơ bản gồm ba chuyển động tịnh tiến dọc theo ba trục vuông góc. Hình 1.6: Phân loại Robot theo hình dạng hình học của không gian hoạt động 1.2.2.4 Phân loại theo thế hệ Theo chủng loại, mức độ điều khiển, và khả năng nhận biết thông tin của Robot đã được sản xuất trên thế giới có thể phân loại các IR thành các thế hệ sau: - Thế hệ 1: Thế hệ có kiểu điều khiển theo chu kỳ dạng chương trình cứng không có khả năng nhận biết thông tin. - Thế hệ 2: Thế hệ có điều khiển theo chu kỳ dạng chương trình mềm bước đầu đã có khả năng nhận biết thông tin. - Thế hệ 3: Thế hệ có kiều điều khiển dạng tinh khôn, có khả năng nhận biết thông tin và bước đầu đã có một số chức năng lý trí của con người. 1.2.2.5 Phân loại theo hệ thống truyền động - Robot dùng nguồn cấp điện: Thường dùng các động cơ điện như: động cơ bước, động cơ DC servo, động cơ AC servo, Robot loại này có thiết kế gọn, chạy êm, định vị rất chính xác. Các ứng dụng phổ biến là Robot sơn, hàn, SVTH: Phan Phúc Hậu Trang 8
- CHƯƠNG 1: TỔNG QUAN - Robot dùng nguồn khí nén: Hệ thống cán được trang bị máy nén, bình chứa khí và động cơ kéo máy nén. Robot loại này thường được sử dụng trong các ứng dụng có tải trọng nhỏ có tay máy là các xy-lanh khí nén thực hiện chuyển động thẳng và chuyển động quay. Do khí nén là lưu chất nén được nén Robot loại này thường sử dụng trong các thao tác gắp đặt không cần độ chính xác cao. - Dùng nguồn thuỷ lực: Nguồn thuỷ lực sử dụng lưu chất không nén được là dầu ép. Hệ thống cần trang bị bơm để tạo áp lực dầu. Tay máy là các xy-lanh thuỷ lực chuyển động thẳng và quay động cơ dầu. Robot loại này được sử dụng trong các ứng dụng có tải trọng lớn. 1.2.2.6 Phân loại theo phương pháp điều khiển - Điều khiển hở: Trong hệ thống không có hồi tiếp các thông số làm việc của Robot. Cơ cấu truyền động trong loại điều khiển này được truyền động theo bước. Các động cơ DC thường, động cơ thủy lực, khí nén, thường được dùng trong điều khiển hở. Hình 1.7: Sơ đồ điều khiển hở - Điều khiển kín: Điều khiển kín hay còn gọi là điều khiển servo, kiểu điều khiển này giống điều khiển hở nhưng có thêm phần hồi tiếp các thông số làm việc về bộ xử lý trung tâm để điều khiển để tăng độ chính xác và mức độ linh hoạt khi điều khiển. Thường dùng các loại động cơ servo (DC, AC, thủy lực, khí nén, ). Hình 1.8: Sơ đồ điều khiển kín Ngoài ra, cũng dựa theo cách phân loại này người ra phân thành: Robot điều khiển tự động, Robot điều khiển bằng cách dạy học, Robot điều khiển bằng tay, Robot điều khiển từ xa, Robot tự hành, SVTH: Phan Phúc Hậu Trang 9
- CHƯƠNG 1: TỔNG QUAN 1.2.3 Ứng dụng Trong lĩnh vực cơ khí, Robot được ứng dụng khá phổ biến nhờ khả năng hoạt động chính xác và tính linh hoạt cao. Ta có một số loại Robot như: - Robot song song dùng trong phân loại và đóng gói sản phẩm: IRB 660 Flex Palletizer, IRB 340 FlexPicker, IRB 260 FlexPicker. Các Robot này có thể gắp lần lượt các hộp vắc-xin bại liệt từ băng tải và đặt nó vào thùng gồm 20 hộp một cách chính xác. - Robot gắp hàng, Robot bốc xếp hàng hóa hay Robot bốc dỡ hàng hóa: Đây là thiết bị Robot đa dạng nhất với điều khiển tự động. Hình 1.9: Robot xếp các hàng thùng hàng lên pallet - Robot dùng trong công nghệ ép phun nhựa: IRB 6650 của hãng ABB có thể thao tác nhanh, dễ dàng lấy sản phẩm ra khỏi khuôn ở vị trí tách khuôn, giám sát, làm sạch, điều khiển chất lượng dựa trên camera. - Robot sơn và phun sơn: Được ứng dụng khá nhiều trong sơn gỗ, sơn thép. Hình 1.10: Robot phun sơn tự động trong sản xuất ô tô SVTH: Phan Phúc Hậu Trang 10
- CHƯƠNG 1: TỔNG QUAN - Robot hàn công nghiệp hay Robot hàn tự động: phục vụ cho ngành sản xuất ô tô xe máy, với tỷ lệ hơn 70% số Robot đang hoạt động, phải kể đến là Robot hàn tự động Panasonic. Hình 1.11: Robot hàn Panasonic Ngoài các phân xưởng, nhà máy, kỹ thuật Robot cũng được sử dụng trong việc khai thác thềm lục địa và đại dương, trong y học, sử dụng trong quốc phòng, trong chinh phục vũ trụ, trong công nghiệp nguyên tử, trong các lĩnh vực xã hội, a) b) c) Hình 1.12: Ứng dụng của Robot trong một số lĩnh vực a) Robot khai thác quặng đất hiếm của Nhật Bản b) Robot phẩu thuật nội soi ở bệnh viện Chợ Rẫy (Việt Nam) c) Robot thám hiểm mặt trăng của Audi 1.3 Giới thiệu sơ lượt về Robot Scara Robot Scara ra đời vào năm 1979 tại trường đại học Yasamaski (Nhật Bản) dùng trong việc lắp ráp. Đây là tay máy Scara đặc biệt gồm hai khớp quay và một khớp SVTH: Phan Phúc Hậu Trang 11
- CHƯƠNG 1: TỔNG QUAN trượt, nhưng cả ba khớp đều có trục song song với nhau. Kết cấu này làm cho tay máy cứng cáp hơn theo phương thẳng đứng nhưng kém vững hơn theo phương ngang. Loại này dùng trong việc lắp ráp với tải trọng nhỏ theo phương đứng. Hình 1.13: Robot Scara Từ Scara là chữ viết tắt của “Selective Compliance Articulated Robot Actuato”, Robot Scara đã được nhiều hãng thiết kế chế tạo nhằm phục vụ nhìu mục đích khác nhau như: hàn, lắp ráp. vận chuyển, khoan, doa, Các hãng chuyên sản xuất về Robot Scara như: Hitachi, Mitsubishi, IBM, MOTOMAN, EPSON, PANASONIC, SONY, Ngày nay, các hãng tiếp tục hoàn thiện bộ điều khiển và kết cấu cơ khí để ngày càng được linh hoạt hơn. Hình 1.14: Robot SCARA của hãng MITSUBISHI Tay máy Scara có vùng không gian hoạt động có dạng hình trụ. Đây là loại cấu hình dễ thực hiện nhất được ứng dụng cho Robot là dạng khớp nối bản lề và kế đó là khớp trượt. Dạng này phổ biến nhất trong ứng dụng công nghiệp bởi vì chúng cho phép các nhà sản xuất Robot sử dụng một cách trực tiếp và dễ dàng các cơ cấu chuyển SVTH: Phan Phúc Hậu Trang 12
- CHƯƠNG 1: TỔNG QUAN động quay như các động cơ điện, động cơ dầu ép, khí nén. Robot Scara có hai khớp xoay song song với nhau cho phép thao tác trên mặt phẳng, được sử dụng để gắp và nhả vật, lắp ráp hay cầm nắm máy công cụ. Hình 1.15: Robot SCARA trong dây chuyền sản xuất linh hoạt Ưu điểm: - Mặc dù chiếm diện tích làm việc ít nhưng tầm vươn khá lớn, tỉ lệ kích thước/tầm vươn được đánh giá cao . - Về mặt hình học, cấu hình dạng khớp nối bản lề với ba trục quay bố trí theo phương thẳng đứng là dạng đơn giản và có hiệu quả nhất trong trường hợp yêu cầu gắp đặt và đặt chi tiết theo phương thẳng. Trong trường hợp này bài toán tọa độ hoặc quỹ đạo chuyển động đối với Robot chỉ cần giải quyết ở hai phương x và y còn lại bằng cách phối hợp ba chuyển động quay quanh ba trục song song với trục z. SVTH: Phan Phúc Hậu Trang 13
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Đối tượng nghiên cứu Đề tài “Thiết kế và chế tạo Robot Scara phân loại sản phẩm theo màu sắc và hình dạng” bao gồm các thành phần chính: - Thiết kế mô hình cho Robot Scara bằng phần mềm Inventor 3D. - Tìm hiểu cách liên kết Matlab với Inventor 3D. - Xây dựng mô hình Matlab Simulink và tiến hành mô phỏng. - Thiết kế mạch điện điều khiển cho Robot. - Xây dựng chương trình điều khiển cánh tay Robot. - Áp dụng giải thuật điều khiển PID cho động cơ DC. - Tìm hiểu giao tiếp I2C giữa các board mạch Arduino. - Thiết kế giao diện người dùng trên trên phần mềm Matlab. - Tìm hiểu cách giao tiếp Matlab với Arduino thông qua cổng COM. - Xây dựng phương trình động học thuận, động học ngược cho Robot. - Ứng dụng công nghệ xử lý ảnh vào mô hình Robot Scara để phân loại sản phẩm. - Chạy mô hình thực tế. Ý nghĩa thực tiễn Đề tài luận văn hướng tới việc ứng dụng công nghệ xử lý ảnh cho Robot tạo tiền đề cho việc xây dựng một cánh tay Robot công nghiệp hoàn chỉnh, có khả năng phục vụ cho ngành công nghiệp sản xuất. Ngoài ra, đề tài còn có thể phục vụ mục đích học tập và nghiên cứu trong phòng thí nghiệm của các trường cao đẳng, đại học. Trong khuôn khổ luận văn, em sẽ tập trung xây dựng mô hình Robot Scara có khả năng ứng dụng công nghệ xử lý ảnh vào để xác định màu sắc và hình dạng của đối tượng từ đó đưa ra quyết định cho cánh tay. 2.2 Phương pháp nghiêm cứu 2.2.1 Phần mềmMatlab 2.2.1.1 Matlab là gì? Matlab là một chương trình phần mềm lớn dành cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học kỹ thuật với các phần tử cơ bản là các ma trận. Thuật ngữ SVTH: Phan Phúc Hậu Trang 14
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Matlab là chữ viết tắt của hai từ Matrix và Laboratory thể hiện định hướng chính của chương trình là các phép toán vector và ma trận. Phần cót lõi của chương trình bao gồm các hàm toán học, các chức năng xuất nhập cũng như các khả năng điều khiển chương trình. Hình 2.1: Phần mềm Matlab 2.2.1.2 Hệ thống làm việc của Matlab Hệ thống giao diện của Matlab được chia thành 5 phần: - Môi trường phát triển: Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh và các file, ta có thể liệt kê một số như sau: Desktop, Command Window, Command History, Browsers for viewinghelp. - Thư viện: Các hàm toán học bao gồm các cấu trúc như tính tổng, sin, cos, atan, atan2 , các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library. - Ngôn ngữ Matlab: Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng. - Đồ hoạ trong Matlab: Bao gồm các câu lệnh thể hiện đồ họa trong môi trường 2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa người sử dụng và máy tính. - Giao tiếp với các ngôn ngữ khác: Matlab cho phép tương tác với các ngôn ngữ khác như C, Fortran, SVTH: Phan Phúc Hậu Trang 15
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.1.3 Giao diện làm việc của Matlab Hình 2.2; Giao diện làm việc của Matlab - Cửa sổ Command Window: Là cửa sổ giao tiếp chính của Matlab bởi đây là nơi nhập giá trị các biến, hiển thị giá trị, tính toán giá trị của biểu thức, thực thi các hàm có sẵn trong thư viện (dạng lệnh), hoặc các hàm (dạng function) do người dùng lập trình ra trong M-file. Các lệnh được nhập sau dấu nhắc “>>”, và nếu có sai sót trong quá trình gõ (nhập) lệnh thì hãy nhấn phím Enter cho đến khi nhận được dấu nhắc “>>”. Thực thi lệnh bằng nhấn phím Enter. - Cửa sổ Command History: Các dòng mà bạn nhập vào trong cửa sổ Command Window (các dòng này có thể là dòng nhập biến, hoặc có thể là dòng lệnh thực hiện hàm nào đó) được giữ lại trong cửa sổ Command History, và cửa sổ này cho phép ta sử dụng lại những lệnh đó bằng cách click chuột lên các lệnh đó hoặc các biến, nếu như bạn muốn sử dụng lại biến đó. - Cửa sổ Workspace: Là cửa sổ thể hiện tên các biến bạn sử dụng cùng với kích thước vùng nhớ (số bytes), kiểu dữ liệu (lớp), các biến được giải phóng sau mỗi lần tắt chương trình. Ngoài ra nó cho phép thay đổi giá trị, cũng như kích thước của biến bằng cách click chuột lên các biến. Hoặc click vào nút bên trái ngay cạnh nút save. Ví dụ khi chọn biến (giả sử là biến b) rồi click (hoặc click chuột vào nút cạnh nút save) ta được cửa sổ sau gọi là Variable Editor. Tiêu đề là tên biến b, định dạng dữ liệu ở ô có tên là: Numeric format, mặc định là dạng short, kích thước size là 1 by 3 SVTH: Phan Phúc Hậu Trang 16
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU (tức là một hàng và 3 cột) ta có thể thay đổi kích thước này bằng cách thay đổi giá trị có trong ô kích thước size. Dùng cửa sổ này để lưu các biến ở dưới là dữ liệu của biến b, ta có thể thay đổi chúng bằng cách thay đổi giá trị trong các ô đó. Tất cả các biến đều được lưu trong Workspace trong đó thể hiện cả kích thước (size), số Bytes và kiểu dữ liệu (class) (8 bytes cho mỗi phần tử dữ liệu kiểu double cụ thể là 24 bytes dành cho b và 8 bytes dành cho a). - Cửa sổ M-file: Là cửa sổ dùng để soạn thảo chương trình ứng dụng, để thực thi chương trình viết trong M-file bằng cách gõ tên của file chứa chương trình đó trong cửa sổ Commandwindow. Khi một chương trình viết trong M-file, thì tuỳ theo ứng dụng cụ thể, tuỳ theo người lập trình mà chương trình có thể viết dưới dạng sau: + Dạng Script file: Tức là chương trình gồm tập hợp các câu lệnh viết dưới dạng liệt kê, không có biến dữ liệu vào và biến lấy giá trị ra. + Dạng hàm function: Có biến dữ liệu vào và biến ra. 2.2.2 Matlab GUI 2.2.2.1 Matlab GUI là gì? GUI (Graphical User Interface) là giao diện đồ họa có điều khiển bởi nhiều thanh công cụ được người lập trình tạo sẵn, cho tương tác giữa người dùng là giao diện chương trình, Mỗi chương trình được người lập trình tạo sẵn giao diện thực hiện một vài chức năng được người lập tình tạo sẵn và giao tiếp với người sử dụng. Ứng dụng của Matlab lập trình giao diện rất mạnh và dễ thực hiện, nó có thể tạo ra giao diện người dùng tương tự VBB, C++ GUI bao gồm đầy đủ các chương trình hỗ trợ như thực hiện phép toán LOGIC, mô phỏng không gian 2D,3D, đọc hiển thị dữ liệu, liên kết đa phương tiện.Giao tiếp với người dùng thông qua hình ảnh, các nút nhấn thực thi Hầu hết GUI chỉ thực hiện (trả lời) lệnh người dùng thông qua các tác động của người dùng lên giao diện, người sử dụng không cần biết cấu trúc chương trình vẫn có thể thực hiện được. GUI được thực hiện thông qua các hàm CALLBACK. Khi người dùng tác động lên giao diện bằng các cách khác nhau, hàm CALLBACK sẽ được gọi để thực thi. SVTH: Phan Phúc Hậu Trang 17
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.2.2 Khởi động GUI Để khởi động GUI tại cửa sổ Command Window gõ lệnh “guide” và nhấn enter, lập tức cửa sổ GUIDE Quick Start xuất hiện. Hình 2.3: Cửa sổ GUIDE Quick Start Tại tab Create New GUI ta chọn “Blank GUI (Default)” để tạo một GUI bắt đầu với giao diện trống. Các dòng còn lại để khởi động GUI với một giao diện được tạo sẵn. Tại tab Open Existing GUI là nơi bạn có thể mở các GUI mà bạn đã làm và lưu trước đó, file này có đuôi là .fig. Nhấp chọn “OK” để tạo một GUI bắt đầu với giao diện trống. Ta được giao diện Blank GUI mặc định như sau: Hình 2.4: Giao diện Blank GUI mặc định SVTH: Phan Phúc Hậu Trang 18
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.2.3 Chức năng của các công cụ trong GUI Chức năng các công cụ cơ bản 1. Nhấp chuột vào để thay đổi độ rộng của giao diện 2. Là nơi để cân chỉnh các nút, biểu tượng trên giao diện. 3. Là nơi để tạo giao diện con liên kết với giao diện chính. 4. Nút Play (Run) để thực thi chương trình. Chức năng nhóm các công cụ bên trái - Push Button: Là nút nhấn, khi nhấn vào sẽ thực thi lệnh. - Slider: Là thanh trượt cho phép người dùng di chuyển thanh trượt để thực thi lệnh. - Check box: Sử dụng để đánh dấu tích (thực thi) vào và có thể check nhiều ô để thực thi. - Radio Button: Nó giống như Check Box nhưng thường được sử dụng để tạo sự lựa chọn duy nhất, tức là 1 lần chỉ được chọn 1 trong số các nhóm nhiều nút. Khi một ô được chọn thì các ô còn lại trong nhóm bị bỏ chọn. - Edit Text: Là nơi các kí tự được nhập vào từ người dùng, người dùng có thể thay đổi nội dung được. - Static Text: Là các kí tự được hiển thị thông qua các callback, hoặc thông thường để viết nhãn cho các biểu tượng, người dùng không thể thay đổi nội dung. - Pop-up Menu: Mở ra danh sách các lựa chọn khi người dùng nhấp chuột vào. Chỉ chọn được 1 mục trong danh sách các mục. - List Box: Hộp thoại danh sách các mục, cho phép người dùng chọn một hoặc nhiều mục cùng một lúc. - Toggle Button: Là nút nhấn có 2 điều khiển, khi nhấp chuột và nhả ra, nút nhấn được giữ và lệnh thực thi, khi nhấp chuột vào lần thứ 2, nút nhấn nhả ra, hủy bỏ lệnh vừa thực thi. - Table: Tạo ra một bảng tương tự trong Excel. - Axes: Đây là giao diện đồ họa hiển thị hình ảnh, nó có nhiều thuộc tính bao gồm: không gian 2D (theo trục đứng và trục ngang), 3D (hiển thị không gian 3 chiều). SVTH: Phan Phúc Hậu Trang 19
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU - Panel: Tạo ra một mảng nhóm các biểu tượng lại với nhau giúp ta dễ kiểm soát và thao tác khi di chuyển. - Button Group: Quản lí sự lựa chọn của nút Radio Button. - Active Control: Quản lí một nhóm các bút hoặc các chương trình liên quan với nhau trong Active. 2.2.2.3.1 Hộp thoại Inspector Tất cả các hộp thoại bên trái vừa nêu trên để sử dụng, chúng ta nhấp chọn và kéo thả vào vùng cần thiết kế, mỗi hộp thoại có các thông số chỉnh riêng, để chỉnh các thông số liên quan đến hộp thoại nào ta nhấp đôi vào hộp thoại đó (hoặc click chuột phải chọn Property Inspector) hộp thoại Inspector hiện ra, dùng thanh trượt kéo xuống để xem hết chức năng: - Phía bên trái của Menu Inspector là tên thuộc tính, có thể gọi thực thi các thuộc tính này bằng các lệnh. - Phía bên trái là giá trị của thuộc tính, giá trị này do người dùng đặt, có thể thay đổi thông qua các lệnh gọi (callback), hoặc được thiết lập trước. Hình 2.5: Hộp thoại Inspector SVTH: Phan Phúc Hậu Trang 20
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.2.4 Một số hàm trong GUI - Hàm callback được lập trình cho các button, checkbox, edit text, nhưng static text và axes thì không có hàm callback. - Mỗi một callback được viết với cấu trúc như sau: function Tag_Callback(hObject, eventdata, handles) - Với Tag chính là giá trị của Tag mà ta đã đặt khi tạo giao diện. Các hàm chứa bên trong callback bao gồm hObject, evendata,handles. + hObject là hàm truy cập nội bộ của mỗi function riêng lẽ. + Evendata là hàm xác định thuộc tính của function. + Handles là hàm truy cập liên kết giữa các function, nó bao gồm tất cả các cấu trúc của người dùng, được sử dụng để truy xuất qua các điều khiển khác. - Hàm Get cho phép ta gọi thuộc tính của đối tượng. - Hàm Set cho phép ta đặt giá trị cho thuộc tính của đối tượng. 2.2.3 Xử lý ảnh trên Matlab 2.2.3.1 Những khái niệm cơ bản trong xử lý ảnh Điểm ảnh (Picture Element) Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để xử lý bằng máy tính (số), ảnh cần phải được số hóa. Số hóa ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel. Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với một cặp tọa độ (x,y). Định nghĩa: Điểm ảnh (Pixel) là một phần tử của ảnh số tại tọa độ (x,y) với độ xám hoặc màu nhất định. Kích thước và khoản cách giữa các điểm ảnh đó được chọn thích hợp sau cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh. Độ phân giải của ảnh SVTH: Phan Phúc Hậu Trang 21
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Định nghĩa: Độ phân giải (Resolution) của ảnh là một mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Theo định nghĩa thì khoảng cách giữa các điểm ảnh phải được chọn sau cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bố, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều. Mức xám (Gray level) Mức xám là kết quả sự mã hóa tương ứng một cường độ ánh sáng ở mỗi điểm ảnh với một giá trị số - kết quả của quá trình lượng hóa. Cách mã hóa kinh điển thường dùng là 16, 32, 64 mức. Phổ dụng nhất là mã hóa ở 256 mức, ở mức này mỗi pixel sẽ được mã hóa bởi 8 bit. 2.2.3.2 Các kiểu ảnh trong Matlab Ảnh Index Ảnh được biểu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map. Ma trận dữ liệu có thể thuộc kiểu uint8, uint16 hoặc double. Ma trận màu là một ma trận kích thước m x 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1]. Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng số m màu được sử dụng trong ảnh. Giá trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận màu. Hình 2.6: Ảnh Index SVTH: Phan Phúc Hậu Trang 22
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Ảnh grayscale Mỗi ảnh được biểu diễn bởi một ma trận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) của điểm ảnh đó. Ma trận này có thể có một trong các kiểu dữ liệu uint8, uint16 hoặc double. Ảnh biểu diễn theo kiểu này còn gọi là ảnh “trắng đen”. Hình 2.7: Ảnh xám Ảnh nhị phân: Ảnh được biểu diễn bởi một ma trận hai chiều thuộc kiểu logical. Mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị là 0 (đen) hoặc 1 (trắng). Hình 2.8: Ảnh nhị phân SVTH: Phan Phúc Hậu Trang 23
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Ảnh RGB Còn gọi là ảnh “truecolor” do tính trung thực của nó. Ảnh này được biểu diễn bởi một ma trận ba chiều kích thước m x n x 3, với m x n là kích thước ảnh theo pixels. Ma trận này định nghĩa các thành phần màu red, green, blue cho mỗi điểm ảnh, các phần tử của nó có thể thuộc kiểu uint8, uint16 hoặc double. Hình 2.9: Ảnh RGB 2.2.3.2.1 Các hàm xử lý cơ bản - Hàm imread đọc các file ảnh với bất kỳ các định dạng ảnh đã biết hiện nay và lưu lại dưới dạng một ma trận biểu diễn ảnh trong Matlab. Cú pháp: A=imread(filename,fmt). - Hàm imwrite cho phép lưu một ảnh biểu diễn bằng một ma trận trong Matlab thành một file ảnh dưới một trong các định dạng đã biết. Cú pháp: imwrite(A,filename,fmt). - Hàm imfinfo dùng để xem các thông số của một file ảnh nào đó. Cú pháp : imfinfo(filename,fmt). Các thông tin được cung cấp bởi hàm imfinfo là : filename, filemoddate, filesize, format, formatversion, width, height, bitdepth, colortype. 2.2.3.2.2 Chuyển đổi giữa các kiểu dữ liệu, kiểu ảnh Chuyển đổi giữa các kiểu dữ liệu ảnh SVTH: Phan Phúc Hậu Trang 24
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Matlab cung cấp sẵn các hàm thực hiện chuyển kiểu cho các ma trận biểu diễn ảnh, bao gồm : im2double, im2uint8 và im2uint16. Tuy nhiên, khi thực hiện chuyển kiểu giữa các dữ liệu ảnh cần lưu ý một số điều sau: - Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ liệu dùng ít bit hơn thì một số thông tin chi tiết về bức ảnh ban đầu sẽ bị mất. - Không phải lúc nào cũng có thể chuyển đổi kiểu dữ liệu đối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác định một địa chỉ trong bản đồ màu chứ không phải là giá trị màu, do đó không thể lượng tử hóa được. Chuyển đổi giữa các kiểu ảnh - Dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng bằng cách trộn, tạo một ảnh chỉ số từ một ảnh RGB bằng cách trộng (dither). Cú pháp: dither(RGB,map); dither(I) - Gray2id: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng. Cú pháp: [X,Map] = gray2ind(I,N); [X,Map] = gray2ind(BW,N) - Grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách đặt ngưỡng. Cú pháp: x=grayslice(I,N); x=grayslice(I,V) - Im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ , ảnh chỉ số hay ảnh. Cú pháp: bw=im2bw(I,level); bw=im2bw(x,map,level); bw=im2bw(rgb,level) - Ind2gray: Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số. Cú pháp: i=ind2gray(x,map) - Ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số. Cú pháp: rgb=ind2rgb(x,map) - Mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận bằng cách lấy tỉ lệ giữ liệu. Cú pháp: i=mat2gray(a,[amin amax]) - Rgb2gray: Tạo một ảnh cường độ đen trắng từ một ảnh RGB. Cú pháp: i=rgb2gray(rgb) - Rgb2ind: Tạo một ảnh chỉ số từ một ảnh RGB. Cú pháp: i=rgb2gray(rgb); x=rgb2ind(rgb,map); [x,map]=rgb2ind(rgb,tol) SVTH: Phan Phúc Hậu Trang 25
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Ta cũng có thể thực hiện các phép chuyển đổi kiểu chỉ sử dụng cú pháp của Matlab. Chẳng hạn, ta có thể convert một ảnh cường độ sang ảnh RGB bằng cách ghép nối 3 phần copy của ma trận ảnh gốc giữa 3 chiều: RGB= cat (3,I,I,I). Ảnh RGB thu được có các ma trận đồng nhất cho các mặt phẳng R,G,B vì vậy ảnh hiển thị giống như bóng xám. 2.2.3.3 Các hàm hiển thị trong Matlab Matlab cung cấp hai hàm hiển thị cơ bản là image và imagesc. Ngoài ra trong IPT cũng có hai hàm hiển thị ảnh khác, đó là imview và imshow. - Hàm image(X,Y,C) hiển thị hình ảnh biểu diễn bởi ma trận C kích thước m x n lên trục tọa độ hiện hành. X, Y là các vector xác định vị trí các pixel C(1,1) và C(m,n) trong hệ trục hiện hành. - Hàm imagesc có chức năng tương tự như hàm image, ngoại trừ việc dữ liệu ảnh sẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành. - Hàm imview cho phép hiển thị hình ảnh trên một cửa sổ riêng, nền Java, gọi là image Viewer. Image Viewer cung cấp các công cụ dò tìm và xác định các giá trị pixel một cách linh hoạt. - Hàm imshow cũng tạo một đối tượng đồ họa thuộc loại image và hiển thị ảnh trên một figure. Hàm imshow sẽ tự động thiết lập các giá trị của các đối tượng image, axes và figure để thể hiện hình ảnh. 2.2.3.3.1 Các phép biến đổi hình học Thay đổi kích thước ảnh Hàm imresize cho phép người sử dụng thay đổi kích thước ảnh. Ngoài kích thước ảnh mới, người sử dụng còn có thể xác định phương pháp nội suy sẽ dùng và loại bộ lọc dùng để chống aliasing. Cú pháp: b=imresize(a,m, method): tạo ảnh gấp m lần ảnh a. b=imresize(a,[mrows mcols],method) b=imresize(a,[mrows mcols],method,N) b=imresize(a,[mrows mcols],method,h) Phép quay ảnh SVTH: Phan Phúc Hậu Trang 26
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Để thực hiện phép quay ảnh, ta có thể sử dụng hàm imrotate. Ngoài hai thông số cơ bản là ảnh gốc và góc quay, người sử dụng cũng có thể xác định phương pháp nội suy sẽ dùng và kích thước của ảnh mới. Cú pháp: b=imrotate(a,angle,method,Bbox) Trích xuất ảnh Khi cần trích xuất một phần ảnh gốc, ta dùng hàm imcrop. - Xác định cụ thể vị trí của phần ảnh cần trích xuất (dưới dạng hình chữ nhật). Cú pháp: x2=imcrop(x,map, [Xmin Ymin width height]) x2=imcrop(a, [Xmin Ymin width height]) - Sử dụng mouse để chọn phần ảnh cần trích xuất. Ta không cần cung cấp thông số rect, khi thực hiện hàm này, con trỏ sẽ chuyển sang dạng chữ thập, người dùng sẽ kéo chuột để chọn phần ảnh cần trích xuất sau đó thả chuột. 2.2.4 Phần mềm Invertor 2.2.4.1 Giới thiệu phần mềm Inventor Autodesk Inventor được phát triển bởi công ty phần mềm Autodesk_USA, là phần mềm thiết kế mô hình 3D phổ biến hiện nay. Đây là phần mềm được phát triển chuyên cho thiết kế các sản phẩm cơ khí, có giao diện trực quan, giúp người dùng thuận tiện khi sử dụng với những tính năng nổi trội như sau: - Xây dựng dễ dàng mô hình 3D của chi tiết (Part). - Thiết lập các bản 2D từ mô hình 3D nhanh chóng và chuẩn xác (Drawing). - Tạo bản vẽ lắp từ các chi tiết đã thiết kế một cách tối ưu (Assembly). - Mô phỏng quá trình tháo lắp các chi tiết từ bản vẽ lắp hoàn chỉnh một cách trực quan và sinh động (Presentation). - Thiết kế nhanh các chi tiết kim loại dạng tấm (Sheet metal). - Thiết kế các chi tiết máy như: Trục, bộ truyền bánh răng, bộ truyền đai, bộ truyền xích, mối ghép bulông-đai ốc, cam, chốt, then, ổ bi, lò xo, một cách nhanh chóng trong môi trường Assembly. - Thiết kế nhanh và chính xác các loại khuôn mẫu (Mold Design). - Thiết kế nhanh các đường ống phức tạp (Pipe&Tupe). SVTH: Phan Phúc Hậu Trang 27
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU - Cho phép sử dụng thư viện các loại dây điện và cáp điện để chạy dây với bán kính uốn phù hợp trong thiết kế điện (Cable &Wiring):. - Mô phỏng động và động lực học của cơ cấu máy (Dynamic simulation). - Phân tích ứng suất, tối ưu hóa thiết kế sản phẩm (Analysis Stress and Optimize). - Thiết kế nhanh các sản phẩm nhựa (Inventor plastic & tooling). - Có thư viện chi tiết đa dạng và chuẩn hóa (Content center). - Liên kết được với nhiều phần mềm CAD khác. 2.2.4.2 Liên kết Inventor với công cụ simscape multibody của Matlab Bước 1: Nhận tập tin cài đặt - Vào trang tải xuống Simscape Multibody Link. - Làm theo hướng dẫn trên trang tải xuống. - Lưu tệp .zip và tệp Matlab trong thư mục thuận tiện. Lưu ý: Chọn phiên bản khớp với số phát hành Matlab và kiến trúc hệ thống của bạn. Không giải nén tệp lưu trữ zip. Bước 2: Chạy chức năng cài đặt - Chạy Matlab với quyền administrator. - Thêm các tệp đã cài đặt vào đường dẫn Matlab. - Tại dấu nhắc lệnh Matlab ta nhập “install_addon(‘zipname’)”. Trong đó: “zipname” là tên của tệp lưu trữ zip. Bước 3: Đăng ký Matlab làm máy chủ tự động Mỗi khi ta xuất mô hình lắp ráp CAD thì Simscape Multibody Link sẽ cố gắng kết nối với Matlab. Để kết nối được xảy ra thì bạn phải đăng ký Matlab làm máy chủ tự động. Bạn có thể làm điều này theo hai cách sau: - Trong cửa sổ Matlab đang chạy với quyền administrator thì tại dấu nhắc lệnh ta nhập “regMatlabserver”. - Trong cửa sổ MS-DOS đang chạy với quyền administrator thì tại dấu nhắc lệnh ta nhập “Matlab-regserver”. Bước 4: Kích hoạt Simscape Multibody Link Trước khi ta có thể xuất một cụm thì ta cần phải kích hoạt Simscape Multibody Link trên ứng dụng Invertor. Để làm điều này thì tại dấu nhắc lệnh ta nhập SVTH: Phan Phúc Hậu Trang 28
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU “smlink_linkinv”. Khi đó trong lần đầu tiên ta mở Invertor thì menu Simscape Multibody Link sẽ xuất hiện. Bước 5: Xuất file Inventor sang Matlab - Trong cửa sổ Inventor ta chọn Add-Ins sau đó chọn vào Export Simscape Multibody First Generation(1G) để xuất ra file *.xml - Trong cửa sổ Matlab đang chạy với quyền administrator - Thêm file *.xml đã xuất vào đường dẫn của Matlab. - Tại dấu nhắc lệnh ta nhập “smimport(‘xmlname’)”. Trong đó: “xmlname” là tên của file *.xml 2.2.5 Arduino 2.2.5.1 Arduino là gì ? Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên Ý thiết kế và đưa ra đầu tiên vào năm 2005. Mạch Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau. Nó có thể thực hiện nhiều nhiệm vụ từ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác. Ngoài ra mạch còn có khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, ethernet shield, sim900A, .để tăng khả ứng dụng của mạch. Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit, Hiện phần cứng của Arduino có tất cả 6 phiên bản, tuy nhiên phiên bản thường được sử dụng nhiều nhất là Arduino Uno và Arduino Mega. Arduino là vi điều khiển được sử dụng rộng rãi trên thế giới với những ưu điểm như rẻ, tương thích được với nhiều hệ điều hành, chương trình lập trình đơn giản, rõ ràng, dễ sử dụng, sử dụng mã nguồn mở và có thể kết hợp với nhiều module khác nhau. Hình 2.10: Arduino Mega 2560 và Arduino Uno R3 SVTH: Phan Phúc Hậu Trang 29
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.5.2 Phần cứng của Arduino Hình 2.11: Phần cứng của Arduino Uno R3 Mỗi loại Arduino sẽ có cấu hình phần cứng khác nhau, tuy nhiên nó vẫn có đầy đủ các phần cơ bản như trên Arduino UNO R3, gồm có 6 phần cơ bản: 1. Cổng USB (loại B): Đây là cổng giao tiếp để ta upload code từ máy tính lên vi điều khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điểu khiển với máy tính. 2. Jack nguồn: Để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên, nhưng không phải lúc nào cũng có thể cắm với máy tính được. Lúc đó, ta cần một nguồn từ 9V đến 12V. 3. Hàng header thứ nhất: Đánh số từ 0 đến 12 là hàng digital pin, nhận vào hoặc xuất ra các tín hiệu số. Ngoài ra có một pin mass (GND) và pin điện áp tham chiếu (AREF). 4. Hàng header thứ hai: Chủ yếu liên quan đến điện áp mass (GND), nguồn. 5. Hàng header thứ ba: Các chân để nhận vào hoặc xuất ra các tín hiệu analog. Ví dụ như đọc thông tin của các thiết bị cảm biến. 6. Vi điều khiển AVR: Đây là bộ xử lý trung tâm của toàn bo mạch. Với mỗi mẫu Arduino khác nhau thì con chip này khác nhau. Ở con Arduino Uno này thì sử dụng ATMega328. Đối với các Arduino khác tùy vào kích thước và phần cứng sẽ có cách sắp xếp linh kiện khác nhau, tuy nhiên vẫn giữ cấu hình cơ bản như Arduino UNO R3, một số Arduino có kích thước nhỏ sẽ không có jack cấp nguồn DC. SVTH: Phan Phúc Hậu Trang 30
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.5.3 Một số loại Arduino điển hình Arduino gồm rất nhiều phiên bản với các cấu hình khác nhau nhưng hầu như vẫn đảm nhận được các chức năng cơ bản tương đương nhau. Ba loại Arduino phổ biến nhất là Arduino UNO R3, Nano, Mega 2560: Hình 2.12: Ba loại Arduino phổ biến Bên cạnh đó còn nhiều loại Arduino được nâng cao hơn nhắm đáp ứng nhu cầu sử dụng cao hơn trong công nghiệp như: Arduino Yun, Arduino Ethernet, Arduino Tre, Arduino Robot, Hình 2.13: Một số loại Arduino nâng cao 2.2.5.4 Ứng dụng của Arduino Arduino có nhiều ứng dụng trong đời sống, trong việc chế tạo các thiết bị điện tử chất lượng cao. Một số ứng dụng có thể kể đến như: SVTH: Phan Phúc Hậu Trang 31
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU - Lập trình Robot: Arduino chính là một phần quan trọng trong trung tâm xử lý giúp điều khiển được hoạt động của Robot. - Lập trình máy bay không người lái. Có thể nói đây là ứng dụng có nhiều kì vọng trong tương lai. - Game tương tác: Chúng ta có thể dùng Arduino để tương tác với Joystick, màn hình, để chơi các trò như Tetrix, phá gạch, Mario, và nhiều game rất sáng tạo nữa. - Arduino cũng được ứng dụng trong máy in 3D và nhiều ứng dụng khác tùy thuộc vào khả năng sáng tạo của người sử dụng. Trong đề tài, sử dụng 1 board Arduino UNO R3 (Master) làm trung tâm truyền tính hiệu điều khiển và 3 board Arduino Nano (Slave) làm nhiệm vụ điều khiển trực tiếp 3 động cơ của tay máy. Có thể nói rằng Arduino đảm nhiệm vai trò là bộ xử lí trung tâm cho toàn bộ Robot, vừa đảm nhiệm vai trò nhận tín hiệu điều khiển từ máy tính vừa xử lí và xuất tín hiệu để động cơ hoạt động. 2.2.6 Phần mềm Arduino IDE 2.2.6.1 Phần mềm Arduino IDE là gì? Arduino IDE được viết tắt (Arduino Integrated Development Environment) là một trình soạn thảo văn bản, giúp bạn viết code để nạp vào bo mạch Arduino. Hình 2.14: Phần mềm Arduino IDE Arduino IDE được tạo ra bởi ngôn ngữ lập trình Java chính là ứng dụng đa nền tảng (cross-platform). Ngôn ngữ code sử dụng cho các chương trình trong Arduino là C hoặc C++. Bản thân Arduino ide đã được trang bị một thư viện phần mềm thường gọi là “wiring”, từ các chương trình “wiring” gốc đó sẽ giúp các bạn thực hiện thao tác code dễ dàng và nhanh hơn. Một chương trình chạy trong Arduino được gọi là một sketch, chương trình được định dạng dưới dạng .ino . SVTH: Phan Phúc Hậu Trang 32
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU 2.2.6.2 Cấu trúc chương cơ bản trong Arduino IDE Những lệnh trong setup() sẽ được chạy khi chương trình của bạn khởi động. Bạn có thể sử dụng nó để khai báo giá trị của biến, khai báo thư viện, thiết lập các thông số, Sau khi setup() chạy xong, những lệnh trong loop() được chạy. Chúng sẽ lặp đi lặp lại liên tục cho tới khi nào bạn ngắt nguồn của board Arduino mới thôi. Bất cứ khi nào bạn nhất nút Reset, chương trình của bạn sẽ trở về lại trạng thái như khi Arduino mới được cấp nguồn. Quá trình này có thể được miêu tả như sơ đồ dưới đây: Hình 2.15: Một chương trình Arduino cơ bản 2.2.6.3 Giao diện Arduino IDE Hình 2.16: Giao diện của phần mềm Arduino IDE SVTH: Phan Phúc Hậu Trang 33
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Giao diện của phần mềm Arduino IDE có nhiều phần, tuy nhiên chúng ta chú ý đến những phần quan trọng như: 1. Nút kiểm tra chương trình Dùng để kiểm tra xem chương trình được viết có lỗi không. Nếu chương trình bị lỗi thì phần mềm Arduino IDE sẽ hiển thị thông tin lỗi ở vùng thông báo thông tin. 2. Nút nạp chương trình xuống bo Arduino Dùng để nạp chương trình được viết xuống mạch Arduino. Trong quá trình nạp, chương trình sẽ được kiểm tra lỗi trước sau đó mới thực hiện nạp xuống mạch Arduino. 3. Hiển thị màn hình giao tiếp với máy tính Khi nhấp vào biểu tượng cái kính lúp thì phần giao tiếp với máy tính sẽ được mở ra. Phần này sẽ hiển thị các thông số mà người dùng muốn đưa lên màn hình. Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa thông số cần hiển thị lên màn hình 4. Vùng lập trình Vùng này để người lập trình thực hiện việc lập trình cho chương trình của mình. 5. Vùng thông báo thông tin: Có chức năng thông báo các thông tin lỗi của chương trình hoặc các vấn đề liên quan đến chương trình được lập. 2.2.7 PID 2.2.7.1 Lý thuyết về bộ điều khiển PID Tên gọi PID là chữ viết tắt của ba thành phần cơ bản trong bộ điều khiển: khuếch đại tỷ lệ (P), tích phân (I), vi phân (D). Bộ điều khiển PID được ví như một tập thể hoàn hảo gồm ba cá nhân với ba tính cách khác nhau: - Phục tùng và thực hiện chính xác nhiệm vụ được giao (tỷ lệ). - Làm việc và có tích lũy kinh nghiệm để thực hiện tốt nhiệm vụ được giao (tích phân). - Luôn có sáng kiến và phản ứng nhanh nhạy với sự thay đổi trong quá trình làm nhiệm vụ (vi phân). SVTH: Phan Phúc Hậu Trang 34
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Hình 2.17: Ba thành phần của bộ điều khiển PID Bộ điều khiển PID được sử dụng khá rộng rãi để điều khiển đối tượng SISO (một vào, một ra) theo nguyên lý hồi tiếp. Lý do mà bộ điều khiển PID được sử dụng rộng rãi là vì tính đơn giản của nó cả về cấu trúc lẫn nguyên lý làm việc. Bộ điều khiển PID có nhiệm vụ đưa sai lệch e(t) của hệ thống về 0 sao cho quá trình quá độ thỏa mãn các yêu cầu cơ bản về chất lượng. Nguyên lý làm việc của bộ điều khiển PID được mô tả một cách định tính như sau: - Nếu sai lêch e(t) càng lớn thì thông qua thành phần uP(t) tín hiệu điều chỉnh u(t) càng lớn (vai trò của khâu khuếch đại tỷ lệ KP). - Nếu sai lệch e(t) chưa bằng 0 thì thông qua thành phần uI(t) bộ điều khiển PID vẫn còn tạo tín hiệu điều chỉnh u(t) (vai trò của khâu tích phân TI) - Nếu sự thay đổi của sai lệch e(t) càng lớn thì thông qua thành phần uD(t) bộ điều khiển PID sẽ phản ứng càng nhanh (vai trò của khâu vi phân TD) Hình 2.18: Mô hình hệ thống điều khiển với bộ PID Biểu thức toán học của bộ điều khiển PID có dạng: 1 푡 푒(푡) (푡) = 퐾푃 [푒(푡) + ∫ 푒(푡) 푡 + ] (2.1) 0 푡 Trong đó: e(t) là tín hiệu đầu vào; u(t) là tín hiệu đầu ra KP là hệ số khuếch đại; TI là hằng số tích phân; TD là hằng số vi phân SVTH: Phan Phúc Hậu Trang 35
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Từ biểu thức toán học trên ta suy ra được hàm truyền đạt của bộ điều khiển PID: 1 푅(푠) = 퐾푃 (1 + + 푠) (2.2) 푠 Chất lượng của hệ thống phụ thuộc vào các tham số KP, TI, TD. Muốn hệ thống có được chất lượng như mong muốn thì phải phân tích đối tượng rồi trên cơ sở đó chọn các tham số KP, TI, TD phù hợp. Hiện có khá nhiều phương pháp xác định tham số KP, TI, TD cho bộ điều khiển PID. Sau đây là một số phương pháp thường được sử dụng: Phương pháp tối ưu Môđun (phương pháp tối ưu đối xứng), Phương pháp của Ziegler-Nichols, Phương pháp thực nghiệm, Phương pháp Reinisch. Một điểm cần chú ý là trong nhiều trường hợp không cần xác định cả ba tham số KP, TI, TD cho bộ điều khiển PID. Chẳng hạn như bản thân đối tượng đã có thành phần tích phân thì trong bộ điều khiển ta không cần phải có thêm khâu tích phân mới triệt tiêu được sai lệch tĩnh, tức là ta chỉ cần sử dụng bộ điều khiển PD là đủ. Nếu tín hiệu trong hệ thống thay đổi tương đối chậm và bản thân bộ điều khiển không cần phải có phản ứng thật nhanh với sự thay đổi của sai lệch e(t) thì ta chỉ cần sử dụng bộ điều khiển PI. 2.2.7.2 Các phương pháp tìm thông số bộ điều khiển PID: Do từng thành phần của bộ điều khiển PID có những ưu nhược điểm khác nhau, và không thể đồng thời đạt được tất cả các chỉ tiêu chất lượng một cách tối ưu, nên cần lựa chọn, thỏa hiệp giữa các yêu cầu chất lượng và mục đích điều khiển. Việc lựa chọn tham số cho bộ điều khiển PID cũng phụ thuộc vào đối tượng điều khiển và các phương pháp xác định thông số. Phương pháp chỉnh định bằng tay - Đặt KI = KD = 0. Tăng KP đến khi hệ thống dao động tuần hoàn. - Đặt thời gian tích phân bằng chu kỳ dao động. - Điều chỉnh lại giá trị KP cho phù hợp. - Nếu có dao động thì điều chỉnh giá trị KD. Phương pháp Ziegler-Nichols - Đặt KI = KD = 0. Tăng KP đến khi hệ thống dao động tuần hoàn. - Đặt giá trị KP này = KC SVTH: Phan Phúc Hậu Trang 36
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU - Đo chu kì dao động PC. Bảng 2.1: Bảng thông số PID theo phương pháp Ziegler-Nichols Thông số K K K Bộ ĐK P I D P 0.5KC - - PI 0.45KC 1.2KP/PC - PID 0.6KC 2KP/PC KPPC/8 Phương pháp chỉnh định bằng phần mềm - Dùng phần mềm để tự động chỉnh định thông số PID (thực hiện trên mô hình toán, kiểm nghiệm trên mô hình thực). - Ví dụ dùng giải thuật di truyền (GA) để tìm thông số sao cho sai số đo được nhỏ hơn giá trị yêu cầu. 2.2.8 Chuẩn giao tiếp I2C 2.2.8.1 Sơ lượt về I2C I2C là giao thức truyền tin nối tiếp đồng bộ sử dụng 2 dây: SDA và SCL trong đó SDA (serial data) là đường truyền nhận dữ liệu và SCL(serial clock) là đường truyền xung nhịp. Các đường SDA và SCL trên các thiết bị có cấu hình cực máng hở (open-drain) hoặc collector hở (open-collector) vì thế chúng cần điện trở kéo lên (pull-up resistor) khoảng từ 1 đến 10(kΩ). Ở trạng thái nghỉ thì 2 chân này ở mức cao. Lý do sử dụng một hệ thống cực máng hở (open drain) là để không xảy ra hiện tượng ngắn mạch, điều này có thể xảy ra khi một thiết bị cố gắng kéo đường dây lên cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp. Tốc độ truyền: 100Kbits/s ở chế độ chuẩn (Standard mode), có thể lên tới 400Kbits/s ở chế độ nhanh(Fast mode) và cao nhất là 3,4Mbits/s ở chế độ cao tốc (High-speed mode). Trên đường truyền giao tiếp I2C: Có thể là một chủ-một tớ (One Master One Slave), một chủ- nhiều tớ (One Master-Multi Slave) hoặc nhiều chủ-nhiều tớ (Multi Master –Multi Slave). Một thiết bị tớ Slave cũng có thể trở thành chip chủ nếu nó có khả năng. SVTH: Phan Phúc Hậu Trang 37
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Hình 2.19: Sơ đồ truyền dữ liệu I2C 2.2.8.2 Một số khái niệm quan trọng Master: Giữ vai trò điều khiển bus I2C, tạo xung clock(SCL) trong suốt quá trình giao tiếp, khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp, gửi tín hiệu R/W tới Slave, truyền/nhận dữ liệu tới Slave, tạo tín hiệu NOT ACK khi kết thúc nhận từ Slave, tạo tín hiệu kết thúc quá trình truy xuất. Slave: Nhận địa chỉ và bit R/W từ Master (Chỉ “Response” khi đúng địa chỉ). Nhận dữ liệu từ Master gửi bit ACK sau mỗi 8 Clock. Truyền dữ liệu tới Master, chờ ACK từ Master để tiếp tục gửi. Start condition (điều kiện bắt đầu): Đang ở trạng thái nghỉ (SDA=SCL=1), Master muốn thực hiện một cuộc gọi thì nó sẽ kéo chân SDA xuống thấp trong khi SCL vẫn ở mức cao. Khi điều kiện bắt đầu được gửi bởi thiết bị Master, tất cả các thiết bị Slave đều hoạt động ngay cả khi chúng ở chế độ ngủ (sleep mode) và đợi bit địa chỉ. Stop condition (điều kiện kết thúc): Sau khi thực hiện truyền nhận dữ liệu nếu Master muốn kết thúc thì nó sẽ kéo chân SDA lên cao trong khi SCL vẫn ở mức cao. Điều kiện kết thúc chỉ được tạo ra sau khi địa chỉ hoặc dữ liệu đã được truyền nhận. Hình 2.20: Điều kiện START và STOP SVTH: Phan Phúc Hậu Trang 38
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Khoảng giữa Start condition và Stop condition là khoảng bận của đường truyền. Các Master khác không thể tác động vào đường truyền trong khoảng thời gian này. Sau khi kết thúc truyền nhận mà Master không gửi Stop condition mà lại gửi thêm Start condition gọi là Repeat Start: xảy ra khi Master muốn lấy liên tiếp dữ liệu từ Slave. Sau khi thiết bị truyền gửi byte dữ liệu thì sẽ có tín hiệu đáp trả (Response) của thiết bị nhận. Tín hiệu đáp trả đã nhận được gọi là ACK (thiết bị nhận kéo SDA xuống 0) và ngược lại là NACK(SDA vẫn ở mức cao). Hình 2.21: Điều kiện REPEATED START Mỗi thiết bị tham gia vào bus I2C đều có địa chỉ cố định có độ dài 7 bit như vậy trên một bus I2C có thể phân biệt tối đa 128 thiết bị. 2.2.8.3 Thực hiện giao tiếp truyền nhận dữ liệu Khi một Master muốn giao tiếp với 1 Slave nào đó trước hết nó tạo ra Start Condition, tiếp theo là gửi địa chỉ của Slave cần giao tiếp (7 bit) + 1bit READ/WRITE( mất 8 clock). Tại thời điểm clock thứ 9 (tức là xung trên SCL) nó sẽ đọc xung gọi là ACK (tất nhiên là trên SDA) từ Slave. Xung ACK=0 khi Slave có địa chỉ tương ứng đã response. Nếu xung ACK=1(NOT ACK) lúc này Master có những xử lý phù hợp ví dụ có thể gửi Stop condition sau đó phát lại địa chỉ Slave khác. Khi Slave có địa chỉ tương ứng đã respone tiếp đến Master sẽ truyền hoặc nhận dữ liệu tùy thuộc vào bit READ/WRITE mà Master vừa gửi. Hình 2.22: Giao thức truyền nhận dữ liệu I2C SVTH: Phan Phúc Hậu Trang 39
- CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊM CỨU Nếu bit READ/WRITE=0 tức là Master muốn ghi dữ liệu vào Slave. Master bắt đầu gửi dữ liệu đến Slave từng byte một (mất 8 clock/byte), clock thứ 9 Slave nhận sẽ phát lại ACK(kéo SDA=0). Nếu Slave phát tín hiệu NOT ACK (không tác động SDA ở xung thử 9) (ACK=1) sau khi nhận dữ liệu thì Master sẽ kết thúc quá trình gửi bằng cách phát đi Stop condition. Để kết thúc quá trình truyền khi mà Master truyền byte cuối nó cũng sẽ tạo ra Stop condition. Nếu bit READ/WRITE=1 tức là Master muốn đọc dữ liệu từ Slave thì Slave sẽ gửi từng byte ra SDA. Master sẽ nhận từng byte dữ liệu và cũng trả về bit ACK =0 (kéo SDA xuống thấp ở clock 9) sau mỗi byte nhận. Nếu Master không muốn nhận dữ liệu nữa nó sẽ gửi xung NOT‐ACK và tạo tín hiệu STOP. Nếu Master gửi địa chỉ của Slave là 0 và bít READ/WRITE=0 thì tức là nó muốn thực hiện một cuộc gọi chung tới tất cả các Slave. Slave đồng ý sẽ phát tín hiệu ACK, không đồng ý sẽ phát tín hiệu NACK. Cuộc gọi chung thường xảy ra khi Master muốn gửi dữ liệu chung đến các Slave. Cuộc gọi chung không có nghĩa khi phát địa chỉ là 0 và đi sau là bit READ/WRITE=1 vì Master không thể nhận dữ liệu đồng thời từ các Slave. 2.2.8.4 Đặc điểm truyền nhận Dữ liệu được truyền trên bus I2C theo từng bit tại mỗi cạnh lên của xung (Clock SCL) , sự thay đổi bit dữ liệu trên SDA xảy ra khi SCL đang ở mức thấp. Số lượng byte có thể truyền trong một lần tùy ý tối đa là 128byte. Trái với UART, trong giao thức I2C: bit MSB sẽ được truyền trước. Sau 8 xung clock 8 bit dữ liệu đã được truyền đi, thiết bị nhận sẽ kéo SDA xuống mức thấp tương ứng một bit ACK tại xung clock thứ 9 báo hiệu đã nhận đủ 8 bit. Thiết bị truyền khi nhận được bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc. SVTH: Phan Phúc Hậu Trang 40
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH CHƯƠNG 3: THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH 3.1 Bài toán động học 3.1.1 Động học thuận Bài toán động học thuận yêu cầu xác định vị trí và hướng của khâu tác động cuối (end-effeector) khi biết trước các giá trị của biến liên kết. Trong chuyển đổi Denavit-Hartenberg, ta đặt gốc tọa độ trùng với đế của Robot thì ta có được bảng thông số DH như sau: Bảng 3.1: Bảng thông số DH Khâu ai 휶i di 휽i * 1 a0 0 d1 0 * 2 a1 0 0 휃2 * 3 a2 0 0 휃3 Hình 3.1: Gắn hệ tọa độ cho Robot Xác định các ma trận A: - Ma trận An có dạng: 표푠휃푖 −푠푖푛휃푖 표푠훼푖 푠푖푛휃푖푠푖푛훼푖 푖 표푠휃푖 푠푖푛휃푖 표푠휃푖 표푠훼푖 − 표푠휃푖푠푖푛훼푖 푖푠푖푛휃푖 An = [ ] (3.1) 0 푠푖푛훼푖 표푠훼푖 푖 0 0 0 1 - Ma trận A1 mô tả quan hệ giữa khung tọa độ 1 với khung tọa độ gốc: 1 0 0 0 0 1 0 0 A1 = [ ] 0 0 1 1 0 0 0 1 - Ma trận A2 mô tả quan hệ giữa khung tọa độ 2 với khung tọa độ 1: 표푠휃2 −푠푖푛휃2 0 1 표푠휃2 푠푖푛휃2 표푠휃2 0 1푠푖푛휃2 A2 = [ ] 0 0 1 0 0 0 0 1 SVTH: Phan Phúc Hậu Trang 41
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Ma trận A3 mô tả quan hệ giữa khung tọa độ 3 với khung tọa độ 2: 표푠휃3 −푠푖푛휃3 0 2 표푠휃3 푠푖푛휃3 표푠휃3 0 2푠푖푛휃3 A3 = [ ] 0 0 1 0 0 0 0 1 - Ma trận A mô tả phương trình động học của Robot: (A = A1.A2.A3) cos(휃2 + 휃3) −sin(휃2 + 휃3) 0 1 표푠휃2 + 2cos(휃2 + 휃3) + 0 sin(휃 + 휃 ) cos(휃 + 휃 ) 0 푠푖푛휃 + sin(휃 + 휃 ) A = [ 2 3 2 3 1 2 2 2 3 ] (3.2) 0 0 1 1 0 0 0 1 3.1.2 Động học ngược Bài toán động học ngược dùng để xác định giá trị các biến liên kết khi vị trí và hướng của khâu tác động cuối được xác định trước. Để thuận tiện cho việc tính toán, em lựa chọn phương pháp đại số để giải bài toán được trình bày cụ thể như sau: - Theo như bài toán động học thuận thì ta có được vị trí của khâu tác động cuối như sau: xc = 1 표푠휃2 + 2cos(휃2 + 휃3) yc = 1푠푖푛휃2 + 2sin(휃2 + 휃3) (3.3) zc = d1 - Ta có d1 = zc việc còn lại là tìm 휃2 và 휃3. Với , , 1, 2 đã biết thì bình phương từng vế hai phương trình ta được: 2 2 2 2 2 = 1 cos (휃2) + 2 1 2cos (휃2)cos(휃2 + 휃3) + 2 cos (휃2 + 휃3) { 2 2 2 2 2 (3.4) = 1 sin (휃2) + 2 1 2 sin(휃2) sin(휃2 + 휃3) + 2 sin (휃2 + 휃3) - Cộng hai phương trình (3.4) với nhau và sau đó rút gọn ta được: 2 2 2 2 + − 1 − 2 = 2 1 2[cos (휃2)cos (휃2 + 휃3) + sin(휃2) sin(휃2 + 휃3)] (3.5) 2 2 2 2 Tương đương: + − 1 − 2 = 2 1 2cos (휃3) (3.6) 2 2 2 2 + − 1− 2 2 Suy ra: cos (휃3) = ; sin(휃3) = ±√1 − cos (휃3) 2 1 2 ⇒ 휃3 = 푡 푛2(cos (휃3), sin(휃3)) (3.7) - Thay lại 휃3 vào phương trình (3.3) ta có: = [ + 표푠(휃 )] 표푠 (휃 ) − 푠푖푛 (휃 ) 푠푖푛( 휃 ) { 1 2 3 2 2 3 2 (3.8) = 2푠푖푛(휃3) 표푠 (휃2) + [ 1 + 2 표푠(휃3)] 푠푖푛( 휃2) - Giải hệ phương trình (3.8) ta được: SVTH: Phan Phúc Hậu Trang 42
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 1 + 2 표푠(휃3) − 2푠푖푛(휃3) 2 2 2 2 ∆= | | = 1 + 2 + 2 1 2 표푠 (휃3) = + 2푠푖푛(휃3) 1 + 2 표푠(휃3) − 2푠푖푛(휃3) ∆1= | | = 1 + 2[ 표푠 (휃3) + 푠푖푛(휃3)] 1 + 2 표푠(휃3) 1 + 2 표푠(휃3) ∆2= | | = 1 + 2[ 표푠 (휃3) − 푠푖푛(휃3)] 2푠푖푛(휃3) ∆1 1 + 2[ 표푠 (휃3) − 푠푖푛(휃3)] 표푠( 휃2) = = 2 2 ∆ + ∆2 1 + 2[ 표푠 (휃3) − 푠푖푛(휃3)] 푠푖푛( 휃2) = = 2 2 ∆ + ⇒ 휃2 = 푡 푛2(cos (휃2), sin(휃2) (3.9) 3.2 Thiết kế mô hình cơ khí cho Robot 3.2.1 Cơ sở thiết kế Robot Scara được cấu tạo gồm một khớp tịnh tiến và hai khớp xoay. Theo đề tài yêu cầu là Robot gắp vật và phân loại sản phẩm thì theo dự tính ban đầu thì kích thước của từng khâu sẽ là: khâu xoay thứ nhất 200x60(mm), khâu xoay thứ hai 120x50(mm) chưa tính chiều dài tay gắp, khâu tịnh tiến sẽ có hành trình khoảng từ 200 đến 300mm. Trong đề tài “Thiết kế và chế tạo mô hình Robot Scara phân loại sản phẩm theo màu sắc và hình dạng” em lựa chọn cơ cấu truyền động pully và dây đai cho cả ba khớp của Robot với mục đích là thay đổi tốc độ đầu ra của hộp số động cơ từ đó thay đổi được tốc độ đáp ứng của từng khớp như mong muốn. Riêng khâu tịnh tiến ngoài bộ truyền pully và dây đai thì ta còn kết hợp bộ truyền vít-me đai ốc với mục đích là tạo chuyển động tịnh tiến cho Robot. Mô hình Robot Scara sắp chế tạo cần đạt được các tiêu chí như sau: - Đáp ứng được yêu cầu thiết kế (Robot gồm một khớp trượt và hai khớp quay). - Thiết kế đơn giản. - Trường hoạt động lớn. - Cơ khí chắc chắc. - Hoạt động linh hoạt và chính xác. - Chi phí chế tạo thấp. SVTH: Phan Phúc Hậu Trang 43
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 3.2.2 Bản vẽ thiết kế Robot trên Inventor Bản vẽ thiết kế tổng thể mô hình Robot Scara SVTH: Phan Phúc Hậu Trang 44
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Bản thiết kế chi tiết khâu đế của Robot Scara SVTH: Phan Phúc Hậu Trang 45
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Bản thiết kế chi tiết khâu tịnh tiến của Robot Scara SVTH: Phan Phúc Hậu Trang 46
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Bản thiết kế chi tiết khâu quay thứ nhất của Robot Scara SVTH: Phan Phúc Hậu Trang 47
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Bản thiết kế chi tiết khâu quay thứ hai của Robot Scara SVTH: Phan Phúc Hậu Trang 48
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Bản thiết kế chi tiết khâu tay gắp của Robot Scara SVTH: Phan Phúc Hậu Trang 49
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 3.2.3 Chế tạo mô hình cơ khí 3.2.3.1 Chọn vật liệu sử dụng cho từng khâu Trong đề tài “Thiết kế và chế tạo mô hình Robot SCARA phân loại sản phẩm theo màu sắc và hình dạng” thì nhiệm vụ chính của Robot là di chuyển từ một vị trí này sang một vị trí khác để thực hiện một nhiệm vụ được giao cụ thể là gắp sản phẩm hoặc là thả sản phẩm vào đúng vị trí đã quy định trước. Từ nhiệm vụ trên của Robot ta thấy Robot cần phải có độ cứng vững để có thể hoạt động một cách chính xác kèm với đó là độ linh hoạt của cánh tay để có thể nâng cao nâng suất gắp-thả vật. Đầu tiên để cải thiện độ cứng vững thì phần quan trọng nhất là phần đế. Robot có hoạt động tốt hay không phụ thuộc rất nhiều vào phần đế của Robot bởi vì đây là bộ phận chịu tất cả tải trọng của Robot và dùng để lắp các cơ cấu khác của Robot. Chính vì vậy em xin lựa chọn vật liệu được sử dụng làm đế là sắt tấm và sắt ống hình chữ nhật. Khi sử dụng hai loại sắt trên để chế tạo Robot thì em nhận thấy độ cứng vững của Robot rất cao khi chịu tải trọng từ trên xuống. Hình 3.2:Sắt tấm Hình 3.3: Sắt hộp Tiếp theo là về độ linh hoạt của cánh tay thì em xin chọn vật liệu để chế tạo hai khâu quay là nhôm. Lý do là nhôm có khối lượng nhẹ nên cải thiện được độ linh hoạt cho cánh tay từ đó nâng cao tốc độ của Robot và nhôm cũng dễ dàng gia công. Hình 3.4: Nhôm tấm SVTH: Phan Phúc Hậu Trang 50
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 3.2.3.2 Chọn động cơ Với những nhiệm vụ và yêu cầu của đề tài cùng với những đặc điểm về cơ khí đã nói trên em xin đưa ra những yêu cầu về kỹ thuật đối với động cơ như sau: động cơ sử dụng trong mô hình là loại động cơ có tốc độ khoảng 6000(vòng/phút) và có công suất lớn nhằm mục đích điều khiển chính xác vị trí mong muốn và đáp ứng được nhu cầu gắp vật có khối lượng lớn. Ưu điểm của loại động cơ này là tốc độ nhanh và có thể chịu lực khỏe. Bánh chủ động của bộ truyền được bố trí phía sau để tạo thêm sự vững chắc cho bánh bị động. Dùng đai để tăng tốc hoặc giảm tốc cho động cơ chính của từng khâu để đạt được vận tốc đầu ra mong muốn đối với khớp quay là từ 50 đến 60 (vòng/phút), còn khớp tịnh tiến là từ 300 đến 400 (mm/phút). Từ những yêu cầu kỹ thuật trên cùng với những yếu tố khác như: kích thước, khối lượng, giá thành, em đã lựa chọn động cơ M555 cho đề tài của mình. Thông số kĩ thuật của động cơ M555: - Điện áp vận hành: 12 VDC - Công suất: 17W - Khối lượng: 350 gam - Tốc độ động cơ: 6000 (vòng/phút) - Tốc độ qua hộp số: 33 (vòng/phút) - Bộ giảm tốc hệ số: 180:1 Hình 3.5: Động cơ M555 - Encoded: Hall sensor 12 xung Trong quá trình thực hiện đề tài do động cơ M555 dùng để khiển khâu quay thứ nhất có dấu hiệu bị rơ trục động cơ nên cần được thay thế. Nhận thấy động cơ thay thế cần phải có momen lớn để có thể xoay được cả khối lượng nặng đồng thời phải hạn chế được độ rơ của trục động cơ, từ đó em lựa chọn động cơ Planet. Ưu điểm của động cơ Planet là công suất lớn, sử dụng bánh răng hành tinh nên giảm tiếng ồn cho hộp số. SVTH: Phan Phúc Hậu Trang 51
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Thông số kĩ thuật của động cơ Planet: - Điện áp vận hành: 12 VDC - Công suất: 30W - Khối lượng: 450gam - Tốc độ động cơ: 5000 (vòng/phút) - Tốc độ qua hộp số: 250 (vòng/phút) - Bộ giảm tốc hệ số 19.2:1 - Encoder: Hall sensor 12xung Hình 3.6: Động cơ Planet Bảng 3.2: Bảng thông số động cơ Khớp Động cơ Tốc độ động Hệ số Tốc độ ra Công Điện áp cơ (vòng/phút) giảm tốc (vòng/phút) suất (V) 1 M555 6000 60:1 100 17W 12 2 Planet 5000 19.2:1 250 30W 12 3 M55 6000 180:1 33 17W 12 3.2.3.3 Thiết kế bộ truyền động Trong đề tài “Thiết kế và chế tạo mô hình Robot SCARA phân loại sản phẩm theo màu sắc và hình dạng” em lựa chọn bộ truyền pully và dây đai cho tất cả các khớp của của Robot. Bộ truyền đai hoạt động theo nguyên lý ma sát: công suất từ bánh chủ động truyền cho bánh bị động nhờ vào ma sát sinh ra giữa dây đai và bánh đai. Hình 3.7: Bộ truyền Pully và dây đai SVTH: Phan Phúc Hậu Trang 52
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Bảng 3.3:Bảng thông số bộ truyền Tốc độ vào Số răng Pully Số răng Pully Hệ số Tốc độ ra Khớp (vòng/phút) chủ động (răng) bị động (răng) truyền đai (vòng/phút) 1 100 80 20 1:4 400 2 250 20 80 4:1 60 3 33 60 40 1:1.5 50 Ưu điểm - Có khả năng truyền được động năng và cơ năng giữa các trục ở khá xa. - Làm việc êm không gây tiếng ồn. - Đai nhựa có khả năng giữ được an toàn cho các chi tiết máy khác khi quá tải. - Hiệu suất truyền khá cao, cao hơn truyền đai bình thường. - Không đòi hỏi bôi trơn. - Tỷ số truyền ổn định. Nhược điểm: - Kích thước bộ truyền đai lớn so với một số bộ truyền khác. - Tải trọng tác dụng lên trục và ổ lớn (thường gấp 2-3 lần so với bộ truyền bánh răng) do phải có lực căng đai ban đầu (tạo áp lực pháp tuyến lên đai tạo lực ma sát). - Tuổi thọ của bộ truyền thấp khi làm việc ở tốc động cao và tải trọng thay đổi. - Dễ bị trượt đai, dãn dây đai khi làm việc dưới tải trọng lớn. Cần tiến hành căng đai khi bộ truyền hoạt động lâu dài. 3.2.3.4 Một số linh kiện cơ khí dùng để chế tạo Robot - Bộ thanh trục vít-me đai ốc có công dụng chuyển từ chuyển động quay sang chuyển động tịnh tiến. Thanh trục vít-me có chiều dài là 500mm và bước ren là 8mm. Hình 3.8: Bộ thanh trục vít-me đai ốc SVTH: Phan Phúc Hậu Trang 53
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Bộ thanh trượt, ray trượt và gối đỡ có công dụng là cố định cơ cấu trượt giúp cho khâu tịnh tiến hoạt động dễ dàng hơn. Hình 3.9: Bộ thanh trượt, ray trượt và gối đỡ - Hai bạc đạn đỡ trục 8mm dùng để cố định thanh trục vít-me và giảm ma sát giữa trục và bề mặt đỡ Robot. - Hai bạc đạn đỡ trục 10mm dùng để cố định trục của pully và tạo chuyển động quay cho khâu quay thứ nhất. - Một vòng bi trục 10x26x8 (mm) dùng để cố định trục của pully và tạo chuyển động quay cho khâu quay thứ hai. Hình 3.10: Bạc đạn đỡ trục KFL08 Hình 3.11: Vòng bi trục - Khớp nối mặt bích cố định cùng để cố định trục quay với khâu quay. - Các loại ốc vít được sử dụng trong mô hình chủ yếu là các loại bu lông đai ốc, lục giác 4mm,5mm và 6mm. Hình 3.12: Khớp nối mặt bích cố định Hình 3.13: Bulong đai ốc SVTH: Phan Phúc Hậu Trang 54
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 3.2.4 Lắp ráp mô hình Robot Scara hoàn chỉnh - Bước 1: Lắp bộ thanh trượt, ray trượt và gối đỡ vào phần đế của Robot. Hình 3.14: Phần đế thực tế của mô hình Robot Scara - Bước 2: Lắp bộ thanh trục vit-me đai ốc vào khâu tịnh tiến của Robot. Hình 3.15: Khâu tịnh tiến thực tế của mô hình Robot Scara SVTH: Phan Phúc Hậu Trang 55
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Bước 3: Lắp động cơ và tay gắp vào hai khâu quay của Robot. Hình 3.16: Hai khâu quay thực tế của mô hình Robot Scara - Bước 4: Lắp ráp và hoàn thiện mô hình cơ khí cho Robot. Hình 3.17: Mô hình cơ khí hoàn thiện của Robot Scara SVTH: Phan Phúc Hậu Trang 56
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 3.3 Thiết kế mạch điều khiển Trong Robot thì mạch điện có thể ví như mạch máu trong cơ thể con người, nó có tác dụng liên kết tất cả các phần của Robot lại với nhau thành một thể thống nhất. Mạch điện sử dụng cho Robot phải đảm bảo được các yêu cầu sau: - Đảm bảo cung cấp đủ công suất cho Robot hoạt động. - Hoạt động chính xác và ổn định. - Có tính linh hoạt cao trong việc thay thế và sử dụng. Căn cứ vào những đặc điểm và yêu cầu kỹ thuật của đề tài thì em lựa chọn phương pháp điều khiển như sau: sử dụng 1 board Arduino UNO R3 (Master) làm trung tâm truyền tính hiệu điều khiển và 3 board Arduino Nano (Slave) làm nhiệm vụ điều khiển trực tiếp 3 động cơ của Robot. Có thể nói rằng Arduino đảm nhiệm vai trò là bộ xử lí trung tâm cho toàn bộ Robot, vừa đảm nhiệm vai trò nhận tín hiệu điều khiển từ máy tính vừa xử lí và xuất tín hiệu để động cơ hoạt động. 3.3.1 Lưu đồ giải thuật điều khiển Robot Hình 3.18: Lưu đồ giải thuật điều khiển Nguyên lí hoạt động của lưu đồ: Camera sẽ thu nhận ảnh từ môi trường sau đó truyền tín hiệu thu được về cho máy tính. Thông qua giao diện người dùng được thiết SVTH: Phan Phúc Hậu Trang 57
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH kế trên Matlab thì máy tính sẽ tiến hành xử lý ảnh đầu vào và đưa ra những kết luận về thông số của sản phẩm bao gồm: vị trí, màu sắc và hình dạng. Cũng thông qua giao diện người dùng thì máy tính sẽ gửi tín hiệu điều khiển xuống mạch điều khiển. Một Arduino UNO R3 ( Master) sẽ nhận tín hiệu điều khiển thông qua giao tiếp cổng COM và gửi xuống cho các Arduino Nano (Slave) thông qua chuẩn giao tiếp I2C. Sau khi nhận tín hiệu điều khiển từ Master thì các Slave sẽ biên dịch chương trình và điều khiển động cơ thông qua module điều khiển trung gian L298N, sau khi động cơ quay thì bộ encoder sẽ bắt đầu đếm xung và trả về số xung đếm được cho các Slave, lúc này các Slave sẽ so sánh số xung trả về với số xung đã đặt ban đầu nếu có sai lệch thì bộ điều khiển PID sẽ tiến hành hiệu chỉnh sai lệch liên tục cho đến khi sai lệch nhỏ nhất sẽ dừng lại. 3.3.2 Sơ đồ mạch điều khiển Robot Hình 3.19: Mạch điều khiển Robot SVTH: Phan Phúc Hậu Trang 58
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH 3.3.2.1 Arduino UNO R3 (Master) Trong đề tài, Arduino Uno được dùng làm trung tâm quản lí điều khiển (Master) nhận tín hiệu điều khiển từ Matlab thông qua giao tiếp cổng COM và gửi dữ liệu xuống cho các Slave điều khiển động cơ. Thông số kỹ thuật: - Chip: ATmega328P. - Nguồn cấp: từ 7 đến 12 VDC. - Dòng max chân 5V: 500 mA. - Dòng max chân 3.3V: 50 mA. - Dòng max chân I/O: 30 mA. - Số chân Digital: 14 chân (Bao 6 chân PWM). - Số chân Analog: 6 chân. - Flash Memory: 32 kb. - SRAM: 2 kb. - EEPROM: 1 kb. - Clock Speed: 16 Mhz. - Kích thước: 68.6 x 53.4mm. - Khối lượng: 25 gam. Chức năng của các chân Arduino Uno Hình 3.20: Sơ đồ chân của Arduino Uno SVTH: Phan Phúc Hậu Trang 59
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Chân Vin: Đây là điện áp đầu vào được cung cấp cho board mạch Arduino Uno. Khác với chân 5V được cung cấp qua cổng USB. Chân này được sử dụng để cung cấp điện áp toàn mạch thông qua jack nguồn, thông thường khoảng từ 7 đến 12VDC. - Chân 5V: Chân này được sử dụng để cung cấp điện áp đầu ra. Arduino Uno được cấp nguồn bằng ba cách đó là USB, chân Vin của board mạch hoặc jack nguồn. - USB: Dùng để giao tiếp với máy tính thông qua cáp USB chúng ta có thể nạp chương trình cho Arduino hoạt động. Ngoài ra, USB còn là nguồn cho Arduino nó hỗ trợ điện áp khoảng 5 VDC trong khi Vin và jack nguồn hỗ trợ điện áp trong khoảng từ 7V đến 20VDC. - Chân GND: Chân mass chung cho toàn mạch Arduino. - Chân Reset: Để thiết lập lại toàn bộ và đưa chương trình đang chạy trở về ban đầu. Chân này rất hữu ích khi Arduino bị treo khi đang chạy chương trình. - Các chân Digital: Có 14 chân Digital trên board mạch Arduino Uno được ký hiệu từ 0 đến 13 với chức năng input và output sử dụng các hàm pinMode(), digitalWrite(), digitalRead() để điều khiển các chân này. - Chân PWM: Được cung cấp bởi các chân 3,5,6,9,10,11. Các chân này được cấu hình để cung cấp PWM đầu ra 8 bit. - Các chân Analog: Có 6 chân Analog trên board mạch Arduino Uno được ký hiệu từ A0 đến A5. Được sử dụng để đo điện áp tương tự trong khoảng từ 0 đến 5V. - Chân Rx, Tx: Dùng để thực hiện giao tiếp nối tiếp thông qua hai chân 0 (Rx) và chân 1 (Tx). - Chân LED: Arduino Uno tích hợp đèn LED kết nối với chân 13. Cung cấp mức logic HIGH tương ứng ON và LOW tương ứng OFF. - Chân AREF: Chân này được gọi là tham chiếu tương tự, được sử dụng để cung cấp điện áp tham chiếu cho các đầu vào tương tự. - Chân SPI: Được dùng để giao tiếp ngoại vi nối tiếp. Các chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) cung cấp liên lạc SPI với sự trợ giúp của thư viện SPI. - Chân ngắt ngoài: Chân 2 và 3 được sử dụng để cung cấp các ngắt ngoài. SVTH: Phan Phúc Hậu Trang 60
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Chân I2C: Dùng để giao tiếp I2C với các thiết bị. Chân A4 (SDA)và A5 (SCL) được sử dụng cho mục đích này. 3.3.2.2 Arduino Nano (Slave) Trong đề tài, Arduino Nano được dùng làm các Slave để nhận tín hiệu điều khiển từ Master thông qua chuẩn giao tiếp I2C và điều khiển động cơ. Thông số kỹ thuật của Arduini Nano: - Chip: ATmega328P. - Điện áp logic: 5 VDC. - Điện áp hoạt động: từ 7 đến 12 VDC. - Số chân Digital: 14 chân (Bao gồm 6 chân PWM). - Số chân Analog: 8 chân. - Dòng điện I/O: 40 mA. - Flash Memory: 32 kb (2KB Bootloader). - SRAM: 2kb. - EEPROM: 1kb. - Clock Speed: 16 Mhz. - Kích thước: 18.542 x 43.18mm. - Khối lượng: 7 gam. Chức năng các chân của Arduino Nano: Hình 3.21: Sơ đồ chân của Arduino Nano SVTH: Phan Phúc Hậu Trang 61
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH Mỗi chân trên mạch Arduino Nano có chức năng cụ thể trên các chân đó. Chẳng hạn như các chân Analog có thể sử dụng như một bộ chuyển đổi Analog sang Digital trong đó các chân A4 và A5 cũng có thể được sử dụng cho vấn đề giao tiếp I2C. Tương tự, có 14 chân Digital, trong đó có 6 chân được sử dụng để tạo ra xung PWM. - Chân Vin: Đây là chân cung cấp điện áp đầu vào cho mạch Arduino Nano khi sử dụng nguồn ngoài từ 7 đến 12 VDC. - Chân 5V: Là mức điện áp cung cấp quy định của Arduino được sử dụng để cấp nguồn nuôi cho vi điều khiển và các bộ phận linh kiện khác trên board Arduino. - Chân 3,3V: Đây là một mức điện áp tối thiểu được tạo ra bởi bộ điều chỉnh điện áp trên board (sử dụng Lm1117 - 3.3V). - Chân GND: Chân mass cho Arduino, có nhiều chân GND trên board Arduino cho mục đích dễ dàng kết nối với thiết bị ngoại vi sử dụng dây testboard. - Chân Reset: Khi tác động nút nhấn reset, Arduino được trả về lại chương trình ban đầu. Rất hữu ích khi chạy chương trình phức tạp và bị treo vi điều khiển ATmega. Mức tích cực LOW được thiết lập sẽ reset lại Arduino Nano. - Các chân PWM: Bao gồm 6 chân là chân 3,5,6,9,10,11 được sử dụng để cung cấp đầu ra 8-bit xung PWM. - Các chân Analog: Có 8 chân Analog trên board mạch Arduino Nano được ký hiệu từ A0 đến A7. Được sử dụng để đo điện áp tương tự trong khoảng từ 0 đến 5V. - Chân Rx, Tx: Được sử dụng cho giao tiếp nối tiếp trong đó chân 1 (Tx) là chân truyền dữ liệu và chân 0 (Rx) là chân nhận dữ liệu. - Chân LED: Chân 13 để thực hiện bật tắt LED trên board Arduino Nano, sử dụng để quan sát, kiểm tra chương trình cần thiết. - Chân AREF: Chân này được dùng lấy điện áp tham chiếu cho điện áp đầu vào. - Chân SPI: Chân 10(SS), chân 11(MOSI), chân 12(MISO), chân 13(SCK) được sử dụng cho SPI giao tiếp ngoại vi nối tiếp. SPI được sử dụng chủ yếu để truyền dữ liệu giữa các bộ vi điều khiển và các thiết bị ngoại vi khác như cảm biến, thanh ghi và thẻ nhớ SD. - Chân ngắt ngoài: Chân 2 và 3 sử dụng làm ngắt ngoài được thiết lập trong trường hợp khẩn cấp khi chúng ta cần dừng chương trình chính và tác động các cảnh SVTH: Phan Phúc Hậu Trang 62
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH báo hướng dẫn tại thời điểm đó. Chương trình chính sẽ tiếp tục lại sau khi lệnh ngắt được loại bỏ. - Chân I2C: Giao tiếp I2C sử dụng các chân A4 (SDA) và chân A5 (SCL). 3.3.2.3 Module L298N Trong đề tài, Module L298N được dùng để làm module điều khiển trung gian giữa Slave và động cơ DC vì Module L298N được tích hợp mạch cầu H bên trong nên có thể điều khiển tốc độ và chiều quay của động cơ DC một cách dễ dàng. Mỗi module có khả năng điều khiển được hai động cơ DC với dòng tối đa cho mỗi động cơ là 2A. Ngoài ra, Module L298N còn tích hợp IC nguồn 78M05 để tạo ra nguồn 5 VDC để cấp cho các module khác. Thông số kỹ thuật của Module L298N: - Điện áp điều khiển: từ 5 đến 12 Volt. - Dòng tối đa cho mỗi cầu H là: 2A. - Điện áp của tín hiệu điều khiển: từ 5 đến 7 Volt. - Dòng của tín hiệu điều khiển: 0 ~ 36mA. - Công suất hao phí: 20W (khi nhiệt độ T = 75 0C). - Nhiệt độ bảo quản: từ -25 đến 130 0C. - Kích thước: 43x43x27mm. Sơ đồ chân của Module L298N: Hình 3.22: Sơ đồ chân của Module L298N - Chân 12V và chân 5V: Đây là hai chân cấp nguồn trực tiếp cho động cơ. SVTH: Phan Phúc Hậu Trang 63
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Chân GND: Là chân GND của nguồn cấp cho động cơ. - Chân ENA và chân ENB: Dùng để điều khiển mạch cầu H trong L298. - Các chân Input: Gồm chân IN1, IN2, IN3,IN4. - Các chân Output: Output A nối với động cơ A, output B nối với động cơ B. 3.3.2.4 Nguồn tổ ong 12V-10A Bộ nguồn tổ ong 12V-10A được cấu tạo để chuyển đổi điện áp từ nguồn xoay chiều 110/220 VAC thành nguồn một chiều 12 VDC để cấp điện cho các thiết bị điện hoạt động. Đây là bộ nguồn được sử dụng rộng rãi trong các thiết bị công nghiệp cũng như dân dụng có thể kể đến một số thiết bị như: động cơ DC, camera giám sát, máy tính, loa đài và các thiết bị sử dụng nguồn một chiều có thông số tương ứng. Trong đề tài, nguồn tổ ong 12V-10A được dùng để chuyển đổi điện áp từ 220 VAC sang 12 VDC để cấp nguồn cho Module L298N hoạt động. Thông số kỹ thuật của nguồn tổ ong 12V-10A: - Điện áp ngõ vào: 110/220 VAC. - Điện áp ngõ ra: 12 VDC. - Dòng điện ngõ ra: 10A. - Sai số điện áp đầu ra: 1-3 %. - Công suất thực tế: 88 %. - Nhiệt độ làm việc: 0-70 0C. - Kích thước: 159x98x42 mm. - Khối lượng: 480 gam. Cách sử dụng nguồn tổ ong: Hình 3.23: Nguồn tổ ong 12V-10A SVTH: Phan Phúc Hậu Trang 64
- CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH - Cổng L và N (AC): Đầu vào điện AC. - Cổng COM: Đầu ra điện DC âm. - Cổng V+: Đầu ra điện DC dương. - Cổng V/ADJ: Điều chỉnh điện áp đầu ra. 3.3.2.5 Động cơ Servo GM990 Động cơ Servo MG995 có mô men xoắn lớn, chạy mượt mà phù hợp cho những mô hình điều khiển có tải trọng lớn như cánh tay Robot, Robot nhện, Robot tự hành, Động cơ sử dụng chất liệu có độ bền cao, có bánh răng bằng đồng giúp cho động cơ đạt độ bền cao. Trong đề tài, động cơ Servo MG995 được dùng để điều khiển cơ cấu tay gắp Robot. Hình 3.24:Động cơ Servo MG995 Thông số kỹ thuật của động cơ Servo MG995: - Kích thước: 40 x 19 x 43 mm. - Khối lượng: 48 gam. - Điện áp làm việc: từ 3.5 đến 8.5 Volt. - Dòng điện cung cấp: Dưới 1000 mA. - Xung yêu cầu: xung vuông điện áp đỉnh từ 3 đến 5 Volt. - Nhiệt độ hoạt động: từ 0 đến 60 0C. - Góc quay: 1800. - Sức kéo: 13kg/cm tại 4.8V và 15kg/cm tại 6V. - Tốc độ quay: 0.17 sec/600 tại 4.8V và tại 6V 0.13 sec/600 (Chế độ không tải). SVTH: Phan Phúc Hậu Trang 65
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 4.1 Xử lý ảnh 4.1.1 Giới thiệu về hệ thống xử lý ảnh Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học còn khá mới so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính riêng chuyên dụng cho nó ngày càng đa dạng và mở rộng. Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò quan trọng nhất. Những năm trở lại đây nhờ sự phát triển của phần cứng máy tính làm cho xử lý ảnh phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sống. Dự đoán trong tương lai xử lý ảnh sẽ đóng vai trò quan trọng trong ngành sản xuất chế tạo Robot công nghiệp. Quá trình xử lý ảnh nhằm tăng cường chất lượng ảnh hoặc trích xuất một số thông tin hữu ích ảnh đầu vào. Quá trình xử lý ảnh là quá trình thao tác trên ảnh đầu vào nhằm cho ra kết quả mong muốn, kết quả có thể là hình ảnh hoặc đặc điểm, tính năng liên kết với hình ảnh đó. Hình 4.1:Quá trình xử lý ảnh Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên ở thế giới ngoài được thu thập qua các thiết bị thu (như camera, máy chụp ảnh). Trước đây, ảnh được thu qua camera là các ảnh tương tự (loại camera ống kiểu CCIR). Gần đây, dưới sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho ảnh số tiếp theo (máy ảnh số hiện nay là một ví dụ gần gũi). Mặc khác, ảnh cũ có thể được tiếp nhận từ vệ tinh, có thể quét từ ảnh chụp của máy quét ảnh. SVTH: Phan Phúc Hậu Trang 66
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG Hình 4.2: Các bước cơ bản trong xử lý ảnh Sơ đồ này bao gồm các thành phần sau: - Phần thu nhận ảnh (Image Acquisition): Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng có loại camera đã số hoá (như loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh. Camera thường dùng là loại quét dòng, ảnh tạo ra có dạng hai chiều. Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, và vào môi trường ánh sáng. - Tiền xử lý (Image Processing): Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. - Phân đoạn ảnh (Image Segmentation): Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này. - Biểu diễn ảnh (Image Representation): Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong SVTH: Phan Phúc Hậu Trang 67
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG phạm vi ảnh nhận được. Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác. - Nhận dạng và nội suy ảnh (Image Recognition and Interpretation): Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Có nhiều cách phân loại ảnh khác nhau về ảnh nhưng theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản là nhận dạng theo tham số hoặc nhận dạng theo cấu trúc. - Cơ sở tri thức (Knowledge Base): Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh cũng khá phong phú kéo theo xuất hiện nhiễu. Trong nhiều khâu xử lý và phân tích ảnh thì ngoài việc làm đơn giản hóa các phương pháp toán học để đảm bảo tiện lợi cho xử lý, người ta còn mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy. 4.1.2 Sơ lượt về quá trình xử lý ảnh trong đề tài Xử lý ảnh là phần quan trọng nhất trong đề tài, vì nó liên quan đến hầu hết các quá trình của Robot từ xác định vùng làm việc của Robot cho đến xác định vị trí, màu sắc và hình dạng cho từng sản phẩm. Xử lý ảnh cũng được xem như là thị giác của Robot vì nhờ có xử lý ảnh mà Robot có thể dễ dàng thực hiện phân loại sản phẩm. Trong đề tài “Thiết kế và chế tạo mô hình Robot Scara phân loại sản phẩm theo màu sắc và hình dạng” thì xử lý ảnh được chia thành các quá trình như sau: - Thu nhận ảnh đầu vào: Ảnh đầu vào được thu nhận bằng camera. - Tìm vùng hoạt động: Quá trình này sẽ tiến hành nhận dạng vùng hoạt động của Robot và sau đó trích xuất ảnh của vùng đã nhận dạng được dựa trên ảnh đầu vào. - Xác định sản phẩm cần phân loại: Quá trình này sẽ tiến hành phân đoạn và trích xuất ảnh của từng sản phẩm dựa trên ảnh của vùng hoạt động - Xử lý màu sắc và hình dạng: Quá trình này sẽ nhận dạng màu sắc và hình dạng cho từng sản phẩm dựa trên ảnh của sản phẩm đó. SVTH: Phan Phúc Hậu Trang 68
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG - Kết quả: Cuối cùng sau khi nhận diện sẽ đưa ra những thông số cần thiết về sản phẩm như: vị trí, màu sắc và hình dạng. Hình 4.3: Sơ đồ quá trình xử lý ảnh trong đề tài 4.1.3 Thu nhận ảnh đầu vào Để cung cấp dữ liệu ảnh đầu vào cho các ứng dụng xử lý ảnh thì chúng ta cần phải camera, để lựa chọn camera thì ta phải xét đến các thông số như: độ phân giải, số điểm ảnh, điều kiện hoạt động của thiết bị, tùy theo môi trường thực tế và yêu cầu của hệ thống có thể lựa chọn các loại camera khác nhau. Đối với đề tài của em để cho hệ thống có thể nhận dạng chính xác màu sắc và hình dạng của sản phẩm thì em đã chọn Webcam HD C270 Logitech với độ phân giải tối đa là 720p/30fps đáp ứng được những yêu cầu đặt ra của đề tài. Hình 4.4: Webcam logitech HD C270 SVTH: Phan Phúc Hậu Trang 69
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 4.1.4 Xác định vùng hoạt động của Robot Để có thể xác định được vùng hoạt động của Robot thì ta cần tìm những thông số liên quan đến vùng hoạt động như: tọa độ (x1,y1), chiều cao (H) và độ rộng (W). Qua hình(4.5) ta thấy rằng: H = x3 - x1 và W = y3 - y1 cho nên để xác định được vùng hoạt động của Robot ta chỉ cần xác định được tọa độ (x1,y1) và (x3,y3). Hình 4.5: Kích thước vùng hoạt động Do nhận thấy vùng hoạt động của Robot và camera đều được đặt cố định cho nên để xác định được tọa độ (x1,y1) và tọa độ (x3,y3) của vùng hoạt động thì phương pháp được em lựa chọn là dùng giấy dán màu đỏ để đánh dấu hai điểm vừa nói trên, sau đó ứng dụng xử lý ảnh màu sắc để tìm ra vị trí của chúng. Đây là phương pháp đơn giản nhưng lại có được độ chính xác rất cao. Để hiểu rõ hơn thì dưới đây là quá trình xác định vùng hoạt động của Robot: Hình 4.6:Ảnh quá trình xác định vùng hoạt động của Robot SVTH: Phan Phúc Hậu Trang 70
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG Hình 4.7: Sơ đồ quá trình tìm vùng hoạt động của Robot Kết quả: Hình 4.8: Vùng hoạt động của Robot SVTH: Phan Phúc Hậu Trang 71
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 4.1.5 Phân vùng ảnh và tách sản phẩm 4.1.5.1 Nhị phân ảnh Đầu tiên ta phải chuẩn hóa kích thước vùng hoạt động vừa tìm được thành một kích thước chuẩn (500x600). Sau đó, để có thể phân vùng cho ảnh thì ta cần phải thực hiện nhị phân ảnh. Quá trình nhị phân ảnh được thực hiện như sau: Hình 4.9: Sơ đồ quá trình nhị phân ảnh Hình 4.10: Ảnh quá trình nhị phân ảnh 4.1.5.2 Phân vùng ảnh Sau khi đã nhị phân ảnh thì ta tiến hành phân vùng, đây là một bước quan trọng trong xử lý ảnh. Quá trình này nhằm tách đối tượng phẩm ra khỏi vùng, đối tượng được tách ra trong quá trình phân vùng có thể được xử lý trong các hệ thống đếm số lượng, nhận dạng màu, nhận dạng hình dạng, SVTH: Phan Phúc Hậu Trang 72
- CHƯƠNG 4: XỬ LÝ ẢNH VÀ THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG Hình 4.11: Sơ đồ giải thuật phân vùng và tách đối tượng Kết quả: Hình 4.12: Ảnh kết quả của quá trình phân vùng SVTH: Phan Phúc Hậu Trang 73