Chương 1: Tổng Quan 2 do an Chương này trình bày giới thiệu lý do tại sao chọn đề tài; mục tiêu, nhiệm vụ nghiên cứu khi làm để tài này; đối tượng và phạm vi nghiên cứu; đồng thời nêu bố cục của toàn bộ đề tài và các nội dung sơ lược về từng chương trong đề tài. - Chương 2: Cơ sở lý thuyết Chương này sẽ tìm hiểu về Arduino, lịch sử phát triển và sự đa dạng của vi xử lý này; giới thiệu các thiết bị điện tử được dùng trong hệ thống, tìm hiểu về các kiến thức cơ bản về các linh kiện: sơ đồ chân, đặc tính, các ưu điểm,… - Chương 3: Thiết kế hệ thống quản lý Trình bày sơ đồ khối toàn hệ thống, chức năng các khối, đồng thời, thiết kế tính toán để thiết kế mạch điều khiển mô hình. Trình bày sơ đồ toàn mạch. Thi công hàn linh kiện lên mạch, lắp ráp kiểm tra toàn bộ mạch, kiểm tra bằng một chương trình cơ bản, lắp ráp thành mô hình hoàn chỉnh.
Trình bày lưu đồ giải thuật đồng thời giải thích cách hoạt động của toàn bộ hệ thống. - Chương 4: Kết quả thực nghiệm Trình bày kết quả của của thiết kế mô hình và lập trình. Nhận xét đánh giá mức độ hoàn thiện của mô hình và hướng dẫn sử dụng đề tài. - Chương 5: Kết luận và hướng phát triển Tổng kết kết quả của toàn bộ mô hình, đưa ra các hướng phát triển cho sản phẩm sau này.
3 do an Chương 2. Giới thiệu ARDUINO UNO R3 Hình 2. Arduino UNO R3 Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là: ATmega8 (Board Arduino Uno r2), ATmega168, ATmega328 (Board Arduino Uno r3). Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, điều khiển động cơ bước, điều khiển động cơ serve, làm một trạm đo nhiệt độ – độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác.
Vi điều khiển Arduino UNO R3 4 do an Mạch Arduino UNO R3 với thiết kế tiêu chuẩn sử dụng vi điều khiển ATmega328. Tuy nhiên nếu yêu cầu phần cứng của bạn không cao hoặc túi tiền không cho phép, bạn có thể sử dụng các loại vi điều khiển khác có chức năng tương đương nhưng rẻ hơn như ATmega8 (bộ nhớ flash 8KB) hoặc ATmega168 (bộ nhớ flash 16KB). Thông số cơ bản của Mạch Arduino UNO R3 [4] Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30 mA Dòng ra tối đa (5V) 500 mA Dòng ra tối đa (3.3V) 50 mA 32 KB (ATmega328) với 0.5KB dùng bởi Bộ nhớ flash bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Mạch Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA.
Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối). 5 do an Hình 2. Sơ đồ nguyên lý Arduino UNO R3 Một số chân digital có các chức năng đặc biệt như sau: 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này.
Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác. Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác. 6 do an LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13.
Khi chân này được người dùng sử dụng, LED sẽ sáng. Arduino UNO Broad có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác. Cảm biến vân tay Hình 2. Module nhận dạng vân tay R305 Hiện tại trên thị trường có rất nhiều loại cảm biến để nhận dạng và phát hiện người dùng như: cảm biến nhận dạng khuôn mặt, cảm biến hồng ngoại, cảm biến giọng nói, RFID, … nhưng với tính thực dụng và tiện lợi của cảm biến vân tay rất phù hợp cho việc quản lý giảng viên. Chính vì vậy nhóm chọn cảm biến vân tay để nhận dạng giảng viên.
Đây là mô đun nhận dạng vân tay giao tiếp trực tiếp qua giao thức UART có thể kết nối trực tiếp đến vi điều khiển hoặc qua PC adapter Max232/USB-Serial. Người sử dụng có thể lưu trữ dữ liệu vân tay trực tiếp vào mô đun. Mô đun có thể dễ dàng giao tiếp với các loại vi điều khiển chuẩn 3. Có một con Led đỏ được bật sáng nằm sẵn trong ống kính trong suốt quá trình chụp vân tay.
Cảm biến với độ chính xác cao và có thể 7 do an được nhúng vào các thiết bị như: điều khiển truy cập, két sắt, khóa cửa nhà, khóa cửa xe,. Có thể chứa lên đến 162 dạng vân tay khác nhau trong bộ nhớ flash của board. Các đặc trưng của cảm biến vân tay Tích hợp xử lý hình ảnh và thuật toán xử lý trên cùng một chip. - Khả năng xử lý ảnh chụp tốt với độ phân giải lên đến 500dpi.
- Giá rẻ, kích thước nhỏ gọn. - Thời gian lấy ảnh: <1s. - Cửa sổ nhận dạng vân tay: 14 x 18mm. - Độ phân giải: 500dpi.
- Chuẩn giao tiếp: USB - UART (TTL logical logic). - Tốc độ Baud rate: 4800 ~ 115200bps. - Bề mặt nhận dạng: 15 ~ 18mm. - Tỷ lệ lỗi chấp nhận được: 0.
Tỷ lệ lỗi không chấp nhận: 0. - Kích thước: 50 x 20 x 21. - Tiêu thụ công suất thấp, và hiệu suất tuyệt vời. + Điện áp cung cấp: 3.
+ Dòng điện tiêu thụ: 100mA, đỉnh 150mA. + Nhiệt độ hoạt động được: -20 ~ 45oC. - Có 2 chân truyền nhận dữ liệu + Chân số 3 Rx dùng để nhận dữ liệu. + Chân số 4 Tx dùng để truyền dữ liệu.
Giao tiếp Để giao tiếp được giữa cảm biến vân tay R305 và Arduino uno R3 ta dùng chuẩn giao tiếp UART 2. Giới thiệu chuẩn giao tiếp UART 8 do an UART hỗ trợ truyền thông một chiều đồng bộ và dây giao tiếp, hỗ trợ LIN (mạng kết nối nội bộ), thông số Smartcard Protocol và IrDA (dữ liệu hồng ngoại) SIR ENDEC, và các hoạt động của modem (CTS / RTS), cho phép truyền thông đa dụng. Sơ đồ khối UART Bất kỳ giao tiếp hai chiều nào của UART đòi hỏi tối thiểu hai chân: Nhận dữ liệu trong (RX) và truyền dữ liệu ra ngoài (TX): - RX: Nhận dữ liệu đầu vào là đầu vào dữ liệu nối tiếp. Kỹ thuật chéo được sử dụng để khôi phục dữ liệu bằng cách phân biệt giữa dữ liệu và tiếng ồn hợp lệ.
- TX: Truyền dữ liệu ra. Khi máy phát bị tắt, pin đầu ra sẽ trở về cấu hình cổng I / O của nó. Khi máy phát được kích hoạt và không có gì được truyền đi, chân TX ở mức cao. Cấu trúc lệnh Một lệnh đơn bao gồm 6 byte đơn liên tục được truyền đi.
Sau đây là ví dụ về lệnh SYNC (AA0D00000000h). 9 do an Hình 2.6 Sơ đồ cấu trúc lệnh 2. Phương thức giao tiếp Dữ liệu thu và nhận được định dạng theo các gói, khi giao tiếp. Định dạng gói dữ liệu Bắt đầu Địa chỉ Nhận dạng Độ dài Nội dung(lệnh/dữ liệu) Kiểm tra tổng Định nghĩa gói dữ liệu Bảng 2.2 Định nghĩa gói dữ liệu Tên Độ dài Mô tả Bắt đầu 2 bytes Giá trị 0xEF01H Địa chỉ 4 bytes Địa chỉ cảm biến mặc định 0xFFFFFFFF Nhận dạng 1 byte 0x01H Lệnh 0x02H Dữ liệu 0x07H Báo nhận 0x08H Kết thúc Độ dài 2 bytes Độ dài gói tính từ byte nhận dạng đến kiểm tra Nội dung Có thể là lệnh, dữ liệu hoặc báo nhận Kiểm tra tổng 2 bytes Tổng byte tính từ byte nhận dạng đến hết nội dung *Các byte cao được gởi trước.
Ý nghĩa các gói ack trả về Lệnh chỉ được gởi từ VXL đến cảm biến, cảm biến chỉ trả về các gói xác nhận. Định nghĩa bytes xác nhận 1. 0x00h: thực thi hoàn tất. 0x01h: lỗi nhận dữ liệu.
0x02h: không phải vân tay. 0x03h: thất bại đăng ký vân tay. 0x06h: không tạo được đặt điểm nhân dạng. 0x07h: dấu vân quá nhỏ để lấy mẫu.
0x08h: dấu vân không trùng. 0x09h: thất bạ tìm kiếm dấu vân. 0x0Ah: lỗi kết hợp đặc điểm dấu vân. 0x0Bh: đại chỉ ID vượt khung.
0xCh: lỗi đọc từ dữ liệu vân tay. Dữ liệu xấu. 0xDh: lỗi nạp dữ liệu. 0xEh: không thể nhận dữ liệu 14.
0xFh: lỗi gởi hình ảnh. 0x10h: lỗi xoá dữ liệu. 0x11h: lỗi xoá một ID. 0x15h: lỗi tạo ảnh.
0x18h: lỗi ghi flash. 0x19h: không xác định được lỗi. 0x1Ah: số đăng ký không hợp lệ. 0x1Bh: gói dữ liệu sai.
0x1Ch: sai số trang. 0x1Dh: lỗi cổng giao tiếp. others: dự phòng. Các lệnh điều khiển cảm biến vân tay Mô đun cảm biến vân tay được điều khiển với lệnh như sau: 2.
Lệnh kết nối (bắt tay) Mô tả: Xác nhận giao tiếp giữa cảm biến và PC hoặc VXL Code chỉ thị: 0x17h Code lệnh: 0x00h Ack hồi đáp = 0x00h: cổng mở. = 0x1Dh: lỗi giao tiếp cổng. Định dạng gói lệnh: Bảng 2.