Kiểm tra chi tiết đánh giá sai số hình dáng

Một phần của tài liệu Ứng dụng cảm biến khoảng cách laser trong đo lường (Trang 82 - 98)

Đo chi tiết dạng trụ để xác định sai số kích thước và sai số hình học của nó .

Hình 4-5 Chi tiết dạng trụ kiểm tra.

1.Đo độ ôvan

Độ ô van hay được gọi là độ trònđịnh nghĩa là sai lệch lớn nhất giữa bề mặt thực đến đường tròn áp.Đường tròn áp làđường tròn lý thuyết bao lấy đường giới hạn bề mặt thực. Với chi tiết dạng trụ thì bán kính đường tròn ngoại tiếp cũng là bán kính đường tròn lớn nhất của bề mặt thực, trị số độ tròn khiđó là

ax min EFKRmR

Khi số cạnh méo là chẵn thì có thể dùng sơ đồ đo 2 tiếp điểm để đo dmax và

dmin rồi lấy ax min

2

m

d d

EFK

 . Phương pháp đo có thể là đo liên tục trên toàn vòng hoặc có thể hạn chế phép đo theo các điểm đo đối xứng.

Hình 4-6 Vị trí các điểm kiểm tra.

Đối với nội dung thực hành thí nghiệm thì chỉ áp dụng sơ đồ đo Hình 4-4-c. Tính hiệu số từng cặp kích thước vuông góc với nhauở từng tiết diện. Độ ôvan của chi tiết xác định là hiệu số nào lớn nhất trong 4 hiệu số.

2.Đo độ trụ

Độ trụ được định nghĩa là sai lệch lớn nhất giữa bề mặt thực đến bề mặt trụ áp, đó là mặt trụ lý thuyết bao lấy mặt trụ lý thuyết. Đó là tổng hợp các sai lệch cả

ax min 2 m D D EFK   Độ côn 1 2 d d    Độ phình thắt ax min m d d    Độ cong trục

Xác định đường kính tại hai tiết diện I-I và II-II cách nhau chiều dài chuẩn là L. Độ côn tuyệt đối bằng hiệu hai đường kính đo được. Độ cong tương đối bằng tỷ số giữa sai lệch hai đường kính đo và chiều dài chuẩn kiểm tra. Trị số L lấy theo điều kiện kỹ thuật của sản phẩm, sau khi quy định chiều dài chuẩn kiểm tra thì trị số độ côn là trị số tuyệt đối. Bản chất của đo độ côn là đo đường kính nên ta áp dụng các sơ đồ đo đường kính để đo độ côn.

Để đơn giản việc tiến hành đo ta áp dụng sơ đồ đo như hình 4-7. Tính hiệu số các cặp kích thước cùng phương tại hai tiết diện. Độ côn lấy theo hiệu số nào lớn nhất trong 4 hiệu số.

Tiến hành đo thử hai chi tiết có đường kính danh nghĩa là 20mm trên optimet trước và sau khi cải tiến. Kết quả đo được tính như sau:

Trước khi cải tiến (phương pháp đo tiếp xúc)

Vị trí đo Tiết diện 1 2 3 4 I -0.010 -0.004 -0.011 -0.006 II -0.005 -0.009 -0.008 -0.012 I -0.070 -0.076 -0.065 -0.078 II 0.115 0.137 0.126 0.105 Kích thước thực

Tiết diện 1 2 Hiệu 3 4 Hiệu

I 19.990 19.996 0.006 19.989 19.994 0.005 II 19.995 19.991 0.004 19.992 19.988 0.004 I 19.930 19.924 0.006 19.935 19.922 0.013 II 20.115 20.137 0.022 20.126 20.105 0.021 0.005 0.005 0.003 0.006 Hiệu số cặp kt cùng phương 0.185 0.213 0.057 0.066

Đối với chi tiết số 1

Độ ôvan: hiệu số lớn nhất 4 cặp kích thước vuông góc là 0,006mm.

Độ côn: hiệu số cặp kích thước cùng phương lớn nhất là 0.006mm.

Đối với chi tiết số 2

