Luận văn Nghiên cứu và chế tạo máy dò kim loại

MỤC LỤC

 

Trang

LỜI MỞ ĐẦU 1

CHƯƠNG 1: CẢM BIẾN ĐO TỪ TRƯỜNG HMC1053 3

I. Cảm biến đo từ trường 3

1.Cảm biến từ trường 3

2.Phân loai cảm biến từ trường 4

3.Cảm biến từ trở không đẳng hướng 5

4.Cảm biến đo từ trường HMC1053 6

5.Cảm biến đo từ trường HMC2003 10

II.Nguyên li nhận biết kim loại sắt từ của cảm biến HMC1053 12

1.Từ trường trái đất 12

2.Nguyên li nhận biết kim loại sắt từ của cảm biến 14

HMC1053

CHƯƠNG 2: THIẾT KẾ THIẾT BỊ 18

I. Nguyên lí làm việc của thiết bị 18

II. Thiết kế thiết bị 20

1.Chức năng -- yêu cầu của thiết bị 20

2. Lựa chọn linh kiện 20

3.Thiết kế sơ đồ khối 26

a. Sơ đồ đầu dò Far Sensor 26

b. Sơ đồ đầu thu Near sensor 27

4.Sơ đồ nguyên lý của thiết bị 28

CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM 33

I. Thiết kế phần cứng 33

1. PCB đầu dò Far Sensor 33

2. PCB đầu thu Near Sensor 34

II.Thiết kế phần mềm 34

1.Thiết kế vi điều khiển PSoC 34

1.1. Xác lập cấu trúc phần cứng cho PSoC 34

1.2. Lưu đồ thuật toán phần mềm cho PSoC 45

2.Truyền thông máy tính 47

III.Kết quả đo thực nghiệm 48

KẾT LUẬN 50

TÀI LIỆU THAM KHẢO 51

PHỤ LỤC 52

 

 

 

 

