Giới thiệu phần mềm

Một phần của tài liệu DATN_FINAL (Trang 53)

2.10.1 MIT App Inventor

App Inventor là công cụ lập trình dành cho mọi người, kể cả trẻ em. Được công bố dưới dạng phần mềm tự do (free software), App Inventor trở thành hiện tượng chưa từng có trong lĩnh vực lập trình cho thiết bị di dộng. Ưu điểm của MIT App Inventor là phần mềm hỗ trợ xây dựng những thành phần cơ bản của một ứng dụng Android: Nút bấm, nút lựa chọn, chọn ngày giờ, ảnh, văn bản, thơng báo, trình duyệt web. Sử dụng nhiều tính năng trên điện thoại như chụp ảnh, quay phim, chọn ảnh, bật video. Có thể kết nối danh bạ, bluetooth, email, gọi điện, chia sẻ thông qua các ứng dụng mạng xã hội khác trên thiết bị. Bên cạnh đó cịn có thể lưu trữ tệp txt, tạo cơ sở dữ liệu đơn giản trên điện thoại hoặc trên đám mây thông qua server tự tạo hoặc Firebase.

Tuy nhiên, ngoài những ưu điểm kể trên thì phần mềm cũng có những nhược điểm như ứng dụng được phát triển trên server của MIT mang tính chất giáo dục nên giao diện còn sơ sài, chưa chuyên nghiệp, giới hạn dung lượng của mỗi project chỉ là 5MB. Mặc dù có những nhược điểm như vậy, MIT App Inventor vẫn là một cơng cụ hữu ích giúp cho người mới bắt đầu lập trình trên Android có thể tạo ra được những ứng dụng hoàn thiện hoặc giúp nhà phát triển hoàn thành những ý tưởng của mình.

2.10.2 Phần mềm lập trình Arduino IDE

Arduino IDE là phần mềm dùng để lập trình cho Arduino. Mơi trường lập trình Arduino IDE có thể chạy trên 3 nền tảng phổ biến nhất hiện này là Windows, MacOS và Linux. Do có tính chất nguồn mở nên mơi trường lập trình này hồn tồn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm. Vùng làm việc của phần mềm gồm thanh công cụ bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE. Ở vùng viết chương trình bạn sẽ viết các đoạn mã của mình tại đây. Tên chương trình của bạn được hiển thị ngay dưới dãy các Icon. Công cụ gỡ lỗi hỗ trợ người dùng xác định và khắc phục lỗi trong mã nguồn. Các lập trình viên và kỹ sư phần mềm thường có thể kiểm tra các phân đoạn mã khác nhau và xác định lỗi trước khi ứng dụng được phát hành.

37

Lợi ích của IDE là phục vụ như một mơi trường duy nhất cho hầu hết các nhu cầu của nhà phát triển, chẳng hạn như các hệ thống kiểm sốt phiên bản, cơng cụ gỡ lỗi. Khả năng gựi ý và hoàn thành các câu lệnh, đoạn code nhanh chóng. Tự động kiểm tra lỗi và thơng báo vị trí lỗi tại những dịng code cụ thể. Khả năng tái cấu trúc cho phép các lập trình viên thực hiện các thay đổi trên mã nguồn hay project của mình dễ dàng. Hệ thống quản lý dự án, mã nguồn, kết hợp nhiều hệ quản trị cơ sở dữ liệu lớn. Hoạt động trên nhiều loại hệ điều hành khác nhau như windows, Linux, Mac. Nhiều IDE cho phép người dùng mở rộng và bổ sung thêm tính năng mới theo mục đích và từng dự án cụ thể. Phát triển nhiều phần mềm, ứng dụng hay game trên nền tản mobile và desktop.

38

CHƯƠNG 3 : TÍNH TỐN VÀ THIẾT KẾ 3.1 Yêu cầu và sơ đồ khối của hệ thống

3.1.1 Yêu cầu của hệ thống