Độ ôvan: hiệu số lớn nhất 4 cặp kích thước vuông góc 0,022mm.

Sau khi cải tiến (phương pháp đo không tiếp xúc) Vị trí đo Tiết diện 1 2 3 4 I -0.012 -0.003 -0.014 -0.005 II -0.003 -0.011 -0.010 -0.013 I -0.080 -0.053 -0.013 -0.012 II -0.121 -0.147 -0.116 -0.185 Kích thước thực

Tiết diện 1 2 Hiệu 3 4 Hiệu (adsbygoogle = window.adsbygoogle || []).push({});

I 19.988 19.997 0.009 19.986 19.995 0.009 II 19.997 19.989 0.008 19.990 19.987 0.003 I 19.920 19.947 0.027 19.987 19.988 0.001 II 19.853 19.879 0.026 19.884 19.815 0.069 -0.009 0.008 -0.004 0.008 Hiệu số cặp kt cùng phương 0.041 0.094 0.003 -0.001

Đối với chi tiết số 1

Độ ôvan: hiệu số lớn nhất 4 cặp kích thước vuông góc là 0,0 27mm.

Độ côn: hiệu số cặp kích thước cùng phương lớn nhất là 0.00 9mm.

Đối với chi tiết số 2

Độ ôvan: hiệu số lớn nhất 4 cặp kích thước vuông góc 0,069mm.

Độ côn: hiệu số cặp kích thước cùng phương lớn nhất là 0. 094mm. So sánh hai kết quả đo được ta thấy, khi đo bằng dụng cụ đo cải tiến thì số liệu trong mỗi lần đo có độ tản mát lớn hơn. Dẫn đến kết quả đo sai lệch hình dáng

Chương 5. PH LỤC 5.1.Chương trình trên bộ xử lý. Thiết lập thông số phần cứng Quét bàn phím Quét lệnh máy tính Khởi động

1. Nhận giá trị A/D lưu vào mảnggiatri_adc(20)

2. Lấy trung bình cộng 20 giá trị liên tiếp lưu biếntrungbinh_adc

3. Thực hiện quy “0”,giatri_do=trungbinh_adcgiatri_chuan0

4. Quy đổi sang giá trị khoảng cách

Lệnh “thoat” Dừng đo 1. Lệnh quy “0” 2. Lệnh lưu trữ 3. Lệnh đọc giá trị lưu 1. Lệnh đọc giá trị đo 2. Lệnh điều khiển 3. Lệnh đọc trạng thái bộ xử lý Có Không Không Có Có Không

5.1.1. Quét lệnh bàn phím.

Để điều khiển hệ thống đo thì người điều khiển phải thao tác thông qua các phím bấm. Các phím bấm thực hiện chức năng điều khiển hệ thống như : lấy chuẩn quy "0" tức là đặt giá trị đo hiện tại về giá trị gốc 0, lấy giá trị bù để mở rộng khoảng đo, lưu trữ hay đọc các giá trị đã lưu trữ.

Hệ thống có 8 phím bấm, ta gán cho mỗi phím một mã tương ứng với lệnh điều khiển, mã có giá trị từ 0 ÷ 7, mã có giá trị bằng 8 là khi không có lệnh điều khiển, bộ xử lý sẽ bỏ qua khi gặp giá trị này. Tần số quét bàn phím là 100ms là khơngr thời gian mà bộ xử lý đã lấy xong giá trị trung bình của 20 lần đo liên tiếp.

char scan(void) {

if(GS) {sw_input = 1; temp = 10;};

while( ~GS && sw_input ) {

delay_ms(60);

while(~GS && sw_input) {sw_input = 0;

temp = (PINA & 0x70)>>4; beep(); }; }; return temp; } 5.1.2. Quét lệnh máy tính.

Lệnh máy tính điều khiển theo phương thức truyền nối tiếp không đồng bộ. Vì vậy ta sử dụng chức năng ngắt (usart interrupt) tức khi nào có tín hiệu điều khiển

trong giao tiếp với máy tính, đây là giao thức đơn gi ản gồm 6 byte gửi lên từ máy tính.

