Mô hình chấm công sử dụng cảm biến vân tay R305 được điều khiển bằng vi điều khiển pic16f877a. Lập trình trên CCS và có giao tiếp máy tính thông qua Visual studio. Tài liệu gồm có bản thuyết minh + code CCS + file code visual studio Zalo: 0705577771
Trang 1NỘI DUNG
LỜI NÓI ĐẦU 1
PHẦN I: TỔNG QUAN VỀ ĐỀ TÀI 3
1 Giới thiệu chung 3
2 Nội dung đề tài 3
3 Đối tượng nghiên cứu 3
PHẦN II: THIẾT KẾ PHẦN CỨNG 4
1 Module nhận dạng vân tay R305 4
1.1 Giới thiệu chung 4
1.2 Nguyên lý hoạt động 5
1.3 Cấu trúc lệnh của cảm biến 6
a Thu thập dấu vân tay (GenImg) 6
b Lưu ảnh vân tay vào biến tạm (Img2tz) 7
c So khớp hai dấu vân tay (Match) 8
d Tổng hợp thông tin hai dấu vân tay (RegModel) 8
e Lưu mẫu vân tay (Store) 9
f Tìm kiếm vân tay trong thư viện (Search) 9
g Xóa từng dấu vân tay (DeletChar) 10
2 Vi điều khiển PIC và các phần tử khác 11
2.1 Vi điều khiển PIC 11
2.1.1 Đặc điểm của PIC: 11
2.1.2 Các loại chip PIC: 11
2.1.3 Trình biên dịch CCS 12
2.2 Tổng quan về PIC16F877A 12
2.2.1 Giới thiệu: 12
2.2.2 Sơ đồ chân và chức năng chân PIC16F877A 12
2.2.3 Các đặc tính ngoại vi: 16
2.3 Giới thiệu về giao tiếp UART – USB TTL 17
2.3.1 Khái niệm 17
2.3.2 Chuẩn UART (hay chuẩn TTL) 18
Trang 22.3.3 Giới thiệu về USB to TTL HW579 18
2.3.4 Ứng dụng trong đề tài 18
2.4 Giới thiệu Camera Quelima SQ11 Mini Camera 1080P 18
2.5 Các phần tử điện tử khác 19
3 Phần mềm Visual Studio 20
3.1 Giới thiệu về Visual studio 20
3.2 Đặc điểm nổi bật 20
3.3 Giới thiệu ngôn ngữ C#: 21
3.4 Phần thiết kế Windows Forms Designer 22
4 Cơ sở dữ liệu trong Access 22
PHẦN III: THIẾT KẾ HỆ THỐNG 24
1 Sơ đồ khối điều khiển 24
1.1 Sơ đồ khối tổng thể 24
1.2 Sơ đồ khối thực hiện các lệnh cơ bản của Module cảm biến R305 25
1.2.1 Lưu dấu vân tay 25
1.2.2 Tìm kiếm vân tay 26
1.2.3 Xóa vân tay 27
2 Chương trình điều khiển hệ thống 28
2.1 Chương trình trong phần mềm Visual Studio 28
2.2 Chương trình trên phần mềm CCS 55
3 Hình ảnh mô phỏng giao diện 55
PHẦN IV: VẬN HÀNH HỆ THỐNG 58
1 Các thao tác thực hiện 58
2 Hình ảnh mô phỏng 59
Trang 3LỜI NÓI ĐẦU
Ngày nay kỹ thuật Vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật, đóng vai trò quan trọng trong nhiều dây chuyền sản xuất từ quy mô nhỏ đến lớn trong công nghiệp Các bộ Vi điều khiển có khả năng xử lý nhiều hoạt động phức tạp, thay thế các khối điều khiển lớn phức tạp bằng những mạch điều khiển nhỏ gọn, dễ dàng thao tác.
Qua đó, cho thấy tầm quan trọng của việc học và áp dụng nội dung môn học Vi điều khiển vào thực tế Đồ án môn học Vi điều khiển này giúp cho chúng em có cái nhìn thực tế hơn
về việc áp dụng những kiến thức được học vào trong thực tiễn Học được cách thức nhìn nhận một vấn đề mà chúng em có thể gặp ở thực tế liên quan đến ngành Cơ điện tử và đưa
ra các phương án giải quyết phù hợp, thiết kế đưa ra những sản phẩm có ứng dụng thực tiễn, có ích cho xã hội.
Ở đồ án môn học này, chúng em đã nghiên cứu về đề tài “Chấm công sử dụng cảm biến vân tay” Một trong những ứng dụng hay với tính bảo mật, độ chính xác cao Đề tài dựa trên hoạt động của cảm biến vân tay, với nguyên lý xử lý hình ảnh dấu vân tay rồi mã hoá thành 1 chuỗi mã, bằng cách giao tiếp với cảm biến thông qua hoạt động gửi và nhận liên tục các chuỗi mã, ta có thể điều khiển các thiết bị ngoại vi thông qua vi điều khiển PIC Với sự hướng dẫn tận tình của Thầy Đặng Phước Vinh, chúng em đã cơ bản hoàn thành được hệ thống chấm công bằng dấu vân tay này Trong quá trình thiết kế hệ thống, do chưa có nhiều kinh nghiệm và kiến thức còn hạn chế nên không thể tránh khỏi những thiếu xót kính mong quý Thầy chỉ dẫn thêm.
Cuối cùng chúng em xin chân thành cảm ơn quý Thầy bộ môn, đặc biệt là Thầy TS ĐẶNG PHƯỚC VINH đã trực tiếp hướng dẫn, chỉ bảo và hỗ trợ một cách tận tình giúp chúng em hoàn thành tốt đồ án này.
Trang 4PHẦN I: TỔNG QUAN VỀ ĐỀ TÀI
1 Giới thiệu chung
Cuộc sống con người ngày càng văn minh hiện đại dẫn đến nhu cầu về cuộc sống ngày càng cao, trong đó có nhu cầu về an ninh và bảo mật đòi hỏi phải có những hệ thống hoạt động tốt hơn, an toàn hơn, độ bảo mật cao hơn và có sự tin cậy hơn Trước những nhu cầu từ thực tế, một trong những thiết bị hữu dụng được sử dụng phổ biến đã ra đời đó là cảm biến vân tay Cảm biến sử dụng dấu vân tay, một đặc điểm nhận dạng riêng biệt hầu như toàn bộ giữa những con người với nhau, để làm cơ sở cho việc nhận dạng đối tượng, giúp ích nhiều trong việc bảo mật, quản lý thông tin Trên cơ sở đó, chúng em chọn cảm biến vân tay làm cốt lõi cho đề tài đồ án Vi điều khiển này
2 Nội dung đề tài
Sử dụng cảm biến vân tay để thực hiện chấm công cho nhân viên thay cho cách dùngngười chấm công truyền thống Sơ lược về đề tài như sau: Thông qua việc lưu mẫu dấuvân tay để tạo các thông tin cho từng nhân viên, tất cả thông tin đó được kết nối với cơ sở
dữ liệu trên access để thuận tiện cho việc quản lý Và qua việc quét vân tay để ghi nhớ lạiviệc ra vào ca của nhân viên, giúp ta có thể thống kê lại số giờ làm việc của mỗi mộtnhân viên
3 Đối tượng nghiên cứu
Module cảm biến vân tay R305
Camera Quelima SQ11 Mini Camera 1080P
PIC16F877A
Trang 5PHẦN II: THIẾT KẾ PHẦN CỨNG
1 Module nhận dạng vân tay R305
1.1 Giới thiệu chung
Module nhận dạng vân tay R305 bao gồm cảm biến vân tay quang học, bộ xử lý DSP tốc
độ cao, tích hợp chip thu thập hình ảnh và thuật toán Module có chức năng thu thập ảnhvân tay từ đó tạo nên một khuôn mẫu vân tay hoặc so sánh sự trùng khớp giữa hai dấuvân tay Đây là bộ cảm biến vân tay giao tiếp TTL UART Cảm biến kết nối với máy tínhthông qua IC MAX232 hoặc USB-Serial
Module Nhận Dạng Vân Tay R305 có hiệu suất ổn định và cấu trúc đơn giản
Thông số kỹ thuật:
• Nguồn cấp: 3.6 - 6VDC
• Giao tiếp: TTL-UART hoặc USB 1.1
• Dòng điện hoạt động: 100 - 150mA
• Chế độ nhận dạng: 1:1 hoặc 1:N (1 ID nhiều vân tay)
• Tốc độ truyền: 9600xN bps (mặc định N=6 tức 9600x6 = 57600bps)
• Thời gian thu thập hình ảnh : <0.5s
• Kích thước mẫu : 512 bytes
Trang 6 Sơ đồ chân sử dụng trong hệ thống:
Sử dụng truyền thông nối tiếp (P1), gồm:
Chân Tên Kiểu Mô tả chức năng
Trang 7module, sau đó sẽ trả về kết quả là tìm thấy hoặc không tìm thấy mẫu vân tay đó trongmodule.
1.3 Cấu trúc lệnh của cảm biến
Khi giao tiếp, việc chuyển giao và nhận lệnh hoặc dữ liệu hoặc kết quả đều đượcbọc trong định dạng gói dữ liệu
Định dạng gói dữ liệu:
Header Adder Package
identifier
Packagelength
Packagecontent(instuction/data/Parameter)
Checksum
Header Byte cao chuyển đầu tiên trong gói dữ liệu;
Giá trị cố định 0xEF01Adder Địa chỉ của module, giá trị mặc định ban đầu là 0xFFFFFFFF
Đơn vị chiều dài là bytePackage contents Có thể là lệnh, dữ liệu, xác nhận
Checksum Tổng số học của package identifier, package length, package content
khi bỏ qua bit tràn
Trong đó:
a Thu thập dấu vân tay (GenImg)
Lệnh gửi đi:
identifier
Packagelength
Instructioncode
Checksum
Trang 80xEF01 0xFFFFFFFF 01H 03H 01H 05H
Dữ liệu nhận về:
Header Adder Package
identifier
Packagelength
Confirmationcode
Checksum
o Chú thích:
Confirmation code = 00H : thu thập vân tay thành công
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 02H : không thể phát hiện dấu vân tay
Confirmation code = 03H : thu thập vân tay thất bại
b Lưu ảnh vân tay vào biến tạm (Img2tz)
Instructioncode
Buffernumber
Header Adder Package
identifier
Packagelength
Confirmationcode
Checksum
Trang 9o Chú thích:
Confirmation code = 00H : hoàn thành việc tạo tập tin nhân vật
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 06H : thất bại trong việc tạo tập tin nhân vật do hình ảnh dấuvân tay quá mất trật tự
Confirmation code = 07H : thất bại trong việc tạo tập tin nhân vật do thiếu điểm hayhình ảnh dấu vân tay quá nhỏ
Confirmation code = 15H : thất bại trong việc tạo ra hình ảnh vân tay
c So khớp hai dấu vân tay (Match)
Lệnh gửi đi:
Header Module address Package
identifier
Packagelength
Instructioncode
Packagelength
Instructioncode
Matchingscore
Checksum
o Chú thích:
Confirmation code = 00H : mẫu của hai bộ đệm khớp nhau
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 08H: mẫu của hai bộ đệm không khớp nhau
Lệnh này không ảnh hưởng đến nội dung của bộ đệm
d Tổng hợp thông tin hai dấu vân tay (RegModel)
Packagelength
Instructioncode
Checksum
Trang 10Confirmationcode
Checksum
o Chú thích:
Confirmation code = 00H : tổng hợp thành công
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 0aH : lỗi khi kết hợp vân tay, vân tay không cùng một ngón
e Lưu mẫu vân tay (Store)
Packagelength
Instructioncode
Buffer number Location
number
Checksum
Dữ liệu nhận về:
Header Adder Package
identifier
Packagelength
Confirmationcode
Checksum
o Chú thích:
Confirmation code = 00H : lưu thành công
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 0bH : địa chỉ PageID vượt ngoài thư viện ngón tay
Confirmation code = 18H : lỗi khi ghi lên bộ nhớ Flash
f Tìm kiếm vân tay trong thư viện (Search)
Lệnh gửi đi:
Trang 112 byte 4 byte 1 byte 2 byte 1 byte 1 byte 2 byte 2 byte 2 byte
Header Module
address
Package identifier
Package length
Instructioncode
Buffer number Parameter Parameter Checksum
0xEF01 xxxx 01H 08H 04H BufferID StartPage PageNum sum
o Chú thích:
BufferID của CharBuffer1 và CharBuffer2 tương ứng là 1h và 2h Các giá trị khác (trừ 1h,2h) sẽ được xử lý như CharBuffer2
Dữ liệu nhận về:
identifier
Packagelength
Confirmationcode
Confirmation code = 00H : đã tìm thấy
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 06H : không tìm thấy trong thư viện
g Xóa từng dấu vân tay (DeletChar)
Packagelength
Instructioncode
Pagenumber
Number oftemplates to
be deleted
Checksum
Dữ liệu nhận về:
Header Adder Package
identifier
Packagelength
Confirmationcode
Checksum
Trang 120xEF01 0xxxx 07H 03H xxH sum
o Chú thích:
Confirmation code = 00H : xóa thành công
Confirmation code = 01H : lỗi khi nhận gói dữ liệu
Confirmation code = 10H : thất bại khi xóa mẫu
2 Vi điều khiển PIC và các phần tử khác.
2.1 Vi điều khiển PIC
2.1.1 Đặc điểm của PIC:
- Có thể tìm mua dễ dàng tại thị trường Việt Nam
- Giá thành không quá cao
- Có đầy đủ tính năng của một vi điều khiển khi hoạt động độc lập
- Số lượng người dùng lớn nên cho ta lượng tài liệu lớn, dễ dàng trao đổi học tập, thảo luận
- Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình,…
- Các tính năng đa dạng của vi điều khiển luôn được cập nhật
2.1.2 Các loại chip PIC:
- PIC12xxxx: độ dài lệnh 12 bit
- PIC16xxxx: độ dài lệnh 14 bit
- PIC18xxxx: độ dài lệnh 16 bit
- C: PIC có bộ nhớ chương trình là EPROM (chỉ có 16C84 là EEPROM)
- F: PIC có bộ nhớ chương trình là flash
- LF: PIC có bộ nhớ chương trình là flash hoạt động ở điện áp thấp
- LV: tương tự như LF, đây là tín hiệu cũ
- Bên cạnh đó, một số vi điều khiển có ký hiệu xxFxxx thì bộ nhớ chương trình là EEPROM, nếu có thêm chữ A ở cuối thì bộ nhớ chương trình là flash (ví dụ: PIC16F877
là EEPROM, còn PIC16F877A là flash)
2.1.3 Trình biên dịch CCS.
- Kế thừa tất cả đặc điểm của ngôn ngữ C – là ngôn ngữ cơ bản, quen thuộc mà sinh viên đã được đào tạo tại trường
Trang 13- Xây dựng sẵn các hàm phục vụ cho việc sử dụng dễ dàng các khối chức năng đặc biệt của Vi điều khiển PIC như: ADC, PWM, RS232, SPI,
- Có khả năng kết hợp với ngôn ngữ hợp ngữ, tạo sự mềm dẻo trong sự phát triển ứngdụng
- Khả năng phát triển, nâng cấp ứng dụng là dễ dàng
- Ngày càng được cập nhật với nhiều tính năng ưu việt và hiệu quả hơn
2.2 Tổng quan về PIC16F877A
2.2.1 Giới thiệu:
- Thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit
- Tất cả các lệnh là 1 chu kỳ máy, ngoại trừ chương trình con là 2 chu kỳ máy
- Một chu kỳ lệnh của vi điều khiển bào gồm 4 xung clock Sử dụng thạch anh 4MHz nên xung lệnh có tần số 1MHz (1µs)
- Bộ nhớ chương trình flash với dung lượng 8K x 14 bit, với khả năng ghi/xóa
100.000 lần
- Bộ nhớ dữ liệu RAM: 368 byte
- Bộ nhớ EEPROM với dung lượng 256 type, với khả năng ghi/xóa 1.000.000 lần Cóthể lưu trữ dữ liệu hơn 40 năm
- Nguồn sử dụng: 5VDC
- 2 bộ định thời 8 bits (Timer0 và Timer2), một bộ định thời 16 bits (Timer1) có thể hoạt động trong chế độ tiết kiệm năng lượng
- Có 5 ports I/O (A, B, C, D, E) với 33 chân
2.2.2 Sơ đồ chân và chức năng chân PIC16F877A
a Sơ đồ chân
Trang 14Hình 2.2.2a Sơ đồ chân PIC 16F877A
Trang 15- VREF-: ngõ vào điện áp chuẩn (thấp) của bộ A/D
- CVREF: điện áp tham chiếu VREF ngõ ra bộ so sánh
* Chân RA3/AN3/VREF+ (5)
- RA3: xuất/nhập số
- AN3: ngõ vào tương tự của kênh thứ 3
- VREF+: ngõ vào điện áp chuẩn (cao) của bộ A/D
- AN4: ngõ vào tương tự của kênh thứ 4
- SS: ngõ vào chọn lựa SPI phụ
- C2OUT: ngõ ra bộ so sánh 2
* Chân RE0/RD/AN5 (8)
- RE0: xuất nhập số
- RD: điều khiển đọc port slave song song
- AN5: ngõ vào tương tự của kênh thứ 5
* Chân RE1/WR/AN6 (9)
- RE1: xuất/nhập số
- WR: điều khiển ghi port slave song song
- AN6: ngõ vào tương tự của kênh thứ 6
* Chân RE2/CS/AN7 (10)
- RE2: xuất/ nhập số
- CS: chip chọn lựa điều khiển port slave song song
- AN7: ngõ vào tương tự của kênh thứ 7
* Chân VDD (11, 32)
Chân VSS (12, 31)
=> Là các chân nguồn của PIC
* Chân OSC1/CLKIN (13)
Trang 16Chân OSC2/CLKOUT (14)
Là các chân nối với thạch anh để tạo ra xung dao động cho PIC
* Chân RC0/T1OSO/T1CKI (15)
- RC0: xuất/nhập số
- T1OSO: ngõ ra bộ dao động Timer 1
- T1CKI: ngõ vào xung clock bên ngoài Timer 1
* Chân RC1/T1OSI/CCP2 (16)
- RC1: xuất/nhập số
- T1OSI: ngõ vào bộ dao động Timer 1
- CCP2: ngõ vào Capture 2, ngõ ra Compare 2, ngõ ra PWM 2
- SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI
- SCL: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra chế độ I2C
Trang 17- Timer 0: timer/counter 8 bit, có bộ chia trước
- Timer 1: timer/counter 16 bit, có bộ chia trước có thể đếm khi CPU ở chế độ sleep với nguồn xung từ thạch anh hoặc nguồn xung bên ngoài
- Timer 2: timer/counter 8 bit, có bộ chia trước và postscale
- 2 bộ CCP (Capture/Compare/PWM)
- Capture có độ rộng 16 bit, độ phân giải 12.5 ns
- Compare có độ rộng 16 bit, độ phân giải 200ms
- Độ phân giải lớn nhất của PWM là 10 bit
- Các chuẩn giao tiếp nối tiếp MSSP
+ Giao tiếp SPI+ Giao tiếp I2C
- Chuẩn giao tiếp nối tiếp USART
- Chuẩn giao tiếp song song PSP
- Bộ chuyển đổi ADC với 8 kênh có độ phân giải 10 bit
- Có khả năng hoạt động với nhiều dạng Oscillator khác nhau
Trang 182.3 Giới thiệu về giao tiếp UART – USB TTL
2.3.1 Khái niệm
- USART (Universal Synchronous Asynchronous Receiver Transmitter) là một trong hai module I/O nối tiếp
Hình 2: Giao tiếp UART
- Còn được gọi là giao tiếp truyền thông nối tiếp (Serial Communication Interface – SCI)
- Hai chân dùng cho USART:
- Các dạng giao tiếp nối tiếp
+ Giao tiếp chỉ theo một chiều
+ Giao tiếp 2 chiều Có thể giao tiếp cùng thời điểm
+ Giao tiếp 2 chiều Không thể giao tiếp cùng thời điểm
- Tốc độ Bit (Bit rate):
+ Số lượng Bit được gửi đi trong 1giây (bps)
- Tốc độ Baud (Baud rate):
+ Số lượng kí tự được gửi trong 1 giây
+ Kí tự có thể có 1 hoặc nhiều bit
+ Với USART trong PIC 16F877A 1 kí tự = 1 bit => Bit rate ≡ Baud rate
Trang 192.3.2 Chuẩn UART (hay chuẩn TTL)
- Chuyển 1 bit trong một đơn vị thời gian theo một tốc độ truyền nhận dữ liệu quy định (tốc độ baud)
- Mức “0” => 0V
- Mức “1” => từ 3.3V tới 5V
2.3.3 Giới thiệu về USB to TTL HW579
Module USB to TTL HW579 sử dụng chip CH340G, là bộ chuyển đổi tín hiệu từ USB sang tín hiệu TTL giúp cho việc giao tiếp nối tiếp giữa máy tính và vi điều khiển một cách dễ dàng Toàn bộ bo mạch được phủ bởi lớp bọc có thể thu nhiệt trong suốt chất lượng cao, làm cho PCB ở trạng thái cách điện từ bên ngoài
Một số thông số kỹ thuật:
Điện áp hoạt động: 3.3-5v
Tốc độ truyền từ 50bps đến 2Mb/giây
Kết nối chân với PIC16F877A
Chân Module HW 597 Chân Vi điều khiển
2.4 Giới thiệu Camera Quelima SQ11 Mini Camera 1080P
Sử dụng camera để thêm ảnh vào thông tin nhân viên
Dung lượng pin: 200 mAh
Sạc thông qua USB bằng PC
Trang 20 Thời gian làm việc: khoảng 60 phút
Điện áp làm việc: 5V
Kích thước ống kính: 3.6 mét
Máy ảnh Pixel: 1.2MP
Độ phân giải video: 1080P (1920x1080), 720 P (1080x720)
Video Frame Rate: 30fps
Video đầu ra: AV - Out
Chức năng của từng chân LCD 1602:
- Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển
- Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điềukhiển
- Chân số 3 - VE : điều chỉnh độ tương phản của LCD
- Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":
+ Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi”- write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
- Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0” để ghihoặc nối với logic “1” đọc
- Chân số 6 - E : chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7,các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này như sau:
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi pháthiện một xung (high-to-low transition) của tín hiệu chân E