Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
3,17 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - LÊ THANH ĐỀ TÀI: NGHIÊNCỨUĐỘCHÍNHXÁCKHIĐOPROFILBỀMẶTCHITIẾTMÁYBẰNGPHƯƠNGPHÁPQUÉTLASER LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH:CÔNG NGHỆ CƠ KHÍ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄNVĂN VINH HÀ NỘI - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser MỤC LỤC Mục lục……………………………………………………………………… Danh mục hình vẽ……………………………………………… .4 Lời mở đầu…………………………………………………………… CHƯƠNG PHƯƠNGPHÁP VÀ THIẾT BỊ QUÉTLASER 3D…… … 1.1 Giới thiệu máyquét 3D .8 1.2 Sơ đồ nguyên lý máyquétlaser 3D ……………… .10 1.3 Nguyên lý làm việc máyquétlaser 3D ……………… ………… 11 1.4 Ưu, nhược điểm công nghệ Scan laser 3D…………….…… …… 13 1.5 Ứng dụng công nghệ Scan Laser 3D……………………… …….…….15 Kết luận…………………………………………………………… ……….18 CHƯƠNG CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN ĐỘCHÍNHXÁC CỦA PHÉP ĐO……………………………………………………………………19 2.1 Kích thước chùm laser…………………………………………… 20 2.2 Hệ quang hội tụ…………… 21 2.2.1 Quang sai cầu sai .22 2.2.2 Quang sai coma………………….…………………………… 23 2.2.3 Quang sai loạn thị…………………………………………… 24 2.2.4 Quang sai méo ảnh…………………………………………… 25 2.2.5 Quang sai sai sắc……………………………………………….26 2.2.6 Quang sai thấu kính trụ………………………………….…26 2.3 Sai số độ phân giải CCD……………………………………… 27 CHƯƠNG THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ĐẦU ĐO VÀ CHƯƠNG TRÌNH XỬ LÝ SỐ LIỆU ĐO………………………………….29 3.1 Xây dựng hàm truyền .…………….29 3.1.1 Sơ đồ tạo ảnh thấu kính hội tụ…………………………….29 Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser 3.1.2 Lựa chọn hệ tọa độ hệ thống đo………………………… 30 3.1.3 Hàm truyền…………………………………………………….30 3.2 Thiết kế xây dựng cụm khí đầu đo……………… 35 3.2.1 Bộ phận thay đổi khoảng cách Z0 .36 3.2.2 Bộ phận thay đổi góc ω 38 3.3 Lựa chọn nguồn laser………………………………………………… 39 3.4 Lựa chọn camera (webcam)…………… …………………………… 42 3.5 Xây dựng chương trình xử lý số liệu đo……………………………… 43 3.5.1 Thu hình từ Camera (webcam)……………………………… 44 3.5.2 Xử lý ảnh số………………………………………………… 45 3.5.3 Xử lý số liệu đo……………………………………………… 52 3.5.4 Mô bềmặt vật đo………………………………………55 CHƯƠNG THỰC NGHIỆM VỀ PHƯƠNGPHÁP ĐO…… 57 4.1 Mô hình thực nghiệm 57 4.2 Tạo chùm sáng dạng đường……………………………………………59 4.3 Đánh giá sai lệch kích thước khối hộp 60 4.3.1 Đánh giá sai lệch thay đổi Z0 .60 Đánh giá sai lệch theo trục X .63 Đánh giá sai lệch theo trục Y .65 4.3.2 Đánh giá sai lệch thay đổi ω 66 Đánh giá sai lệch theo trục X 67 Đánh giá sai lệch theo trục Y………………………………… 67 4.4 Đánh giá sai lệch kích thước khối trụ Φ20(mm) .67 4.4.1 Đánh giá sai lệch thay đổi Z0 67 Đánh giá sai lệch theo trục X 67 Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Đánh giá sai lệch theo trục Y 68 4.4.2 Đánh giá sai lệch thay đổi ω .69 Đánh giá sai lệch theo trục X 69 Đánh giá sai lệch theo trục Y……………………………………69 4.5 Đánh giá sai lệch kích thước khối trụ Φ15(mm) .70 4.5.1 Đánh giá sai lệch thay đổi Z0 70 Đánh giá sai lệch theo trục X 70 Đánh giá sai lệch theo trục Y 70 4.5.2 Đánh giá sai lệch thay đổi ω .71 Đánh giá sai lệch theo trục X 71 Đánh giá sai lệch theo trục Y……………………………………71 KẾT LUẬN Kết đạt 72 Hướng phát triển ứng dụng 72 TÀI LIỆU THAM KHẢO 74 TÓM TẮT 75 PHỤ LỤC 77 Phụ lục A: Một số hình ảnh mô hình…………………………… ………….77 Phụ lục B: Mã nguồn chương trình dò tìm vết sáng 79 Phụ lục C: Mã nguồn chương trình xử lý kết đo 84 Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser DANH MỤC CÁC HÌNH VẼ Hình 1.1: Phươngphápquétlaser 3D……………………………………………….9 Hình 1.2: Sơ đồ nguyên lý máyquétlaser 3D………………………………… …10 Hình 1.3: Quan hệ dịch chuyển vật dịch chuyển ảnh………………………… 11 Hình 1.4: Hình ảnh số máyquét Laser……………………………………… 13 Hình 1.5: Ứng dụng thiết kế ngược kiểm tra sản phẩm………………… 15 Hình 1.6: Ứng dụng khảo cổ y học……………………………………….17 Hình 1.7: Ứng dụng việc cải tiến kiểu dáng……………………………… 17 Hình 2.1: Cấu trúc đầu đo Laser………………………………………………19 Hình 2.2 Mặt phẳng laser…………………………………………………………20 Hình 2.3: Quang sai cầu sai…………………………………………………….…22 Hình 2.4: Ảnh hưởng cầu sai tới vị trí tiều điểm………………………… …22 Hình 2.5: Đo quang sai cầu sai……………………………………………………23 Hình 2.6: Quang sai coma…………………………………………………………23 Hình 2.7: Quang sai loạn thị…………………………………………………… 24 Hình 2.8: Quang sai méo mặt ảnh……………………………………………… 25 Hình 2.9: Quang sai méo ảnh…………………………………………………… 25 Hình 2.10: Quang sai sai sắc…………………………………………………… 26 Hình 2.11: Chùm tía Laser sau qua thấu kính trụ…………………… … 26 Hình 2.12: Quan hệ khoảng cách quang sai thấu kính trụ……… …27 Hình 2.13: Sai số độ phân giải CCD…………………………………… 28 Hình 3.1: Sơ đồ tạo ảnh qua thấu kính hội tụ…………………………………… 29 Hình 3.2: Mô hình tạo ảnh lên CCD vết sang……………………………… 31 Hình 3.3: Tọa độ điểm P1 CCD…………………………………………… 35 Hình 3.4: Các chitiết phận thay đổi khoảng cách Z0……………….… 37 Hình 3.5: Hệ thống thay đổi khoảng cách Z0…………………………………… 38 Hình 3.6: Chitiết gá camera (webcam)……………………………………………38 Hình 3.7: Bộ phận thay đổi góc ω…………………………………………………39 Hình 3.8: Chùm tia tới hội thấu kính trụ………………………………………40 Hình 3.9: Form chương trình……………………………………………43 Hình 3.10: Thuật toán thu hình từ camera (webcam)…………………………… 44 Hình 3.11: Thu ảnh từ camera (webcam)………………………………………….45 Hình 3.12 Ảnh vết sáng 47 Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Hình 3.13: Ảnh vệt sáng sau tìm đường cong đặc trưng .48 Hình 3.14: Sơ đồ thuật toán xác định đường đặc trưng……………………………50 Hình 3.15: Sơ đồ thuật toán so sánh sai lệch theo phương X…………………… 54 Hình 3.16: Bềmặt cầu…………………………………………………………… 56 Hình 4.1: Mô hình thực nghiệm………………………………………………… 57 Hình 4.2: Chitiếtđo .57 Hình 4.3: Mô hình kiểm tra độ vuông góc chùm laser với bềmặtchitiếtđo 62 Hình 4.4: Mô hình kiểm tra độ vuông góc mặt phẳng tạo quang trục Webcam chùm tia laser với mặt trước vật đo 62 Hình 4.5 Form chương trình 63 Hình 4.6: Kết đánh giá sai số theo trục X thay đổi Z0 .64 Hình 4.7: Sơ đồ thể mối quan hệ ∆X Z0 65 Hình 4.8: Kết đánh giá sai số theo trục Y thay đổi Z0 .65 Hình 4.9: Kết đánh giá sai số theo trục X thay đổi ω 66 Hình 4.10: Kết quải đánh giá sai số theo trục Y thay đổi ω .67 Hình 4.11: Kết quải đánh giá sai số theo trục X thay đổi Z0 khối trụ Φ20(mm) 68 Hình 4.12: Kết quải đánh giá sai số theo trục Y thay đổi Z0 khối trụ Φ20(mm) 68 Hình 4.13: Kết quải đánh giá sai số theo trục X thay đổi ω khối trụ Φ20(mm) 69 Hình 4.14: Kết quải đánh giá sai số theo trục Y thay đổi ω khối trụ Φ20(mm) 69 Hình 4.15: Kết quải đánh giá sai số theo trục X thay đổi Z0 khối trụ Φ15(mm) 70 Hình 4.16: Kết quải đánh giá sai số theo trục Y thay đổi Z0 khối trụ Φ15(mm) 70 Hình 4.17: Kết quải đánh giá sai số theo trục X thay đổi ω khối trụ Φ15(mm) 71 Hình 4.18: Kết quải đánh giá sai số theo trục Y thay đổi ω khối trụ Φ15(mm) 71 Hình A.1: Góc Phải mô hình………………………………………………… 77 Hình A.2: Góc trái mô hình………………………………………………… 78 Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser LỜI NÓI ĐẦU Sự đời Laser vào năm 60 kỉ XX với phát triển khoa học kĩ thuật tính mở nhiều ứng dụng lớn lĩnh vực khác nhau: đo lường, y tế, in ấn, truyền thông Trong đo lường điều khiển đại, việc thu thập xử lý thông tin qua ảnh để nhận biết đối tượng điều khiển đối tượng quan tâm ứng dụng rộng rãi, phươngpháp giúp ta thu nhận nhiều thông tin từ đối tượng mà không cần tác động trực tiếp đến đối tượng Việc kết hợp Laser thiết bị kiểm tra đo đạc cho phép đạt độxác cao, thời gian lấy mẫu nhanh đạt hàng ngàn lần giây Ngoài ra, phát triển khoa học máy tính trợ giúp đáng kể cho người việc thết kế mô công nghiệp từ kích thước đo sản phẩm Thị giác máy tính phần thay nhãn quan người việc nhận dạng ảnh tự động xử lý liệu Cho đến năm đầu thập kỷ 90, hàng loạt hệ máyđo quang học đời mở rộng nhiều khả ứng dụng giải pháp 3D không công nghiệp, với độxác ngày cao thiết bị đo quang học, ứng dụng máyquét 3D mở rộng nhiều lĩnh vực khác như: y học, kiến trúc, khảo cổ học, điêu khắc, phim hoạt hình… Trong công nghiệp, máyquét 3D laser số hoá tức thời hình dáng chitiết công nghiệp khác nhau… Các liệu số hoá mô cách xác thể hình máy tính Bằng cách so sánh liệu quét sử dụng phần mềm ứng dụng, đưa báo cáo đo kiểm cách nhanh chóng dựa phân tích sai số tổng thể, độ dày cạnh đường kính hình học Việc cho phép cải tiến tốc độ chất lượng trình sản xuất cách rõ rệt Điều đặc biệt hiệu cho việc đo kiểm, lấy liệu vật có chiều sâu Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Với ứng dụng thiết thực hiệu đó, đề tài đưa ý tưởng nghiêncứu chế tạo thiết bị đo dựa công nghệ đo không tiếp xúc ứng dụng cảm biến Laser Việt nam Nhiệm vụ luận văn nghiêncứu yếu tố ảnh hưởng đến độxácđo Profin bềmặtchitiếtphươngphápquét 3D laser Hướng thiết bị đo ứng dụng xử lí ảnh để đưa kết đoPhươngpháp xử lí có phức tạp giải việc đo đồng thời nhiều thông số mô hình học bềmặtchitiết Tuy nhiên vấn đề trình bày luận văn có nhiều hạn chế sai sót Tôi mong nhận góp ý chân thành thầy cô bạn để giúp Tôi hoàn thiện mặt thiết kế cho thiết bị sở lý thuyết tính toán phươngpháp phục vụ cho công việc chế tạo thiết bị đo hoàn chỉnh sau Một lần nữa, Tôi xin chân thành cảm ơn tới thầy giáo hướng dẫn Ts Nguyễn Văn Vinh thầy giáo, cô giáo Bộ môn Cơ khíxác Quang học – trường ĐHBK Hà Nội nhiệt tình giúp đỡ Tôi trình học tập hoàn thành luận văn Hà nội, tháng 10 năm 2010 Học viên Lê Thanh Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser CHƯƠNG 1: PHƯƠNGPHÁP VÀ THIẾT BỊ QUÉTLASER 3D 1.1 Giới thiệu máyquét 3D Kỹ thuật đồ họa phát triển khoa học máy tính trợ giúp đáng kể cho người việc thết kế mô công nghiệp Cho đến năm đầu thập kỷ 90 máyđo tọa độ ba chiều đưa vào dây truyền sản xuất nhằm kiểm tra, đánh giá chất lượng sản phẩm Tiếp đó, hàng loạt hệ máyđo quang học đời mở rộng nhiều khả ứng dụng giải pháp 3D không công nghiệp, với độxác ngày cao thiết bị đo quang học, ứng dụng máyquét 3D mở rộng nhiều lĩnh vực khác như: y học, kiến trúc, khảo cổ học, điêu khắc, phim hoạt hình… Ngày nay, máyđo ba toạ độ (CMM) sử dụng rộng rãi công nghiệp khí để đo kích thước, vị trí hình dạng phận khíChính mà CMM đóng vai trò quan trọng công nghiệp ngày Nhưng máy CMM có độxác cao đo tốc độđo chậm nên khó đochitiết có bềmặt phức tạp khả tự động hóa trình đo khó khăn Đó nhược điểm lớn máyđo tọa độ Sự đời máyquét 3D thuộc dòng máyđo ba toạ độ không tiếp xúc giải vấn đề khó khăn máyđo ba tọa độ (CMM).Máy quét 3D có khả ứng dụng rộng rãi nhiều lĩnh vực ôtô, thiết kế khuôn, đo lường Phươngpháp có tất ưu điểm phươngphápđo không tiếp xúc: đochitiết có bềmặt mềm, dễ biến dạng, chiều dày mỏng, tốc độđo cao không tiếp xúc trực tiếp với chitiết Đặc Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser biệt ứng dụng để đo đạc môi trường có nhiệt độ cao, chitiết động gia công cắt gọt mà đảm bảo kết đoxác Một ưu điểm vượt trội máyquét 3D dùng cảm biến CCD đo đạc nơi mà người chạm tới bên đường ống dẫn dầu, mối hàn thân tàu thuỷ… Có thể tự động hoá trình đo Các máyquét 3D phổ biến ngày gồm: máyquét 3D sử dụng sóng siêu âm, máyquét 3D laser Các máyquét 3D dựa theo nguyên tắc: Bềmặtchitiết chia thành lưới điểm đo gồm điểm có toạ độ (x, y, z), máyđo lấy toạ độ điểm để xử lý Các điểm lấy toạ độ nhờ đầu đo không tiếp xúc chuyển động liên tục, ta gọi chuyển động chuyển động quétbềmặt CCD Thấu kính Chitiết Nguồn laser Hình 1.1: Phươngphápquétlaser 3D Hình 1.1 cho ta thấy phươngphápquétlaser 3D sử dụng tia Laser có phận phát phận thu Học viên: LÊ THANH Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser KẾT LUẬN Kết đạt Phươngphápđo dựa vào phươngphápquétlaser 3D bềmặtchitiếtđophươngpháp Việt Nam Vì tài liệu nghiêncứuphươngpháp hạn chế, khó sưu tập Tuy nhiên với hướng dẫn nhiệt tình thầy giáo hướng dẫn nỗ lực thân Tôi xây dựng tương đối hoàn chỉnh sở lý thuyết phươngphápquét laser, xây dựng cụm đầu đo cho phép thay đổi thông số hình học Z0, ω chương trình xử lý số liệu để kiểm tra mức độ ảnh hưởng thông số hình học cụm đầu đo Phần thực nghiệm dựa việc xây dựng mô hình thiết bị đo cho phép thay đổi thông số hình học đầu đo Nó cho phép thay đổi kích thước quan hệ nguồn laser Camera (webcam) như: khoảng cách quang tâm thấu kính Camera đường tâm nguồn laser Z0; góc hợp mặt phẳng CCD Camera với phương thẳng đứng ω Xây dựng thuật toán thu ảnh vết sáng dò tìm điểm thuộc đường đặc trưng vết sáng Đánh giá độ sai lệch kích thước theo hai trục X Y thay đổi thông số Z0, ω đầu đo Hướng phát triển ứng dụng Phươngphápđo dựa vào phươngphápquétlaser lên vật thể đophươngphápđo với tốc độđo nhanh độxácđo cao Các tìm hiểu nghiêncứu luận văn dùng để làm sở để đánh giá mức độ ảnh hưởng thông số hình học cụm đầu đo, qua ta đưa thông số hình học phù hợp cụm đầu đo để có độxác cao ứng dụng phươngphápquétlaser để đo kích thước chitiết Học viên: LÊ THANH 72 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Ngoài có sở lý thuyết, phươngpháp xử lý ảnh, hàm truyền chương trình xử lý số liệu đo mở nhiều hướng nghiêncứu khác liên quan đến phươngphápquétlaser ứng dụng đo lường Học viên: LÊ THANH 73 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser TÀI LIỆU THAM KHẢO Tiếng Việt Lương Mạnh Bá, Nguyễn Thanh Thủy (2002), Nhập môn xử lý ảnh số, Nhà xuất khoa học kỹ thuật Lưu Thủy Chung (2009), Xử lý số liệu đo kích thước chitiếtphươngphápquétlaser - Luận văn thạc sĩ Dương Đức Hiếu, Vũ Hoàng Tuấn, Nguyễn Dương Hùng (2010), Nghiêncứu chế tạo máyquét lazer 3D – Đồ án tốt nghiệp Đinh Thế Thìn (2009), Nghiêncứu xây dựng sở thiết kế thiết bị đo thông số hình học chitiết dạng phươngpháp chụp ảnh vết chiếu laser – Luận văn thạc sĩ Nguyễn Tiến Thọ, Nguyễn Xuân Bảy (2005), Kỹ Thuật Đo Lường Kiểm Tra Trong Chế Tạo Cơ Khí, Nhà xuất khoa học kỹ thuật Ninh Đức Tốn (2004), Dung sai lắp ghép, Nhà xuất khoa học kỹ thuật Trần Đình Tường, Hoàng Hồng Hải (2006), Quang kỹ thuật, Nhà xuất khoa học kỹ thuật Tiếng Anh Joseph R.Bietry (2000), Laser line generator system, US Patent number 6069748 S.G Hoggar, Mathematics of Digital Image, Cambridge University Press Học viên: LÊ THANH 74 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser PHỤ LỤC Phụ lục A: Một số hình ảnh mô hình Hình A.1: Góc phải mô hình Học viên: LÊ THANH 75 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Hình A.21: Góc trái mô hình Học viên: LÊ THANH 76 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Phụ lục B: Mã nguồn chương trình dò tìm vết sáng Đoạn mã chương trình xác định đường trung bình vết sáng Chương trình viết theo ngôn ngữ Visual Basic.net 2008 Imports System.IO.File Imports System.IO Imports System.Math Public Class MainForm Structure ArrPoints Public x As Double Public y As Double 'Public zz0 As Integer 'Public goc0 As Integer End Structure Structure ArrXZ Public x As Double Public Z As Double 'Public zz0 As Integer 'Public goc0 As Integer End Structure Structure ArrYZ Public y As Double Public Z As Double 'Public zz0 As Integer 'Public goc0 As Integer End Structure Dim X0 As Integer Dim Y0 As Integer '///////////////////////////////////////////////// Dim Z0 As Double ' Khoang cach Z0 Dim b As Double ' Khoang cach giua quang tam thau kinh va CCD Dim goc As Double Dim dpg As Double 'Do phan giai cua CCD '////////////////////////////////////////////////// Dim m_image As Long Dim r_image As Long '////////////////////////////////////////////////// Public Zxarr(100) As ArrXZ Public Zyarr(100) As ArrYZ Dim listp(640) As ArrPoints Dim nump As Integer ' so dem cua listP Public numX, numY As Integer ' so dem cua Zxarr va Zyarr '//////////////////// Học viên: LÊ THANH 77 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser Dim numc As Integer Const pi = 3.1415 Private Sub Run_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Run.Click Dim x, y As Integer ' So pixel theo phuong x va y Dim xt, yt As Double ' Toa thuc cua diem sang Dim xc, yc As Double ' Toa cua diem sang tren CCD Dim ytb As Integer Dim i As Integer Dim c As Color Dim bm As Bitmap Dim strg As String Timer1.Enabled = False i = nump = ytb = bm = PictureBox1.Image For x = To bm.Width - For y = To bm.Height - c = bm.GetPixel(x, y) If c.R = 255 Then i = i + ytb = ytb + y End If Next y If i >= Then ytb = Int(ytb / i) 'bp.SetPixel(x, ytb, Color.FromArgb(20, 20, 20)) xc = (x - X0) * dpg yc = (ytb - Y0) * dpg 'xt = xc * Z0 / (b * Cos(goc * pi / 180) - yc * Sin(goc * pi / 180)) 'yt = Z0 * (b * Sin(goc * pi / 180) + yc * Cos(goc * pi / 180)) / (b * Cos(goc * pi / 180) - yc * Sin(goc * pi / 180)) xt = (-dpg * 640 / + x * dpg) * Z0 / (-b * Sin(goc * pi / 180) + Cos(goc * pi / 180) * dpg * 480 / - ytb * dpg * Sin(goc * pi / 180)) yt = (-b * Cos(goc * pi / 180) - Sin(goc * pi / 180) * dpg * 480 / + ytb * dpg * Sin(goc * pi / 180)) * Z0 / (-b * Sin(goc * pi / 180) + Cos(goc * pi / 180) * dpg * 480 / - ytb * dpg * Sin(goc * pi / 180)) listp(nump).x = xt listp(nump).y = yt nump = nump + strg = Str(xt) + ";" + Str(yt) ListBox1.Items.Add(strg) End If i = ytb = Next x 'xac dinh chieu dai theo phuong X va Y Học viên: LÊ THANH 78 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser numc = numc + Label4.Text = Str(numc) LongXY() If numc = 15 Then Run.Enabled = False End If End Sub Private Sub LongXY() Dim i, j As Integer Dim ytg, xtg, ymax As Double Dim x(2) As Double ytg = listp(0).y xtg = listp(0).x j = For i = To nump If Abs(listp(i).y - ytg) > Then j = j + If j Then Zxarr(numX).x = Abs(x(1) - x(2)) Zxarr(numX).Z = Z0 numX = numX + End If ymax = ytg = listp(0).y For i = To nump If ymax < Abs(listp(i).y - listp(i - 1).y) Then ymax = Abs(listp(i).y - listp(i - 1).y) End If Next Zyarr(numY).y = ymax Zyarr(numY).Z = Z0 numY = numY + End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AxVideoOCX1.Stop() AxVideoOCX1.Close() End End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Học viên: LÊ THANH 79 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser X0 = 320 Y0 = 220 '///////////////////////// Z0 = 80 b = 21 goc = 60 dpg = 0.0375 '///////////////////////// numX = numY = '//////////////////////// numc = End Sub Private Sub Cam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cam.Click Timer1.Enabled = True End Sub Private Sub Init_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Init.Click AxVideoOCX1.SetErrorMessages(False) If Not AxVideoOCX1.Init Then MsgBox(AxVideoOCX1.GetLastErrorString) Else m_image = AxVideoOCX1.GetGrayImageHandle r_image = AxVideoOCX1.GetGrayImageHandle If Not AxVideoOCX1.Start Then MsgBox(AxVideoOCX1.GetLastErrorString) End If End If Timer1.Enabled = True Timer1.Interval = 40 Cam.Enabled = True Run.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim show_result As Boolean If (AxVideoOCX1.Capture(m_image)) Then If (AxVideoOCXTools1.Threshold(m_image, 150, r_image)) Then ' Display result later show_result = True End If ' If a Tool was used, display the resulting image, otherwise show original AxVideoOCX1.Capture(m_image) AxVideoOCX1.Show(m_image) Học viên: LÊ THANH 80 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser PictureBox1.Image = AxVideoOCX1.ToPicture(r_image) End If End Sub Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click AxVideoOCX1.Stop() AxVideoOCX1.Close() End End Sub Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click Dim save As New SaveFileDialog 'Khai bao chuoi loc tap tin Dim chuoi As String Dim i As Integer chuoi = "Text files(*.txt)" chuoi += "|*.txt|All files(*.*)|*.*" save.Filter = chuoi save.Title = "Luu Tap Tin" save.ShowDialog() If save.FileName "" Then 'luu tap tin vua chon Dim taptin As TextWriter taptin = CreateText(save.FileName) For i = To ListBox1.Items.Count - taptin.WriteLine(ListBox1.Items.Item(i)) Next taptin.Flush() taptin.Close() End If End Sub Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click SaveToolStripMenuItem_Click(sender, e) End Sub Private Sub ChartToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChartToolStripMenuItem.Click Chart.ShowDialog() End Sub Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click AxVideoOCX1.Stop() AxVideoOCX1.Close() Học viên: LÊ THANH 81 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser End End Sub Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged Z0 = CDbl(ComboBox1.Text) numc = Run.Enabled = True 'Label3.Text = Str(Z0) End Sub Private Sub ComboBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.TextChanged goc = CDbl(ComboBox2.Text) numc = Run.Enabled = True End Sub End Class Phụ lục C: Mã nguồn chương trình xử lý kết đo Imports System.Windows.Forms Imports System.Drawing.Drawing2D Imports System.Math Public Class Chart Dim CacDiemTrenDoThi(359) As PointF, BienDem As Integer Dim KhoangChiaDo As Double, ViTriTrucHoanh As Double Dim gNoiVe As Graphics 'Dim pDuongBieuDien As Pen = New Pen(Color.Blue, 1) Dim pTrucHoanh As Pen = New Pen(Color.Red, 1) Dim pmau As Pen = New Pen(Color.Blue, 1) Dim pluoi As Pen = New Pen(Color.DarkGray, 1) Dim pduong As Pen = New Pen(Color.DarkViolet, 1) Dim pdiem As Pen = New Pen(Color.Chocolate, 4) Private Sub truc() Dim i As Integer Dim xi, yi As Integer With (gNoiVe) Clear(Panel1.BackColor) 'New SolidBrush(Color.Green), 120, 20) DrawLine(pmau, 30, CInt(ViTriTrucHoanh) - 150, _ Panel1.Width - 5, CInt(ViTriTrucHoanh) - 150) xi = For i = To CInt(Panel1.Width / 10) DrawLine(pluoi, xi, 1, _ xi, Panel1.Height - 1) xi = xi + 10 Next yi = Học viên: LÊ THANH 82 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser For i = To CInt(Panel1.Height / 10) DrawLine(pluoi, 1, yi, _ Panel1.Width - 1, yi) yi = yi + 10 Next DrawLine(pTrucHoanh, 5, CInt(ViTriTrucHoanh), _ Panel1.Width - 5, CInt(ViTriTrucHoanh)) DrawLine(pTrucHoanh, Panel1.Width - 15, CInt(ViTriTrucHoanh) - 3, _ Panel1.Width - 5, CInt(ViTriTrucHoanh)) DrawLine(pTrucHoanh, Panel1.Width - 15, CInt(ViTriTrucHoanh) + 3, _ Panel1.Width - 5, CInt(ViTriTrucHoanh)) ' ve truc tung DrawLine(pTrucHoanh, 30, 10, _ 30, Panel1.Height - 10) DrawLine(pTrucHoanh, 27, 20, _ 30, 10) DrawLine(pTrucHoanh, 33, 20, _ 30, 10) End With End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Label1.Text = "" Label1.Visible = False Label2.Visible = False Close() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim x, xx As Integer Dim y, yy As Integer Dim z As Double Label1.Text = "X" Label1.Visible = True Label2.Visible = True truc() For i = To 14 DataGridView1.Rows.Item(0).Cells(i).Value = Str(Form1.Zxarr(i).x) Next With (gNoiVe) For i = To 13 x = 30 * i + 30 xx = 30 * i + 60 y = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i).x - 20)) yy = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i + 1).x - 20)) DrawLine(pdiem, x - 2, y, x + 2, y) Học viên: LÊ THANH 83 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser pduong = New Pen(Color.DarkBlue, 1) DrawLine(pduong, x, y, _ xx, yy) DrawLine(pdiem, xx - 2, yy, xx + 2, yy) z = Form1.Zxarr(i).Z Next DrawLine(pduong, Panel1.Width - 60, 10, Panel1.Width - 10, 10) DrawLine(pdiem, Panel1.Width - 37, 10, Panel1.Width - 33, 10) DrawString("Z0=" + Str(z), New Font("Times New Roman", 8), _ New SolidBrush(Color.DarkBlue), Panel1.Width - 100, 4) '/////////////////////////////////////////////////////////// For i = To 14 DataGridView1.Rows.Item(1).Cells(i).Value = Str(Form1.Zxarr(i + 15).x) Next For i = 15 To 28 x = 30 * (i - 15) + 30 xx = 30 * (i - 15) + 60 y = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i).x - 20)) yy = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i + 1).x - 20)) DrawLine(pdiem, x - 2, y, x + 2, y) pduong = New Pen(Color.Brown, 1) DrawLine(pduong, x, y, _ xx, yy) DrawLine(pdiem, xx - 2, yy, xx + 2, yy) z = Form1.Zxarr(i).Z Next DrawLine(pduong, Panel1.Width - 60, 25, Panel1.Width - 10, 25) DrawLine(pdiem, Panel1.Width - 37, 25, Panel1.Width - 33, 25) DrawString("Z0=" + Str(z), New Font("Times New Roman", 8), _ New SolidBrush(Color.Brown), Panel1.Width - 100, 19) '/////////////////////////////////////////////////////////// For i = To 14 DataGridView1.Rows.Item(2).Cells(i).Value = Str(Form1.Zxarr(i + 30).x) Next For i = 30 To 43 x = 30 * (i - 30) + 30 xx = 30 * (i - 30) + 60 y = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i).x - 20)) yy = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i + 1).x - 20)) DrawLine(pdiem, x - 2, y, x + 2, y) pduong = New Pen(Color.Green, 1) DrawLine(pduong, x, y, _ xx, yy) DrawLine(pdiem, xx - 2, yy, xx + 2, yy) z = Form1.Zxarr(i).Z Next DrawLine(pduong, Panel1.Width - 60, 40, Panel1.Width - 10, 40) DrawLine(pdiem, Panel1.Width - 37, 40, Panel1.Width - 33, 40) Học viên: LÊ THANH 84 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser DrawString("Z0=" + Str(z), New Font("Times New Roman", 8), _ New SolidBrush(Color.Green), Panel1.Width - 100, 34) '/////////////////////////////////////////////////////////// For i = To 14 DataGridView1.Rows.Item(3).Cells(i).Value = Str(Form1.Zxarr(i + 45).x) Next For i = 45 To 58 x = 30 * (i - 45) + 30 xx = 30 * (i - 45) + 60 y = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i).x - 20)) yy = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i + 1).x - 20)) DrawLine(pdiem, x - 2, y, x + 2, y) pduong = New Pen(Color.Violet, 1) DrawLine(pduong, x, y, _ xx, yy) DrawLine(pdiem, xx - 2, yy, xx + 2, yy) z = Form1.Zxarr(i).Z Next DrawLine(pduong, Panel1.Width - 60, 55, Panel1.Width - 10, 55) DrawLine(pdiem, Panel1.Width - 37, 55, Panel1.Width - 33, 55) DrawString("Z0=" + Str(z), New Font("Times New Roman", 8), _ New SolidBrush(Color.Violet), Panel1.Width - 100, 49) '/////////////////////////////////////////////////////////// For i = To 14 DataGridView1.Rows.Item(4).Cells(i).Value = Str(Form1.Zxarr(i + 60).x) Next For i = 60 To 73 x = 30 * (i - 60) + 30 xx = 30 * (i - 60) + 60 y = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i).x - 20)) yy = CInt(ViTriTrucHoanh) - 150 - CInt(100 * (Form1.Zxarr(i + 1).x - 20)) DrawLine(pdiem, x - 2, y, x + 2, y) pduong = New Pen(Color.Black, 1) DrawLine(pduong, x, y, _ xx, yy) DrawLine(pdiem, xx - 2, yy, xx + 2, yy) z = Form1.Zxarr(i).Z Next DrawLine(pduong, Panel1.Width - 60, 70, Panel1.Width - 10, 70) DrawLine(pdiem, Panel1.Width - 37, 70, Panel1.Width - 33, 70) DrawString("Z0=" + Str(z), New Font("Times New Roman", 8), _ New SolidBrush(Color.Black), Panel1.Width - 100, 64) End With End Sub Private Sub Chart_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load KhoangChiaDo = Panel1.Width / 360 Học viên: LÊ THANH 85 Cao học CNCK khóa 2008 - 2010 NghiêncứuđộxácđoProfilbềmặtchitiếtmáyphươngphápquétLaser ViTriTrucHoanh = CInt(Panel1.Height - 30) pluoi.DashStyle = DashStyle.Dot pmau.DashStyle = DashStyle.Dash gNoiVe = Panel1.CreateGraphics DataGridView1.Rows.Add() DataGridView1.Rows.Add() DataGridView1.Rows.Add() DataGridView1.Rows.Add() End Sub Sub VeDuongBieuDien(ByVal sTenHam As String) ' End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim i As Integer Dim x, xx As Integer Dim y, yy As Integer Label1.Text = "Y" Label1.Visible = True Label2.Visible = True truc() For i = To Form1.numY - DataGridView1.Rows.Item(0).Cells(i).Value = Str(Form1.Zyarr(i).y) Next With (gNoiVe) For i = To Form1.numY - x = 20 * i + 30 xx = 20 * i + 50 y = CInt(ViTriTrucHoanh) - * CInt(Form1.Zyarr(i).y) yy = CInt(ViTriTrucHoanh) - * CInt(Form1.Zyarr(i + 1).y) DrawLine(pduong, x, y, _ xx, yy) Next End With End Sub End Class Học viên: LÊ THANH 86 Cao học CNCK khóa 2008 - 2010 ... - 2010 Nghiên cứu độ xác đo Profil bề mặt chi tiết máy phương pháp quét Laser + Bộ phận phát: Phương pháp quét laser 3D dùng nguồn phát nguồn sáng Laser + Bộ phận thu: Phương pháp quét laser 3D... 2008 - 2010 Nghiên cứu độ xác đo Profil bề mặt chi tiết máy phương pháp quét Laser Kết luận Qua nghiên cứu, tìm hiểu cấu tạo, ưu – nhược điểm máy quét laser 3D ta thấy việc nghiên cứu độ xác thông... 2010 Nghiên cứu độ xác đo Profil bề mặt chi tiết máy phương pháp quét Laser CHƯƠNG 2: CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN ĐỘ CHÍNH XÁC CỦA PHÉP ĐO Trong máy quét laser 3D có nhiều yếu tố ảnh hưởng đến độ xác