Về mặt ứng dụng thực tiễn hệ thống đƣợc ứng dụng vào lĩnh vực ý tế đó là hệ thống giám sát bệnh nhân từ xa qua mạng internet. Trong các bệnh viện lớn có rất nhiều bệnh nhân mà bác sỹ không thể có mặt thường xuyên tại các phòng bệnh nhân được thì việc thiết kế hệ thống giám sát bệnh nhân qua mạng internet với mục đích giúp cho việc giám sát và theo dõi tình trạng của bệnh nhân từ xa tốt hơn. Ngoài ra hệ thống giúp cho các bệnh nhân vùng sâu vùng xa, dân tộc thiểu số ít ngƣời việc đi lại khó khăn các bác sỹ không thể thường xuyên có mặt trực tiếp để thăm khám bệnh được thì việc khám bệnh từ xa qua mạng internet là cần thiết.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
HỒ MẬU VIỆT
THIẾT KẾ HỆ THỐNG ĐO NHIỆT ĐỘ VÀ XÁC ĐỊNH VỊ
TRÍ BỆNH NHÂN QUA MẠNG INTERNET
LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH KỸ THUẬT Y SINH GIÁO VIÊN HƯỚNG DẪN: PGS.TS NGUYỄN TIẾN DŨNG
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan cuốn luận văn này do chính tôi nghiên cứu Hệ thống phần cứng và chương trình phần mềm do tôi thiết kế và xây dựng Các thông tin số liệu trong luận văn là hoàn toàn trung thực, chính xác và có nguồn gốc rõ ràng Trong quá trình nghiên cứu tôi có tham khảo mốt số tài liệu, và bài báo có trong danh mục tài liệu tham khảo được liệt kê cuối luận văn
Học viên
Trang 3MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 4
DANH MỤC BẢNG BIỂU 6
MỞ ĐẦU 9
CHƯƠNG 1: TỔNG QUAN 10
1.1 Mở đầu 10
1.2 Ý tưởng thiết kế 10
1.3 Mục tiêu của đề tài 11
1.4 Yêu cầu hệ thống 11
1.5 Giải pháp thiết kế 12
CHƯƠNG 2: CÔNG NGHỆ ĐỊNH VỊ GPS 14
2.1 Giới thiệu về hệ thống định vị toàn cầu GPS 15
2.2 Phân loại các hệ thống định vị 16
2.3 Cấu trúc của hệ thống định vị toàn cầu 16
2.4 Hoạt động của GPS 18
2.5 Độ chính xác của GPS 18
2.6 Hệ thống vệ tinh GPS 19
2.7 Tín hiệu GPS 19
2.8 Nguồn lỗi của tín hiệu GPS 20
2.9 Nhận xét về khả năng và những ứng dụng của GPS 21
CHƯƠNG 3: KIT VI ĐIỀU KHIỂN ARDUINO 22
3.1 Giới thiệu về kít vi điều khiển Arduino 22
3.2 Phân loại kit Arduino 24
3.2.1 Arduino Uno 24
3.2.2 Arduino Mega 2560 26
3.2.3 Arduino Fio 29
3.3 Lập trình Arduino 31
3.3.1 Giới thiệu môi trường lập trình 31
3.3.2 Giao diện phần mềm lập trình Arduino 33
Trang 43.3.3 Nạp chương trình và chạy ứng dụng 34
3.4 Cấu trúc chương trình lập trình Arduino 35
CHƯƠNG 4: THIẾT BỊ ĐỊNH VI GPS SIM548 36
4.1 Lý do lựa chọn module SIM548 36
4.2 Đặc điểm chung SIM548 37
4.3 Cấu trúc phần cứng module SIM548 38
4.4 Phần cứng ứng dụng GSM trong SIM548 40
4.4.1 Chức năng các chân cho GSM 40
4.4.2 Bật ứng dụng GSM của module SIM 548 44
4.4.3 Tắt ứng dụng GSM của module SIM548 45
4.5 Truyền thông nối tiếp trên SIM548 47
4.6 Kết nối với SIM card 48
4.7 Trạng thái của chân STATUS 49
4.8 Phần cứng ứng dụng GPS của module SIM548 50
4.8.1 Chức năng các chân dùng cho ứng dụng GPS 50
4.8.2 Bật ứng dụng GPS 51
4.8.3 Mạch kết nối cho chân VRTC 51
4.8.4 Mạch kết nối cho chân RESET 51
4.8.5 Chuẩn giao tiếp nối tiếp của ứng dụng GPS 52
4.9 Ứng dụng GPS của module SIM548 52
4.9.1 GPS Hệ thống định vị toàn cầu 52
4.9.2 Kỹ thuật DGPS 54
4.10 Chuẩn giao tiếp NMEA 55
4.10.1 Dữ liệu đầu ra 55
4.10.2 Dữ liệu đầu vào 57
CHƯƠNG 5: THIẾT KẾ HỆ THỐNG ĐO NHIỆT ĐỘ VÀ XÁC ĐỊNH VỊ TRÍ BỆNH NHÂN 61
5.1 Giới thiệu 61
5.1 Sơ đồ khôi hệ thống 61
5.1.1 Arduino Mega 2560 62
5.1.2 Khối giao chức năng GSM và GPS 63
Trang 55.1.3 Khối giao tiếp GPS và GSM 64
5.1.4 Module SIM 66
5.1.5 Cảm biến nhiệt độ 66
5.2 Sơ đồ nguyên lý tổng thể hệ thống 68
5.3 Lưu đồ thuật toán điều khiển hệ thống 69
5.4 Thiết kế hệ thống phần mềm giám sát 70
5.4.1 Yêu cầu và mục đích của hệ thống phần mềm 70
5.4.2 Câu trúc và sơ đồ giải thuật 71
5.5 Xây dựng phần mềm server quản lý dùng giao thức TCP/IP 73
5.5.1 Ứng dụng giao thức TCP/IP trong việc liên kết các người dùng qua mạng 73
5.6 Giải pháp ứng dụng của module Sim548 trong việc kết nối server 74
5.6.1 Đối với server 74
5.6.2 Yêu cầu phần mềm Server 74
5.7 Giải pháp GPRS 75
5.8 Phần mềm thiết kế webserver Netbeans 75
5.9 Thiết kế phần mềm hiển thị cho máy Client 77
5.10 Mở cổng modem cho máy chủ webserver 78
5.11 Kết quả đạt được 79
5.12 Đánh giá kết quả 84
5.13 Kết luận 85
TÀI LIỆU THAM KHẢO 86
PHỤ LỤC 87
Trang 6DANH MỤC HÌNH ẢNH
Hình 2.1: Hệ thống vệ tinh cho GPS 15
Hình 3.1: Hình ảnh kit vi điều khiểnt Arduino 22
Hình 3.2: Cấu trúc phần cứng của Arduino Uno 24
Hình 3.3: Arduino Mega 2560 26
Hình 3.4: Arduino Mega Fio 29
Hình 3.5: Link download phần mềm Arduino 32
Hình 3.6: Giao diện lập trình Arduino 32
Hình 3.7: Giao diện lập trình Arduino 33
Hình 3.8: Lấy ví dụ có sẵn trong Arduino 34
Hình 3.9: Nạp chương trình cho Arduino 34
Hình 4.1: Hình ảnh module Sim548 37
Hình 4.2: Các thiết bị đi kèm module SIM548 38
Hình 4.3: Sơ đồ khối SIM548 39
Hìnhn 4.4: Dùng chân PWMRKEY để bật ứng dụng GSM 44
Hình 4.5: Dùng chân PWRKEY để tắt ứng dụng GSM 46
Hình 4.6: Chuẩn giao tiếp nối tiếp của SIM548 47
Hình 4.7: Kết nối SIM card 6 chân 48
Hình 4.8: Kết nối với chân NETLIGHT 49
Hình 4.9: Bật ứng dụng GPS 51
Hình 4.10 Kết nối với chân VRTC 51
Hình 4.11: Kết nối với chân RESET 52
Hình 4.12: Vệ tinh GPS 53
Hình 5.1: Sơ đồ khối hệ thống 61
Hình 5.2: Khối xử lý trung tâm 62
Hình 5.3: Sơ đồ cấu trúc khối giao tiếp vô tuyến 64
Hình 5.4: Anten thu phát GPRS 64
Hình 5.5: Anten thu phát GPS 65
Hình 5.6: Sim kết nối mạng GSM/ GPRS 66
Trang 7Hình 5.7: Hình ảnh cấu tạo cảm biến nhiệt độ 67
Hình 5.8: Sơ đồ mạch nguyên lý hệ thống 68
Hình 5.9: Lưu đồ thuật toán điều khiển hệ thống 69
Hình 5.10: Sơ đồ phần mềm theo lớp 71
Hình 5.11: Sơ đồ giải thuật 72
Hình 5.12: Giao diện phần mềm lập trình Java Netbeans 76
Hình 5.13: Giao diện phần mềm webserver 76
Hình 5.14: Giao diện phần mềm Visua Studio 2012 77
Hình 5.15: Giao diện phần mềm hiển thị cho máy Client 78
Hình: 5.16: Mở port trên modem 79
Hình 5.17: Thiết lập thông số cho port mới 79
Hình 5.18: Các thiết bị trong hệ thống 80
Hình 5.19: Hệ thống ghép nối hoàn chỉnh 80
Hình 5.20: Hệ thống hoàn thanh cuối cùng 81
Hình 5.201: Thông tin về tọa độ vị trí của bệnh nhân 82
Hình 5.22: Thông tin về nhiệt độ 82
Hình 5.23: Kết quả khi chạy phần mềm webserver 83
Hình 5.24: Kết quả khi chạy phần mềm hiện thị 83
Hình 5.25: Thông tin vị trí và nhiệt độ đo được từ bệnh nhân 84
Trang 8DANH MỤC BẢNG BIỂU
Bảng 4.1 Chức năng các chân GSM 40
Bảng 4.2 Miêu tả chức năng các chân 41
Bảng 4.4 Chức năng các chân SIM 49
Bảng 4.5 Trạng thái chân STATUS 49
Bảng 4.6 Chức năng các chân GPS 50
Bảng 4.7 Dạng ký hiệu thông tin định vị 55
Bảng 4.8 Thông tin chuỗi bảng tin nhận đƣợc 56
Bảng 4.9 Thông báo trạng thái kết nối 56
Bảng 4.10 Cấu hình module 57
Bảng 4.11 Tham số cấu hình module 57
Bảng 4.12 Thông số cáu hình PORT A 58
Bảng 4.13 Thông tin khởi tạo ứng dụng GPS 58
Bảng 4.14 Thông tin cấu hình nối tiếp 59
Bảng 4.15 Thông tin định dạng đầu ra 59
Bảng 4.16 Thông tin khởi tạo thời gian 60
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Tên tiếng anh Tên tiếng việt
ommunications
Hệ thống thông tin di động toàn cầu
ces
Dịch vụ vô tuyến gói chung
ol
Giao thức ứng dụng mạng đơn giản
col/User Datagram Protocol
Giao thức điều khiển truyền dẫn/Giao thức dữ liệu gói người sửdụng
Environment
Môi trường biên dịch
Environment
Môi trường biên dịch
Trang 10SPI Serial Peripheral Interface chuẩn đồng bộ nối tiếp truyền dữ liệu
chế độ song công toàn phần
chủ động đến thiết bị bị động
bị bị động đến thiết bị chủ động
tăctơ dành cho thiết bị bị động
serial Reveiver and Transmitter
thức truyền thông không đồng bộ
Trang 11MỞ ĐẦU
Lĩnh vực công nghệ thông tin ngày càng phát triển và ngày càng được ứng dụng rộng rãi trong các lĩnh vực của cuộc sống xã hội Việc hội nhập, tiếp thu kiến thức để áp dụng vào cuộc sống luôn là vấn đề được mọi người quan tâm Con người ngày càng sáng chế ra nhiều loại máy móc, phương tiện hữu ích để phục vụ cho con người, nhằm giảm đi công sức mà con người phải bỏ ra, giúp cho công việc đạt hiệu quả hơn
Trong luận văn này, em đã thiết kế và thử nghiệm thành công thiết bị xác định nhiệt độ và xác định vị trí của bệnh nhân qua mạng internet, có chức năng hỗ trợ cho việc chẩn đoán và giám sát bệnh nhân từ xa Hệ thống có thể tích hợp nhiều chức năng như đo nhịp tim, đo nhiệt độ, huyết áp, có thể gắn camera để truyền hình ảnh, tuy nhiên vì thời gian có hạn cho nên trong đề tài luận văn này tác giải chỉ tích hợp một số chức năng như đo nhiệt độ và xác định vị trí bệnh nhân Hệ thống có sử dụng module SIM548 có tích hợp chức năng GPS và GSM kết hợp với kít vi điều khiển Arduimo Mega 2560 là bộ xử lý trung tâm Hệ thống này có thể áp dụng vào trong lĩnh vực y tế như quản lý giám sát các chỉ số quan trọng của bệnh nhân và có thể xây dựng mô hình khám và chẩn đoán bệnh từ xa qua mạng intennet
Đề tài luận văn được chia làm năm chương, mỗi chương được đề cập đến một vấn đề trong luận văn
Chương I: Tổng quan Chương II: Công nghệ định vị GPS Chương III: KIT vi điều khiển Arduino Mega 2560 Chương IV: Thiết bị định vị GPS SIM548
Chương IV: Thiết kế hệ thống đo nhiệt độ và xác định vị trí bệnh nhân
Trang 12CHƯƠNG 1: TỔNG QUAN 1.1 Mở đầu
Trong các bệnh viện lớn hiện nay người ta đang đầu tư xây dựng các hệ thống giám sát để quản lý các hoạt động trong bệnh viện Điển hình đó là hệ thống camera giám sát trong bệnh viện Hệ thống camera giám sát bệnh viện với mục tiêu đảm bảo an toàn, an ninh bệnh viện Hệ thống Camera giám sát tài sản, quan sát phòng bệnh nhân, ghi hình quá trình làm việc của đội ngũ bác sĩ, y tá một cách hiệu quả, chính xác các hoạt động, mọi lúc, mọi nơi Hỗ trợ kỹ thuật online từ các bệnh viện tuyến trên xuống bệnh viện tuyến dưới Hỗ trợ kỹ thuật online từ các bệnh viện khác trên thế giới Hỗ trợ chứng cứ cho việc xác định: bệnh nhân tử vong trước hay sau khi nhập viện, thông tin về bệnh nhân Hỗ trợ thân nhân xem quá trình phẫu thuật, nhìn người thân trong bệnh viện từ xa tại nhà hay từ nước ngoài Kết hợp được với mục đích an ninh bệnh viện Ngoài ra còn có các hệ thống như:
- Hệ thống giám sát SPO2 từ xa, có chức năng kiểm tra nồng độ oxy trong máu
- Hệ thống giám sát mức độ nhiệm khuẩn ở bệnh viện
- Hệ thống kết nối bệnh nhân với bác sĩ từ xa qua mạng internet Bệnh nhân ngồi ở nhà đo các chỉ số huyết áp, tim mạch, hô hấp rồi gửi cho bác sĩ qua mạng Bác sĩ sẽ chỉ định cho bệnh nhân đến viện điều trị hay không
1.2 Ý tưởng thiết kế
Hệ thống đo nhiệt độ và xác định vị trí bệnh nhân qua mạng internet xuất phát từ ý tưởng thiết kế một hệ thống giám sát bệnh nhân khi đang điều trị tại bệnh viện hoặc là thăm khám bệnh từ xa qua mạng Hệ thống giúp cho các bác sỹ chẩn đoán bệnh từ xa mà không cần gặp trược tiếp bệnh nhân vẫn có thể biết được tình trạng của bệnh nhân thông qua các thông số hệ thống thu thập được từ hệ thống gửi
về Một trong những ưu điểm lớn nhất của thiết bị là có thể di chuyển đi tất cả mọi nơi vì hệ thống bắt tín hiệu qua vệ tinh và truyền tín hiệu thông qua mạng điện thoại
di động đang phủ sóng trên toàn bộ lãnh thổ Việt Nam Hệ thống có thể tích hợp nhiều chức năng như đo nhịp tim, huyết áp, nhiệt độ bệnh nhân, xác định vị trí bệnh nhân, camera để quan sát hình ảnh, chuông báo động khi cần thiết tuy nhiên vì thời
Trang 13gian có hạn nên em chỉ thiết kệ thí điểm hệ thống xác định hai thông số đó là xác định vị trí và đo nhiệt độ bệnh nhân Với hệ thống này thì các bệnh nhân ở vùng sâu vùng xa các dân tộc thiểu số ít người có thể dùng được mà bác sỹ không cần đến tận nơi mà chỉ cần ngồi ở văn phòng làm việc của mình vẫn có thể nắm được tình hình của các bệnh nhân và có thể chẩn đoán được tình trạng sức khỏe của bệnh nhân
1.3 Mục tiêu của đề tài
Xuất phát từ ý tưởng đã nêu, đề tài luận văn của em thực hiện với những mục tiêu chính sau đây:
Đối với bản thân em thì đề tài luận văn là cơ hội để em tìm hiểu, nghiên cứu và thiết kế hệ thống đo nhiệt độ và xác định vị có ứng dụng chức năng định vị GPS thông qua mạng điện thoại di động GPRS đây là một lĩnh vực mới đang được nhiều người quan tâm tuy nhiên cũng chưa có nhiều đề tài nghiên cứu sâu về lĩnh vực này Cho nên mục tiêu của đề tài là rèn luyện tác phong, tinh thần khoa học, cũng như hoàn thiện phương pháp, tư duy nghiên cứu, giải quyết một vấn đề thực tiễn Quan trọng hơn là tích lũy và nâng cao trình độ chuyên môn cho bản thân
Về mặt ứng dụng thực tiễn hệ thống được ứng dụng vào lĩnh vực ý tế đó là
hệ thống giám sát bệnh nhân từ xa qua mạng internet Trong các bệnh viện lớn có rất nhiều bệnh nhân mà bác sỹ không thể có mặt thường xuyên tại các phòng bệnh nhân được thì việc thiết kế hệ thống giám sát bệnh nhân qua mạng internet với mục đích giúp cho việc giám sát và theo dõi tình trạng của bệnh nhân từ xa tốt hơn Ngoài ra hệ thống giúp cho các bệnh nhân vùng sâu vùng xa, dân tộc thiểu số ít người việc đi lại khó khăn các bác sỹ không thể thường xuyên có mặt trực tiếp để thăm khám bệnh được thì việc khám bệnh từ xa qua mạng internet là cần thiết
Ngoài ra đề tài còn giúp cho em có cơ hội tiếp cận với nên khoa học hiện đại hiện nay
1.4 Yêu cầu hệ thống
Thiết kế hệ thống đo nhiệt độ và xác định ví trí bệnh nhân thông qua mạng internet bằng kit vi điều khiển Arduino Mega 2560 và module SIM548 cần phải đáp ứng được các yêu cầu sau:
Trang 14 Hệ thống kết nối đƣợc với mạng Ethernet
Hệ thống xác định đƣợc vị trí bệnh nhân
Hệ thống đo đƣợc nhiệt độ bệnh nhân
Hệ thống có thể tích hợp thêm các chức năng khác nhƣ camera, đo huyết
áp, nhịp tim, vv…
Giá thành và chi phí thiết kế hệ thống thấp
Ngôn ngữ lập trình đơn giản dễ hiểu và có khả năng mở rộng cao
Hệ thống hoạt động ổn định chính xác
Hệ thống dễ vận hành sử dụng
Yêu cầu độ chính xác về nhiệt độ cho phép sai số 0.5 độ
Yêu cầu độ chính xác vị trí cho phép sai số 10-15 m
Các thiết bị phần cứng:
1 module Arduino Mega 2560
Trang 15 Phầm mềm thiết kế giao diện Websever dùng ngôn ngữ Java,
Phần mêm thiết kế giao diện hiển thị Visual Studio 2010,
Phần mềm lập trình và biên dịch cho Arduino ngôn ngữ C
Từ các phân tích trên, mô hình đề xuất của hệ thống đo nhiệt độ và giám sát
vị trí bệnh nhân qua mạng Internet đƣợc mô tả trong (Hình 1.1)
Group of names
GPS
PTS DATA GPRS
BỆNH NHÂN Arduino Mega 2560 Module SIM548
Hình 1.1: Sơ đồ tổng quan hệ thống
Trang 16KẾT LUẬN CHƯƠNG
Trong chương tác giả đã đưa ra ý tưởng thiết kế hệ thống phù hợp với yêu cầu đề tài Từ đó xác định các yêu cầu, mục đích của hệ thống để làm cơ sở cho việc thiết kế hệ thống sau nay Xuất phát từ yêu cầu và mục đích của đề tài tác giả
đã đưa ra được mô hình tổng quan của cả hệ thống để từ đó lám cơ sở cho việc chọn lựa thiết bị và thiết kế và đánh giá hệ thống
Trang 17CHƯƠNG 2 : CÔNG NGHỆ ĐỊNH VỊ GPS 2.1 Giới thiệu về hệ thống định vị toàn cầu GPS
Hệ thống định vị toàn cầu là hệ thống xác định vị trí dựa trên vị trí của các vệ tinh nhân tạo [1][2] Trong cùng một thời điểm, ở một vị trí trên mặt đất nếu xác định được khoảng cách đến ba vệ tinh (tối thiểu) thì sẽ tính được toạ độ của vị trí
đó Nếu là bốn vệ tinh ta còn có thể xác định được cả độ cao Hệ thống định vị toàn cầu của Mỹ là hệ dẫn đường dựa trên một mạng lưới 24 vệ tinh được Bộ Quốc phòng Hoa Kỳ đặt trên quỹ đạo không gian (tổng cộng tất cả có 27 quả vệ tinh, 3 quả được dùng làm dự phòng)[1][2] Vì thế bất kỳ vị trí nào trên mặt đất cũng có thể nhìn thấy ít nhất ba vệ tinh nên có thể định được vị trí trên mặt đất
Hình 2.1: Hệ thống vệ tinh cho GPS
GPS được thiết kế và quản lý bởi Bộ Quốc phòng Hoa Kỳ, nhưng chính phủ Hoa Kỳ cho phép mọi người sử dụng nó miễn phí, bất kể quốc tịch, vị trí, chỉ cần người dùng có thiết bị thu tín hiệu GPS mà vệ tinh phát thì có thể định vị được vị trí
Những năm gần đây, các nước trong Liên minh châu Âu đang xây dựng Hệ thống định vị Galileo, có tính năng giống như GPS của Hoa Kỳ, nó bắt đầu hoạt động vào năm 2010.[1]
Trang 182.2 Phân loại các hệ thống định vị
Các hệ thống định vị, dẫn đường truyền thống hoạt động dựa trên các trạm phát tín hiệu vô tuyến điện Được biết nhiều nhất là các hệ thống có tên gọi LORAN (LOng RAnge Navigation) hoạt động ở dải tần 90-100 KHz chủ yếu dùng cho hàng hải, hay TACAN (TACtical Air Navigation) dùng cho quân đội Mỹ và biến thể với
độ chính xác thấp VOR/DME – VHF (Omnidirectional Range/Distance Measuring Equipment) dùng cho hàng không dân dụng [1][2] Gần như đồng thời với lúc Mỹ phát triển GPS, Liên Xô cũng phát triển một hệ thống tương tự với tên gọi GLONAS Hiện nay Cộng đồng Châu Âu đang phát triển hệ dẫn đường vệ tinh của mình mang tên Galileo.[2]
Ta cần chú ý rằng cả GPS và GLONAS đều được phát triển trước hết cho mục đích quân sự Nên mặc dù chúng có cho dùng dân sự nhưng không hệ nào đưa
ra sự đảm bảo tồn tại liên tục và độ chính xác Vì thế chúng không thoả mãn được những yêu cầu an toàn cho dẫn đường dân sự hàng không và hàng hải, đặc biệt là tại những vùng và tại những thời điểm có hoạt động quân sự của những quốc gia sở hữu các hệ thống đó Chỉ có hệ thống dẫn đường vệ tinh châu Âu GALILEO (đang được xây dựng) ngay từ đầu đã đáp ứng các yêu cầu nghiêm ngặt của dẫn đường và định vị dân sự.[1]
GPS ban đầu chỉ dành cho các mục đích quân sự, nhưng từ năm 1980 chính phủ Mỹ cho phép sử dụng dân sự GPS hoạt động trong mọi điều kiện thời tiết, mọi nơi trên trái đất, 24 giờ một ngày Không mất phí thuê bao hoặc mất tiền trả cho việc thiết lập sử dụng GPS [1][2]
2.3 Cấu trúc của hệ thống định vị toàn cầu
Hệ thống định vị toàn cầu GPS bao gồm 3 phần[1][2]:
- Phần vũ trụ (Space Segment): gồm 24 vệ tinh quay xung quanh trái đất hai
lần trong ngày với quỹ đạo rất chính xác Độ cao vệ tinh so với mặt đất là 20183
km, chu kỳ quay quanh trái đất là 11giờ 57 phút 58 giây Phần này sẽ đảm bảo cho bất kỳ vị trí nào trên quả đất đều có thể quan sát được 4 vệ tinh ở góc trên 15 độ, nếu ở góc ngưỡng 10 độ thì có thể quan sát được 10 vệ tinh và ở góc ngưỡng 5 độ
Trang 19có thể quan sát được 12 vệ tinh Các vệ tinh làm nhiệm vụ ghi nhận và lưu trữ các thông tin được truyền đi từ phần điều khiển, xử lý dữ liệu có chọn lọc trên vệ tinh, duy trì độ chính xác cao của thời gian bằng các đồng đồ nguyên tử, chuyển tiếp thông tin đến người sử dụng, thay đổi quỹ đạo bay của vệ tinh theo sự điều khiển từ mặt đất
- Phần điều khiển (Control Segment): gồm một trạm điều khiển chính, năm
trạm thu số liệu, ba trạm truyền số liệu
- Trạm điều khiển chính đặt tại Colorade Springs (Mỹ) có nhiệm vụ thu thập các dữ liệu theo dõi vệ tinh từ các trạm thu số liệu để xử lý
- Năm trạm thu số liệu được đặt tại Hawai, Colorade Springs, Ascension (Nam Đại Tây Dương), Diago Garia (Ấn Độ Dương), Kwayalein (Nam Thái Bình Dương) Có nhiệm vụ theo dõi các tín hiệu vệ tinh để kiểm soát và dự tính quỹ đạo của chúng Mỗi trạm được trang bị những máy thu P-Code để thu các tín hiệu của
vệ tinh sau đó truyền về trạm điều khiển chính.[2]
- Ba trạm truyền số liệu được đặt tại Ascension, Diago Garia, Kwayalein có khả năng chuyển số liệu lên vệ tinh gồm lịch thiên văn mới, hiệu chỉnh đồng hồ, các thông điệp cần phát, các lệnh điều khiển từ xa
- Phần sử dụng (Use Segment): gồm những máy thu tín hiệu GPS có anten
riêng (máy định vị), các thiết bị tự ghi (bộ ghi số liệu) và máy tính (phần mềm xử lý
Trang 20bằng kỹ thuật phân sai Phần mềm xử lý số liệu GPS còn có chức năng biên tập hoặc vẽ Phần mềm này cũng hỗ trợ thu thập các yếu tố địa lý và thông tin thuộc tính cho GPS hoặc các cơ sở dữ liệu khác [2]
2.4 Hoạt động của GPS
Các vệ tinh GPS bay vòng quanh trái đất hai lần trong một ngày theo một quỹ đạo rất chính xác và phát tín hiệu có thông tin xuống trái đất Các máy thu GPS nhận thông tin này và bằng phép tính lượng giác tính được chính xác vị trí của người dùng Về bản chất máy thu GPS so sánh thời gian tín hiệu được phát đi từ vệ tinh với thời gian nhận được chúng Sai lệch về thời gian cho biết máy thu GPS ở cách vệ tinh bao xa Rồi với nhiều quãng cách đo được tới nhiều vệ tinh máy thu có thể tính được vị trí của người dùng và hiển thị lên bản đồ điện tử của máy Máy thu GPS phải khoá được với tín hiệu của ít nhất ba quả vệ tinh để tính ra vị trí hai chiều (2D, kinh độ và vĩ độ) và để theo dõi được chuyển động Với bốn hay nhiều hơn số quả vệ tinh trong tầm nhìn thì máy thu có thể tính được vị trí ba chiều (3D, kinh độ,
vĩ độ và độ cao) Một khi vị trí người dùng đã tính được thì máy thu GPS có thể tính các thông tin khác, như tốc độ, hướng chuyển động, bám sát di chuyển, khoảng hành trình, quãng cách tới điểm đến, thời gian mặt trời mọc, lặn và nhiều thứ khác nữa.[16]
2.5 Độ chính xác của GPS
Các máy thu GPS ngày nay cực kì chính xác, nhờ vào thiết kế nhiều kênh hoạt động song song của chúng Các máy thu 12 kênh song song (của Garmin) nhanh chóng khoá vào các quả vệ tinh khi mới bật lên và chúng duy trì chắc chắn liên hệ này, thậm chí trong tán lá rậm rạp hoặc thành phố với các toà nhà cao tầng Tình trạng nhất định của khí quyển và các nguồn gây sai số khác có thể ảnh hưởng tới độ chính xác của máy thu GPS Các máy thu GPS có độ chính xác trung bình trong khoảng 15 mét
Các máy thu mới hơn với khả năng WAAS (Hệ Tăng Vùng Rộng, Wide Area Augmentation System) có thể tăng độ chính xác trung bình tới dưới 3 mét Không cần thêm thiết bị hay mất phí để có được ưu điểm của WAAS Người dùng
Trang 21cũng có thể có độ chính xác tốt hơn với GPS Vi sai (Differential GPS, DGPS) sửa lỗi các tín hiệu GPS để có độ chính xác trong khoảng 3 đến 5 mét Cục Phòng vệ bờ biển Mỹ vận hành dịch vụ sửa lỗi này Hệ thống bao gồm một mạng các đài thu tín hiệu GPS và phát tín hiệu đã sửa lỗi bằng các máy phát hiệu Để thu được tín hiệu
đã sửa lỗi, người dùng phải có máy thu tín hiệu vi sai bao gồm cả ăn-ten để dùng với máy thu GPS của họ [16]
2.6 Hệ thống vệ tinh GPS
Hai mươi tư quả vệ tinh làm nên vùng không gian GPS trên quỹ đạo 12 nghìn dặm cách bề mặt trái đất Chúng chuyển động ổn định, hai vòng quỹ đạo trong khoảng thời gian gần 24 giờ Các vệ tinh này chuyển động với vận tốc khủng khiếp 7 nghìn dặm một giờ
Các vệ tinh được nuôi bằng năng lượng mặt trời Chúng có các nguồn pin dự phòng để duy trì hoạt động khi chạy khuất vào vùng không có ánh sáng mặt trời Các tên lửa nhỏ gắn ở mỗi quả vệ tinh giữ chúng bay đúng quỹ đạo đã định Dưới đây là một số thông tin đáng chú ý về các vệ tinh GPS (còn gọi là NAVSTAR, tên gọi chính thức của Bộ Quốc phòng Mỹ cho GPS):
- Vệ tinh GPS đầu tiên được phóng năm 1978
- Hoàn chỉnh đầy đủ 24 vệ tinh vào năm 1994
- Mỗi vệ tinh được làm để hoạt động tối đa là 10 năm
- Vệ tinh GPS có trọng lượng khoảng 2 nghìn cân Anh (900kg) và dài khoảng 17 bộ (5m) với các tấm mặt trời mở
- Công suất phát bằng hoặc dưới 50 watts [1]
2.7 Tín hiệu GPS
Các vệ tinh GPS phát hai tín hiệu vô tuyến công suất thấp giải L1 và L2 (Giải L là phần sóng cực ngắn của phổ điện từ trải rộng từ 0.39 tới 1.55GHz) GPS dân sự dùng tần số L1 1575.42 MHz trong giải UHF Tín hiệu truyền trực thị, có nghĩa là chúng sẽ xuyên qua mây, thuỷ tinh và nhựa nhưng không qua phần lớn các đối tượng cứng như núi và nhà
Trang 22Tín hiệu GPS chứa ba mẩu thông tin khác nhau – mã giả ngẫu nhiên, dữ liệu thiên văn và dữ liệu lịch Mã giả ngẫu nhiên đơn giản chỉ là mã định danh để xác định được quả vệ tinh nào là phát thông tin nào (Có thể nhìn số hiệu của các quả vệ tinh trên trang vệ tinh của máy thu Garmin để biết nó nhận được tín hiệu của quả nào.)
Dữ liệu thiên văn cho máy thu GPS biết quả vệ tinh ở đâu trên quỹ đạo ở mỗi thời điểm trong ngày Mỗi quả vệ tinh phát dữ liệu thiên văn chỉ ra thông tin quỹ đạo cho vệ tinh đó và mỗi vệ tinh khác trong hệ thống Dữ liệu lịch được phát đều đặn bởi mỗi quả vệ tinh, chứa thông tin quan trọng về trạng thái của vệ tinh (lành mạnh hay không), ngày giờ hiện tại Phần này của tín hiệu là cốt lõi để phát hiện ra
vị trí [1]
2.8 Nguồn lỗi của tín hiệu GPS
Những điều có thể làm giảm tín hiệu GPS và vì thế ảnh hưởng tới chính xác bao gồm:
- Giữ chậm của tầng đối lưu và tầng ion làm tín hiệu vệ tinh bị chậm đi khi xuyên qua tầng khí quyển
- Tín hiệu đa đường (multi path) điều này xảy ra khi tín hiệu phản xạ từ nhà hay các đối tượng khác trước khi tới máy thu, do đó tại máy thu tín hiệu sẽ bị thăng giáng rất mạnh
- Lỗi đồng hồ máy thu đồng hồ có trong máy thu không chính xác như đồng
hồ nguyên tử trên các vệ tinh GPS
- Lỗi quỹ đạo cũng được biết như lỗi thiên văn, do vệ tinh thông báo vị trí không chính xác
- Số lượng vệ tinh nhìn thấy càng nhiều quả vệ tinh được máy thu GPS nhìn thấy thì càng chính xác Nhà cao tầng, địa hình, nhiễu loạn điện tử hoặc đôi khi thậm chí tán lá dày có thể chặn thu nhận tín hiệu, gây lỗi định vị hoặc không định vị được Nói chung máy thu GPS không làm việc trong nhà, dưới nước, hoặc dưới đất
- Hình học che khuất điều này liên quan tới vị trí tương đối của các vệ tinh ở thời điểm bất kì Phân bố vệ tinh lí tưởng là khi các quả vệ tinh ở vị trí góc rộng với
Trang 23nhau Phân bố xấu xảy ra khi các quả vệ tinh ở trên một đường thẳng hoặc cụm thành nhóm
- Sự giảm có chủ tâm tín hiệu vệ tinh là sự làm giảm tín hiệu cố ý do sự áp đặt của Bộ Quốc phòng Mỹ, nhằm chống lại việc đối thủ quân sự dùng tín hiệu GPS chính xác cao Chính phủ (Mỹ) đã ngừng việc này từ tháng 5 năm 2000, làm tăng đáng kể độ chính xác của máy thu GPS dân sự (Tuy nhiên biện pháp này hoàn toàn
có thể được sử dụng lại trong những điều kiện cụ thể để đảm bảo Chính điều này là tiềm ẩn hạn chế an toàn cho dẫn đường và định vị dân sự.)[2]
2.9 Nhận xét về khả năng và những ứng dụng của GPS
Với công nghệ ngày càng hiện đại, các máy thu GPS cho độ chính xác ngày càng cao, vì thế các máy thu GPS này ngày càng được ứng dụng rộng rãi trong các thiết bị hỗ trợ cho việc định vị hay các hệ thống dẫn đường
Ở Việt Nam, những năm gần đây đã có một số công ty đang nghiên cứu và triển khai cung cấp các sản phẩm liên quan đến các hệ thông định vị toàn cầu Trong tương lai không xa, chắc chắn công nghệ GPS sẽ còn nhiều ảnh hưởng cho các lĩnh vực công nghệ, trắc địa, lĩnh vực y tế Ứng dụng công nghệ định vị GPS vào lĩnh vực y tế là một đề tài còn khá mới mẻ trong khoa và nói chung là ở Việt Nam Trong đề tài luận văn này, tác giả đã ứng dụng công nghệ định vị GPS vào lĩnh vực y tế
KẾT LUẬN CHƯƠNG
Hiện nay nên khoa học kỹ thuật, đặc biệt là lĩnh vực công nghệ thông đang phát triển mãnh mẽ, việc ứng dụng kỹ thuật định vị GPS là điều rất cần thiết Hiện nay các thiết bị công nghệ thông tin hiện đại đều có chức năng định vị xác định vị trí và tìm đường Như vậy chung ta thấy được tầm quan trọng của việc nghiên cứu hệ thống định vị GPS
Công nghệ định vị GPS được ứng dụng rất rỗng rãi trong các lĩnh vực như ,giao thông, quân sự, hàng hải, hàng không, Như vậy việc nghiên cứu hệ thống định vị GPS là rất cần thiết và phù hợp với nhu cầu phát triển
Trang 24CHƯƠNG 3: KIT VI ĐIỀU KHIỂN ARDUINO 3.1 Giới thiệu về kít vi điều khiển Arduino
Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người dùng trong cộng đồng nguồn mở (open-source) Tuy nhiên tại Việt Nam Arduino vẫn còn chưa được biết đến nhiều
Hình 3.1: Hình ảnh kit vi điều khiểnt Arduino
Arduino cơ bản là một nền tảng tạo mẫu mở về điện tử (open-source electronics prototyping platform) được tạo thành từ phần cứng lẫn phần mềm Về mặt kĩ thuật, có thể coi Arduino là một bộ điều khiển logic có thể lập trình được Đơn giản hơn, Arduino là một thiết bị có thể tương tác với thế giới bên ngoài thông qua các cảm biến và hành vi được lập trình sẵn Với thiết bị này, việc lắp ráp và điều khiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ hết Một điều không hề dễ dàng cho những ai đam mê công nghệ và điều khiển mà không có nhiều thời gian để tìm hiểu sâu hơn về về kĩ thuật lập trình và cơ điện tử
Hiện tại có rất nhiều loại vi điều khiển và đa số được lập trình bằng ngôn ngữ C/C++ hoặc Assembly nên rất khó khăn cho những người có ít kiến thức sâu về điện tử và lập trình Nó là trở ngại cho mọi người muốn tạo riêng cho mình một món đồ mang tính công nghệ Do vậy, đó là lí do Arduino được phát triển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử cũng như lập trình trên vi xử lí và mọi người có thể tiếp cận dễ dàng hơn với thiết bị điện tử mà không cần nhiều về
Trang 25kiến thức điện tử và thời gian Sau đây là những thế mạnh của Arduino so với các nền tảng vi điều khiển khác:
- Chạy trên đa nền tảng: Việc lập trình Arduino có thể thể thực hiện trên các
hệ điều hành khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên
di động
- Ngôn ngữ lập trình đơn giản dễ hiểu
- Nền tảng mở: Arduino được phát triển dựa trên nguồn mở nên phần mềm chạy trên Arduino được chia sẻ dễ dàng và tích hợp vào các nền tảng khác nhau
- Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng module nên việc mở rộng phần cứng cũng dễ dàng hơn
- Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị
- Dễ dàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà không
lo lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng
Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng
Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính Các bo mạch chính về cơ bản là giống nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay kích thước có sự khác nhau Một số bo có trang
bị thêm các tính năng kết nối như Ethernet và Bluetooth Các bo mở rộng chủ yếu
mở rộng thêm một số tính năng cho bo mạch chính Ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ
Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Sau đây là danh sách một số ứng dụng nổi bật của Arduino như trong công nghệ in 3D, robot
dò đường theo hướng có nguồn nhiệt, tạo một thiết bị nhấp nháy theo âm thanh và đèn laser hay là một thiết bị báo cho khách hàng biết khi nào bánh mì ra lò.[10]
Trang 263.2 Phân loại kit Arduino
3.2.1 Arduino Uno
3.2.1.1 Cấu trúc chung
Hình 3.2: Cấu trúc phần cứng của Arduino Uno
Arduino Uno là một bo mạch vi điều khiển dựa trên chip Atmega328 Nó có
14 chân vào ra bằng tín hiệu số, trong đó có 6 chân có thể sử dụng để điều chế độ rộng xung Có 6 chân đầu vào tín hiệu tương tự cho phép chúng ta kết nối với các
bộ cảm biến bên ngoài để thu thập số liệu, sử dụng một dao động thạch anh với tần
số dao động 16MHz, có một cổng kết nối bằng chuẩn USB để chúng ta nạp chương trình vào bo mạch và một chân cấp nguồn cho mạch, một ICSP header, một nút reset Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, nguồn cung cấp cho Arduino có thể là từ máy tính thông qua cổng USB hoặc là từ bộ nguồn chuyên dụng được biến đổi từ xoay chiều sang một chiều hoặc là nguồn lấy từ pin Chip Atmega328 có 32KB (với 0,5KB sử dụng cho bootloader) Nó còn có 2KB SRAM
và 1KB EEPROM.[10]
3.2.1.2 Khối nguồn
Arduino có thể được hỗ trợ thông qua kết nối USB hoặc với một nguồn cung
cấp điện bên ngoài Các nguồn năng lượng được lựa chọn tự động Hệ thống vi điều
khiển có thể hoạt động bằng một nguồn cung cấp bên ngoài từ 6V đến 20V Tuy nhiên, nếu cung cấp với ít hơn 7V, chân 5V có thể cung cấp ít hơn 5V và hệ thống vi
Trang 27điều khiển có thể không ổn định Nếu cấp nhiều hơn 12V, bộ điều chỉnh điện áp có
thể quá nóng và gây nguy hiểm cho bo mạch Phạm vi khuyến nghị là 7V đến 12V
- Chân Vin: Điện áp đầu vào Arduino khi chúng ta dùng nguồn điện bên ngoài (khác với nguồn 5V lấy từ USB hoặc nguồn thông qua jack cắm nguồn riêng) Chúng ta có thể cung cấp nguồn thông qua chân này
- Chân 5V: Cung cấp nguồn vi điều khiển và các bộ phận khác trên bo mạch
và cung cấp nguồn cho các thiết bị ngoại vi khi kết nối tới bo mạch
- Chân 3,3V: Cung cấp nguồn cho các thiết bị cảm biến
- Chân GND: Chân nối đất
- Chân Aref: Tham chiếu điện áp đầu vào analog
- Chân IOREF: Cung cấp điện áp cho các vi điều khiển hoạt động Một
shield được cấu hình đúng có thể đọc điện áp chân IOREF và lựa chọn nguồn thích hợp hoặc kích hoạt bộ chuyển đổi điện áp để là việc ở mức 5V hoặc 3,3V
3.2.1.3 Chân vào ra
Aduino Uno có 14 chân digital (chân 0 đến 13) và 6 chân analog (chân A0 đên A5) Các chân digital chúng ta có thể cấu hình để làm chân nhận dữ liệu vào từ các thiết bị ngoại vi hoặc làm chân để truyền tín hiệu ra các thiết bị ngoại vi Bằng
cách sử dụng các hàm pinMode(), digitalWrite() và digitalRead() Mỗi chân có thể
cung cấp hoặc nhận một dòng điện tối đa 40mA và có một điện trở kéo nội (mặc định không nối) 20 - 50 KOhms Ngoài ra có một số chân có chức năng đặc biệt:
- Chân 0 (Rx): Chân được dùng để nhận dữ liệu nối tiếp
- Chân 1 (Tx): Chân được dùng để truyền dữ liệu nối tiếp
- Chân 2 và 3: Chân ngắt ngoài
- Chân 3, 5, 6, 9, 10 và 11: Chân vào/ra số hoặc để điều chế độ rộng xung (chân
13 được nối với một LED đơn, sáng tắt tương ứng với mức logic của chân này)
- Chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Chuẩn giao tiếp SPI
Các chân analog có độ phân giải 10 bit (tương ứng với 1024 mức giá trị khác nhau) ứng với mức từ 0 – 5V Ngoài ra một số chân có các chức năng đặc biệt:
- Chân A4 (SDA) và A5 (SCL): Hỗ trợ truyền thông TWI
Trang 28là nguồn lấy từ pin Arduino Mega tương thích với hầu hết các shield thiết kế cho Arduino Arduino Mega 2560 là bản cập nhật từ Arduino Mega
Arduino Mega 2560 khác so với các bo mạch trước đó ở chỗ nó không sử dụng chip điều khiển FTDI USB-to-serial Thay vào đó, các tính năng của Atmega16U2 (ATmega8U2 trong phiên bản 1 và phiên bản 2 bảng) được lập trình như một bộ chuyển đổi USB-to-serial
Phiên bản 2 của bo mạch Mega2560 có 1 điện trở kéo đường 8U2 HWB xuống đất, làm cho nó dễ đặt chế độ DFU hơn
Phiên bản 3 của bo mạch có các đặc tính mới sau:
- Thêm chân SDA và SCL gần chân AREF và 2 chân mới được đặt gần chân RESET, IOREF cho phép các shield tương thích với điện áp được cung cấp từ bo mạch Trong tương lai, các shield sẽ tương thích với cả hai bo mạch sử dụng AVR
Trang 29mà hoạt động với nguồn 5V và Arduino Due hoạt động ở mức 3,3V Chân thứ 2 không kết nối dành cho các mục đích sau này.
- Atmega 16U2 thay cho 8U2
3.2.2.2 Đặc điểm Arduino Mega 2560
Điện áp dới hạn hoạt động 6-20V
Chân tín hiệu số vào ra 54 trong đó có 15 chân điều khiển độ rộng xung Chân tín hiệu số đầu vào 16
Dòng điện tại các chân vào ra 40 mA
Các chân cấp nguồn nhƣ sau:
Trang 30- Chân VIN: Điện áp vào mạch Arduino khi nó sử dụng nguồn ngoài (khác
với nguồn 5V từ kết nối USB hoặc nguồn khác) Ta có thể cấp nguồn qua chân này
hoặc cấp thông qua jack cắm nguồn
- Chân 5V: Chân cấp điện áp ra 5V từ bộ điều chỉnh điện áp của bo mạch.
- Chân 3,3V: Chân cấp điện áp ra 3,3V từ bộ điều chỉnh điện áp.
- Chân GND: Chân nối đất.
- Chân IOREF: Chân này cấp điện áp tham chiếu cho vi điều khiển hoạt động
Một shield đƣợc cấu hình đúng có thể đọc điện áp chân IOREF và chọn nguồn điện phù hợp hoặc cho phép biến đổi điện áp để làm việc vơi 5,5V hoặc 3,3V
3.2.2.4 Chân vào ra
Arduino Mega 2560 bao gồm 54 chân vào ra tín hiệu số có thể sử dụng làm
chân input hoặc output, bằng cách sử dụng hàm pinMode(), digitalWrite(),
digitalRead() Chúng hoạt động ở 5V Mỗi chân có thể cấp hoặc nhận tối đa 40mA
và có một trở kéo nội (mặc định không nối) từ 20 – 50Kohm Ngoài ra, một số chân
có các chức năng đặc biệt sau:
Trang 31- Chân AREF: Tham chiếu điện áp cho đầu vào analog Sử dụng hàm
analogReference()
- Chân RESET: Nối đường dây xuống LOW để reset vi xử lý
3.2.3 Arduino Fio
3.2.3.1 Cấu trúc chung
Hình 3.4: Arduino Mega Fio
Arduino Fio là một bo mạch vi điều khiển được xây dựng dựa trên chip ATmega328P Bao gồm có 14 chân vào ra số (trong đó có 6 chân có thể sử dụng để điều chế độ rộng xung), có 8 chân vào vào tương tự, trên board sử dụng một bộ cộng hưởng, một công tắc Reset, và lỗ để cắm chân Header Nó có kết nối với bộ Lithium Polymer và mạch nguồn qua cổng USB Có sẵn ổ cắm XBee ở phía dưới của board
Arduino Fio dùng cho ứng dụng không dây Người dùng có thể nạp dữ liệu thông qua cáp FTDI hoặc bo mạch cải tiến Sparkfun Ngoài ra, bằng cách sử dụng USB-to-Xbee như Xbee Exploer USB, người dùng có thể nạp dữ liệu qua mạng không dây
Arduino Fio được thiết kế bởi Shigeru Kobayashi và Sparkfun Electronics,
và được sản xuất bởi Sparkfun Electronics
3.2.3.2 Đặc điểm Arduino Fio
- Dùng vi điều khiển ATmega328P
- Điện áp hoạt động là 3.3V
- Điện áp đầu vào trong khoảng từ 3,35V-12V
- Điện áp xạc phin 3.7V-7V
Trang 32- Chân vào ra tín hiệu số 14 trong đó có 6 chân điều khiển độ rộng xung PWM
- Chân đầu vào tương tự gồm có 8 chân
- Dòng điện hoạt động trên các chân là 40mA
- Bộ nhớ Flash là 32KB trong đó có 2KB sử dụng bằng bootloader
Các chân nguồn:
- Chân BAT: Cung cấp Pin Lithium Polymer cho board mạch
- Chân 3V3: Nguồn chuẩn 3.3V để cung cấp cho các chân
- Chân GND: Chân nối đất
3.2.3.4 Chân vào ra
Arduino Fio có 14 chân số có thể sử dụng như chân vào hoặc ra dữ liệu bằng
cách sử dụng các hàm pinMode(), digitalWrite() và digitalRead() Các chân này
hoạt động ở mức điện áp 3.3V Mỗi chân có thể cũng cấp hoặc nhận một dòng điện tối đa 40mA và có một điện trở Pull-up (mặc định không nối) có giá trị khoảng 20-
50 kOhms Ngoài ra, một số chân còn có chức năng đặc biệt:
- Serial: RXI (D0) và TX0 (D1): Được sử dụng để nhận (RX) và truyền (TX)
dữ liệu nối tiếp TTL
- Ngắt ngoài (chân 2 và 3): Các chân này có thể được cấu hình để kích hoạt một ngắt ở mức thấp, sườn lên hoặc sườn xuống hoặc là thay đổi giá trị Có thể xem
chi tiết ở hàm chức năng attachInterrupt()
- PWM (chân 3, 5, 6, 9, 10, và 11): Điều chế độ rộng xung 8 bit bằng hàm
analogWrite()
Trang 33- SPI: 10 (SS), 11(MOSI), 12 (MISO), 13 (SCK) Những chân này hỗ trợ truyền thông SPI Mặc dù được cung cấp phần cứng cơ bản nhưng hiện nay nó chưa
có trong ngôn ngữ Arduino
- Có một LED được nối với chân digital 13 Khi chân này ở mức cao thì LED
sáng, ở mức thấp thì tắt
- Fio có 8 chân vào Analog, mỗi chân có độ phân giải 10 bit (được chia thành
1024 mức) Các chân đầu vào analog đo từ Ground đến Vcc Ngoài ra, một số chân
có chức năng đặc biệt:
- I2C: 4 (SDA) và 5 (SCL) Hỗ trợ truyền thông I2
C (TWI) sử dụng thư viện
Write
Có một cặp chân khác trên board mạch:
- AREF: Tham chiếu điện áp đầu vào analog Sử dụng hàm
analogReference()
- DTR Đặt dòng điện ở mức LOW để khởi động lại vi điều khiển
Ngoài ra còn còn 8 lỗ Unsoldered trên board:
- BAT+ và BAT-: Được kết nối với một nguồn Pin
- CHG 5V và CHG-: Dùng để kết nối với thiết bị đầu cuối có tổn hao
- SW: Dùng để kết nối với công tắc nguồn trên board
- CTS: Dùng để kết nối với chân #CTS/DIO7 của ổ cắm Xbee
- DTR: Dùng để kết nối với chân #DTR/SLEEP_RQ/DI8 của ổ cắm XBee
3.3 Lập trình Arduino
3.3.1 Giới thiệu môi trường lập trình
Để có môi trường lập trình Arduino thì bước đầu tiên chúng ta phải có file phần mềm biên dịch do nhà sản xuất Arduino cung cấp được download tại trang chủ theo link sau: http://arduino.cc/en/Main/Software
Trang 34Hình 3.5: Link download phần mềm Arduino
Sau khi giải nén chạy Arduino.exe ta đƣợc giao diện phần mềm lập trình Arduino nhƣ sau:
Trang 353.3.2 Giao diện phần mềm lập trình Arduino
Khi muốn lập trình chúng ta phải khởi động giao diện lập trình trên giao diện
có các chức năng được mô tả như sau:
Hình 3.7: Giao diện lập trình Arduino
Trong giao diện lập trình căn bản khi lập trình cần chú ý các bước:
- Bước 1: Tạo file biên dịch mới
- Bước 2: Lưu file code
- Bước 3: Lập trình code điều khiển
- Bước 4: Biên dịch file để kiểm tra lỗi
- Bước 5: Nạp chương trình vào Board Trong Arduino hỗ trợ các thư viện và ví dụ mở với các chủ đề khác nhau, muốn dùng ví dụ nào có thể thao tác như hình bên dưới:
Trang 36Hình 3.8: Lấy ví dụ có sẵn trong Arduino
3.3.3 Nạp chương trình và chạy ứng dụng
Để nạp chương trình vào kit, ta kết nối cáp nạp USB vào Board và máy tính kiểm tra trạng thái có cổng kết nối chưa tại phần Tools>Serial Port để chọn cổng COM kết nối và Tool> Board để chọn board Arduino sử dụng Sau đó nhấn Upload chương trình được nạp vào và chạy ứng dụng
Trang 373.4 Cấu trúc chương trình lập trình Arduino
Cũng như các ngôn ngữ lập trình khác, ngôn ngữ trong Arduino sử dụng ngôn ngữ C Cấu trúc một chương trình Arduino bao gồm 2 phần chính :
Hàm setup( ) được sử dụng để khởi tạo giá trị các biến, chế độ chân, bắt đầu
sử dụng các thư viện Hàm setup( ) chỉ thực hiện một lần khi cấp nguồn hoặc reset
Arduino
Hàm loop( ) được hiểu như là chương trình chính, thực hiện các chức năng
được lập trình và có tính lặp lại liên tục
KẾT LUẬN CHƯƠNG
Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng
Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính Các bo mạch chính về cơ bản là giống nhau về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay kích thước có sự khác nhau năng kết nối Ethernet, Wireless, điều khiển động cơ
Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino
do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Sau đây là danh sách một số ứng dụng nổi bật của Arduino như trong công nghệ in 3D, robot dò đường theo hướng có nguồn nhiệt, tạo một thiết bị nhấp nháy theo âm thanh và đèn laser hay là một thiết bị báo cho khách hàng biết khi nào bánh mì ra lò
Trang 38CHƯƠNG 4: THIẾT BỊ ĐỊNH VI GPS SIM548 4.1 Lý do lựa chọn module SIM548
Công nghệ GPS ngày càng phát triển, trên thế giới ngày càng có nhiều công
ty điện tử tung ra thị trường các sản phẩm, các module GPS để phục vụ cho công việc nghiên cứu cũng như phát triển các sản phẩm liên quan đến GPS Tuỳ thuộc vào giá thành, chất lượng (độ chính xác trong định vị) của các module là khác nhau đáp ứng cho người dùng tuỳ thuộc vào yêu cầu Tuy nhiên tất cả các module có thể đáp ứng được về độ chính xác dùng trong dân sự, với sai số ở trong khoảng 15 mét Một số Module có chức năng GPS có trên thị trường Việt Nam:
● Module GPS Skynab GB10
- Kích thước khá nhỏ gọn, 71 x 40 x 6.5 mm
- Công suất tiêu thụ nhỏ: 60mAh*3.3V
- Độ tin cậy tương đối tốt
- Giá thành thấp (40$)
- Có nhiều trên thị trường Việt Nam
- Dễ sử dụng, giao tiếp qua UART, theo chuẩn NMEA – 0183
● Module GPS-GSM Sim508
- Kích thước rất nhỏ gọn: 40 x 22 x 3.1 mm
- Công suất tiêu thụ nhỏ hơn: 35mAh*3.3V
- Độ tin cậy cao
- Giá thành cao hơn (85$)
- Có rất ít trên thị trường Việt Nam
● Module GPS-GSM Sim548
- Kích thước rất nhỏ gọn: 55 x 34 x 3.0 mm
- Công suất tiêu thụ nhỏ hơn: 25mAh*3.3V
- Độ tin cậy cao
- Giá thành thấp (50$)
- Có rất nhiều trên thị trường Việt Nam
Trang 39Các loại máy thu GPS khác cũng có ở Việt Nam nhưng gần như rất hiếm Hầu hết các Module GPS đều giao tiếp qua cổng UART và theo chuẩn NMEA –
0183 nên cũng khá giống nhau Trong đề tài luận văn này, em đã lựa chọn module SIM548, do những ưu điểm của nó: có nhiều trên thị trường Việt Nam, rẻ và tiết kiệm năng lượng, đáp ứng được yêu cầu luận văn
4.2 Đặc điểm chung SIM548
Module SIM548 là một thiết bị có chức năng GSM và hỗ trợ chức năng định
vị GPS của hãng SIMCOM
Hình 4.1: Hình ảnh module Sim548
Module SIM 548 có thể hoạt động với các tần số sau GSM 850MHz, 900 MHz, DCS 1800MHz và PCS 1900MHz và cũng hỗ trợ kỹ thuật GPS định vị vị trí bằng vệ tinh Với kích thước nhỏ 55mm x 34mm x 3.0 mm, module này có thể sử dụng cho các ứng dụng như Smart phone, PDA phone, thiết bị định vị GPS cầm tay hay điện thoại
Chúng ta có thể giao tiếp với module thông qua đế chuẩn 60 chân dành riêng cho module SIM548 Thông qua đế chuẩn 60 chân này,chúng ta có thể sử dụng module với các mục đích :
- Bàn phím, bảng nút nhấn hay SPI LCD
Trang 40- Một port giao tiếp nối tiếp dành cho GSM và hai port nối tiếp dành cho GPS giúp cho việc thiết kế và phát triển ứng dụng một cách dễ dàng hơn thông qua việc giao tiếp bằng tập lệnh AT
- Các ngõ vào ra dành cho chức năng nghe, gọi, và xử lý âm thanh
- Các ngõ vào của bộ chuyển đổi AD
Để sử dụng đƣợc module SIM548, cần phải có các thiết bị đi kèm:
Hình 4.2: Các thiết bị đi kèm module SIM548
F: Cáp giao tiếp nối tiếp
4.3 Cấu trúc phần cứng module SIM548
Sim548 có hai khối tách biệt: phần GSM/GPRS và phần GPS
Phần GSM:
- Khối trung tâm GSM: GSM baseband engine
- Khối bộ nhớ: Flash and SRAM
- Phần GSM radio frequyency