Đồ án Hệ thống đo dạc, theo dõi huyết áp cơ thể sử dụng kit arduino (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Hệ thống đo dạc, theo dõi huyết áp cơ thể sử dụng kit arduino (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
do_an_he_thong_do_dac_theo_doi_huyet_ap_co_the_su_dung_kit_a.pdf
Nội dung text: Đồ án Hệ thống đo dạc, theo dõi huyết áp cơ thể sử dụng kit arduino (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG HỆ THỐNG ĐO DẠC, THEO DÕI HUYẾT ÁP CƠ THỂ SỬ DỤNG KIT ARDUINO GVHD: ThS. PHẠM TỶ PHÚ SVTH: NGUYỄN QUANG MINH MSSV: 12141136 SVTH: VŨ GIA TRIỆU MSSV: 12141239 S K L 0 0 4 5 3 3 Tp. Hồ Chí Minh, tháng 12/2016
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: HỆ THỐNG ĐO ĐẠC, THEO DÕI HUYẾT ÁP CƠ THỂ SỬ DỤNG KIT ARDUINO GVHD: ThS. Phạm Tỷ Phú SVTH: Nguyễn Quang Minh MSSV: 12141136 SVTH: Vũ Gia Triệu MSSV: 12141239 Tp. Hồ Chí Minh, tháng 12 năm 2016
- LỜI CẢM ƠN Chúng em xin chân thành cảm ơn quý thầy, cô Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM đã tận tình dạy dỗ chúng em trong suốt những năm qua. Trong đó phải kể đến quý thầy cô trong khoa Điện – Điện Tử đã truyền đạt những kiến thức, kinh nghiệm cùng với sự đam mê của mình như đốt lên những ngọn lửa đam mê khám phá trong mỗi chúng em và rồi từ những kiến thức, đam mê đó chúng em kết lại thành một đồ án cuối cùng, đồ án tốt nghiệp do chính tay mình tạo ra, nó như một bàn đạp đầu tiên để bước vào những cánh cửa lớn hơn. Đặc biệt, nhóm xin chân thành cảm ơn thầy Phạm Tỷ Phú đã tận tình giúp đỡ chúng em trong quá trình lựa chọn đề tài và hỗ trợ chúng em trong quá trình thực hiện đề tài. Trong quá trình thực hiện đồ án cũng xảy ra nhiều khó khăn, thiếu sót nhưng được sự đôn đốc và góp ý của thầy chúng em đã gặt hái được nhiều kiến thức và kinh nghiệm. Một lần nữa chúng em xin cảm ơn thầy. Và cũng gửi lời cảm ơn đến những người bạn đã đóng góp ý kiến, động viên tinh thần giúp cho nhóm thực hiện đề tài đạt hiệu quả hơn. Cuối cùng, chúng em chân thành cảm ơn sự động viên và hỗ trợ của gia đình và cha mẹ trong suốt thời gian học tập. Chúng em xin gửi lời cảm ơn trân trọng nhất đến cha mẹ, người đã sinh ra và nuôi dưỡng chúng em nên người cũng như tạo điều kiện thuận lợi để chúng em hoàn thành đề tài của mình. TP.HCM, ngày 8 tháng 1 năm 2017 Sinh viên thực hiện đồ án Nguyễn Quang Minh Vũ Gia Triệu v
- MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan iv Lời cảm ơn v MỤC LỤC vi DANH MỤC HÌNH ẢNH vii DANH MỤC BẢNG vii Chương 1. TỔNG QUAN 1 1.1 ĐẶT VẤN ĐỀ 1 1.2 MỤC TIÊU 1 1.3 NỘI DUNG NGHIÊN CỨU 2 1.4 GIỚI HẠN 2 1.5 BỐ CỤC 3 Chương 2. CƠ SỞ LÝ THUYẾT 4 2.1 NGUYÊN LÝ ĐO HUYẾT ÁP 4 2.1.1 Giới thiệu 4 2.1.2 Huyết áp tâm thu và huyết áp tâm trương 4 2.1.3 Phương pháp 5 2.2 GIỚI THIỆU PHẦN CỨNG 5 2.2.1 Chuẩn giao tiếp I2C 5 2.2.2 Board Arduino Nano 10 2.2.3 Cảm biến đo áp suất MPX5050 15 2.2.4 Màn hình hiển thị OLED 17 2.2.5 Module Wifi ESP8266 18 2.2.6 Động cơ và van xả điện từ 20 2.2.7 IC ULN2803 21 2.2.8 IC thời gian thực DS1307 22 2.2.9 Mạch giảm áp 3.3V AMS1117 25 Chương 3. TÍNH TOÁN VÀ THIẾT KẾ 26 3.1 GIỚI THIỆU 26 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 26 vi
- 3.2.1 Thiết kế sơ đồ khối hệ thống 26 3.2.2 Tính toán và thiết kế mạch 28 3.2.3 Sơ đồ nguyên lý của toàn mạch 34 Chương 4. THI CÔNG HỆ THỐNG 35 4.1 GIỚI THIỆU 35 4.2 THI CÔNG HỆ THỐNG 36 4.3 LẬP TRÌNH HỆ THỐNG 37 4.3.1 Lưu đồ giải thuật 37 4.3.2 Phần mềm lập trình cho Arduino 44 4.3.3 Phương pháp gửi dữ liệu lên Google Spreadsheet 52 4.4 HƯỚNG DẪN SỬ DỤNG 60 4.4.1 Hướng dẫn sử dụng 60 4.4.2 Quy trình thao tác 62 Chương 5. KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ 63 5.1 KẾT QUẢ 63 5.2 NHẬN XÉT ĐÁNH GIÁ 67 Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68 6.1 KẾT LUẬN 68 6.2 HƯỚNG PHÁT TRIỂN 68 TÀI LIỆU THAM KHẢO 70 vii
- DANH MỤC HÌNH ẢNH Hình 2. 1: Huyết áp tâm thu và tâm trương 4 Hình 2. 2: Sơ đồ khối kết nối theo chuẩn I2C 6 Hình 2. 3: Trạng thái bit Start và bit Stop 7 Hình 2. 4: Sơ đồ khối kết nối của giao thức SMBus 7 Hình 2. 5: Khoảng xung nhịp giữa SDA và SCL trong chuẩn SMBus 10 Hình 2. 6: Board Arduino Nano 11 Hình 2. 7: Vi điều khiển ATmega328 12 Hình 2. 8: Sơ đồ chân ATmega328 13 Hình 2. 9: Cảm biến áp suất MPX5050 15 Hình 2. 10: Sơ đồ kết nối cảm biến MPX5050 16 Hình 2. 11: Biểu đồ chuyển đổi áp suất theo điện áp ngõ ra 17 Hình 2. 12: Màn hình hiển thị OLED 17 Hình 2. 13: Module Wifi ESP8266 18 Hình 2. 14: Sơ đồ chân module Wifi ESP8266 19 Hình 2. 15: Động cơ bơm áp suất và van xả điện từ 21 Hình 2. 16: IC ULN2803 21 Hình 2. 17: Sơ đồ chân IC ULN2803 22 Hình 2. 18: IC thời gian thực DS1307 22 Hình 2. 19: Sơ đồ chân DS1307 23 Hình 2. 20: Sơ đồ kết nối DS1307 với vi điều khiển 24 Hình 2. 21: Sơ đồ chân IC AMS1117-3.3 25 Hình 3. 1: Sơ đồ khối tổng quát của thiết bị 26 Hình 3. 2: Sơ đồ chân của Arduino Nano 28 Hình 3. 3: Sơ đồ kết nối cảm biến MPX5050 29 Hình 3. 4: Sơ đồ kết nối màn hình LCD OLED 31 Hình 3. 5: Sơ đồ nguyên lý thời gian thực DS1307 31 Hình 3. 6: Sơ đồ kết nối với động cơ và van xả 32 Hình 3. 7: Sơ đồ nguyên lý nút nhấn 32 Hình 3. 8: Sơ đồ nguyên lý ESP8266 32 viii
- Hình 3. 9: Sơ đồ chân kết nối với nguồn 33 Hình 3. 10: Sơ đồ nguyên lý của thiết bị 34 Hình 4. 1: Mạch in bố trí linh kiện 35 Hình 4. 2: Mạch in 36 Hình 4. 3: Lưu đồ chương trình chính của thiết bị 39 Hình 4. 4: Lưu đồ giải thuật chương trình nhấn phím huyết áp 40 Hình 4. 5: Lưu đồ giải thuật chương trình nhấn phím send 41 Hình 4. 6: lưu đồ giải thuật chương trình gữi dữ liệu 42 Hình 4. 7: Lưu đồ giải thuật chương trình đọc huyết áp 42 Hình 4. 8: Lưu đồ giải thuật chương trình đọc analog 43 Hình 4. 9: Giao diện phần mềm lập trình Arduino 44 Hình 4. 10: Download phần mềm lập trình Arduino trên web 45 Hình 4. 11: Giải nén phần mềm đã tải về 45 Hình 4. 12: Các bước cài driver kết nối PC với arduino 47 Hình 4. 13: Giao diện phần mềm lập trình Arduino theo vùng 48 Hình 4. 14: Lựa chọn board Arduino phù hợp 49 Hình 4. 15: Lựa chọn cổng COM cho board Arduino 50 Hình 4. 16: Lựa chon chuẩn nạp cho Board Arduino 50 Hình 4. 17: Tạo một biểu mẫu khảo sát trên Google Drive 52 Hình 4. 18: Một trang tính lưu các giá trị trên biểu mẫu khảo sát 53 Hình 4. 19: Giao diện các ứng dụng trên ThingSpeak 53 Hình 4. 20: Tạo một Project ThingHTTP trên ThingSpeak 54 Hình 4. 21: Giao diện một Project ThingHTTP 54 Hình 4. 22: Thiết lập cho ThingHTTP để nhận dữ liệu 55 Hình 4. 23: Giao diện wedsite Appsheet 56 Hình 4. 24: Đặt tên ứng dụng và chọn kiểu ứng dụng 56 Hình 4. 25: Chọn dữ liệu spreadsheet sử dụng trong app 57 Hình 4. 26: Thiết kế app Android 57 Hình 4. 28: Cài đặt app Android trên điện thoại 58 Hình 4. 29: Giao diện wedsite cho người dùng 59 Hình 4. 30: Giao diện ứng dụng android 60 Hình 4. 31: Vòng bit quấn bắp tay của máy đo huyết áp 61 ix
- Hình 4. 32: Cách quấn vòng bit 61 Hình 4. 33: Hình ảnh sử dụng thực tế 62 Hình 5. 1: Giá trị huyết áp đo được 63 Hình 5. 2: Biểu đồ theo dõi huyết áp trên thiết bị di động 64 Hình 5. 3: Biểu đồ theo dõi huyết áp trên web 64 Hình 5. 4: Hộp cho thiết bị 65 Hình 5. 5: Bo mạch đã được ráp vào hộp hoàn chỉnh 65 Hình 5. 6: Bo mạch sau khi lắp ráp vào hộp 66 x
- DANH MỤC BẢNG Bảng 2.1: Giá trị huyết áp theo độ tuổi [2] 4 Bảng 2.2: So sánh điểm khác nhau giữa SMBus với I2C 10 Bảng 2.3: Một số thông số chính của board Arduino Nano 12 Bảng 2.4: Chức năng các chân cảm biến MPX5050 15 Bảng 2.5: Một số thông số chính của MPX5050 16 Bảng 2.6: Chức năng các chân của Module Wifi ESP8266 [8] 20 Bảng 2.7: Chức năng các chân của IC DS1307 [9] 23 Bảng 2.8: Địa chỉ ô nhớ dữ liệu 24 Bảng 3.1: Dòng và áp tiêu thụ hệ thống 33 Bảng 4.1: Danh sách linh kiện 37 Bảng 4.2: Chức năng của các Menu lệnh 48 Bảng 5.1: Kết quả so sánh huyết áp của thiết bị 66 xi
- CHƯƠNG 1. TỔNG QUAN Chương 1. TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Trong cuộc sống hiện đại, sức khỏe luôn là một nhu cầu rất quan trọng trong cuộc sống, có sức khỏe tốt sẽ giúp cho chúng ta có tinh thần làm việc hiệu quả. Tại Việt Nam, việc thăm khám, theo dõi và điều trị bệnh đã và đang là nhu cầu thiết yếu của người dân, đặc biệt là trong các thành phố lớn. Hơn nữa, với sự tiến bộ không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện tử đã giúp tạo ra các hệ thống xử lý, đo lường điều khiển ngày càng nhỏ gọn và thông minh hơn. Trong lĩnh vực y sinh, với những vi mạch và những linh kiện có độ chính xác cao đã góp phần tạo ra những thiết bị giúp chúng ta dễ dàng có thể theo dõi tình trạng sức khỏe của mình và phòng tránh được những bệnh nguy hiểm; từ đó góp phần xây dựng lối sống lành mạnh cho sức khỏe mỗi người. Ngoài ra, mạng viễn thông hiện đang ngày càng phát triễn mạnh mẽ và trở nên phổ biến trên toàn cầu, được ứng dụng rộng rãi trong nhiều lĩnh vực. Với sự phát triển nhanh chóng các dịch vụ và ứng dụng việc thông tin qua mạng viễn thông tiện lợi, tiết kiệm thời gian tất lớn, đảm bảo an toàn và tiết kiệm được chi phí sử dụng. Với chất lượng mạng viễn thông như hiện nay đã tạo điều kiện cho các ứng dụng về điều khiển từ xa, điều khiển tự động ngày càng phát triển. Xuất phát từ mong muốn tạo ra một thiết bị giúp ích cho việc chăm sóc sức khỏe cũng như giúp bác sĩ dễ dàng theo dõi tình trạng bệnh nhân, xác định vị trí của mình trong trường hợp khẩn cấp nên nhóm quyết định chọn đề tài “Hệ thống đo đạc, theo dõi huyết áp cơ thể sử dụng kit Arduino”. Thiết bị đã được thiết kế khá ổn định, hoạt động tin cậy, độ chính xác và an toàn được đảm bảo, giao diện điều khiển khá đơn giản, hiển thị kết quả đo rõ ràng. 1.2 MỤC TIÊU Đề tài máy đo huyết áp cơ thể giúp cho việc theo dõi huyết áp và nhiệt độ cơ thể được dễ dàng và thuận tiện hơn. Kết quả sau mỗi lần đo được sẽ được gửi lên mạng và thống kê giúp cho việc theo dõi tình trạng sức khỏe một cách tốt hơn. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1
- CHƯƠNG 1. TỔNG QUAN 1.3 NỘI DUNG NGHIÊN CỨU Những nội dung nghiên cứu của đề tài bao gồm: NỘI DUNG 1: Cách thức đo huyết áp, xác định tâm thu, tâm trương. NỘI DUNG 2: Tìm hiểu về các loại cảm biến phù hợp với đề tài NỘI DUNG 3: Tìm hiểu cách thức giao tiếp và gửi dữ liệu lên Google Spreadsheet. NỘI DUNG 4: Tìm hiểu về hoạt động và cách thức giao tiếp của các module. NỘI DUNG 5: Thiết kế hệ thống điều khiển NỘI DUNG 6: Thiết kế mô hình NỘI DUNG 7: Đánh giá kết quả thực hiện 1.4 GIỚI HẠN Hệ thống đo đạc, theo dõi huyết áp cơ thể có các thông số sau: Hệ thống bao gồm 1 hộp điều khiển, vòng quấn tay (cuff). Kích thước của hộp điều khiển 11.5 x 13.5 x 9.5cm. Thiết bị đo huyết áp cơ thể hiển thị lên màn hình OLED. Kết quả sau mỗi lần đo huyết áp sẽ được gửi lên Google Spreadsheet thông qua modul Wifi ESP8266 để thống kê. Thiết kế trang web và ứng dụng Android để theo dõi các kết quả đo. Hiển thị thời gian thực trên màn hình chính OLED Thiết bị sử dụng 4 pin AA 1.5V, 800 mAh có thể sạc. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2
- CHƯƠNG 1. TỔNG QUAN 1.5 BỐ CỤC Chương 1: Tổng Quan Trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: Cơ Sở Lý Thuyết Trình bày các lý thuyết có liên quan đến các vấn đề mà đề tài sẽ dùng để thực hiện thiết kế, thi công cho đề tài. Chương 3: Thiết Kế và Tính Toán Trình bày tổng quan các yêu cầu của đề tài về thiết kế và các tính toán hệ thống bao gồm sơ đồ nguyên lý toàn mạch và của từng phần của hệ thống. Chương 4: Thi công hệ thống Trình bày kết quả thi công phần cứng và những kết quả hình ảnh trên màn hình hay mô phỏng tín hiệu, kết quả thống kê. Chương 5: Kết Quả, Nhận Xét và Đánh Giá Trình bày kết quả của cả quá trình nghiên cứu làm đề tài bao gồm thời gian nghiên cứu, kết quả đạt được, nhận xét, đánh giá về đề tài và tính ứng dụng của đề tài trong thực tiễn. Chương 6: Kết Luận và Hướng Phát Triển Trình bày kết quả đạt được so với mục tiêu đề ra từ ban đầu, nhận xét và đánh giá về kết quả đạt được của đề tài nghiên cứu. Hướng phát triễn của đề tài sau này trong quá trình nghiên cứu. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2. CƠ SỞ LÝ THUYẾT 2.1 NGUYÊN LÝ ĐO HUYẾT ÁP 2.1.1 Giới thiệu Huyết áp là áp lực máu trong động mạch, là động lực để đưa máu tới các cơ quan trong cơ thể. Huyết áp là một thông số quan trọng đánh giá chức năng hệ tim mạch và là một trong 3 thông số (mạch, huyết áp, thở) đánh giá chức năng sống còn của người bệnh. Phương pháp đo huyết áp phổ thông hiện nay là phương pháp Korotkoff (dùng bao hơi) và Oscillometric. Phương pháp Korotkoff dựa vào nghe âm thanh khi lấy huyết áp. Phương pháp Oscillometric gồm đo dao động trong áp lực bên trong cổ tay lúc bệnh nhân mang vòng bit [1]. 2.1.2 Huyết áp tâm thu và huyết áp tâm trương Hình 2. 1: Huyết áp tâm thu và tâm trương [1] Khái niệm: Huyết áp tâm thu là áp lực máu trong động mạch trong khi tim đập. Huyết áp tâm trương là áp lực máu tối thiểu khi tim đập. Bảng 2. 1: Giá trị huyết áp theo độ tuổi [2] Tuổi Tối thiểu Trung bình Tối đa 15-19 tuổi 105/73 mmHg 117/77 mmHg 120/81 mmHg 20-24 tuổi 108/75 mmHg 120/79 mmHg 132/83 mmHg BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 25-29 tuổi 109/76 mmHg 121/80 mmHg 133/84 mmHg 30-34 tuổi 110/77 mmHg 122/81 mmHg 134/85 mmHg 35-39 tuổi 111/78 mmHg 123/82 mmHg 135/86 mmHg 40-44 tuổi 112/79 mmHg 125/83 mmHg 137/87 mmHg 45-49 tuổi 115/80 mmHg 127/84 mmHg 139/88 mmHg 50-54 tuổi 116/81 mmHg 129/85 mmHg 142/89 mmHg 55-59 tuổi 118/82 mmHg 131/86 mmHg 144/90 mmHg 60-64 tuổi 121/83 mmHg 134/87 mmHg 147/91 mmHg 2.1.3 Phương pháp Phương pháp Korotkoff: bao hơi được bơm lên để chấm dứt sự lưu thông của máu trên động mạch cánh tay đồng thời được thông với cột thủy ngân của một áp kế. Ống nghe được đặt trên đường động mạch cánh tay bên dưới bao hơi để nghe tiếng đập của động mạch. Khi bao đầy hơi thì tắt mạch sẽ không nghe được tiếng mạch đập. Xả bao hơi để cột thủy ngân trong áp kế xuống dần, xuất hiện của tiếng đập đầu tiên cho thấy một phần máu được lưu thông. Con số áp lực trên cột thủy ngân ở tiếng đập đầu tiên nghe được tương ứng với áp lực tối đa. Áp lực giảm dần tiếp theo của cột thủy ngân trong áp kế, nghe được tiến đập êm dịu trong thì là huyết áp tâm thu (SBP). Tiếp sau là tiếng đập mạnh lên. Cuối cùng, tất cả các âm thanh biến mất.Thời điểm nghe [3]. được âm thanh cuối cùng thì là giá trị huyết áp tâm trương (DBP) 2.2 GIỚI THIỆU PHẦN CỨNG 2.2.1 Chuẩn giao tiếp I2C a. Giới thiệu I2C là viết tắc của từ Inter-Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập và xây dựng thành chuẩn năm 1990. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Vcc R Mast Slave Slave Slave er 1 2 n R SCL SDA Hình 2. 2: Sơ đồ khối kết nối theo chuẩn I2C [4] Chuẩn I2C được thực hiện trên 2 đường SDA (Serial DATA) và SCL (Serial Clock), các đường SDA và SCL trên các thiết bị có cấu hình “cực góp mở” (open- drain hoặc open-collector), nghĩa là cần có các “điện trở kéo lên” (pull-up resistor) cho các đường này. SDA - Serial Data: là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ liệu đều được truyền trên đường này theo thứ tự từng bit một. Trong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại với chuẩn UART. SCL – Serial Clock: là đường xung nhịp nối tiếp. TWI (I2C) là chuẩn truyền thông nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được truyền/nhận. Trong hệ thống truyền dữ liệu I2C thì thiết bị nào cung cấp xung clock thì được gọi là thiết bị chủ (master), thiết bị nhận xung clock gọi là thiết bị tớ (slave).Có thể có nhiều thiết bị tớ (có thể có 128 thiết bị tớ) nhưng chỉ có 1 thiết bị chủ.Mỗi thiết bị tớ có 1 địa chỉ khác nhau để thiết bị chủ có thể lựa chọn giao tiếp thiết bị tớ cho phù hợp. Địa chỉ của thiết bị tớ thường do nhà sản xuất cài đặt sẵn. START Condition - Điều kiện bắt đầu: từ trạng thái nghỉ, khi cả SDA và SCL ở mức cao nếu Master muốn giao tiếp với Slave thì Master sẽ kéo chân SDA xuống thấp trong khi SCL vẫn cao. Trạng thái này gọi là START Condition (chúng ta gọi tắt là S). STOP Condition - Điều kiện kết thúc: sau khi thực hiện truyền/nhận dữ liệu, nếu Master muốn kết thúc quá trình nó sẽ tạo ra một STOP condition. STOP condition được Master thực hiện bằng cách kéo chân SDA lên cao khi đường BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT SCL đang ở mức cao. STOP condition chỉ được tạo ra sau khi địa chỉ hoặc dữ liệu đã được truyền/nhận. REPEAT START – Bắt đầu lặp lại: khoảng giữa START và STOP condition là khoảng bận của đường truyền, các Master khác không tác động được vào đường truyền trong khoảng này. Trường hợp sau khi kết thúc truyền/nhận mà Master không gởi STOP condition lại gởi thêm 1 START condition gọi là REPEAT START. Khả năng này thường được dùng khi Master muốn lấy dữ liệu liên tiếp từ các Slaves. Hình 2. 3 dưới mô tả các Master tạo ra START, STOP và [4]. REPEAT START Hình 2. 3: Trạng thái bit Start và bit Stop [4] b. Giới thiệu giao thức SMBus SMBus (The System Management Bus) là một giao diện hai dây mà qua đó các chip thành phần của các hệ thống khác nhau có thể giao tiếp với nhau và với phần còn lại của hệ thống. Nó được dựa trên các nguyên tắc hoạt động của chuẩn giao tiếp I2C. Hình 2. 4: Sơ đồ khối kết nối của giao thức SMBus [4] SMBus thường được sử dụng trong máy tính cá nhân, pin thông minh, điều khiển nhiệt độ và hệ thống quản lý giao tiếp ở băng thông thấp. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Bảng 2. 2: So sánh điểm khác nhau giữa SMBus với I2C [4] Tên Chức năng I2C SMBus VIL Ngõ vào mức thấp 1.5 V 0.8 V VIH Ngõ vào mức cao 3.5 V 2.1 V I PULL_UP Dòng từ điện trở kéo lên N/A 100-350 uA fSCL Tần số xung clock Max 100 kHz 10-100 kHz Hình 2. 5: Khoảng xung nhịp giữa SDA và SCL trong chuẩn SMBus [4] SMBus đòi hỏi SMBDAT (SDA) vẫn giữ nguyên nguyên trạng thái khoảng 300ns sau cạnh xuống của SMBCLK (SCL). Một điểm khác nhau nữa là các thiết bị Master có làm thiết bị Slave và ngược lại. Tuy nhiên tại một thời điểm bất kỳ thì hệ thống chỉ có 1 thiết bị Master. Nếu trường hợp có nhiều hơn 1 thiết bị đưa ra tín hiệu làm Master thì SMBus sẽ cung cấp 1 cơ chế “trọng tài” dựa trên cơ chế wired-AND. 2.2.2 Board Arduino Nano a. Sơ lược Arduino đã và đang được sử dụng rất rộng rãi trên thế giới và Việt Nam, 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). Arduino là một board mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng khác như cảm biến, động cơ, đèn và các thiết bị khác. Arduino ra đời tại thị trấn tại Ivrea thuộc nước Ý và được đặt theo tên của một vị vua vào thế kỷ thứ 9 là vua Arduin. Arduino được đưa ra giới thiệu lần đầu tiên vào BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 10
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT năm 2005 như là một dự án dành cho sinh viên của giáo sư Massimo Banzi là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII). Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, giám sát nhiệt độ và độ ẩm đơn giản. Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùngviết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++ [5]. b. Board Arduino Nano Arduino Nano là một board thuộc Arduino được thiết kế với bộ vi xử lý trung tâm là ATmega328 (Arduino Nano 3.x) hoặc Atmega168 (Arduino Nano 2.x). Cấu tạo của Arduino Nano gồm các phần sau: Hình 2. 6: Board Arduino Nano [5] Cổng mini USB: đây là cổng giao tiếp dùng để nạp code và cấp nguồn cho board hoạt động. Có 14 chân I/O đánh số thứ tự từ 0 đến 13 có chức năng xuất nhập xuất dữ liệu số. Trong đó có 6 chân có chức năng tạo xung PWM. Ngoài ra còn có các chân ngõ ra GND, VCC, AREF, 3V3. Có 8 chân Analog đánh số từ A0 đến A7 có chức năng nhận tín hiệu tương tự từ bên ngoài. Vi điều khiển AVR: đây là bộ xử lý trung tâm của toàn mạch. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 11
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Bảng 2. 3: Một số thông số chính của board Arduino Nano [5] Vi xử lý ATmega328 (phiên bản V3.0) Điện áp hoạt động: 5V Điện áp ngõ vào: 5 - 12 V 14 trong đó có 6 chân cung cấp điều xung PWM. Số lượng chân số (digital): Chân ngõ vào tương tự 8 (analog): Dòng điện mỗi chânI/O: 40 mA 16kB (ATmega168) 32 kB (ATmega328) Bộ nhớ flash: trong đó sử dụng 2 kB cho bootloader. SRAM: 1KB ( ATmega168) 2 KB (ATmega328) EEPROM: 512 bytes ( ATmega168) 1 KB (ATmega328) Tần số xung clock: 16 MHz Kích thước 0.7đến 1.7 inch c. Vi điều khiển ATmega328 Giới thiệu Hình 2. 7: Vi điều khiển ATmega328 [5] Atmega328 là một chíp vi điều khiển được sản xuất bởi hãng Atmel thuộc họ MegaAVR. Atmega 328 là vi điều khiển 8 bít họ CMOS dựa trên kiến trúc RISC (Reduced Instuction Set Comuter). Với kiểu cấu trúc này cho phép các lệnh thực thi BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 12
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT trong một chu kỳ xung nhịp, vì thế tốc độ xử lý dữ liệu có thể đạt 16 triệu lệnh trong 1 giây ở tần số 16 Mhz. Ngày nay vi điều khiển Atmega328 thực sự được sử dụng phổ biến cho các dự án nhỏ của sinh viên, học sinh với giá thành rẻ, xử lý mạnh mẽ, tiêu tốn ít năng lượng (chế độ hoạt động: 0.2 mA, chế độ ngủ: 0.1 μA, chế độ tích kiệm: 0.75 μA. Đặc biệt hơn trong dự án mã nguồn mở Arduino với các modul Adruino Uno (R3), Arduino Nano, Arduino Pro mini đều sử dụng chip ATmega328, những sản phẩm này dẫn dắt chúng ta vào thế giới mã nguồn mở để có thể hoàn thành một dự án cách dễ dàng. Sơ đồ chân Hình 2. 8: Sơ đồ chân ATmega328 [5] ATmega328 có 28 chân (cấu trúc DIP) hoặc 32 chân (cấu trúc TQFP) chia thành các nhóm sau: Chân 4, 6: VCC Chân 3, 5: GND Port B là cổng vào/ra 2 chiều 8 bit với các điện trở kéo lên bên trong (dành riêng cho mỗi bit. Tùy thuộc vào sự thiết lập thì chân PB6 và PB7 có thể kết nối với thạch anh bên ngoài để tăng tần số hoạt động của chip. Port C là cổng vào/ra 2 chiều 7 bit với các điện trở kéo lên bên trong (dành riêng cho mỗi bit). Khi là ngõ vào, các chân Port C được kéo xuống mức thấp. Chân PC6 là chân reset. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 13
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Port D là cổng vào/ra 2 chiều 8 bit với các điện trở kéo lên bên trong (dành riêng cho mỗi bit). Chân 7, 8: là 2 chân XTAL1 và XTAL2 dùng để đưa xung nhịp từ bên ngoài vào chip. Chân 18: AVCC cấp điện áp so sánh cho bộ ADC. Chân 20: AREF điện áp so sánh tín hiệu vào ADC. Chân Reset (chân 29): reset đầu vào. So với đóng gói dạng DIP thì dạng đóng gói TQFP còn có thêm 2 chân ADC6 và ADC7 tương tự như ADC0 đến ADC5 để chuyển đổi A/D, 2 chân này có thể chuyển đổi lên đến 10 bit. Các thông số chính của ATmega328 [12]. Được chế tạo theo kiến trúc RISC tiên tiến nên hiệu suất làm việc cao, điện năng tiêu thụ thấp. Bộ lệnh gồm 131 lệnh, hầu như đều thực thi trong vòng 1 chu kì xung nhịp. 32 x 8 thanh ghi làm việc đa năng. Tốc độ xử lý dữ liệu có thể đạt 16 triệu lệnh/s ở tần số 16 Mhz. 32Kb FlashROM lập trình ngay được trên hệ thống. Tốc độ tối đa: 20MHz. Dung lượng bộ nhớ chương trình: 32KB. Bộ nhớ EEPROM: 1KB. Dung lượng bộ nhớ RAM: 2KB. 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. Timer 8 bit: 2. Timer 16 bit: 1. ADC: 8 kênh, 10 bit. Giao tiếp: TWI (I2C), UART, SPI. Có 6 chân PWM. Điện áp hoạt động: 4.5V –5.5V. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 14
- S K L 0 0 2 1 5 4