interrupt [USART_RXC] void usart_rx_isr(void) {

char status,data; // Khai báo biến

status=UCSRA; //Trạng thái đường truyền data=UDR; //Dữ liệu nhận 8 bít

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) {

rx_buffer[rx_wr_index]=data; // Nhận dữ liệu 6 byte

if (++rx_wr_index == 6) // Khi đủ 6 byte tiến hành đọc và xử lý {rx_wr_index=0; (adsbygoogle = window.adsbygoogle || []).push({});

If (rx_buffer[0] ==0x72) // Kí tự "r" đọc giá trị từ bộ xử lý {

... };

If (rx_buffer[0] ==0x77) //Kí tự"w" ghi dữ liệu vào bộ xử lý { ... }; }; }; }

5.1.3. Đọc giá trị từ khối A/D

Thực hiện tiếp nhận dữ liệu từ khối A/D theo phương thức truyền SPI. Đường truyền SPI cũng là dạng truyền nối tiếp nhưng có tốc độ cao, thường đây là dạng giao tiếp giữa các thiết bị ngoại vi với nhau trong đó có thiết lập quan hệ "chủ - tớ".

Hinh 5-2 Dữ liệu trên đường truyền SPI

Giao tiếp với vi mạch MCP3202 có hai bít SGL/DIFF và ODD/SIGN là định chế độ hoạt động cho vi mạch. Như vậy trong một chu trình nhận một dữ liệu ta cần truyền lệnh 4 bit để định chế độ hoạt động và sau đó là nhận 12 bít dữ liệu đo được.