doc73 trang | Chia sẻ: maiphuongdc | Lượt xem: 4228 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu và chế tạo máy dò kim loại, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
y ra, từ đó có thể tạo ra các ứng dụng khác nhau. 2. Nguyên lí nhận biết kim loại sắt từ của cảm biến từ HMC1053 Từ trường trái đất tạo ra có giá trị cố định không đổi trên một diện tích rộng khoảng vài km2. Đặt trong môi trường bình thường, dưới tác dụng của từ trường trái đất, giá trị các dây từ trở cảm biến thay đổi và tạo ra một chênh áp ở đầu ra của cầu. Đầu ra cảm biến HMC1053 tạo ra giá trị điện áp V1. Khi trong môi trường xung quanh cảm biến xuất hiện một vật liệu sắt từ, ví dụ một xe ôtô. Khối lượng sắt trong xe làm biến đổi giá trị của từ trường xung quanh vị trí xe xuất hiện. Từ trường này tác động vào cảm biến, làm biến đổi giá trị từ trở của các dây film Permalloy, từ đó thay đổi điện áp đầu ra của cầu. Lúc này xuất hiện giá trị điện áp V2 ở đầu ra cảm biến HMC1053. Các giá trị điện áp V1 và V2 này được đưa qua một bộ khuyếch đại với hệ số khuyếch đại thích hợp và được đưa vào vi điều khiển. Vi điều khiển sẽ tính toán và hiển thị được giá trị cường độ từ trường H1 bình thường của môi trường trái đất cũng như giá trị từ trường H2 khi có vật liệu sắt từ, lúc này là một xe ôtô, xuất hiện. Đồng thời, qua giá trị ∆H = H1 - H2 , vi điều khiển sẽ xử lí và nhận biết được sự xuất hiện của khối vật liệu sắt từ. Cảm biến đo từ trường HMC1053 đưa ra 3 đầu ra tín hiệu điện áp qua bộ khuyếch đại trở thành 3 tín hiệu tương tự trong dải 0-5V. Ba tín hiệu tương tự này sau đó đi qua 1 bộ dồn kênh vào chuyển đổi ADC để có thể đưa vào vi xử lí tính toán. Sơ đồ nguyên lí Cảm biến đo từ trường HMC1053 đưa ra 3 đầu ra tín hiệu điện áp qua bộ khuyếch đại trở thành 3 tín hiệu tương tự trong dải 0-5V, đòi hỏi vi điều khiển tiếp nhận và xử lí. Ba tín hiệu tương tự này cần đi qua 1 bộ dồn kênh vào chuyển đổi ADC để có thể đưa vào bộ xử lí CPU. Như vậy, nếu sử dụng các loại vi điều khiển thông thường, ta sẽ cần sử dụng thêm một bộ dồn kênh MUX bên ngoài và một bộ chuyển đổi ADC để chuyển đổi chuẩn hóa trước khi đưa tín hiệu vào vi điều khiển. Điều này có hạn chế là làm tăng kích thước mạch điện cũng như giá thành thiết bị. Vì vậy, em đã sử dụng vi điều khiển PSoC, nhằm giải quyết được những hạn chế này. Là một trong những loại vi điều khiển hàng đầu sử dụng công nghệ System-on-chip, PSoC là giải pháp mới thích hợp cho các ứng dụng đo lường, điều khiển. PSoC (Programmable System on Chip) nghĩa là hệ thống khả trình trên một chip. Các chip chế tạo theo công nghệ PSoC cho phép thay đổi được cấu hình đơn giản bằng cách gán chức năng cho các khối tài nguyên có sẵn trên chip. Hơn nữa nó còn có thể kết nối tương đối mềm dẻo các khối chức năng với nhau hoặc giữa các khối chức năng với các cổng vào ra. Chính vì vậy mà PSoC có thể thay thế cho rất nhiều chức năng nền của một số hệ thống cơ bản chỉ bằng một đơn chip. Bản thân trong chip PSoC đã tích hợp các bộ dồn kênh tương tự và các bộ ADC có độ phân giải cao, rất phù hợp với yêu cầu của ứng dụng, góp phần làm giảm kích thước mạch điện cũng như giảm chi phí của thiết bị. CHƯƠNG 2: THIẾT KẾ THIẾT BỊ I. Nguyên lí làm việc của thiết bị Thiết bị gồm một đầu dò và một đầu thu, đặt cách nhau 1,2 đến 1,5m. Hai đầu dò và thu được đặt song song, cách nhau 1,2 – 1,5m nên các trục vectơ Hx, Hy, Hz song song với nhau từng đôi một. Một đầu dò H1 di chuyển sát mặt đất để đo cường độ từ trường nhiễu gây bởi vật liệu sắt từ (nếu có) tại vị trí gần mặt đất, đầu thu H2 ở độ cao cách mặt đất 1,2 – 1,5m không bị ảnh hưởng của nhiễu từ do vật liệu sắt từ gây ra, cường độ từ trường H2 đầu thu đo được chính là cường độ từ trường tự nhiên, không đổi của môi trường xung quanh. H1 2 = Hx12 +Hy12 + Hz12 H2 2 = Hx22 +Hy22 + Hz22 Vì đầu dò và đầu thu được đặt song song, nếu có một khối vật liệu sắt từ lớn nào đó ở môi trường xung quanh tác động vào thì ảnh hưởng của nó đến cường độ từ trường hai đầu thu được là như nhau, dẫn đến có thể loại trừ sai số do tác động bên ngoài của môi trường, không ảnh hưởng đến biến đổi từ trường gây bởi vật liệu sắt từ dưới đất cần phát hiện. Trong trường hợp khoảng không dưới mặt đất tại vị trí của đầu dò H1 không có vật liệu sắt từ, lúc này Hx1 ≈ Hx2, Hy1 ≈ Hy2, Hz1 ≈ Hz2, từ đó dẫn đến H1 ≈ H2, màn hình LCD hiển thị ∆Hx ≈ ∆Hy ≈ ∆Hz ≈ ∆H ≈ 0 máy không phát tín hiệu. Khi dưới mặt đất tại vị trí đầu dò H1 xuất hiện vật liệu sắt từ nằm trong vùng cảm nhận từ của đầu dò H1, đầu dò H1 sẽ thu được giá trị vectơ từ trường biến đổi Hx1, Hy1, Hz1 do vật liệu sắt từ gây ra. Trong khi đó, khoảng cách giữa vật liệu sắt từ dưới đất và đầu thu H2 lớn hơn 1m nên cảm biến của đầu thu H2 không thu được giá trị từ trường biến đổi do vật liệu sắt từ gây ra. Từ trường mà đầu thu H2 thu được là từ trường không đổi của trái đất. Trường hợp này Hx1 ≠ Hx2, Hy1 ≠ Hy2, Hz1 ≠ Hz2 , ta có H1 ≠ H2 Người sử dụng đọc được trên màn hình LCD ∆Hx ≠ ∆Hy ≠ ∆Hz ≠ 0 và giá trị ∆H ≠ 0. Dựa vào độ lớn của giá trị ∆H tại vị trí đầu dò H1 hiện tại và biến đổi ∆H khi đưa đầu dò sang các vị trí lân cận, người sử dụng có thể khoanh vùng được vị trí hẹp của vật liệu sắt từ bên dưới mặt đất. Khi giá trị ∆H tiến đến một độ lớn cụ thể đã định trước (ví dụ 500 mGauss _ là độ biến thiên từ trường ∆H gây bởi một vật liệu sắt từ khối lượng 0.7 kg, mức ngưỡng của vật thể cần tìm), đầu thu H2 sẽ báo tín hiệu âm thanh Beep, đồng thời đèn Led trên thiết bị sẽ nháy sáng để gây chú ý cho người sử dụng. Trên thiết bị có gắn cổng RS232 để truyền giá trị Hx1, Hy1, Hz1 và độ lớn H1 về máy tính để xử lí, lưu giữ và vẽ đồ thị biến đổi Hx1, Hy1, Hz1. Dựa vào đồ thị biểu diễn cường độ từ trường H1 người sử dụng cũng có thể xác định được vị trí của vật thể sắt từ. Hình sau minh họa đồ thị biến thiên Hx1, Hy1, Hz1 và H1 khi đầu dò H1 quét qua một vật thể sắt từ. Nhìn đồ thị ta có thể nhận thấy trong khoảng thời gian từ giây thứ 1 – 51 và 101 – 151, khoảng không gian bên dưới xung quanh đầu dò không có vật thể sắt từ, giá trị vectơ từ trường đo được trên cả 3 trục X, Y,Z không biến đổi, biểu hiện bằng đường thẳng tương đối trong tọa độ thời gian 1 – 51 và 101 – 151. Còn trong khoảng tọa độ thời gian 51 – 101, giá trị từ trường trên cả 3 trục biến đổi dẫn đến biến thiên về độ lớn của từ trường H1 từ giá trị 580 mGauss lên đến khoảng 800 mGauss. Người sử dụng có thể kết luận tại vị trí đầu dò quét qua trong khoảng thời gian 51 – 101 đó, có một vật thể sắt từ nằm dưới đất. Từ trường của 3 trục biến đổi có thể chỉ ra sự xuất hiện của vật liệu sắt từ tại vị trí đầu dò 1. Đặc biệt là từ trường của trục z, giá trị Hz đạt max khi vật liệu sắt từ nằm trực tiếp trên cùng một đường với trục z của sensor. II. THIẾT KẾ THIẾT BỊ 1.Chức năng -- yêu cầu của thiết bị -Thiết bị đo và hiển thị lên máy tính giá trị của ba vectơ cường độ từ trường của môi trường xung quanh theo 3 trục X, Y, Z và độ lớn cường độ từ trường trái đất H tại vị trí đang xét. - Thiết bị cũng dò tìm và nhận biết sự xuất hiện của vật thể sắt từ bằng cách xác định và tính toán giá trị biến thiên từ trường giữa từ trường tại vị trí cần kiểm tra và từ trường trái đất. Giá trị biến thiên này được hiển thị trên màn hình LCD đặt trên thiết bị, đồng thời truyền thông hiển thị giá trị và vẽ sơ đồ giá trị từ trường biến thiên trên máy tính. - Khi giá trị từ trường biến thiên đạt đến giá trị ngưỡng ΔH định trước, thiết bị phát tiếng kêu Beep và đèn Led nháy sáng báo hiệu cho người sử dụng. 2. Lựa chọn linh kiện 2.1. Cảm biến: Thiết bị sử dụng các cảm biến từ trường HMC1053 và HMC2003, là các cảm biến được xây dựng trên công nghệ cảm biến từ trở không đẳng hướng (AMR sensor) của Honeywell, có độ nhạy cao, độ tin cậy lớn và chi phí thấp. Cảm biến HMC1053… … và cảm biến HMC2003 Do điều kiện thực tế hiện có 1 cảm biến HMC1053 và 1 cảm biến HMC2003, nên em đã sử dụng cảm biến HMC2003 cho đầu dò Far Sensor, và cảm biến HMC1053 cho đầu thu Near Sensor. 2.2. Bộ khuyếch đại: Sử dụng IC khuyếch đại thuật toán LM324 (National Semiconductor) 2.3. Bộ dồn kênh, ADC và vi xử lí: Thiết bị sử dụng vi điều khiển PSoC CY8C29466 để tận dụng tính vượt trội về khả năng tích hợp các khối tương tự và số, tích hợp bộ dồn kênh tương tự AMUX, ADC 12-bit trong một vi điều khiển đơn chip giúp giảm diện tích mạch, hạ giá thành, đồng thời khả năng tự cấu hình phần cứng giúp nâng cao độ bảo mật cho hệ thống. Lựa chọn các bộ dồn kênh và ADC trong PSoC - Bộ chọn 4 đầu vào tương tự (4 to 1 Analog Multiplexer) Có thể lập trình lựa chọn đầu vào bằng phần mềm: AMUX4_InputSelect(AMUX4_Port0_1); - Bộ khuyếch đại không đảo PGA _ Programmable Gain Amplifier -Độ khuyếch đại có thể lập trình với 33 cấp, độ khuyếch đại tối đa là 48 -Một đầu ra đơn với điện áp tham chiếu có thể lựa chọn -Trở kháng đầu vào cao Ở đây ta sử dụng PGA làm bộ đệm giữa AMUX và ADC. Do thiết đặt phần cứng về vị trí của AMUX và ADC, tín hiệu điện áp do AMUX chọn sẽ đi qua PGA vào ADC. - Bộ chuyển đổi tương tự - số ADC ADC sẽ xử lí tín hiệu tương tự và đưa ra giá trị số tương ứng để CPU xử lí 2.4. LCD Giá trị từ trường biến thiên được hiển thị lên màn hình LCD gắn trên thiết bị. Thiết bị sử dụng LCD 1602,sử dụng giao thức theo tiêu chuẩn công nghiệp của HITACHI HD44780 LCD 1602A LCD thể hiện trong PSoC Designer Bảng kết nối chân của LCD với chân của PSoC: 2.5.Truyền thông Thiết bị truyền thông lên máy tính theo chuẩn RS232, sử dụng IC MAX232 để trao đổi thông tin giữa máy tính và thiết bị. Khối UART bên trong chip PSoC thực hiện nhiệm vụ truyền dữ liệu giữa máy tính và vi điều khiển. 3.Thiết kế sơ đồ khối Thiết bị gồm 2 phần: đầu dò Far Sensor đo từ trường tại vị trí cần xét và đầu thu Near Sensor nhận tín hiệu, tính toán và truyền thông hiển thị. 3.1. Sơ đồ đầu dò Far Sensor: PSoC CY8C29466 CPU RAM FLASH RS232 Near Sensor Nguồn Cảm biến Phím Cảm biến HMC2003 đưa ra 3 đường tín hiệu điện áp tương tự X, Y, Z có dải điện áp trong khoảng 0 – 5V đưa vào vi điều khiển. Khối dồn kênh AMUX lần lượt đưa 3 tín hiệu này vào ADC để tạo ra giá trị số đưa vào CPU. CPU tính toán, xử lí và truyền dữ liệu H1 lên đầu thu Near Sensor thông qua cổng RS232. Cảm biến HMC 2003 MAX 232 Near Sensor PSoC CY8C29466 Dồn kênh MUX ADC 12 bit CPU 3.2. Sơ đồ đầu thu Near sensor: PSoC CY8C29466 Tính CPU RAM FLASH RS232 Máy tính Nguồn Cảm biến RS232 LM324 Far Sensor LCD Một mặt, đầu thu Near Sensor cũng có tích hợp một cảm biến từ trường HMC1053. Cảm biến HMC1053 này đưa ra 3 đường tín hiệu x y, z dưới dạng điện áp tương tự nhỏ (mV). Các tín hiệu này đi qua bộ khuyếch đại thuật toán với hệ số khuyếch đại K= 200 trở thành 3 tín hiệu điện áp tương tự X, Y, Z có dải điện áp trong khoảng 0 – 5V đưa vào vi điều khiển. Khối dồn kênh AMUX lần lượt đưa 3 tín hiệu này vào ADC để tạo ra giá trị số hạng hex đưa vào CPU. CPU lưu giữ giá trị cường độ từ trường H2. Mặt khác, đầu thu Near Sensor nhận dữ liệu cường độ từ trường H1 từ đầu dò Far Sensor. CPU thu thập, xử lí hai giá trị từ trường này, tính toán giá trị cường độ từ trường biến thiên ΔH, so sánh với giá trị ΔH ngưỡng và đưa ra kết luận về sự xuất hiện của vật sắt. Các số liệu tính toán được hiển thị lên LCD và truyền thông để hiển thị và vẽ đồ thị trên máy tính. Far Sensor Khuyếch đại LM324 MAX 232 LCD Máy tính PSoC CY8C29466 Dồn kênh MUX ADC 12 bit CPU MAX 232 HMC 1053 4. Sơ đồ nguyên lý của thiết bị 4.1. Khối nguồn 4.2. Bộ nạp 4.3. Cảm biến HMC1053 HMC2003 4.4. Khâu khuyếch đại 4.5. Khối Set/Reset Khối Set/Reset để khử từ trường dư của HMC1053, đảm bảo cảm biến hoạt động ổn định và chính xác 4.6. Sơ đồ chân của vi điều khiển PSoC của đầu dò Far sensor 4.7. Đầu dò Far sensor truyền tín hiệu lên đầu thu Near Sensor: 4.8. Sơ đồ nối chân LCD 4.9. Đầu thu Near sensor nhận tín hiệu từ đầu dò và truyền dữ liệu lên máy tính: 4.10. Loa, Led báo hiệu và mạch Set/Reset của Near sensor 4.11. Sơ đồ chân vi điều khiển PSoC của đầu thu Near sensor CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM I. Thiết kế phần cứng: Sơ đồ mạch phần cứng PCB được thiết kế từ sơ đồ nguyên lí, sử dụng chương trình Protel DXP. PCB đầu dò Far Sensor: 2. PCB đầu thu Near Sensor: II.Thiết kế phần mềm 1.Thiết kế vi điều khiển PSoC: 1.1. Xác lập cấu trúc phần cứng cho PSoC: Bản thân vi điều khiển PSoC ban đầu là một chip trắng. Khác với các dòng vi điều khiển trước, chíp PSoC trắng ban đầu chưa có cấu hình phần cứng xác định. Khi chưa được cấu hình chip PSoC không thể thực hiện được bất kỳ một chức năng nào. Người sử dụng có thể và cần phải thiết đặt cấu hình phần cứng bên trong cho PSoC phù hợp với yêu cầu hệ thống của mình. Điều này cho thấy tính linh hoạt của vi điều khiển PSoC so với các vi điều khiển thông thường khác. Để hỗ trợ việc thiết đặt cấu hình phần cứng bên trong PSoC được đơn giản và dễ dàng, hãng Cypress đã thiết kế chương trình phần mềm PSoC Designer, sử dụng phương pháp lập trình kéo - thả để người dùng có thể thiết đặt cấu hình phần cứng của PSoC được tiện lợi. Cấu trúc bên trong của chip PSoC “trắng”thể hiện trên PSoC Designer Để thiết lập cấu trúc phần cứng cho chip PSoC thực hiện công việc của thiết kế, ta cần thực hiện các bước như sau, với công cụ PSoC Designer. B1.Tạo lập 1 project mới Ta chạy chương trình PSoC Designer, giao diện của chương trình như hình sau: - Đưa con trỏ về danh mục File trong menu của PSoC Designer, tìm tới danh mục New Project -> ấn Create New. Hộp thoại New Project hiển thị như hình sau: - Lựa chọn thư mục lưu trữ và tên project, sau đó ấn nút Next, hộp thoại PSoC Designer hiển thị như hình vẽ: - Ấn nút Yes, hộp thoại Create New Project như hình sau: Tiếp theo ta cần chọn họ chip, loại chíp bao nhiêu chân, ngôn ngữ sử dụng trong project mà mình sử dụng, ở đây lựa chọn họ CY8C29xxx và dòng 28 chân CY8C29466, ngôn ngữ sử dụng trong tệp main là C. Ấn nút Finish để hoàn tất quá trình tạo 1 project mới. Như vậy, sau khi hoàn thành các bước ở trên, ta đã tạo ra được 1 project mới có tên DO_AN_TN_FarSensor trong thư mục C:\Documents and Settings\Thuy Giang\My Documents\DO_AN_TN_FarSensor, lập trình cho họ chíp CY8C29466 với loại chíp 28 chân, ngôn ngữ sử dụng trong tệp main.c là ngôn ngữ C. B2. Lựa chọn thiết bị sử dụng trong phần cứng Ta chọn mục Device Editor, màn hình giao diện của chương trình với người sử dụng như hình sau: - Để lựa chọn thiết bị sử dụng, ta đưa con trỏ tới các danh mục bên trái của màn hình giao diện, kích vào các danh mục, các thiết bị tương ứng trong nhóm sẽ hiển thị. Trong bài thí dụ này, ta cần 1 LCD, 1 Counter 8 bit, 1 AMUX, 1 ADCINCVR, 1 PGA, 1 LED. - Chọn LCD, ta kích hoạt tới danh mục Misc Digital. Trong danh mục này ta kích chuột chọn LCD Biểu tượng LCD sẽ hiển thị trong màn hình Selected User Modules như hình sau: - Nhấp phải chuột vào biểu tượng của LCD, 1 menu hiển thị như hình trên với các chức năng như: Delete: Xóa bỏ thiết bị đã lựa chọn Rename: Thay đổi tên theo yêu cầu của người sử dụng. Block Diagram: Sơ đồ khối của thiết bị Data sheet: thông tin xem trực tiếp về thiết bị với đầy đủ thông tin như phần cứng, thí dụ lập trình cho thiết bị… Properties: đặc tính của thiết bị Hình sau là sơ đồ khối của LCD: Từ sơ đồ khối này, người sử dụng sẽ biết các chân trên thiết bị LCD, để từ đó phối ghép phần cứng bên ngoài cho phù hợp. - Lựa chọn ADCINCVR trong danh mục ADCs, và lựa chọn PGA trong danh mục Amplifiers. Tương tự, ta sẽ chọn được Counter8, AMUX, ADCINCVR, LED trong cửa sổ Seleted User Modules như hình sau: - Sau khi đã chọn được các thiết bị phần cứng cần thiết, trở về màn hình Interconnect View bằng việc ấn nút Interconnect View trên thanh điều khiển hoặc trong danh mục Config -> Interconnect. Giao diện của chương trình với người sử dụng. - Đặt các thông tin cho các phần tử đã chọn LCD: Counter8 và ADCINCVR: Counter8 và ADCINCVR: PGA Ở đây, ta đặt bộ khuyếch đại PGA có hệ số khuyếch đại =1, độ phân giải của bộ chuyển đổi ADC là 13 bit, xung đầu vào của bộ đếm là VC1 = ( CPU_clock = 12 Mhz (SysClk/2))/12 = 1000Khz Các thông tin trong Global Resource và chân ra của chíp PSoC, chọn như sau: - Sau khi đã hoàn tất các bước ở trên, đưa con trỏ về danh mục Config -> Generate Application để tạo các tệp tương ứng của thiết bị vào trong project. Lúc này ta có thể trở về màn hình soạn thảo bằng cách ấn nút Application Editor hoặc vào danh mục Config -> ấn chức năng Application Editor để lập trình thao tác trên thiết bị đã chọn sử dụng. Trong tệp của project có các tệp lcd. asm, lcd.h, lcd.inc, dac9.h, dac9.asm, dac9.inc counter8.asm. counter8.inc, counter8.h, adcincvr.h, adcincvr.inc, adcincvr. asm …do bước Generate Application tạo ra: B3. Lập trình cho ứng dụng Mở tệp main.c ta thấy như sau: Lúc này ta có thể sử dụng các hàm cơ bản có sẵn của LCD, COUNTER, ADC, PDA để tạo lập ứng dụng riêng cho mình. Các hàm này có tên trong tệp *.h, để biết rõ thông tin về các hàm, cần đọc kỹ trong data sheet. Sau khi đã lập trình xong những yêu cầu cần thiết, đưa con trỏ tới danh mục Build -> Rebuild All. Trong cửa sổ Output của trình biên dịch hiển thị như hình trên có nghĩa project không mắc lỗi cú pháp khi lập trình. 1.2. Lưu đồ thuật toán phần mềm cho PSoC: Lưu đồ thuật toán đầu dò Far Sensor Khởi tạo các module ADC, AMUX, LCD, PGA, COUNTER, UART AMUX lần lượt chọn tín hiệu đầu vào X, Y, Z đưa qua PGA vào ADC Tính giá trị X, Y, Z và cường độ từ trường H1 Đợi lệnh từ đầu thu và Truyền dữ liệu đến Đầu thu Near Sensor Start ADC finish ? + - Reset Khởi tạo các module ADC, AMUX, LCD, PGA, Counter, UART AMUX lần lượt chọn tín hiệu đầu vào X, Y, Z đưa qua PGA vào ADC Tính giá trị X, Y, Z và cường độ từ trường H2 Ra lệnh và nhận dữ liệu H1 từ Đầu dò Far Sensor Đầu dò Far Sensor Tính giá trị ∆H= H1 - H2 Reset Hiển thị LCD và truyền lên máy tính Start ADC finish ? + - ∆H > ∆Hngưỡng Phát loa, nháy led báo hiệu Yes No Chương trình phần mềm viết cho PSoC ở Phụ lục 1.1 2.Truyền thông máy tính: Chương trình trên máy tính Start Đợi chỉ thị lệnh Đọc số liệu Hiển thị Thiết kế chương trình trên máy tính dùng VB Lưu đồ thuật toán. III. Kết quả đo thực nghiệm Bảng giá trị biến thiên ∆H đo được khi đưa một vật sắt từ khối lượng 300g lại gần và ra xa cảm biến ở các độ cao khác nhau: Khoảng cách h ∆H (mGauss) h = 10 cm 55 56 53 70 73 87 101 197 218 220 232 311 386 444 471 661 756 569 500 502 224 229 173 152 76 58 66 h = 20 cm 34 37 41 67 71 75 84 86 92 113 191 224 275 298 312 336 545 456 436 412 394 195 151 92 44 36 24 t h = 10 cm h = 20 cm 500 ∆H 1000 Bảng giá trị biến thiên ∆H đo được khi đưa một vật sắt từ khối lượng 950g lại gần và ra xa cảm biến ở các độ cao khác nhau: Khoảng cách h ∆H h = 10 cm 112 114 148 158 1083 1786 2517 3608 3516 3386 3431 3427 3128 2875 1706 1557 1375 887 804 172 h = 20 cm 66 101 456 569 756 1091 1198 1202 1207 1218 1275 1899 2199 2122 2202 1793 1687 1486 1245 1186 637 507 499 125 t ∆H h = 10 cm h = 20 cm 1000 2000 3000 0 4000 Hình ảnh trang bên minh họa giá trị ∆H hiển thị trên LCD khi không có vật sắt, và khi có vật sắt xuất hiện. - Không có vật: ∆H = 12, đèn Led báo hiệu không sáng, loa không kêu - Có vật xuất hiện: ∆H = 2763, đèn Led báo hiện nhấp nháy, loa kêu báo cho người sử dụng KẾT LUẬN Đề tài ‘‘Nghiên cứu và chế tạo máy dò kim loại’’ là một đề tài mang tính thực tiễn rất lớn. Đề tài được ứng dụng công nghệ cảm biến từ trở không đẳng hướng, đây là một công nghệ mới, nhất là ở Việt Nam hiện nay. Do vậy việc tiếp cận, đặc biệt là ứng dụng công nghệ mới này đòi hỏi cần phải có thời gian nghiên cứu thỏa đáng. Thời gian làm đồ án tốt nghiệp có hạn, nên những kết quả em thu được còn nhiều hạn chế, nhưng quá trình làm đồ án đã giúp em thu lượm được rất nhiều kiến thức quý báu, giúp em tăng khả năng nghiên cứu công nghệ mới và ứng dụng những kiến thức đã được học vào thực tế. Một lần nữa em xin gửi lời cảm ơn chân thành nhất tới những người đã đóng góp cho em những ý kiến và sự giúp đỡ quý báu. Em xin cảm ơn sự hướng dẫn tận tình của thầy giáo TS Nguyễn Quốc Cường. Em xin cảm ơn gia đình và bạn bè đã động viên, giúp đỡ em trong suốt quá trình làm đồ án. Hà nội tháng 5 năm 2007 Sinh viên Nguyễn Thùy Giang TÀI LIỆU THAM KHẢO 1.Honeywell www.honeywell.com Honeywell SSEC - Magnetic Sensors Data Sheets: HMC105x_ 1, 2 and 3 Axis Magnetic Sensors AN202_ magnetic sensor hybrid application circuit.pdf AN218_ Vehicle Detection Using AMR Sensor.pdf AN211_applications of magnetic position sensors AN213 _ set/reset function for magnetic sensors 2.Cypress MicroSystem DataSheet_Cy8C29x66 Technical Reference Manual 3. www.dientuvietnam.net 4. www.psocdeveloper.com 5. Kỹ năng lập trình Visual Basic – Nguyễn Tiến, Đăng xuân Hường, Ngyễn văn Hoài, Trương ngọc Vân. PHỤ LỤC Chương trình viết cho vi điều khiển PSoC //FAR SENSOR #include // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules #include #include int x,y,z,ref,mGx, mGy, mGz, mGref, mGH; long H; float Vx, Vy, Vz, Vref, VH; char *strx, *stry,*strz,*strref, *strH; //-----delay------------ void delay10us(void){ BYTE s; for(s=0;s<120;s++){ asm("nop"); } } void delay05s(void){ int l; for(l=0;l<500;l++){ delay10us(); } } //-----main---------------- void main() { AMUX4_1_Start(); //UART_1_CmdReset(); UART_1_EnableInt(); UART_1_Start(UART_PARITY_NONE); // Enable UART UART_1_CPutString("Example ADC_UART_LCD"); // Example string UART_1_PutCRLF(); PGA_3_Start(PGA_3_MEDPOWER); // Turn on PGA power ADCINCVR_1_Start(ADCINCVR_1_MEDPOWER); // Turn on ADC power ADCINCVR_1_GetSamples(0); // Sample forever //,LCD_1_Start(); // Init the LCD M8C_EnableGInt; // Enable Global interrupts //-----while---------- while (1)// Main loop { //1----Vref------mGauss=0------- AMUX4_1_InputSelect(AMUX4_1_PORT0_7); delay05s(); if (ADCINCVR_1_fIsDataAvailable() != 0) // If ADC sample is ready... { ref= ADCINCVR_1_iGetData() + 2048; ADCINCVR_1_ClearFlag(); UART_1_CPutString("PORT0_7 Vref"); // Example string UART_1_PutCRLF(); UART_1_PutSHexInt(ref); // Print result to UART UART_1_PutCRLF(); // Tack on a CR and LF } //---hien thi LCD gia tri mGauss cus Vref-------- Vref=(float)(ref + 94)*5/4184; //mGref= (int)((Vref - 2.5)*1000); strref= ftoa(Vref,0); //------------------------------------------ //2-Hz------mGauss= z ------- AMUX4_1_InputSelect(AMUX4_1_PORT0_5); delay05s(); if (ADCINCVR_1_fIsDataAvailable() != 0) // If ADC sample is ready... { z = ADCINCVR_1_iGetData() + 2048; ADCINCVR_1_ClearFlag(); UART_1_CPutString("PORT0_5 Hz"); // Example string UART_1_PutCRLF(); UART_1_PutSHexInt(z); // Print result to UART UART_1_PutCRLF(); // Tack on a CR and LF } //---hien thi LCD gia tri mGauss cus Zout-------- Vz=(float)(z + 94)*5/4184; mGz= (int)((Vz - 2.5)*1000); strz= ftoa(mGz,0); UART_1_PutString(strz); // Example string UART_1_PutCRLF(); //------------------------------------------ //3-Hy------mGauss= y ------- AMUX4_1_InputSelect(AMUX4_1_PORT0_3); delay05s(); if (ADCINCVR_1_fIsDataAvailable() != 0) // If ADC sample is ready... { y = ADCINCVR_1_iGetData() + 2048; ADCINCVR_1_ClearFlag(); UART_1_CPutString("PORT0_3 Hy"); // Example string UART_1_PutCRLF(); UART_1_PutSHexInt(y); // Print result to UART UART_1_PutCRLF(); // Tack on a CR and LF } //---hien thi LCD gia tri mGauss cus Zout-------- Vy=(float)(y + 94)*5/4184; mGy= (int)((Vy - 2.5)*1000); stry= ftoa(mGy,0); UART_1_PutString(stry); // Example string UART_1_PutCRLF(); //------------------------------------------ //4-Hx------mGauss= x ------- AMUX4_1_InputSelect(AMUX4_1_PORT0_1); delay05s(); if (ADCINCVR_1_fIsDataAvailable() != 0) // If ADC sample is ready... { x = ADCINCVR_1_iGetData() + 2048; ADCINCVR_1_ClearFlag(); UART_1_CPutString("PORT0_1 Hx"); // Example string UART_1_PutCRLF(); UART_1_PutSHexInt(x); // Print result to UART UART_1_PutCRLF(); // Tack on a CR and LF } //---hien thi LCD gia tri mGauss cus Zout-------- Vx=(float)(x + 94)*5/4184; mGx= (int)((Vx - 2.5)*1000); strx= ftoa(mGx,0); UART_1_PutString(strx); // Example string UART_1_PutCRLF(); //------------------------------------------ //-5-----H---------tinh H chua dung, fai xem lai- //VH= (mGx*mGx + mGy*mGy+ mGz*mGz); //VH= (abs(mGx)*abs(mGx) + abs(mGy)*abs(mGy)+ abs(mGz)*abs(mGz)); //VH=sqrt(VH); //---hien thi LCD gia tri mGauss cus Vref-------- // VH=(float)(H + 94)*5/4184; //mGH= (int)((VH - Vref)*1000); // strH= ftoa(VH,0); // LCD_1_Position(1,8); // LCD_1_PrCString("H"); // LCD_1_Position(1,9); // LCD_1_PrString(strH); //------------------------------------------ } } //NEAR SENSOR #include // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules #include #include int x,y,z,ref,mGx, mGy, mGz, mGref, mGH,dx,dy,dz; int x1,y1,z1; int i; long H,H2; float Vx, Vy, Vz, Vref, VH, dH, dHm; char *strx, *stry,*strz,*strref, *strH; //-----delay------------ void delay10us(void){ BYTE s; for(s=0

Các file đính kèm theo tài liệu này:

  • doc1005.doc