Xây dựng hệ giám sát điều khiển vi kẹp

91 9 0
Xây dựng hệ giám sát điều khiển vi kẹp

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Thắng Xây dựng hệ giám sát, điều khiển vi kẹp Luận văn ThS Kỹ thuật điện tử (60 52 70) Hà Nội - 2008 Lời cảm ơn Để hồn thành khóa học đề tài luận văn thạc sỹ định hướng bảo tận tình thầy trường Đại học Công nghệ - Đại học Quốc gia Hà Nội ủng hộ tinh thần vật chất gia đình bạn bè Để bày tỏ lịng biết ơn Trước tiên tơi xin gửi tới PGS TS Trần Quang Vinh lời cảm ơn sâu sắc chân thành PGS người thầy giảng dạy định hướng cho suốt thời gian học đại học, hoàn thành luận văn đại học hồn thành khóa học sau đại học Đặc biệt trình nghiên cứu làm đề tài luận văn thạc sỹ, thầy luôn nhắc nhở động viên tạo điều kiện thuận lợi Và nhờ có giúp đỡ tận tình thầy mà tơi vượt qua hồn cảnh khó khăn để hồn thành luận văn Tơi xin chân thành cảm ơn TS Chử Đức Trình, người nhiệt tình giúp đỡ tơi định hướng cơng việc, kiểm tra kết thực nghiệm đóng góp ý kiến Với ý kiến đóng góp q báu tơi rút cho nhiều kinh nghiệm công việc Tôi xin cảm ơn anh chị Viện quốc tế khoa học vật liệu (ITIMS) tạo điều kiện thuận lợi cho tơi sử dụng hệ thống kính hiển vi Viện nhằm giúp tơi hồn thành tốt phần thực nghiệm Lời cam đoan Tôi xin cam đoan nội dung trình bày luận văn tơi tìm hiểu từ tài liệu tham khảo, không chép từ luận văn khác Phần thực nghiệm tơi xây dựng kiểm nghiệm phòng viện ITIMS Nếu phát đoạn văn, đoạn mã trùng lặp với kết luận văn trước tơi xin hồn tồn chịu trách nhiệm Người cam đoan Nguyễn Văn Thắng Mục lục Trang Mục lục Danh mục thuật ngữ Danh sách hình vẽ dùng luận văn Chương GIỚI THIỆU VỀ HỆ GIÁM SÁT VÀ ĐIỀU KHIỂN VI KẸP 1.1 Sự hình thành tốn 1.2 Cách giải 1.3 Sơ lược vi kẹp 1.3.1 Giới thiệu 1.3.2 Chế tạo 1.3.3 Vi chấp hành điện nhiệt polymer-silicon 10 1.3.4 Thông số kỹ thuật vi kẹp có gắn cảm biến 11 Chương 15 TỔNG QUAN VỀ XỬ LÝ ẢNH 15 2.1 Tổng quan hệ thống xử lý ảnh 15 2.1.1 Các trình xử lý ảnh 15 2.1.1.1 Thu nhận ảnh 16 2.1.1.2 Phân tích ảnh 17 2.1.1.3 Nhận dạng ảnh 17 2.1.2 Các vấn đề xử lý ảnh 17 2.1.2.1 Một số khái niệm 17 2.1.2.2 Biểu diễn ảnh 18 2.1.2.3 Biến đổi ảnh 19 2.1.2.4 Biểu diễn màu 19 2.1.2.5 Tổng hợp màu sánh màu 21 2.1.2.6 Hệ toạ độ màu 21 2.2 Một số phương pháp biểu diễn ảnh 22 2.2.1 Mã loạt dài 23 2.2.2 Mã xích 23 2.2.3 Mã tứ phân 24 2.3 Một số lý thuyết xử lý nhận dạng 24 2.3.1 Lý thuyết xử lý ảnh 2D 24 2.3.1.1 Khảo sát trực tiếp miền không gian điểm ảnh: 2.3.1.2 Thực phép biến đổi không gian: 28 2.3.2 Nâng cao chất lượng ảnh 28 2.3.2.1 Khôi phục ảnh 28 2.3.2.2 Tăng cường ảnh 32 2.3.3 Phân đoạn ảnh tìm biên ảnh 36 2.3.3.1 Khái niệm biên ảnh phương pháp xác định biên 36 2.3.3.2 Kỹ thuật phân đoạn ảnh 36 Chương 38 CÁC CÔNG CỤ XỬ LÝ ẢNH CỦA MATLAB 38 3.1 Công cụ thu nhận ảnh 38 3.1.1 Cơng cụ thu nhận ảnh gì? 38 3.1.2 Các bước để thu nhận ảnh (Image Acquisition Toolbox) 39 3.2 Công cụ xử lý ảnh 49 3.2.1 Công cụ xử lý ảnh gì? 49 3.2.2 Ảnh Matlab công cụ xử lý ảnh 49 3.2.3 Các loại ảnh công cụ xử lý ảnh Matlab 50 3.2.3.1 Ảnh nhị phân 50 3.2.3.2 Ảnh số (Indexed) 50 3.2.3.3 Ảnh cường độ (Intensity) 51 3.2.3.4 Ảnh màu thực(Truecolor) 52 3.2.4 Biến đổi không gian màu 52 3.2.4.1 Biến đổi ảnh sang lớp single 52 3.2.4.2 Biến đổi ảnh sang lớp số nguyên không dấu bit 53 3.2.4.2 Biến đổi ảnh sang lớp số nguyên không dấu 16 bit 54 3.2.5 Đọc ghi liệu ảnh 55 3.2.5.1 Đọc liệu ảnh từ tệp 55 3.2.5.2 Ghi liệu ảnh vào tệp 56 3.2.6 Hiển thị khám phá ảnh 57 3.2.6.1 Hiển thị ảnh 57 3.2.6.2 Khám phá ảnh 58 3.2.7.Tính tốn ảnh 58 3.2.7.1 Các quy tắc làm trịn tính tốn 58 Nguyễn Văn Thắng – Luận văn thạc sĩ giới thiệu vi kẹp 3.2.7.2 Kết hợp lời gọi hàm tính tốn ảnh Chương 60 THỰC NGHIỆM 60 4.1 Các phương pháp đo đạc, xử lý số liệu thực nghiệm 60 4.1.1 Khảo sát chuyển động vi kẹp 61 4.1.1.1 Các thuật toán để tìm L 62 4.1.1.2 Kết mô thuật toán 66 4.2 Kết thực nghiệm 68 4.2.1 Hoạt động hệ thống thực nghiệm 68 4.2.2.1 Giao diện chương trình 68 4.2.2.2 Cấu hình cho cổng Com 69 4.2.2.3 Cấu hình cho thiết bị thu nhận ảnh 70 4.2.3 Giao tiếp chương trình mạch điều khiển vi kẹp 74 4.2.4 Kết chương trình điều khiển vi kẹp 75 4.2.4.1 Điều khiển tay kẹp tự động 76 4.2.4.2 Điều khiển tay kẹp tay 77 Tài liệu tham khảo 80 Phụ lục 81 Mã chương trình cho giao diện cấu hình cho cổng COM 81 Mã chương trình cho giao diện thiết lập cấu hình cho thiết bị thu ảnh 82 Mã chương trình cho giao diện đìều khiển vi kẹp 84 Nguyễn Văn Thắng – Luận văn thạc sĩ giới thiệu vi kẹp Danh mục thuật ngữ Từ viết tắt Tên tiếng anh Nghĩa AD Analog to Digital Biến đổi tương tự số B/W Black & White Ảnh đen trắng CCD Charge Coupled Device CIE Commision Internationale d'Eclairage Tổ chức quốc tế chuẩn hoá màu DFT Discrete Fourier Tranform Biến đổi Fourier rời rạc dpi dot per inch Số điểm ảnh inch FFT Fast Fourier Tranform Biến đối fourier nhanh IC Itegrated Circuit Mạch tích hợp KL Karhumen Loeve Biến đổi KL MEMS Micro Electro Mechanical System Vi điện tử Pixel Picture element Điểm ảnh RGB Red – Green - Blue Ba màu đỏ - xanh - lơ RLC Run - Length Code Mã đoạn dài Nguyễn Văn Thắng – Luận văn thạc sĩ giới thiệu vi kẹp Danh sách hình vẽ dùng luận văn Hinh 1.1 Sơ đồ khối hệ giám sát điều khiển vi kẹp Hinh 1.2: Vi kẹp có gắn cảm biến [3] 10 Hinh 1.3: Biểu diễn mặt cắt ngang cánh tay vi kẹp có gắn cảm biến với kí hiệu hình học thơng số[3] 11 Hinh 1.4: Hoạt động thiết bị:(a) vị trí ban đầu miệng vi kẹp có gắn cảm biến; (b) có áp đặt điện V tới cánh tay; 11 (c) trước kẹp vật; (d) kẹp vật (dây kim loại ) 11 Hinh 1.5: Sự dịch chuyển miệng vi kẹp có gắn cảm biến tương ứng với điện áp cung cấp Đo độ dịch chuyển tối đa 32 µm 4.5 V 12 Hinh 1.6: Sự dịch chuyển miệng vi kẹp tương ứng với công suất tiêu thụ 12 Hinh 1.7:Biểu diễn mối liên hệ điện áp cầu Wheatstone điện áp ứng dụng 13 Hinh 1.8: Đầu cảm biến lực tương ứng với độ dịch chuyển miệng vi kẹp có gắn cảm biến 13 Hinh 1.9: Biểu diễn lực tiếp xúc hai miệng vi kẹp vật giữ tương ứng với giá trị điện áp ứng dụng 14 Hình 2.1 Các giai đoạn xử lý ảnh 15 Hình 2.2: Các đường cong cảm nhận S1, S2 S3 20 Hình 2.4 Hệ tọa độ ba màu RGB 22 Hình 2.5 Ảnh nhị phân biểu diễn mã loạt dài tương ứng 23 Hình 2.6 Hướng điểm biên mã tương ứng 24 A 111 110 000 001 000 110 101 100 011 100 010 001 24 Hình 3.1 Các thành phần cơng cụ xử lý ảnh 39 Hình 3.2 Cửa sổ preview – xem dịng liệu đầu vào 44 Hình 3.4 Dữ liệu nhận khởi động đối tượng 48 Hình 3.6 Đưa liệu vào không gian làm việc Matlab 49 Hình 3.7 Các giá trị điểm ảnh nhị phân 50 Hình 3.8 Ảnh số 51 Hình 9: Ảnh cường độ 51 Hình 3.10 Ảnh màu 52 Hình 4.1: Sơ đồ khối hệ điều khiển vi kẹp 60 Hình 4.2 Hệ thống điều khiển vi kẹp 61 Hình (a) Ảnh gốc (b) Ảnh sau lấy biên 61 Hình 4.4 Khoảng cách hai đầu vi kẹp L 62 Nguyễn Văn Thắng – Luận văn thạc sĩ giới thiệu vi kẹp Hình 4.5 Tọa độ kích thước ảnh 62 Hình 4.6 Lưu đồ thuật tốn quét lùi 64 Hình 4.7 Các tọa độ cần xác định ảnh 65 Hình 4.8 Ảnh phóng to bên kẹp đường biên khơng trơn 65 Hình 4.9 Kết khảo sát thuật toán quét trái phải 66 Hình 4.10 Kết khảo sát thuật toán quét lùi 67 Hình 4.11 Ảnh dùng để khảo sát thuật toán 67 Hình 12: Lưu đồ thuật toán điều khiển vi kẹp 68 Hình 4.13 Giao diện chương trình điều khiển vi kẹp 69 Hình 4.14 Cấu hình phương thức truyền cho cổng COM 70 Hình 4.15 Cấu hình cho thiết bị thu nhận ảnh 71 Hình 4.16 Thu ảnh liên tiếp – thực lần trigger 72 Hình 4.17 Thu ảnh liên tiếp – thực lần trigger 73 Hình 4.18 : Ảnh phần vi kẹp chụp qua kính hiển vi 75 Hình 4.19 Quá trình tay kẹp tiến lại kẹp vật 76 Hình 4.20 Điều khiển vi kẹp chế độ điều khiển tay 77 Hình 4.22 Điều khiển tay phải vi kẹp 78 Hình 4.23 Điều khiển hai tay kẹp 78 Nguyễn Văn Thắng – Luận văn thạc sĩ giới thiệu vi kẹp MỞ ĐẦU Hiện kỹ thuật xử lý ảnh ứng nhiều vào lĩnh vực khoa học cơng nghệ sống, có lĩnh vực điều khiển tự động, đặc biệt công nghệ robot sử dụng camera để cảm ứng nhận biết vật, hay đường đi,…Trong luận văn thạc sĩ lựa chọn kỹ thuật xử lý ảnh để xây dựng hệ điều khiển vi kẹp Vi kẹp chế tạo cơng nghệ MEMs, có kích thước nhỏ cỡ micro met Do kích thước nhỏ vậy, nên ta giám sát điều khiển trực tiếp mà thay vào ta giám sát điều khiển thông qua ảnh vi kẹp thu thơng qua kính hiển vi quang học Với ảnh vi kẹp phóng to ảnh với tỉ lệ định ta giám sát chuyển động vi kẹp đơn giản hiệu Ý tưởng chung để xây dựng lên hệ điều khiển vi kẹp là: Sử dụng kính hiển vi có độ phóng đại cỡ hàng trăm lần sau dùng camera để thu nhận ảnh thị kính kính hiển vi Ảnh thu sau biến đổi dạng số chương trình máy tính xử lý tính tốn đưa định quay trở lại điều khiển chuyển động vi kẹp Từ ý tưởng ban đầu cần yêu cầu trang thiết bị kính hiển vi có độ khuếch đại cỡ hàng trăm lần, thiết bị thu nhận ảnh ghép nối trực tiếp với máy tính, máy tính có tốc độ xử lý cao đáp ứng thời gian thực, mạch điện điều khiển vi kẹp ghép nối với máy tính Mạch điện có nhiệm vụ nhận lệnh từ máy tính, giá trị số sau biến đổi giá trị điện áp theo tỉ lệ tuyến tính để điều khiển việc đóng mở chuyển động vi kẹp Với nội dung vậy, Bài luận văn chia làm chương Chương 1: Giới thiệu hệ giám sát điều khiển vi kẹp Chương 2: Tổng quan xử lý ảnh Chương 3: Các công cụ xử lý ảnh Matlab Chương 4: Thực nghiệm Nguyễn Văn Thắng – Luận văn thạc sĩ giới thiệu vi kẹp 74 thiết bị thu ảnh hỗ trợ Khi người dùng khơng thao tác với hộp chọn thiết bị lấy giá trị định dạng mặc định Sau lựa chọn hết thuộc tính cho thiết bị thu ảnh ta click vào nút lệnh Setup để thực thiết lập giá trị vừa chọn cho thiết bị thu ảnh 4.2.3 Giao tiếp chương trình mạch điều khiển vi kẹp Trong hệ thống điều khiển vi kẹp có mạch điện tử dùng để nhận lệnh điều khiển từ máy tính Trong mạch có chip điều khiển MPS, chíp nhận giá trị số từ máy tính thơng qua cổng nối tiếp sau điều khiển biến đổi DA, biến đổi giá trị số thành giá trị điện áp tương ứng Cụ thể biến đổi DA biến đổi số tương tự 12bit, giá trị điện áp mong muốn cực đại 5V Giá trị điện áp cực đại 5V tương ứng với giá trị số biến đổi 4095 (giá trị cực đại 12bit) Tuy nhiên liệu truyền qua cổng nối tiếp liệu byte, nghĩa giá trị cực đại đưa lần truyền 255 (Giá trị cực đại bit) Như để có giá trị 12 bit bên phát bên thu phải có thống định dạng liệu truyền/nhận Để nhận giá trị số có độ lớn 12 bit ta phải thực truyền liên tiếp byte Độ lớn liệu khung truyền nối tiếp chọn bit (Trong hộp chọn data bit giao diện hình 4.4 chọn 8) Trong hai bit cao (bit 6,7) dùng để nhận dạng thứ tự giá trị truyền, bit lại bit liệu tương ứng với bit thấp bit cao giá trị số 12 bit cần truyền Nếu giá trị hai bit cao 00 byte nhận byte thấp, giá trị hai bit cao 11 byte byte cao Nếu q trình truyền bị lỗi, hai bit cao byte liệu 01 hay 10 ta khơng nhận byte phải truyền lại Sau nhận hai byte liên tiếp ghép hai byte lại thành liệu 12 bit Việc tách số 12 bit thành hai số bit để truyền thực sau: Bên truyền ta chia số 12 bit cho 64 (26=64) phần nguyên byte cao truyền trước, phần dư byte thấp truyền sau Bên nhận thực ngược lại, nhận byte cao thực nhân với 64 sau cộng với byte thấp kết cho số 12bit ví dụ thực truyền số 4000 qua cổng COM trước tiên ta chia số 4000 thành hai phần trình bày 4000 = 62*64+ 32 Như byte cao truyền có dạng là: 11111110 byte thấp là: 00100000 Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm 75 bên nhận nhận hai byte liệu thực việc tách hai bit cao sau lấy bit thấp byte cao nhân với 64 (tương đương với dịch trái bit) cộng với bit byte thấp giá trị 111110100000 = 4000 4.2.4 Kết chương trình điều khiển vi kẹp Trở lại giao diện chương trình sau thiết lập cấu hình cho thiết bị thu nhận ảnh phương thức truyền liệu qua cổng COM ta bắt đầu điều khiển cho tay kẹp vi kẹp hoạt động Trước tiên ta xác định vị trí kích thước vật cần kẹp cách click vào nút lệnh Đợi đến bên có trả lời sổ bên trái thông tin vật, vị trí kích thước Tiếp theo ta điều khiển tay kẹp hai cách tự động tay Sự lựa chọn thực cách chọn hai lựa chọn tay hay tương ứng tự động Hình 4.18 : Ảnh phần vi kẹp chụp qua kính hiển vi Hình 4.8 phần vi kẹp chụp qua kính hiển vi Nhìn vào hình ta thấy vật cần kẹp nằm giới hạn nhỏ phần đầu vi kẹp Chính thể mà ta quan tâm đến phần nhỏ phần đầu cánh tay vi kẹp mục đích làm giảm số điểm ảnh cần tính toán, mà đạt kết mong muốn Để thực điều ta dùng hàm imcrop công cụ Matlab để cắt lấy phần quan trọng nhất, phần mà ta quan tâm toàn ảnh vi kẹp Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm 76 Quan sát kỹ hai đầu vi kẹp ta thấy chúng không đồng màu sắc, cấu tạo nên việc thu nhận ảnh, phát tách biên gặp khó khăn 4.2.4.1 Điều khiển tay kẹp tự động Trong chế độ điều khiển tự động cách chọn lựa chọn vào nút lệnh ta click chuột cửa sổ khác lên Hình 4.19 Quá trình tay kẹp tiến lại kẹp vật Cửa sổ cho ta giám sát trình chuyển động hai tay kẹp vi kẹp tiến lại kẹp lấy vật Khi hai tay kẹp đồng thời tiến đến vật (hình góc bên phải) việc kẹp vật kết thúc Trong trường hợp vật nằm lệch sang bên tay kẹp, hai tay kẹp đến vật trước Nếu ta tiếp tục điều khiển cho tay kẹp chuyển động đẩy vật kết kẹp vật vật gặp tay kẹp cịn lại Tuy nhiên cách khơng thiết thực, thay vào bên tiếp xúc với vật mà bên cịn lại chưa đến ta dừng việc điều khiển bên tiếp xúc lại, mà cho bên cịn lại chuyển động vào mà thơi Đến bên lại tiếp xúc với vật dừng lại việc điều khiển tay kẹp kẹp vật kết thúc Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm 77 4.2.4.2 Điều khiển tay kẹp tay Trong chế độ điều khiển tay Chế độ chọn người dùng chọn người dùng điều khiển đóng mở tay kẹp hai tay kẹp đồng thời Hình 4.20 Điều khiển vi kẹp chế độ điều khiển tay Nút lệnh bên trái : Khi người dùng click chuột vào nút tay kẹp bên trái dịch chuyển phía để kẹp vật Hình 4.21 Điều khiển tay trái vi kẹp Nút lệnh bên phải : Khi người dùng click chuột vào nút tay kẹp bên phải dịch chuyển phía để kẹp vật Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm 78 Hình 4.22 Điều khiển tay phải vi kẹp Nút lệnh : Khi người dùng click chuột vào nút đồng thời hai tay kẹp dịch chuyển phía để kẹp vật Hình 4.23 Điều khiển hai tay kẹp Với ba nút lệnh lần click đầu vi kẹp chuyển động lượng tương đối nhỏ nên người dùng click tương đối nhiều lần cánh tay vi kẹp tiến đến vật Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm 79 KẾT LUẬN Qua trình nghiên cứu làm luận văn thạc sĩ với đề tài “Xây dựng hệ giám sát, điều khiển vi kẹp” Với yêu cầu đặt ban đầu là, xây dựng chương trình điều khiển vi kẹp kích thước cỡ micro met dựa vào cơng nghệ thị giác máy tính, tơi nghiên cứu,tìm hiểu nội dung sau: - Nghiên cứu cấu tạo nguyên lý làm việc vi kẹp - Xây dựng mạch điều khiển vi kẹp Mạch điều khiển thiết kế với yêu cầu - nhận lệnh từ chương trình điều khiển máy tính đưa giá trị điện áp tương ứng để điều khiển vi kẹp Tìm hiểu tổng quan xử lý ảnh Những khái niệm kỹ thuật xử lý ảnh Làm sở cho kỹ thuật thị giác máy tính - Tìm hiều công cụ xử lý ảnh Matlab, xây dựng chương trình điều khiển - giao diện GUI Matlab Kết cuối hệ điều khiển vi kẹp giựa cơng nghệ thị giác máy tính Hệ điều khiển chạy thử viện quốc tế khoa học vật liệu Tuy đạt kết định Nhưng hệ thống giám sát điều khiển vi kẹp cịn có nhiều nhược điểm tốc độ xử lý chậm Hướng phát triển tương lai tơi cải tiến hệ thống ngơn ngữ lập trình khác C, visual C,… ứng dụng kỹ thuật PID vào thuật toán điều khiển Nguyễn Văn Thắng – Luận văn thạc sĩ 80 Tài liệu tham khảo Tiếng Việt Th.s Nguyễn Hoàng Hải – Th.s Nguyễn Việt Anh (2005), Lập trình matlab ứng dụng (dùng cho sinh viên khối khoa học kỹ thuật) NXB KHKT Lương Mạnh Bá – Nguyễn Thanh Thủy Nhập môn xử lý ảnh số NXB KHKT Tiếng Anh Chu Duc Trinh (2007) sensing microgripper for microparticles handing phD thesis delft university of Technology, The Neitherland RGB color space http://www.rgbworld.com/color.html Trợ giúp trực tuyến matlab http://www.mathworks.com/ Color principles- hue, saturation, and value http://ncsu.edu.scivis/lesson/colormodels/color_models2.html#(HSV) Stephen J Chapman, (2001) “Matlab programming for engineer (second edition)” Matlab toàn tập htttp://www.scribd.com/doc/2540653/matlab_toantap A john Wiley & Son,inc Publication Tinku Acharya and Ajoy kray Image proceesing: principles and application 10 Elisabet perez and bahram javidi “image processing techniques for automatic road sign indentification and tracking” Nguyễn Văn Thắng – Luận văn thạc sĩ 81 Phụ lục Mã chương trình điều khiển vi kẹp Dưới đoạn mã viết cho đáp ứng click vài nút lệnh giao diện điều khiển vi kẹp Mã chương trình cho giao diện cấu hình cho cổng COM % - Executes on button press in setup function setup_Callback(hObject, eventdata, handles) set(handles.setup,'enable','off'); brindex= get(handles.baudlist,'value'); brcontent=deblank(get(handles.baudlist,'String')); baudrate=str2num(char(brcontent(brindex))); % lay gias tri cua datatosend bit databitIndex = get(handles.datalist,'Value'); datacontent=deblank(get(handles.datalist,'String')); databit=str2num(char(datacontent(databitIndex))); %lay gia tri cua stop bit stopIndex=get(handles.stoplist,'Value'); stopcontent=deblank(get(handles.stoplist,'String')); stopbit=str2num(char(stopcontent(stopIndex))); %lay gia tri cua cong comindex = get(handles.comlist,'Value'); comport=deblank(get(handles.comlist,'String')); comport=char(comport(comindex)); %% s=instrfind('Status','open'); delete(s) %% serial_port=serial(comport,'Baudrate',baudrate,'Databit',databit,'Stopbit',stopbit,'Parity ','none'); % fwrite(s,2); serial_port.InputBufferSize =1; serial_port.Timeout=1000; save ('comfile', 'serial_port'); set(handles.setup,'enable','on'); disp('Da thiet lap xong '); Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 82 % - Executes on button press in Send function Send_Callback(hObject, eventdata, handles) clc; if isempty(dir('comfile.mat')) disp('Chua thiet lap cau hinh cho cong'); return end load comfile; data_tran = str2num(get(handles.datatosend,'string')); fopen(serial_port); tic disp('Sending please wait '); % hàm thực việc đưa giá trị điện áp để kiểm tra function dienap_Callback(hObject, eventdata, handles) com_port=handles.port; com_port.InputBufferSize =3; com_port.Timeout=1000; fopen(com_port); v= str2num(get(handles.volt,'String')); if v>5 disp('Gia tri dien ap lon > '); else data_tran= 819*v; disp(strcat('Gia tri dien ap la: ', num2str(v), ' (volt)' )); low = round( mod(data_tran , 64)); high= floor(data_tran / 64) + 192; %cho hai bit cao nhat bang fwrite(com_port,low); fwrite(com_port,high); end fclose(com_port); Mã chương trình cho giao diện thiết lập cấu hình cho thiết bị thu ảnh % - Executes on button press in setup function setup_Callback(hObject, eventdata, handles) % hObject handle to setup (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) inf=imaqhwinfo('winvideo'); Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 83 if isempty(inf.DeviceIDs) disp('Chua co thiet bi thu nhan anh dc cai dat'); imaqreset; set(handles.supportedformat,'String','') else s=get(handles.supportedformat,'String'); closepreview; if size(s,1)>1 index=get(handles.supportedformat,'value'); format=char(s(index)); vid=videoinput('winvideo',1,format); else vid=videoinput('winvideo',1); end start(vid); while vid.FramesAcquired0 end snap=data(:,:,1);%getsnapshot(vid); figure(1); [i,rect]=imcrop(snap); save ('Acquifile','vid','rect'); close (figure(1)); end % - Executes on button press in close function close_Callback(hObject, eventdata, handles) close(Acquisition); % - Executes on button press in cmdgetformats function cmdgetformats_Callback(hObject, eventdata, handles) inf=imaqhwinfo('winvideo'); if isempty(inf.DeviceIDs) disp('Chua co thiet bi thu nhan anh dc cai dat'); set(handles.supportedformat,'Value',1 ); set(handles.supportedformat,'string','Default' ); imaqreset; Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 84 else formats=inf.DeviceInfo.SupportedFormats; set(handles.supportedformat,'string',formats) end Mã chương trình cho giao diện đìều khiển vi kẹp % - Executes on button press in cmdObjdectec function cmdObjdectec_Callback(hObject, eventdata, handles) rect =[197 318 236 135]; i2=imread('imadd1.bmp');%dung anh , , i2=imcrop(i2,rect); mov = aviread('gripper.avi'); i1=imcrop(mov(1).cdata,rect); iadd=imadd(i1,i2); se90 = strel('line', 4, 90); se0 = strel('line', 4, 0); seD = strel('diamond',1); bw = im2bw(iadd); bw = imdilate(bw, [se90 se0]); bwfill=imfill(bw,'holes'); BWfinal = imerode(bwfill,seD); imed= edge(bwfill,'sobel'); [B,L] = bwboundaries(BWfinal,'holes'); % imshow(bwfill);hold on; %xac dinh duuong tron stats = regionprops(L,'Area','Centroid'); threshold = 0.94; for k = 1:length(B) % obtain (X,Y) boundary coordinates corresponding to label 'k' boundary = B{k}; % compute a simple estimate of the object's perimeter delta_sq = diff(boundary).^2; perimeter = sum(sqrt(sum(delta_sq,2))); if perimeter >0 % obtain the area calculation corresponding to label 'k' area = stats(k).Area; % compute the roundness metric Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 85 metric = 4*pi*area/perimeter^2; % display the results metric_string = sprintf('%2.2f',metric); % mark objects above the threshold with a black circle if (metric >0 ) % threshold centroid = stats(k).Centroid; r=fix(centroid(1)- boundary(1,2)) ; %ban kinh duong tron yi2=size(iadd,2); y0=fix(centroid(1)); x0=fix(centroid(2)); abs1=abs (y0 - yi2 / 2); % xac dinh xem toa tam co gan giua anh hay khong if abs180 break; end end end end handles.x0=x0; handles.y0=y0; handles.r=r; % chi so khung ben trai va ben phai frameLeft=1; frameRight=1; handles.frameLeft=frameLeft; handles.frameRight =frameRight; handles.mov = mov; handles.i2=i2; guidata(hObject, handles); set(handles.optAuto,'Enable','on'); set(handles.optManual,'Enable','on'); s=get(handles.listbox1,'String'); % s=strvcat(s,'Đã xác định vật'); s=strvcat(s,strcat('Tọa độ tâm vật:(',num2str(x0),',',num2str(y0),')')); s=strvcat(s,strcat('Đường kính vật là:',num2str(2*r))); set(handles.listbox1,'String',s); Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 86 function dk(hObject, eventdata, handles,frameLeft,frameRight) x0=handles.x0; y0=handles.y0; r=handles.r; rect =[197 318 236 135]; % i2=imread('imadd1.bmp');%dung anh , , % i2=imcrop(i2,rect); i2=handles.i2; % mov = aviread('gripper.avi'); mov=handles.mov; se90 = strel('line', 4, 90); se0 = strel('line', 4, 0); seD = strel('diamond',1); Ymax =size(i2,2); Xmax=size(i2,1); imblank(1:Xmax,1:Ymax) = 0; % 'lay anh ben phai i1=imcrop(mov(frameRight).cdata,rect); ima=imadd(i1,i2); bw = im2bw(ima); bw = imdilate(bw, [se90 se0]); bw = imfill(bw,'holes'); bw = imerode(bw ,seD); imed= edge(bw,'sobel'); if (imed(x0,y0+r)==1 | imed(x0,y0+r+1)==1 |imed(x0,y0+r+2)==1 ) imtong(:,y0:Ymax)=imed(:,y0:Ymax); end % lay anh ben trai i1=imcrop(mov(frameLeft).cdata,rect); ima=imadd(i1,i2); bw = im2bw(ima); bw = imdilate(bw, [se90 se0]); bw = imfill(bw,'holes'); bw = imerode(bw ,seD); imed= edge(bw,'sobel'); if (imed(x0,y0-r)==1 |imed(x0,y0-r+1)==1 |imed(x0,y0-r+2)==1 ) Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 87 imtong(:,1:y0)=imed(:,1:y0); end figure(1) ; imshow(imtong) handles.frameLeft=frameLeft; handles.frameRight =frameRight; guidata(hObject,handles); % - Executes on button press in cmdRun function cmdRun_Callback(hObject, eventdata, handles) x0=handles.x0; y0=handles.y0; r=handles.r; rect =[197 318 236 135]; i2=imread('imadd1.bmp');%dung anh , , i2=imcrop(i2,rect); mov = aviread('gripper.avi'); se90 = strel('line', 4, 90); se0 = strel('line', 4, 0); seD = strel('diamond',1); Ymax =size(i2,2); Xmax=size(i2,1); imblank(1:Xmax,1:Ymax) = 0; left = false; right=false; for i=1:1:60 i1=imcrop(mov(i).cdata,rect); ima=imadd(i1,i2); bw = im2bw(ima); bw = imdilate(bw, [se90 se0]); bw = imfill(bw,'holes'); bw = imerode(bw ,seD); imed= edge(bw,'sobel'); if ~right imtong(:,y0:Ymax)=imed(:,y0:Ymax); if imed(x0 ,y0+r+2 )==0&imed(x0 ,y0+r+1 )==0 & imed(x0 ,y0+r )==0 right=true; Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp 88 end end if ~ left imtong(:,1:y0)=imed(:,1:y0); if imed(x0+2,y0-r )==0 & imed(x0+2,y0-r+1 )==0 & imed(x0+2,y0-r-1 )==0 left=true; end end figure(1) ; imshow(imtong) if left & right break end end s=get(handles.listbox1,'String'); s=strvcat(s,'Đã kẹp vật'); set(handles.listbox1,'String',s); % - Executes on button press in cmdLeft function cmdLeft_Callback(hObject, eventdata, handles) frameLeft=handles.frameLeft+3; frameRight=handles.frameRight; dk(hObject, eventdata, handles,frameLeft,frameRight); % - Executes on button press in cmdRight function cmdRight_Callback(hObject, eventdata, handles) frameLeft=handles.frameLeft; frameRight=handles.frameRight+3; dk(hObject, eventdata, handles,frameLeft,frameRight); % - Executes on button press in cmdBoth function cmdBoth_Callback(hObject, eventdata, handles) frameLeft=handles.frameLeft+3; frameRight=handles.frameRight+3; dk(hObject, eventdata, handles,frameLeft,frameRight); Nguyễn Văn Thắng – Luận văn thạc sĩ mã chương trình điều khiển vi kẹp ... vi? ??c điều khiển giám sát mắt thường trực tiếp tay Trong luận văn thực toán xây dựng hệ giám sát, điều khiển vi kẹp dựa vào cơng nghệ thị giác máy tính(computer vision) 1.2 Cách giải Vi kẹp dùng... giám sát điều khiển trực tiếp mà thay vào ta giám sát điều khiển thơng qua ảnh vi kẹp thu thơng qua kính hiển vi quang học Với ảnh vi kẹp phóng to ảnh với tỉ lệ định ta giám sát chuyển động vi. .. phần vi kẹp chụp qua kính hiển vi 75 Hình 4.19 Quá trình tay kẹp tiến lại kẹp vật 76 Hình 4.20 Điều khiển vi kẹp chế độ điều khiển tay 77 Hình 4.22 Điều khiển tay phải vi kẹp

Ngày đăng: 16/03/2021, 12:27

Mục lục

  • Trang bìa

  • Mục lục

  • MỞ ĐẦU

  • 1.1 Sự hình thành bài toán

  • 1.2 Cách giải quyết

  • 1.3. Sơ lược về vi kẹp

  • 1.3.1 Giới thiệu

  • 1.3.2 Chế tạo

  • 1.3.3 Vi chấp hành điện nhiệt polymer-silicon

  • 1.3.4 Thông số kỹ thuật của vi kẹp có gắn cảm biến

  • 2.1. Tổng quan về một hệ thống xử lý ảnh

  • 2.1.1. Các quá trình trong xử lý ảnh

  • 2.1.2. Các vấn đề cơ bản trong xử lý ảnh

  • 2.2. Một số phương pháp biểu diễn ảnh

  • 2.2.1. Mã loạt dài

  • 2.2.3. Mã tứ phân

  • 2.3. Một số lý thuyết xử lý và nhận dạng

  • 2.3.1. Lý thuyết xử lý ảnh 2D

  • 2.3.2. Nâng cao chất lượng ảnh

  • 2.3.3. Phân đoạn ảnh và tìm biên ảnh

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

Tài liệu liên quan