Nghiên cứu thiết kế mô hình hệ thống đo tốc độ và hướng gió kỹ thuật số

  • 55 trang
  • file .doc
LỜI CẢM ƠN
Em xin chân thành cảm ơn tới các thầy cô giáo trong khoa Điện tử viễn
thông – trường Đại học hàng hải, đã định hướng, giúp đỡ, tạo mọi điều kiện
thuận lợi cho em trong quá trình nghiên cứu. Đặc biệt em xin cảm ơn thầy Ngô
Xuân Hường và thầy Vũ Xuân Hậu đã trược tiếp hướng dẫn, chỉ bảo em để có
thể hoàn thành tốt đồ án này.
Em xin chân thành cảm ơn tới các chú, các anh kỹ thuật viên trong Xưởng
điện tử, thuộc công ty cổ phần điện tử hàng hải đã nhiệt tình chỉ bảo, tạo điều
kiện cho em được tìm hiểu, tiếp xúc với các thiết bị thực tế đồng thời có thể thực
nghiệm, đo lường với các thiết bị, máy móc tại Xưởng.
i
LỜI CAM ĐOAN
Em xin cam đoan đây là công trình nghiên cứu của bản thân, dưới sự
hướng dẫn trực tiếp của thầy Ngô Xuân Hường và thầy Vũ Xuân Hậu. Các kết
quả nghiên cứu đưa ra trong đồ án này do em tự tìm hiểu, phân tích và thực
nghiệm và không sao chép bất kì công trình nghiên cứu của tác giả nào khác.
Nội dung đồ án có sử dụng một số thông tin, tài liệu tham khảo và được trích
dẫn rõ ràng tên tác giả, tên công trình, thời gian và địa điểm công bố, và được
liệt kê trong danh mục tài liệu tham khảo.
ii
MỤC LỤC
PHẦN MỞ ĐẦU...................................................................................................1
CHƯƠNG 1:GIỚI THIỆU VỀ HỆ THỐNG ĐO GIÓ..........................................2
1.1. KHÁI NIỆM............................................................................................2
1.2. CẤU TẠO CỦA MỘT HỆ THỐNG ĐO GIÓ........................................2
1.2.1. Khối sensor..........................................................................................2
1.2.2. Khối Display........................................................................................4
1.3. ỨNG DỤNG CỦA HỆ THỐNG ĐO GIÓ..............................................4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT......................................................................6
2.1. ENCODER.................................................................................................6
2.1.1. Khái quát chung về encoder................................................................6
2.1.2. Encoder tuyệt đối.................................................................................7
2.1.3. Encoder tương đối...............................................................................9
2.2. VI ĐIỀU KHIỂN ATMEGA8..................................................................10
2.2.1. Tổng quan về vi điều khiển Atmega8...............................................10
2.2.2. Cấu trúc chung của vi điều khiển Atmega8......................................11
2.2.3. Điều khiển vào ra I/O........................................................................14
2.2.4. Timer/counter....................................................................................15
2.2.5. Truyền thông nối tiếp USART..........................................................17
2.3. CHUẨN GIAO TIẾP NMEA 0183..........................................................21
2.3.1. Khái niệm.........................................................................................21
2.3.2. Đặc điểm kỹ thuật..............................................................................21
2.3.3. Câu lệnh NMEA của hệ thống đo gió...............................................22
CHƯƠNG 3: THIẾT KẾ MÔ HÌNH HỆ THỐNG ĐO GIÓ..............................23
3.1. Ý TƯỞNG VÀ PHƯƠNG ÁN THIẾT KẾ..............................................23
3.1.1. Xác định bài toán thiết kế..................................................................23
3.1.2. Ý tưởng thiết kế.................................................................................23
3.1.3. Phương án thiết kế.............................................................................23
3.2. THIẾT KẾ KHỐI CẢM BIẾN.................................................................24
3.2.1. Cảm biến tốc độ gió...........................................................................24
3.2.2. Cảm biến hướng gió..........................................................................26
3.3. THIẾT KẾ KHỐI HIỂN THỊ...................................................................27
3.3.1. Thiết kế mạch....................................................................................27
3.3.2. Lập trình cho vi điều khiển Atmega8................................................33
KẾT LUẬN VÀ KIẾN NGHỊ.............................................................................35
1. Kết luận.......................................................................................................35
2. Kiến nghị.....................................................................................................35
TÀI LIỆU THAM KHẢO...................................................................................37
PHỤ LỤC............................................................................................................38
iii
MỘT SỐ TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN
ENCODER Cảm biến góc quay
ALU Arithmetic Logic Unit – Khối xử lý toán học
VĐK Vi điều khiển
USART Truyền thông nối tiếp
RAM Random Access Memory – Bộ nhớ ghi/đọc
ROM Read Only Memory – Bộ nhớ chỉ đọc
EPROM Aerraseble programmable ROM – Bộ nhớ Rom lập trình được
GPS Global Position System – hệ thống định vị toàn cầu
DANH MỤC CÁC BẢNG
iv
Số bảng Tên bảng Trang
2.1 Lựa chọn xung clock cho bộ timer/counter 0 15
2.2 Cách thức kiểm tra parity 19
2.3 Độ dài dữ liệu truyền 20
DANH MỤC CÁC HÌNH VẼ
v
Số hình Tên hình Trang
1.1 Cảm biến đo gió WALKER 2050 2
1.2 Cảm biến đo gió YOUNG 05103 3
1.3 Màn hình chỉ báo của máy đo gió WALER 2050 4
2.1 Cấu tạo của encoder 6
2.2 Cấu tạo encoder tuyệt đối 8
2.3 Đĩa quay encoder tuyệt đối 8
2.4 Đĩa quay của encoder tương đối 9
2.5 Vi điều khiển Atmega8 10
2.6 Sơ đồ chân của Atmega8 10
2.7 Cấu trúc vi điều khiển Atmega8 11
2.8 Bộ nhớ chướng trình của Atmega8 12
2.9 Cấu trúc bộ nhớ dữ liệu 14
3.1 Cấu tạo mô hình cảm biến tốc độ gió 24
3.2 Cảm biến hướng gió 25
3.3 Sơ đồ mạch Encoder trong cảm biến đo tốc độ gió 25
3.4 Cấu tạo mô hình cảm biến hướng gió 26
3.5 Cảm biến hướng gió 27
3.6 Sơ đồ layout mạch vi điều khiển 31
3.7 Mạch vi điều khiển 31
3.8 Sơ đồ layout mạch hiển thị Led 32
3.9 Mạch hiển thị Led 32
vi
PHẦN MỞ ĐẦU
Trong lịch sử phát triển của mình, từ xa xưa, con người đã biết tới nguồn
năng lượng gió và ảnh hưởng của nó đến đời sống. Ngưởi ta lợi dụng sức gió để
đẩy thuyền buồm ra khơi, để chế tạo cối xay gió hay để làm máy phát điện,..
Tuy nhiên sức gió cũng có thể gây ra những ảnh hưởng tiêu cực như làm lệch
hướng di chuyển của tàu thuyền, ảnh hưởng tới độ vững chắc của các tòa nhà
cao tầng, hay những cơn gió to gây thiệt hại tới tài sản và tính mạng con ngưởi.
Do đó việc “đo” được sức gió, nghĩa là nắm được những thông số như hướng
gió, tốc độ gió, áp suất gió là rất quan trọng, và những chiếc máy đo gió ra đời.
Tong quá trình tìm hiểu, chuẩn bị đề tài tốt nghiệp cùng với sự định
hướng của thầy Ngô Xuân Hường và thầy Vũ Xuân Hậu, em đã lựa chọn đề tài
tốt nghiệp “NGHIÊN CỨU THIẾT KẾ MÔ HÌNH HỆ THỐNG ĐO TỐC ĐỘ
VÀ HƯỚNG GIÓ KỸ THUẬT SỐ”. Đây là những ý tưởng của em về việc thiết
kế một hệ thống đo gió, kết hợp với việc tìm hiểu các hệ thống đo gió hiện nay,
cùng với sự hướng dẫn, chỉ bảo của các thầy. Tuy nhiên do kiến thức của em
còn hạn chế, nên đồ án còn nhiều sai sót. Em rất mong nhận được sự góp ý, bổ
sung của các thầy để bản đồ án của em được hoàn thiện hơn đồng thời là cơ hội
để em hoàn thiện hơn những kiến thức và hiểu biết của bản thân.
1
CHƯƠNG 1:GIỚI THIỆU VỀ HỆ THỐNG ĐO GIÓ
1.1. KHÁI NIỆM
Hệ thống đo gió (anemometer), là một thiết bị dùng để đo tốc độ, hướng
gió và áp suất của gió. Hiện nay, các hệ thống đo gió chủ yếu gồm hai chức
năng là đo tốc độ và hướng gió.
1.2. CẤU TẠO CỦA MỘT HỆ THỐNG ĐO GIÓ
1.2.1. Khối sensor
Hình 1.1. Cảm biến đo gió WALKER 2050
Khối cảm biến bao gồm cảm biến tốc độ gió (wind speed sensor) và cảm
biến hướng gió (direction indicator sensor). Tùy theo cấu tạo và hình dạng của
cảm biến tốc độ gió, ta có 2 loại hệ thống đo gió:
Dạng máy đo gió hình chén, được phát minh bởi tiến sĩ John Thomas
Romney Robinson (1846), đây là một trong những thiết bị đo gió đầu tiên và
hiện nay vẫn được sử dụng khá rộng rãi.
Cấu tạo của máy gồm 3 hoặc 4 tay đòn đặt vuông góc với nhau. Ở đầu
mỗi tay đòn có gắn một chén hình bán cầu. Có một trục đứng ở giữa nằm ở giao
2
điểm các tay đòn là tâm mà các chén quay xung quanh và một bộ truyền động
thực hiện đếm số vòng mà trục quay được, và từ số vòng quay được đó trong
một khoảng thời gian ta sẽ tính ra được vận tốc gió.
Các chén được đặt đối xứng với nhau, do đó gió luôn thổi vào phía trong
của chén. Mặc dù phía ngoài của chén cũng có gió thổi vào nhưng áp suất gió rất
nhỏ, do đó chén sẽ bị đẩy đi theo 1 hướng, kết hợp với hiện tượng quán tính, lần
lượt các chén liên tục bị đẩy sinh ra hiện tượng quay vòng.
Máy đo gió dạng cối xay gió: trục quay nằm song song với hướng gió ,
với cánh quạt được gắn ở đầu, do đó nó nằm ngang, khi gió đổi chiều thì trục
quay cũng thay đổi.
Hình 1.2. Cảm biến đo gió YOUNG 05103
3
1.2.2. Khối Display
Hình 1.3. Màn hình chỉ báo của máy đo gió WALER 2050
Khối Display nhận tín hiệu từ cảm biến cho phép hiển thị tốc độ gió bằng
số, và hướng gió thể hiện bằng vị trí đèn led sáng hay chỉ báo bằng hướng mũi
tên trên màn hình LCD.
Ngoài việc hiển thị trên màn hình, hệ thống đo gió còn cho phép xuất tín
hiệu ra để đưa vào một máy tính để xử lý hay ghép nối tới các thiết bị khác (ví
dụ như trong hàng hải, tín hiệu đo gió được ghép nối tới hộp đen, hải đồ điện
tử,..). tín hiệu ra là các câu lệnh theo chuẩn giao tiếp NMEA.
1.3. ỨNG DỤNG CỦA HỆ THỐNG ĐO GIÓ
Hệ thống đo gió được lắp đặt tại các trạm khí tượng thủy văn, cho phép
xác định các thông số về hướng gió, cường độ gió (cấp gió) và áp suất gió, là
những thông tin quan trọng trong việc phân tích tình hình thời tiết và đưa ra các
bản tin dự báo, cảnh báo thời tiết.
Trong hàng hải, đặc biệt là với tàu thuyền lưu thông trên biển, việc nắm
được các thông tin về hướng và cường độ gió rất quan trọng, giúp cho người
điều khiển tàu chỉnh góc lái phù hợp tránh hiện tượng tàu bị trôi dạt lệch khỏi
hướng hành trình. Hệ thống đo gió là một trong những nghi khí dẫn đường hàng
hải quan trọng.
4
Ngoài ra hệ thống đo gió cũng được ứng dụng trong các lĩnh vực nông
nghiệp, xây dựng, thể thao,…
5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. ENCODER
2.1.1. Khái quát chung về encoder
a. Khái niệm Encoder
Encoder là một loại cảm biến vị trí, cho phép xác định thông tin về góc
quay một cách chính xác dưới dạng số. Tín hiệu ra của encoder là các bit nhị
phân, với số lượng bit tương ứng với độ phân giải của encoder.
b. Phân loại encoder
Encoder được phân làm 2 loại chính, bao gồm:
- Encoder tuyệt đối: sử dụng đĩa theo mã nhị phân, mã Gray hoặc mã
BCD
- Encoder tương đối: gồm có loại 1 kênh, loại 2 kênh.
c. Cấu tạo và nguyên lý hoạt động
Hình 2.1. Cấu tạo của encoder
Cấu tạo của encoder gồm 1 đĩa tròn xuay quanh trục. Trên đĩa có
khoét các lỗ (rãnh). Một bên mặt đĩa đặt một led phát hồng ngoại và bên
kia đặt một transitor thu quang thẳng hàng. Với mạch thu phát như hình
6
trên, khi đĩa quay, chỗ có lỗ, ánh sáng hồng ngoại sẽ chiếu vào transistor
thu quang, transistor sẽ dẫn và ta thu được tín hiệu ra mức “0” và ngược
lại, chỗ không có lỗ, ánh sáng hồng ngoại sẽ không chiếu vào transistor
được, transistor không dẫn và ta thu được tín hiệu ra mức “1”. Giả sử rằng
trên đĩa quay ta khoét một lỗ duy nhất thì khi ta nhận được một xung tín
hiệu ra nghĩa là đĩa đã quay được một vòng. Đây chính là nguyên lý cơ
bản của encoder.
d. Ứng dụng của Encoder
Trong thực tế, encoder thường được dùng để:
- Đo tôc độ động cơ, điều khiển tốc độ động cơ.
- Xác định góc dịch chuyển, hướng dịch chuyển.
- Đo khoảng dịch chuyển của vật, vận tôc của vật thông qua đo tốc
độ vòng quay.
- Ứng dụng nhiều trong các lĩnh vực tự động công nghiệp, robot,
hàng không,..
2.1.2. Encoder tuyệt đối
Đĩa quay của encoder tuyệt đối gồm nhiều vòng tròn đồng tâm tạo thành
những “dải băng” có xẻ rãnh theo quy luật mã nhị phân hay mã Gray. Encoder
tuyệt đối có nhiều bộ thu phát hồng ngoại, tương ứng với số “dải băng”, mỗi bộ
thu phát hồng ngoại cho ra một bit tín hiệu. Số bit tín hiệu ra (n) cũng tương ứng
với số “dải băng”, mã hóa được 2n trạng thái góc quay.
7
Hình 2.2. Cấu tạo encoder tuyệt đối
Hình 2.3. Đĩa quay encoder tuyệt đối
Ta thấy ở hình trên là một đĩa quay encoder tuyệt đối với ba “dải băng”
tương ứng với 8 trạng thái góc được mã hóa. Với 3 bộ thu phát hồng ngoại ta thu
được tín hiệu ra gồm 3 bit, tương ứng theo chiều ngược kim đồng hồ sẽ là: 000,
001, 010, 011, 100, 101, 110, 111. Độ chính xác về góc quay trong trường hợp
8
này là 40o. Khi số “dải băng” tăng lên, ta có thể mã hóa được nhiều trạng thái
góc hơn, tương ứng với độ chính xác về góc tăng lên đáng kể.
2.1.3. Encoder tương đối
Hình 2.4. Đĩa quay của encoder tương đối
Encoder tương đối về cơ bản có cấu tạo như encoder tuyệt đối, nhưng đĩa
quay chỉ có một dải băng trên đó có các lỗ (rãnh) phân bố đều nhau. Giả sử đĩa
encoder có 8 lỗ như hình trên, khi ta đọc được 8 xung nghĩa là đĩa đã quay được
một vòng.
Tuy nhiên, đôi khi do tác động của nhiễu có thể làm thay đổi số lượng
xung thu được, nếu hoạt động lâu dài, sai số này sẽ tích lũy dẫn đến sai số lớn.
Để khắc phục điều này, người ta đục thêm một lỗ định vị để đếm số vòng đã
quay của encoder. Bằng việc đối chiếu 2 tín hiệu thu được, ta có thể kiểm soát
và khắc phục được sự sai lệch.
9
2.2. VI ĐIỀU KHIỂN ATMEGA8
2.2.1. Tổng quan về vi điều khiển Atmega8
Atmega8 là vi điều khiển thuộc họ AVR do hãng Intel sản xuất. Đây là
loại chip thuộc dòng AVR mới nhất, nó có kích thước nhỏ gọn nhưng đầy đủ các
tính năng của một AVR.
Hình 2.5. Vi điều khiển Atmega8
Sơ đồ chân của Atmega8 như sau:
Hình 2.6. Sơ đồ chân của Atmega8
Các thông số cơ bản:
 Tốc độ tối đa: 16MHz.
 Bộ nhớ chương trình: 8 KB
 Bộ nhớ RAM: 1 KB
 Bộ nhớ EPROM: 512 Byte
