1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động

123 16 1

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

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

THÔNG TIN TÀI LIỆU

(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động(Đồ án tốt nghiệp) Thiết kế và chế tạo hệ thống nhận diện mối hàn cho robot tự động

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ CHẾ TẠO HỆ THỐNG NHẬN DIỆN MỐI HÀN CHO ROBOT TỰ ĐỘNG SVTH: LÊ NHỰT LINH - 17146148 NGUYỄN GIA THỊNH - 17146194 TRANG MINH VƯƠNG - 17146224 KHĨA: 2017 - 2021 NGÀNH: CƠNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ GVHD: THS LÊ THANH TÙNG Tp Hồ Chí Minh, tháng năm 2021 LỜI CẢM ƠN Lời đầu tiên, nhóm chúng tơi xin gửi lời cảm ơn đến tồn thể q thầy Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh Đặc biệt quý thầy cô công tác môn Cơ điện tử, khoa Đào tạo Chất lượng cao dạy dỗ, truyền đạt kiến thức quý báu đến chúng tơi Từ đó, nhóm chúng tơi – sinh viên Cơ điện tử khóa 17 có điều kiện học tập môi trường tốt để rèn luyện, phát triển suốt khoảng thời gian gần 04 năm gắn bó, học tập trường Trong q trình thực đồ án, nhóm ln nhận hỗ trợ giúp đỡ nhiệt tình từ quý thầy để nhóm hồn thành đồ án cách chu nhất, nhóm xin chân thành cảm ơn Nhóm xin bày tỏ lịng biết ơn sâu sắc đến giảng viên hướng dẫn – ThS Lê Thanh Tùng, người nhiệt tình hỗ trợ nhóm từ ngày đến hoàn thiện đồ án tốt nghiệp Trong q trình thực đồ án, nhóm trải qua khơng khó khăn từ khâu xây dựng phát triển sản phẩm phù hợp với đề tài Tuy nhiên, với giúp đỡ tận tâm nhiệt tình q thầy người bạn xung quanh tiếp cho nhóm chúng tơi tri thức, kinh nghiệm nguồn sức mạnh tinh thần vững chãi Nhờ đó, nhóm tìm giải pháp thích hợp khắc phục hạn chế cịn thiếu sót Việc trải nghiệm thực đồ án giúp chúng tơi có thêm nhiều kiến thức hiểu thêm ngành học mà theo đuổi Với vốn kiến thức cịn hạn hẹp chưa có nhiều kinh nghiệm việc ứng dụng kiến thức vào phát triển sản phẩm thực tế, nên đồ án nhóm khơng thể tránh khỏi thiếu sót Nhóm mong nhận ý kiến đóng góp, phê bình thơng cảm từ q thầy Đó hành trang q giá để chúng tơi hồn thiện thân sau Một lần nữa, xin chân thành cảm ơn! Trân trọng! iii TÓM TẮT Do nhu cầu cần gia tăng mức độ tự động hóa độ xác cho robot hàn tự động, việc phát xây dựng quỹ đạo cho robot hàn trở thành chìa khóa then chốt Trong nghiên cứu này, nhóm áp dụng kỹ thuật lĩnh vực xử lý ảnh để phát triển thuật toán cho việc phát đường hàn xây dựng quỹ đạo cho robot hàn Các ảnh thu thập theo thời gian thực sử dụng làm đối tượng để phân tích xử lý ảnh Một mơ hình thiết bị xây dựng nhằm hỗ trợ cho việc lấy mẫu kiểm nghiệm thuật toán Thư viện OpenCV sử dụng nhằm cung cấp công cụ hàm cho việc phát triển thuật toán nhận diện đường hàn Bằng việc phân tích đặc tính ảnh đường hàn, phương án nhận diện đưa để phát trích xuất xác vị trí đường hàn ảnh, từ tính tốn vị trí đường thực tế iv MỤC LỤC LỜI CẢM ƠN iii TÓM TẮT iv MỤC LỤC v DANH MỤC CÁC CHỮ VIẾT TẮT viii DANH MỤC CÁC BẢNG BIỂU ix DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ x Chương 1: TỔNG QUAN 1.1 Đặt vấn đề 1.2 Ý nghĩa khoa học thực tiễn đề tài .1 1.3 Mục tiêu đề tài .2 1.4 Đối tượng phạm vi nghiên cứu 1.4.1 Đối tượng nghiên cứu .2 1.4.2 Phạm vi nghiên cứu 1.5 Cơ sở phương pháp luận 1.6 Phương pháp nghiên cứu .2 Chương 2: THÔNG SỐ KỸ THUẬT CỦA THIẾT BỊ 2.1 Giới thiệu công nghệ hàn 2.1.1 Thực chất đặc điểm trình hàn .4 2.1.2 Phân loại phương pháp hàn 2.1.3 Máy hàn tự động .8 2.2 Tổng quan khí 12 2.2.1 Truyền động vít me – đai ốc bi 12 2.2.2 Truyền động đai 15 2.2.3 Sống trượt, dẫn hướng 22 2.3 Tổng quan điện – điện tử 24 2.3.1 2.4 Động bước 24 Tổng quan xử lý ảnh .26 2.4.1 Giới thiệu xử lý ảnh 26 2.4.2 Các giai đoạn trình xử lý ảnh 26 2.4.3 Một số khái niệm xử lý ảnh .29 v 2.4.4 2.5 Một số thuật tốn thơng dụng xử lý ảnh 31 Tổng quan ngôn ngữ lập trình Python thư viện OpenCV 36 2.5.1 Ngơn ngữ lập trình Python 36 2.5.2 Thư viện OpenCV 37 Chương 3: THIẾT KẾ 39 3.1 Thông số yêu cầu kỹ thuật 39 3.2 Tính tốn, thiết kế khí .39 3.2.1 Tính tốn lựa chọn kết cấu khung sườn 39 3.2.2 Thiết kế bàn máy 42 3.2.3 Tính tốn, thiết kế cấu truyền động đầu công tác (trục X) 43 3.2.4 3.3 Tính tốn, thiết kế cấu truyền động bàn máy (trục Y) .54 Thiết kế hệ thống điều khiển .60 3.3.1 Xây dựng sơ đồ khối hệ thống điều khiển 60 3.3.2 Camera 61 3.3.3 Board mạch Mach 62 3.3.4 Driver động bước .64 3.3.5 Cơng tắc hành trình .65 3.3.6 Nguồn nuôi 66 3.3.7 Sơ đồ nguyên lý 67 3.4 Thiết kế thuật toán xử lý ảnh điều khiển 68 3.4.1 Phân tích đặc tính ảnh 68 3.4.2 Xây dựng giải thuật cho xử lý ảnh 70 3.4.3 Giải pháp điều khiển hệ thống 75 3.4.4 Giao tiếp điều khiển phần mềm Mach xử lý ảnh 76 Chương 4: THI CÔNG VÀ THỰC NGHIỆM 80 4.1 Thi cơng mơ hình 80 4.2 Lập trình hệ thống 84 4.2.1 Tiền xử lý ảnh .84 4.2.2 Lấy khung xương 87 4.2.3 Xác định đường hàn 88 4.2.4 Xác định vị trí điểm lấy mẫu đường hàn .89 vi 4.2.5 Tính tốn vị trí điểm khơng gian thực 90 4.2.6 Tạo lệnh G-Code lưu trữ 93 4.3.1 Thực nghiệm xử lý ảnh 93 4.3.2 Thực nghiệm toàn hệ thống 97 Chương 5: KẾT LUẬN 101 5.1 Kết đạt 101 5.2 Những mặt hạn chế 101 5.3 Hướng phát triển 101 TÀI LIỆU THAM KHẢO .102 PHỤ LỤC 105 vii DANH MỤC CÁC CHỮ VIẾT TẮT CNC: Computerized Numerical Control EDM: Electrical Discharge Machining viii DANH MỤC CÁC BẢNG BIỂU Bảng 2.1: Các thông số truyền đai 17 Bảng 2.2: Ưu, nhược điểm đai sợi thủy tinh 21 Bảng 3.1: Thông số đầu vào cho động trục X 49 Bảng 3.2: Thông số đầu vào trục Y 55 Bảng 4.1: Bảng thống kê số khung hình nhận diện thành cơng sau 200 khung hình 94 Bảng 4.2: Các thông số thiết lập .97 ix DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ Hình 2.1: Phương pháp hàn điện hồ quang tay Hình 2.2: Phương pháp hàn ma sát khuấy Hình 2.3: Phương pháp hàn khí Hình 2.4: Phương pháp hàn nóng chảy .7 Hình 2.5: Phương pháp hàn áp lực Hình 2.6: Máy hàn tự động Hình 2.7: Rùa hàn tự động 10 Hình 2.8: Máy hàn CNC 11 Hình 2.9: Robot hàn tự động .11 Hình 2.10: Vít me – đai ốc bi 12 Hình 2.11: Cấu tạo Vít me – đai ốc bi 13 Hình 2.12: Cơ cấu truyền động đai 15 Hình 2.13: Mơ tả ăn khớp đai 16 Hình 2.14: Các loại biên dạng đai .16 Hình 2.15: Mơ hình ứng suất chân 17 Hình 2.16: Các thông số đai .18 Hình 2.17: Kết cấu dây đai 18 Hình 2.18: Cách bố trí sợi cốt hướng xoắn sợi 19 Hình 2.19: Ray trượt dẫn hướng vng 22 Hình 2.20: Cấu tạo trượt vuông .23 Hình 2.21: Động bước điều khiển 25 Hình 2.22: Sơ đồ điều khiển vịng kín động bước .25 Hình 2.23: Quá trình xử lý ảnh 26 Hình 2.24: Các bước xử lý ảnh 27 Hình 2.25: Mức xám ảnh đen trắng 30 Hình 2.26: Mức xám ảnh nhị phân 30 Hình 2.27: Tách ngưỡng cho ảnh xám 33 Hình 2.28: Đường thẳng tọa độ cực 34 Hình 2.29: Lấy khung xương (skeletonization) 36 Hình 2.30: Nhận diện đối tượng cách sử dụng OpenCV 38 x Hình 3.1: Kiểu dáng mơ hình .39 Hình 3.2: Kích thước nhơm định hình 20x40 40 Hình 3.3: Bản vẽ khung mơ hình 41 Hình 3.4: Bu lơng, trượt, nối góc .41 Hình 3.5: Chân đế cao su 42 Hình 3.6: Bánh xe V-slot 42 Hình 3.7: Bản vẽ bàn máy 43 Hình 3.8: Bàn máy lắp vào khung 43 Hình 3.9: Kiểu lắp vít me fixed – fixed 44 Hình 3.10: Kiểu lắp vít me fixed – support 44 Hình 3.11: Kiểu lắp vít me fixed – free 45 Hình 3.12: Quy trình lựa chọn vít me .45 Hình 3.13: Sơ đồ đặt lực 46 Hình 3.14: Thơng số vít me kiểu SFU 48 Hình 3.15: Bản vẽ vít me đai ốc bi 48 Hình 3.16: Thông số động 53 Hình 3.17: Cơ cấu trục X 53 Hình 3.18: Vị trí trục X mơ hình .54 Hình 3.19: Cơ cấu truyền động đai 54 Hình 3.20: Cặp pulley truyền động 56 Hình 3.21: Thơng số kỹ thuật động 57HS10030A4D8 58 Hình 3.22: Trục X Y mơ hình .59 Hình 3.23: Các cấu chuyển động sau lắp đặt 59 Hình 3.24: Sơ đồ khối hệ thống 60 Hình 3.25: Camera Bysameyee USB Digital Microscope 1000X 62 Hình 3.26: Board mạch Mach 63 Hình 3.27: Cơng tắc hành trình KW11-N KW12 5a .66 Hình 3.28: Bảng vẽ lắp đặt sơ đồ nguyên lý tủ điện 67 Hình 3.29: Cách đặt camera, nguồn sáng, mẫu 68 Hình 3.30: Ảnh mơ tả độ tương phản 69 Hình 3.31: Giải thuật .70 xi Hình 4.22: Mơ tả kết thực nghiệm tồn hệ thống 98 Hình 4.23: Thực nghiệm tồn hệ thống 99 Nhận xét Sau thực nghiệm riêng lẻ xử lý ảnh thực nghiệm vận hành toàn hệ thống, kết cho thấy giải thuật xử lý ảnh hoạt động tốt, có khả nhận diện xác định đường hàn với độ xác cao Tuy nhiên việc kết hợp xử lý ảnh điều khiển chưa thực đồng bộ, dẫn đến có sai lệch 100 Chương 5: KẾT LUẬN 5.1 Kết đạt Sau thời gian thực đồ án tốt nghiệp, mục tiêu đề đề tài hoàn thành Một số kết đạt sau: - Xây dựng thuật toán nhận diện đường hàn - Thiết kế hồn thiện mơ hình kiểm chứng - Xây dựng chương trình điều khiển dựa liệu từ xử lý ảnh cho mơ hình So với mục tiêu ban đầu đề ra, nhóm hồn thành kế hoạch đặt Thuật tốn xử lý ảnh có khả nhận diện trích xuất liệu tương đối hiệu quả, xác Mơ hình phần cứng hoạt động tốt, đáp ứng đủ tiêu chí đề trước Ngồi ra, thơng qua q trình thực đề tài, nhóm có hội vận dụng kiến thức học vào việc thiết kế giải vấn đề đặt 5.2 Những mặt hạn chế Ngồi kết đạt nhóm ghi nhận vài hạn chế hệ thống sau: - Thuật tốn điều khiển cịn phụ thuộc nhiều vào phần mềm Mach 3, chưa tối ưu cho việc tích hợp vào hệ thống hàn tự động hồn chỉnh - Chưa có giao diện tương tác điều khiển 5.3 Hướng phát triển Từ mặt hạn chế đề tài, để đề tài hoạt động tốt áp dụng vào thực tế, nhóm xin đề xuất hướng phát triển sau: Phát triển riêng hệ thống điều khiển, phát triển giao diện tương tác, điều khiển 101 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Lương Mạnh Bá, Nguyễn Thanh Thủy (2006), “Nhập môn xử lý ảnh số”, Nhà xuất khoa học kỹ thuật [2] Trịnh Chất, Lê Văn Uyển (2006), “Tính tốn thiết kế hệ dẫn động khí”, Nhà xuất giáo dục, tập hai [3] Nguyễn Thúc Hà, Bùi Văn Hạnh, Võ Văn Phong (2006), “Giáo trình công nghệ hàn”, Nhà xuất giáo dục [4] Nguyễn Quang Hoan (2006), “Giáo trình Xử lý ảnh”, Học viện cơng nghệ bưu viễn thơng [5] Trần Ngọc Nhuần (2006), “Đai – đặc điểm cấu tạo”, Tạp chí Khoa học – Cơng nghệ Thủy sản, số 03-04/2006 [6] Nguyễn Hiền Minh, Phan Thanh Phong (2019), “Ứng dụng xử lý ảnh hệ thống phân loại sản phẩm”, Đại học Sư phạm kỹ thuật Thành phố Hồ Chí Minh [7] Đỗ Năng Tồn, Phạm Việt Bình (2007), “Giáo trình Xử lý ảnh”, Đại học Thái Nguyên [8] Động bước (STEP), phân loại, ứng dụng điều khiển Internet: https://vietmachine.com.vn/cac-loai-dong-co-buoc-step-phan-loai-ung-dung-vadieu-khien.html, 26/04/2021 [9] bi Hướng dẫn cách tháo lắp trục vít me đai ốc bi - Cách sửa chữa vít me đai ốc Internet: https://tayhostar.vn/huong-dan-cach-thao-lap-truc-vit-me-dai-oc-bi- cach-sua-chua-vit-me-dai-oc-bi-a41.html, 26/04/2021 [10] Máy hàn tự động gì? Các loại máy hàn tự động Internet: https://maydochuyendung.com/tin-tuc/tu-van-tieu-dung/may-han-tu-dong-la-gi-cacloai-may-han-tu-dong-hien-nay, 24/04/2021 102 [11] Python (ngôn ngữ lập trình) Internet:https://vi.wikipedia.org/wiki/Python_(ngơn_ngữ_lập_trình), 11/08/2021 [12] Cơng tắc hành trình Limit Switch Internet: https://thietbihienthi.com/cong- tac-hanh-trinh-limit-switch/, 01/07/2021 [13] Cơ cấu truyền động (vít me, ray trượt, đai) Internet: https://vietmachine.com.vn/co-cau-truyen-dong-vit-me-ray-truot-dai.html, 01/07/2021 [14] Kiến thức dây đai (dây curoa) phải biết Internet: https://cuahangvattu.com/blog/kien-thuc-day-dai-day-curoa-ai-cung-phai-biet, 01/07/2021 [15] Hàn ma sát gì? tìm hiểu tổng quan phương pháp hàn ma sát Internet: http://cokhithanhduy.com/han-ma-sat-la-gi-tim-hieu-tong-quan-ve-phuong-phaphan-ma-sat/, 01/07/2021 [16] Thanh trượt trượt QWW series HIWIN Internet: https://www.ngananhphat.com/vn/san-pham/2196/thanh-truot-con-truot-qwwseries-hiwin.html, 01/07/2021 Tiếng Anh [17] Azhar Shaukharova, Yi Liang, Hutian Feng, Bin Xu (2016), “Study of Stiffness of Linear Guide Pairs by Experiment and FEA”, World Journal Engineering and Technology (April 2016) [18] Guangyuan Zhang, Zhengfang Zhu, Guannan Si (2014), “Welding line detection based on image for automatic welding machine”, IEEE, (20-21 Dec 2014) [19] Oriental Motor USA Corp, “Technical Reference” [20] Oriental Motor USA Corp, “Motor Sizing Calculations” [21] HIWIN Technologies Corp (2018), “Ballscrews Technical Information” 103 [22] Rafael C Gonzalez, Richard E Woods (2008), “Digital Image Processing”, Pearson Education Inc [23] Belt Actuator Sizing Tool Internet: https://www.orientalmotor.com/motor- sizing/beltActuator-sizing.html, 02/05/2021 [24] NEMA 23 Stepper motor 57x100mm 2.5Nm Internet: https://mro.ecvv.com/product/4891239, 01/07/2021 [25] NEMA 23 Closed loop stepper motor drive kit 2.2Nm LC57H280 Internet: https://vi.aliexpress.com/item/4000597353388.html, 01/07/2021 [26] Laser Pressure Welding Internet: https://www.manufacturingguide.com/en/laser-pressure-welding, 01/07/2021 [27] 1605 ball screw set: SFU1605 ball screw with end machining + ball screw supporter + ball nut housing + coupling Internet: https://cpdxkcnc.com/products/1605-ball-screw-set-sfu1605-ball-screw-with-endmachining-ball-screw-supporter-ball-nut-housing-coupling-530, 01/07/2021 104 PHỤ LỤC #==========================================================================# # WINDOWS VERSION #==========================================================================# #==========================================================================# # IMPORT MODULES ARE USED #==========================================================================# import cv2 as cv import numpy as np import argparse import math import datetime import os import imutils import time import pywinauto from pywinauto.application import Application # import pywinauto lib from pywinauto import Desktop from pywinauto.keyboard import send_keys #==========================================================================# # INITIALIZING GLOBAL VARIABLES WITH INITIAL VALUE #==========================================================================# y_dis = state = alpha = beta = ppm = 44.06237571 # Image saved directory directory = r'D:\\Welding_image_process\\img_saved' # Set the name of output file timenow = datetime.datetime.now() filename_output = "D:\Welding_image_process\data\gcode_" + \ timenow.strftime("%d%m%y")+"_"+timenow.strftime("%H%M%S")+".txt" file_output = open(filename_output, "w+") file_output.close() # Define the codec and create VideoWriter object filename_video = "D:\\Welding_image_process\\img_saved\\video_" + \ timenow.strftime("%d%m%y")+"_"+timenow.strftime("%H%M%S")+".avi" fourcc = cv.VideoWriter_fourcc(*'XVID') 105 out = cv.VideoWriter(filename_video, fourcc, 20.0, (640, 480)) start_time = FirstTO = GlobalTO = #==========================================================================# # IMPLEMENTATION #==========================================================================# #** # @brief line_prepend - add a line to the beginning of current lines # @details #==========================================================================# def line_prepend(newContent): file_output = open(filename_output, "r+") currentContent = file_output.read() # print(currentContent) file_output.seek(0, 0) file_output.write(newContent + "\n") file_output.write(currentContent) file_output.close() #** # @brief state_0 - send home & move command to Mach3 software # @details #==========================================================================# def state_0(): appMach3 = Application(backend='uia').connect( title="Mach3 CNC Controller ") # First step - Load Recent File loadRF = appMach3.Mach3CNCController.child_window( title="Recent File", auto_id="8349", control_type="Button").wrapper_ object() loadRF.click() time.sleep(0.1) # Click 'OK' okBTN = appMach3.Mach3CNCController.child_window( title="OK", auto_id="1", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit GCode okBTN = appMach3.Mach3CNCController.child_window( 106 title="Edit GCode", auto_id="8586", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit gcode by notepad notepad = Application(backend='uia').connect(title="gcode.txt - Notepad" ) send_keys('^a') # send key "alt + a" to mach3 software time.sleep(0.05) # Add "G0 Y5" into gcode file to control Mach3 Y Homing notepad.gcodetxtNotepad.Edit.type_keys("G0 X30 Y5", with_spaces=True) time.sleep(0.05) send_keys('{ENTER}') # send key "Enter" to mach3 software time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Save") time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Exit") time.sleep(0.2) send_keys('%r') send_keys('%r') time.sleep(30) ################################ loadRF.click() time.sleep(0.1) # Click 'OK' okBTN = appMach3.Mach3CNCController.child_window( title="OK", auto_id="1", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit GCode okBTN = appMach3.Mach3CNCController.child_window( title="Edit GCode", auto_id="8586", control_type="Button").wrapper_object() okBTN.click() time.sleep(0.1) # Edit gcode by notepad notepad = Application(backend='uia').connect(title="gcode.txt - Notepad" ) send_keys('^a') time.sleep(0.05) 107 # Add "G1 Y180 F300" into gcode file to control Mach3 goto Y180 with Fee drate = 300 mm/p notepad.gcodetxtNotepad.Edit.type_keys("G1 Y135 F300", with_spaces=True) time.sleep(0.05) send_keys('{ENTER}') time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Save") time.sleep(0.05) notepad.gcodetxtNotepad.menu_select("File -> Exit") time.sleep(0.1) send_keys('%r') send_keys('%r') time.sleep(0.05) # Set State_var = to switch to state #** # @brief state_1 - detect, recognize and creat gcode # @details #==========================================================================# def state_1(): global y_dis global state global start_time # global FirstTO # global GlobalTO img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) img_gray_ct = cv.addWeighted(img_gray, alpha, np.zeros( img_gray.shape, img_gray.dtype), 0, beta) img_copy = np.copy(img) # Set canny threshold and hough theshold canny_threshold = 100 hough_threshold = 120 blur_img = cv.blur(img_gray_ct, (9, 9)) binary_img = cv.adaptiveThreshold( blur_img, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY_INV, 21, 2) binary_img = cv.erode(binary_img, None, iterations=2) # Skeletonize the image skeleton_img = cv.ximgproc.thinning(binary_img, 0) 108 # HoughLine lines = cv.HoughLines(skeleton_img, 1, np.pi / 180, hough_threshold, None, 0, 0) all_point_x_top = [] all_point_x_bottom = [] if lines is not None: for i in range(0, len(lines)): rho = lines[i][0][0] theta = lines[i][0][1] a = b = pt1 pt2 math.cos(theta) math.sin(theta) = (int(rho/a), 0) = (int((rho/a)-640*(b/a)), 640) if ((pt1[0] < 640 and pt1[0] > 0) and range (0;640) # pt1[0] (X_1) must be in (pt2[0] < 640 and pt2[0] > 0) and # pt2[0] (X_2) must be in range (0;640) # pt1[0] (X_1) and pt2[0] (X_2) cannot be (pt1[0] != and pt2[0] != 0) and (pt1[0] != pt2[0])): # pt1[0] (X_1) and pt2[0] (X_2) mu st be different #y1 != y2 all_point_x_top.append(pt1) all_point_x_bottom.append(pt2) num_line = len(all_point_x_top) if (num_line != 0): #Calculate the lines then take their average line ave_top_point = ave_bottom_point = for i in range(0, num_line): ave_top_point += all_point_x_top[i][0] ave_bottom_point += all_point_x_bottom[i][0] ave_top_point = int(ave_top_point/num_line) ave_bottom_point = int(ave_bottom_point/num_line) cv.line(img_copy, (ave_top_point, 0), (ave_bottom_point, 640), (0, 0, 255), 1) 109 for j in range(0, 640): if ((img_copy[240, j][0] == 0) and (img_copy[240, j][1] == 0) and (img_copy[240, j][2] == 255)): # Distance of X x_dis = (j/ppm) + 33.6848 # delta_X = 33.6848 # Delta Time from the starting of state to current DeltaTime = (end_time - start_time) y_dis = round((DeltaTime*(300/60) + 105.6454), 4) # #visme 33mm from base # #DATA SAMPLE G90 G1 F2000 X Y str_gcode = "G1 X" + \ str(round(x_dis, 4)) + " Y" + str(y_dis) + " F300" # Add the new str_gcode line above the previous one line_prepend(str_gcode) # cv.putText(img_copy,str(round(distance_line,4)),(50,50 ),fontFace=cv.FONT_HERSHEY_COMPLEX,fontScale=1,color=(150,100,200),thickness =2) # cv.arrowedLine(img_copy,(0,240),(j,240),(255,255,0),5) # cv.arrowedLine(img_copy,(j,240),(0,240),(255,255,0),5) # cv.line(img_copy,(0,240),(640,240),(0,255,0),1) break # else: #print("LINE NOT FOUND") cv.imshow("Detected Lines (in red) - Standard Hough Line Transform", img _copy) if (y_dis >= 240): cv.destroyAllWindows() state = #==========================================================================# # MAIN CODE #==========================================================================# print("State - SETUP MACHINE PLEASE WAIT 30 SECONDS ") if(state == 0): state_0() state = print("State ANALYZE AND GENERATE GCODE") cap_video = cv.VideoCapture(0,cv.CAP_DSHOW) 110 start_time = time.monotonic() while(state == 1): ret, img = cap_video.read() # read frame then timing end_time = time.monotonic() # end of time delta # if frame is read correctly ret is True if not ret: print("Can't receive frame (stream end?) Exiting ") break img = cv.flip(img, 1) img = cv.flip(img, 0) state_1() # Check key key = cv.waitKey(1) if key & 0xFF == ord('q'): break # Press "q" to quit print("DONE") print("THE GCODE IS SAVED IN "+str(filename_output)) cap_video.release() cv.destroyAllWindows() 111 S K L 0 ... cịn gọi máy hàn công nghiệp [10] Một số dạng hàn tự động thông dụng: - Xe hàn tự động hay rùa hàn tự động: thiết bị hàn thiết kế cho mối hàn thẳng Khi chiều dài đường hàn lớn ứng dụng thiết bị hiệu... máy hàn khác Thông thường Việt Nam, máy hàn tự động sử dụng để hàn thép tấm, thép kết cấu xây dựng, hàn chi tiết dày từ vài mm đến hàng trăm mm, mà máy hàn tự động ứng dụng chủ yếu nhà máy chế tạo. .. bảo kết tốt [10] Máy hàn tự động hoạt động dựa nguyên lý hồ quang điện nóng chảy, tạo điện cực vật hàn lớp thuốc bảo vệ để tránh khỏi xâm nhập oxi hóa, giúp mối hàn trắng đẹp Hình 2.6: Máy hàn tự

Ngày đăng: 26/12/2022, 08:47

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w