unsigned int load_adc(void) {

unsigned int adc; CS = 0;

spi(0b1110); // chọn kênh vào CH0 độc lập. adc = (unsigned)spi(0x00)<<5; //Nhận 7 bít cao

adc|=spi(0x00)>>3; // Nhận 5 bít thấp còn lại trong 12 bít CS = 1;

5.1.4. Quy đổi giá trị đo

Thực hiện đọc dữ liệu và quy đổi giá trị tương ứng với khoảng cách đo tính theo đơn vị µm. Để loại trừ trường hợp số đo bị dao động do bị lượng tử hóa gây nên thì ta lấy khoảng 20 giá trị đo liên tiếp rồi sau đó lấy trung bình cộng các giá trị đó. Việc xử lý trên máy tính có tốc độ xử lý cao và linh hoạt hơn, vì thế số liệu gửi lên máy tính là số liệu thô.

for(i = 0;i<20;i++) {

adc_read = load_adc();

giatri_adc[i] = adc_read; // Lấy mẫu 20 giá trị đo liên tiếp trong 100ms

delay_ms(5); };

temp = 0;

for(i = 0;i<20;i++)

{temp = temp + giatri_adc[i]; //Lấy tổng 20 giá trị liên tiếp.

}

Trungbinh_adc = (int)(temp/20); // Giá trị trung bình cộng

if ( (measure <820) || (measure >4090)){ sprintf(str,"NGOAI KHOANG DO!"); lcd(1,str);

} else{

quydoi = 3277-(trungbinh_adc - 819); // Quy đổi giá trị

if (scan() == 6) // Lệnh chuẩn "0" {giatri_chuan0 = quydoi;

Delay_ms(300); // Thực hiện lấy chuẩn ‘0’ };

sprintf(str," %+.0f um ", giatri_dothuc); // Hiển thị kết quả đo.

lcd(1,str); };

Giá trị khi truyền lên máy tính là dạng ASCII nên từ giá trị đo dạng số ta cần đổi sang dạng ký tự. Giá trị đo lớn nhất là 4095 có 4 chữ số, ta cần chuyển 4 chữ số đó sang 4 ký tự tương ứng ví dụ là "4", "0", "9", "5". Khi đó ta cần chuyển đổi như sau: (adsbygoogle = window.adsbygoogle || []).push({});

Void int_to_4BCD(int input) {

int high_value,low_value; char bcd1,bcd2,bcd3,bcd4;

high_value = input/100; // chữ số hàng nghìn, trăm low_value = input%100; // chữ số hàng chục, đơn vị

while (high_value >= 10) {

Bcd1++;

high_value -= 10; };

Bcd1+ = 48; // quy đổi mã ASCII chữ số hàng nghìn Bcd2 = high_value + 48; // quy đổi mã ASCII chữ số hàng trăm

while (low_value >= 10) {

Bcd3++;

low_value -= 10; };

}

5.2.Chương trình xử lý trên máy tính.

Quá trình đo có thể thực hiện trên máy tính với tất cả các thao tác đo và đồng thời xử lý được kết quả đo. Chương trình máy tính có thể thay đổi một cách linh hoạt mà không phụ thuộc nhiều vào phần cứng. Để áp dụng cho hệ thống đo bằng optimet dùng trong thí nghiệm, ta xây dựng chương trình theo từng bước thực hành thí nghiệm là đưa ra được bảng thông số đo, bao gồm các giá trị trong mỗi lần đo, đánh giá kết quả đo, xây dựng biểu đồ ...

Chương trìnhđược viết bằng phần mềm lập trình Visual Basic cóưu điểm là đơn giản, trực quan và thích hợp với điều kiện của phòng máy. Số liệu đo được nhận liên tục từ hệ thống mạch đo, vì là số liệu thô nên cần các thuật toán tính toán như chương trình của bộ xử lý. Ngoài ra chương trình có nhiệm vụ điều khiển hoạt động và kiểm soát trạng thái của bộ xử lý. Như vậy hoạt động giữa máy tính và bộ xử lý là hai chiều qua lại. Máy tính đóng vai trò là "chủ", và bộ xử lý đóng vai trò là "tớ ", có nghĩa là khi máy tính gửi đến một lệnh yêu cầu thì lúcđó bộ xử lý hồi đáp lại yêu cầu. Với hệ thống phức thì giao thức (protocol) lệnh này được quy chuẩn, nhưng đối với chương trình không phức tạp thì giao thức này quy định riên g do người sử dụng đặt. Đối với hệ thống ta đặt ra giao thức như sau:

` Dữ liệu đo và trạng

thái hoạt động Tín hiệu điều khiển

Lệnh yêu cầu (Request message): gồm 1 byte ghi/đọc; 1 byte lệnh; 4 byte dữ liệu.

Bảng 5-1 Giao thức truyền dữ liệu

Lệnh yêu cầu Ghi/đọc (1 byte) Lệnh (1 byte) Dữ liệu (4 byte)

Lệnh hồi đáp Lệnh (1 byte) Dữ liệu (4 byte)

Dữ liệu truyền theo ký tự ASCII, vì vậy số đo ở dạng thập phân gồm 4 chữ số (lớn nhất là 4095) được chuyển thành dạng BCD là 4 ký tự "0", "1" ,...,"9" (vị trí 48 ÷57) ; "A", "B", ...,"Z" (vị trí 65 ÷ 90) hoặc "a", "b", ...,"z" (vị trí 97 ÷ 122) tương ứng.

5.2.1. Xử lý các chức năng truyền dữ liệu.

1. Thiết lập cổng truyền.

Các thông số của đường truyền như đã giới thiệu ở mục 3.3.4.2, như vậy việc thiết lập bao gồm đặt các tham số như: baud rate, data bit, parity, stop bit ...

With MSComm1

.CommPort = 1 'chọn cổng COM1

.Settings = "19200,N,8,1" 'baud 19200bps, none parity, 8 bit data, 1 bit stop .InBufferSize = 1024 .InputLen = 0 .RThreshold = 5 .SThreshold = 6 .OutBufferSize = 512 .InputMode = comInputModeBinary .PortOpen = True End With 2. Lệnh yêu cầu

lý, ghi (kí tự "w") yêu cầu ghi giá trị vào biến của bộ xử lý, lệnh điều khiển (kí tự "c") để điều khiển hoạt động của bộ xử lý. Byte thứ hai là lệnh điều khiển, nếu là đọc/ghi thìđây là tên biến cần truy cập, nếu là điều khiển thìđây là lệnh điều khiển như thao tác trên phím bấm. 4 byte còn lại mang dữ liệu dạng ASCII, nếu là đọc/ghi thì là giá trị số, nếu là điều khiển thì là giá trị 0.

Dim byte_tx() as byte byte_tx(0) = xxx byte_tx (1) = xxx byte_tx (2) = xxx byte_tx (3) = xxx byte_tx (4) = xxx byte_tx (5) = xxx If flag_tx = 0 then Mscomm.output = byte_tx() flag_tx = 1 End if 3. Lệnh hồi đáp

Sau khi phát đi lệnh yêu cầu, bộ xử lý sẽ phản hồi lại yêu cầu đó. Dữ liệu nhận được lưu vào bộ đệm nhận rx_buffer. Khi đó phát sinh sự kiện mscomm_oncom(), biến comm_even có giá trị báo đã nhận đủ dữ liệu. (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub MSComm1_OnComm() Dim Byte_rx() as byte

On Error GoTo error_comport

If MSComm1.CommEvent = comEvReceive then Select case byte_rx(0)

Case "c" 'khi nhận lệnh điều khiển ...

Case "w" ' Khi nhận lệnh ghi ... End select End if Error_comport: End Sub 5.2.2. Xử lý số liệu

Phần này cũng thực hiện các bước xử lý như trên bộ xử lý, số liệu đo thực khi nhận được sẽ có chương trình xử lý nâng cao và lưu trữ lại tạo thành tệp. Giao diện được thiết lập dạng bảng đo với các mục như nội dung thực hành thí nghiệm, ngoài ra còn có thể có chức năng đồ họa, xây dựng biểu đồ đo... Số liệu đo được cập nhật liên tục từ bộ xử lý, tất cả quá trình tính toán được thực hiện tức thời để đưa ra kết quả đo hiện tại. Phần giao diện được thiết kế như Hinh 5-3 bao gồm giao diện điều khiển và phần hiển thị kết quả đo.

Hinh 5-3 Giao diện phần mềm quản lý đo.

Sau một thời gian tìm hiểu và thực hiện thiết kế cải tiến, tôi đã hoàn thành được nội dung đồ án đề ra và thực hiện thử nghiệm trên mẫu thật. Nhiệm vụ đó là nghiên cứu được về nguyên lý hoạt động của các thiết bị đo không tiếp xúc và khả năng ứng dụng của nó trong thực tế; thiết kế cải tạo trên dụng cụ đo tại phòng thí nghiệm và thực hiện xử lý tín hiệu đo. Qua số liệu đánh giá bằng kết quả thực nghiệm tôi thấy rằng phương pháp mới này còn có một số khuyết điểm chưa thể khắc phục được. Đó là hiện tượng sai số đo quá lớn đối với những vật đo có bề mặt nhẵn bóng (vật đo có bề mặt gia công tinh, căn mẫu) bởi vìđầu đo laser sử dụng là đầu đo khuyếch tán, điều đó không thể khắc phục do điều kiện trang bị của phòng thí nghiệm. Phần mạch xử lý hoạt động ổn định, tuy nhiên do độ phân giải chưa cao nên chưa tận dụng hết khả năng đo của đầu đo laser. Tuy nhiên sau khi nghiên cứu phương pháp đo không tiếp xúc, tôi thấy rằng khả năng ứng dụng rất cao do những tính chất ưu việt của nó. Có thể thiết kế hệ thống đo sai số hình học cho các chi tiết đang làm việc mà không cần phải tháo ra khỏi máy (như độ mòn dao, độ đảo trụ quay ...) hoặc ứng dụng cho hệ thống quét mẫu 3D... Và khả năng ứng dụng trong tương lai là thiết kế những hệ thống đo có tính công nghệ cao như máy đo lỗ sâu, máy quết biên dạng hình học 3 chiều có thể kết nối với hệ xử lý của máy tính...

Với sự hướng dẫn tận tình của thầy giáo Hồ Việt Hải, cùng sự giúp đỡ của các thầy giáo trong bộ môn Chế Tạo Máy đã giúp tôi hoàn thành nội dung nghiên cứu. Tuy nhiên do hạn chế về kinh nghiệm và kiến thức, do điều kiện trang bị nên

Một phần của tài liệu Ứng dụng cảm biến khoảng cách laser trong đo lường (Trang 82 - 98)