10
 Bộ nhớ chương trình có khả năng ghi 10.000 lần, bộ nhớ EEPROM có thể
ghi 100.000 lần. Hỗ trợ bootloader, có khả năng tự ghi vào bộ nhớ chương
trình, cập nhật chương trình cho chip mà không cần mạch nạp.
 23 cổng I/O
 Timer 8 bit: 2
 Timer 16 bit: 1
 ADC: 6 kênh, 10 bit
 Giao tiếp: TWI (I2C), USART, SPI
 Điện áp hoạt động: Atmega8L: 2.7V – 5.5V.
Atmega8: 4.5V – 5.5V.
2.2.2. Cấu trúc chung của vi điều khiển Atmega8
Hình 2.7. Cấu trúc vi điều khiển Atmega8
Để tối ưu hóa hiệu suất và tốc độ xử lý, Atmega8 có cấu trúc Harvard,
trong đó đường truyền cho bộ nhớ dữ liệu và bộ nhớ chương trình được tách
riêng.
11
ALU (Arithmetic Logic Unit) được xem như CPU của Atmega8. 32 thanh
ghi trong Register File được kết nối trực tiếp với ALU bằng hai đường, do đó
trong 1 chu kì xung nhịp ALU có thể truy xuất trực tiếp 2 thanh ghi RF cùng
một lúc.
Các instruction được chứa trong bộ nhớ chương trình (Flash memory)
dưới dạng các thanh ghi 16 bit. Trong mỗi chu kì xung nhịp, instruction chứa
trong bộ nhớ chương trình sẽ được load vào trong instruction register,
instruction register tác động và chọn register file cũng như RAM cho ALU thực
thi. Trong quá trình thực thi chương trình, địa chỉ của dòng lệnh đang thực thi
được quyết định bởi bộ đếm chương trình (Program counter).
Cấu trúc bộ nhớ Atmega8 bao gồm bộ nhớ chương trình và bộ nhớ dữ
liệu.
Bộ nhớ chương trình (program memory) là 8KB bộ nhớ Flash lập trình
được. Do các lênh của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ chương trình
được sắp xếp theo kiểu 4Kx16. Bộ nhớ chương trình gồm Application Flash
Section và trong chip AVR mới ta có thêm phần Boot Flash setion. Application
Flash Section bao gồm 2 phần : phần chứa các mã lệnh (instruction) và phần
chứa các vector ngắt (interrupt vectors). Các vector ngắt nằm ở phần đầu của bộ
nhớ chương trình từ 0x000 đến 0x012, tiếp ngay sau đó là phần chứa các
instruction.
Hình 2.8. Bộ nhớ chướng trình của Atmega8
12
Bộ nhớ dữ liệu (data memory) là phần chứa các thanh ghi quan trọng của
chip. Bộ nhớ dữ liệu gồm:
Phần đầu của bộ nhớ dữ liệu bao gồm 32 thanh ghi từ R0 đến R31 trong
register file có địa chỉ tuyệt đối từ 0x0000 đến 0x001F có các đặc điểm:
- Được truy nhập trực tiếp trong quá trình thực thi chương trình.
- Register file được kết nối trực tiếp tới ALU.
- Các phép toán thực hiện trên thanh ghi chỉ trong 1 xung clock.
- Chúng là nguồn chứa các số hạng trong phép toán và là đích chứa kết
quả trả lại của phép toán.
- Các thanh ghi từ R26 tới R31 ngoài chức năng thông thường nó còn
từng đôi một tạo thành các thanh ghi 16 bit X, Y, Z được dùng làm con trỏ trỏ
tới bộ nhớ chương trình và bộ nhớ dữ liệu .Thanh ghi con trò X, Y có thể dùng
làm con trỏ trỏ tới bộ nhớ dữ liệu, còn thanh ghi Z có thể dùng làm con trỏ trỏ
tới bộ nhớ chương trình.
Vùng nhớ I/O (I/O registers) nằm ngay sau register file, gồm 64 thanh ghi
nhập/xuất. Vùng nhớ I/O là cửa ngõ giao tiếp giữa CPU và thiết bị ngoại vi. Tất
cả các thanh ghi điều khiển, trạng thái…của thiết bị ngoại vi đều nằm ở đây.
Vùng nhớ I/0 có địa chỉ từ 0x0020 đến 0x005F
RAM tĩnh, nội (internal SRAM), là vùng chứa các biến trong lúc thực thi
chương trình. Ram tĩnh có địa chỉ từ 0x0060 đến 0x045F.
512 byte bộ nhớ EEPROM (Electrically Ereasable Programmable ROM),
bộ nhớ này không bị xóa ngay cả khi không cung cấp nguồn nuôi cho chip, rất
thích hợp cho các ứng dụng lưu trữ dữ liệu. Phần bộ nhớ EEPROM được tách
riêng biệt và có địa chỉ từ 0x0000.
13
Hình 2.9. Cấu trúc bộ nhớ dữ liệu
2.2.3. Điều khiển vào ra I/O
Atmega8 có 23 chân xuất nhập chia làm 3 cổng vào ra là cổng A, cổng B
và cổng C. Việc cấu hình, điều khiển các cổng được thực hiện thông qua 3
thanh ghi: DDRx, PORTx và PINx. Các thanh ghi này có thể truy xuất từng bit
để có thể điều khiển từng chân của mỗi cổng.
- DDRx: quy định chiều của chân, nếu DDRx=1: chân được cấu hình làm
đầu ra, nếu DDRx=0 chân được cấu hình làm đầu vào.
- PORTx: nếu PORTx=1 khi chân được cấu hình làm đầu vào thì sẽ kích
hoạt điện trở treo dương tại chân tương ứng. Để vô hiệu hóa trở treo này thì
PORTx phải được gán 0 hoặc chân được cấu hình làm đầu ra (DDRx=1).
Nếu chân được cấu hình làm đầu ra (DDRx=1): Nếu PORTx=1 thì chân tương
ứng sẽ được đưa lên mức cao, ngược lại nếu PORTx=0 thì chân tương ứng sẽ
được đưa xuống mức thấp.
- PINx: Đọc dữ liệu từ chân VĐK, độc lập với cấu hình chiều của chân,
trạng thái của chân có thể được đọc thông qua các bit của thanh ghi PINx.
14