Hệ thống đo nhiệt độ, nhịp tim, nồng độ oxi máu và phun sát khuẩn có các chức năng dưới đây:

- Đọc, đo, hiển thị, cảnh báo kết quả đo nhiệt độ cơ thể người, hiển thị kết quả ra màn hình LCD và phát kết quả ra loa dùng cảm biến MLX 90614.

- Đọc, đo, hiển thị, cảnh báo kết quả đo nhịp tim, nồng độ SPO2, hiển thị kết quả ra màn hình LCD và phát kết quả ra loa dùng cảm biến MAX30100. - Phun sát khuẩn sau mỗi lần đo dùng đầu phun sương.

- Dùng bàn phím ma trận để thay đổi giá trị cảnh báo của SPO2 nhiệt độ và nhịp tim.

- Dùng đèn hiển thị trạng thái hoạt động của hệ thống - Dùng pin năng lượng và có sạc.

- Hiển thị kết quả vừa đo được trên ứng dụng Android.

3.1.2 Sơ đồ khối

39

3.1.3 Chức năng của từng khối

Khối điều khiển trung tâm có chức năng:

- Nhận dữ liệu từ khối cảm biến, thực hiện tính tốn để in ra giá trị chỉ số đo chính xác

- Nhận dữ liệu từ khối nút nhấn, sau đó sẽ điều khiển thay đổi các thông số đã đặt dựa trên dữ liệu nhận được

- In dữ liệu đo đạt được ra ngồi LCD và đưa tín hiệu ra khối âm thanh để đọc kết quả đo được ra ngoài loa

- Điều khiển khối động cơ phun chất diệt khuẩn.

- Đẩy dữ liệu đo được từ khối cảm biến qua cho khối giao tiếp, từ đó lưu kết quả qua ứng dụng điện thoại Android.

- Xuất tín hiệu cho khối quang báo để thơng báo.

Khối hiển thị: Có chức năng hiển thị các thông số đo đạt được từ khối

cảm biến, trạng thái hoạt động của các chức năng có trong hệ thống và hiển thị các thơng số cần chỉnh sửa.

Khối cảm biến: Có chức năng lấy các chỉ số đo đạt được từ con người,

sau đó gửi dữ liệu cho khối điều khiển trung tâm.

Khối nút nhấn: Có chức năng chính là thay đổi giá trị đặt của các thông

số của khối cảm biến như: mức cảnh báo SPO2 và nhiệt độ cơ thể người, ngồi ra cịn là nút điều khiển khối động cơ thủ công.

Khối động cơ và quang báo: Có chức năng là nhận tín hiệu từ khối xử

lý trung tâm và điều khiển bật tắt máy bơm phun sát khuẩn, ngồi ra cịn thực hiện điều khiển bơm khi nhận được tín hiệu từ nút nhấn thủ công. Khối quang báo là khối cho biết trạng thái hoạt động của hệ thống thông qua các đèn chiếu sáng.

Khối âm thanh: Phát ra âm thanh, đọc nhiệt độ đo được, nhịp tim và

nồng độ oxi đo được từ các cảm biến và phát ra loa.

Khối giao tiếp: Là khối gửi dữ liệu qua Bluetooth cho ứng dụng

Android để hiển thị kết quả vừa đo được.

Khối nguồn: Có chức năng cung cấp nguồn cho các khối còn lại. Ứng dụng Anroid: Là nơi hiển thị các thông số kết quả đã đo được.

40

3.2 Thiết kế phần cứng

3.2.1 Khối xử lý trung tâm

Vì số lượng các module nhiều, đồng nghĩa với việc có nhiều cổng I/O, nên số lượng các chân ngõ vào của khối xử lý phải đáp ứng đủ hoặc dư. Vì vậy nhóm quyết định chọn board xử lý Arduino Mega 2560 để làm khối xử lý trung tâm vì board có số lượng các ngõ vào ra nhiều và đáp ứng đủ với yêu cầu của đề tài.

Arduino Mega 2560 là board xử lý lớn nhất trong họ Arduino. Gồm các đặc tính đáng chú ý sau:

- Có 3 cách cấp nguồn cho Arduino Mega, đó là dùng cáp USB, sử dụng qua chân cấp nguồn Vin và jack cắm nguồn vào DC.

- Được thiết kế với cầu chì tự phục hồi, mục đích ngăn cổng USB của máy tính sinh nhiệt khi xảy ra hiện tượng quá dòng trên board Arduino do các chân I/O chạm chập. Hầu hết các thiết bị kết nối với Board đều có cơ chế bảo vệ dịng thơng qua cổng USB, tuy nhiên trên board Arduino Mega 2560 có tích hợp sẵn sẽ tạo ra được lớp bảo vệ thứ 2 khi kết nối với máy tính.

41

Hình 3.3 Sơ đồ chân của Arduino Mega 2560

Sơ lược về các chân quan trọng trên board Arduino Mega 2560

- Chân 5V và 3.3V: Chân này để cung cấp điện áp ra chuẩn cho các thiết bị - Chân GND: Có 5 chân nối mass có sẵn trên Board Arduino Mega, giúp dễ

dàng kết nối với dự án có nhiều thiết bị ngoại vi

- Chân Reset: Được sử dụng để thiết lập lại Board mạch về lúc ban đầu, với mức tích cực là mức thấp sẽ reset lại board

- Chân Vin: Là chân điện áp đầu vào cung cấp cho mạch Arduino Mega, điện áp từ 7V đến 15V. Mặt khác điện áp được cấp bởi jack nguồn DC có thể được lấy thơng qua chân này. Tuy nhiên, điện áp đầu ra thông qua chân này đến mạch Arduino sẽ được tự động thiết lập là 5V.

42

- Chân truyền thông nối tiếp (Serial Communication): RXD và TXD là các chân nối tiếp được sử dụng để truyền và nhận dữ liệu nối tiếp, chân Rx đại diện cho việc truyền dữ liệu còn Tx được sử dụng để nhận dữ liệu. Có tất cả 4 kết hợp các chân nối tiếp này được sử dụng trong đó Serial 0 là chân RX(0) và TX(1), Seria l 1là chân TX(18) và RX(19), Serial 2 là chân TX(16) và RX(17), và Serial 3 là chân TX(14) và RX(15).

- Chân Ngắt ngoài (External Interrupts): 6 chân được sử dụng để tạo các ngắt ngồi đó là ngắt 0 (chân 0), ngắt 1 (chân 3), ngắt 2 (chân 21), ngắt 3 (chân 20), ngắt 4 (chân 19), ngắt 5 (chân 18). Các chân này tạo ra các ngắt bằng một số cách tức là cung cấp giá trị LOW, tăng hoặc giảm hoặc thay đổi giá trị cho các chân ngắt.

- Đèn LED: Arduino Mega 2560 tích hợp đèn LED trên board mạch kết nối với chân 13. Giá trị HIGH đèn LED được bật và LOW đèn LED tắt. Giúp người lập trình quan sát trực quan khi test, kiểm tra chương trình trên board Arduino - Chân AREF: Chân tạo điện áp tham chiếu cho đầu vào analogs

- Các chân tương tự (Analogs): Có 16 chân analog được tích hợp trên board Arduino có ký hiệu là A0 đến A15. Điều quan trọng cần lưu ý là tất cả các chân analog này có thể được sử dụng làm chân I / O Digital. Mỗi chân analog đi kèm với độ phân giải 10 bit. Các chân này có thể có điện áp thay đổi tử 0V đến 5V. Tuy nhiên, giá trị trên có thể được thay đổi bằng cách sử dụng hàm ISF và analogReference ().

- Giao tiếp I2C: Hai chân 20 và 21 hỗ trợ giao tiếp I2C trong đó 20 đại diện cho SDA (Dịng dữ liệu nối tiếp chủ yếu được sử dụng để giữ dữ liệu) và 21 đại diện cho SCL (Dòng đồng hồ nối tiếp chủ yếu được sử dụng để cung cấp đồng bộ hóa dữ liệu giữa các thiết bị)

- Truyền thông SPI: Được sử dụng để truyền dữ liệu giữa Arduino và các thiết bị ngoại vi khác. Chân 50 (MISO), Chân51 (MOSI), Chân 52 (SCK), Chân 53 (SS) được sử dụng để liên lạc SPI.

43

Bảng 3.1 Thông số kỹ thuật Arduino Mega 2560

Đặc điểm Giá trị

Vi xử lý Atmega2560

Nguồn cấp 7-15VDC

Điện áp hoạt động 5VDC

Dòng max chân 5V 500mA

Dòng max chân 3.3V 50mA

Dòng max chân I/O 40mA

Số chân Digital 54

Số chân Analog 16

Dung lượng bộ nhớ flash 256KB

Xung hoạt động 16Mhz

Dung lượng bộ nhớ SRAM 8 KB Dung lượng bộ nhớ EEPROM 4 KB

3.2.2 Khối hiển thị

Khối hiển thị có chức năng hiển thị các thơng số đo đạt được từ khối cảm biến, trạng thái hoạt động của các chức năng có trong hệ thống và hiển thị các thông số cần chỉnh sửa.

Hiện nay trên thị trường có rất nhiều thiết bị linh kiện hiển thị như led đơn, led 7 đoạn, LCD 16x2, OLED, TFT… Với yêu cầu của hệ thống sẽ hiển thị lên các thông số môi trường và trạng thái điều khiển các thiết bị nên chỉ cần 4 dịng với khơng q 20 ký tự và để đơn giản hơn trong việc sử dụng nhóm quyết định sử dụng LCD 20x4 với giá thành khá rẻ.

Để sử dụng các loại LCD có driver là HD44780 (LCD 16x02, LCD 20x04...) cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để có thể giao tiếp với LCD. Nhưng với module chuyển giao tiếp LCD sang I2C các bạn chỉ cần 2 chân (SDA và SCL) của MCU kết nối với 2 chân (SDA và SCL) của module là có thể hiển thị thơng tin lên LCD, ngồi ra có thể điều chỉnh được độ tương phản bởi biến trở gắn trên module chính vì vậy nhóm đã quyết sử dụng Module I2C LCD nhằm mục đích tiết kiệm GPIO kết nối vào Arduino cũng như là hạn chế số lượng dây dẫn trong hệ thống.

44

Hình 3.4 Sơ đồ nguyên lý khối hiển thị

Kết khối hiển thị với khối điều khiển trung tâm và khối nguồn:

- Chân SCL và SDA của module I2C lần lượt kết nối với chân D21 và D20 của Arduino.

- Chân VDD và VSS của LCD 20x4 lần lượt kết nối với chân 5V và GND của khối nguồn.

Bảng 3.2 Thông số của khối hiển thị

Đặc điểm Giá trị

Điện áp hoạt động 5 VDC Dịng điện tiêu thụ 35.5 mA Kích thước màn hình 9.5 x 4 (cm)

Chuẩn kết nối I2C

45

3.2.3 Khối cảm biến

3.2.3.1 Cảm biến nhiệt độ khơng chạm MLX90614

Có nhiệm vụ đo đạc nhiệt độ cơ thể và gửi thông số đến khối xử lý trung tâm. Sơ đồ chân:

Hình 3.5 Sơ đồ chân của Module MLX90614

VIN là chân nối nguồn dương (+5V)

SCL là chân clock của giao tiếp I2C, nối với chân clock I2C của Arduino. SDA là chân data của giap tiếp I2C, nối với chân data I2C của Arduino.

GND là chân nối nguồn âm (0V)

Kết nối giữa Module MLX90614 với khối điều khiển trung tâm:

- Chân SCL và SDA của Module lần lượt kết nối với chân I2C của Arduino lần lượt là D21 và D20.

- Chân VCC và GND của Module lần lượt kết nối với chân 5V và GND của Arduino.

Bảng 3.3 Các thông số kỹ thuật của Module MLX90614

Đặc điểm Giá trị

Khoảng đo nhiệt độ vật thể -70 ℃ đến 382℃ Khoảng đo nhiệt độ môi trường xung quanh -40 ℃ đến 85℃

Độ chính xác ±0.5 ℃ (ở nhiệt độ phòng)

Độ phân giải ±0.2 ℃

Góc đo nhiệt độ 90º

Điện áp hoạt động 3.3V tới 5V

46

3.2.3.2 Cảm biến đo nhịp tim và SpO2

Có chức năng đo đạc nhịp tim và nồng độ SpO2, sau đó gủi dữ liệu đến khối xử lý trung tâm.

Sơ đồ chân:

Hình 3.6 Sơ đồ chân của Module MAX30100

VIN là chân nối nguồn dương (+5V)

SCL là chân clock của giao tiếp I2C, nối với chân clock I2C của Arduino. SDA là chân data của giap tiếp I2C, nối với chân data I2C của Arduino.

INT INT MAX30100 có thể được lập trình để tạo ngắt cho mỗi xung. Dịng này là dịng hở, vì vậy nó được kéo CAO bởi điện trở tích hợp. Khi một ngắt xảy ra, chân INT sẽ ở mức THẤP và ở mức THẤP cho đến khi ngắt được xóa.

IRD MAX30100 tích hợp trình điều khiển LED để điều khiển xung LED cho các phép đo SpO2 và HR. Sử dụng tùy chọn này nếu bạn muốn tự điều khiển IR LED, nếu khơng, hãy để nó khơng được kết nối.

RD chân tương tự như chân IRD, nhưng được sử dụng để điều khiển đèn LED màu đỏ. Nếu bạn không muốn tự điều khiển đèn LED màu đỏ, hãy để nó ở trạng thái khơng kết nối

47

Kết nối giữa Module MAX 30100 giữa hiển thị với khối điều khiển trung tâm:

- Chân SCL và SDA của module IC2 lần lượt kết nối với 2 chân I2C của Arduino là D21 và D20.

- Chân VCC và GND của Module lần lượt kết nối với chân 5V và GND của Arduino.

Bảng 3.4 Thông số kỹ thuật của Module MAX30100

Đặc điểm Giá trị

Điện áp hoạt động 3.3V tới 5.5V

Dịng điện hoạt động 600µA khi đo và 0.7µA khi ở trạng thái chờ

Bước sóng LED đỏ 660nm

Bước sóng LED IR 880nm

Nhiệt độ hoạt động -40ºC tới 85ºC Điện áp hoạt động 3.3V tới 5V Dòng điện hoạt động 2mA

3.2.3.3 Cảm biến vật cản hồng ngoại

Có 2 cảm biến được dùng trong hệ thống, có chức năng lần lượt như sau: - Cảm biến 1 có chức năng kích tín hiệu cho cảm biến đo nhịp tim, SPO2 hoạt

động khi có vật cản lại gần, ở đây là bàn tay. Khi đưa tay lại gần, cảm biến vật cản nhận diện và gửi tín hiệu cho khối xử lý trung tâm, khối xử lý trung tâm đưa tín hiệu tới cảm biến MAX30100 cho phép đo nhịp tim, SPO2.

- Cảm biến 2 có chức năng kích tín hiệu cho cảm biến đo nhiệt độ và phun

Một phần của tài liệu DATN_FINAL (Trang 53)

Tải bản đầy đủ (PDF)

(132 trang)