Trong thời gian làm việc với thầy, người thựchiện báo cáo không những tiếp thu thêm nhiều kiến thức bổ ích mà còn học tậpđược tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc
Trang 1KHÓA LUẬN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
THIẾT KẾ BÃI GIỮ XE ỨNG DỤNG CÔNG NGHỆ NHẬN DẠNG DẤU VÂN TAY
GVHD: ThS ĐẬU TRỌNG HIỂN SVTH: NGUYỄN NHẬT MINH MSSV: 11141132
SVTH: DƯƠNG LÂM DUY MSSV: 11141269
SKL003882
Trang 2Tp Hồ Chí Minh, ngày 20 tháng 07 năm 2015
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Nguyễn Nhật Minh
Họ và tên sinh viên: Dương Lâm Duy
Giảng viên hướng dẫn: ThS Đậu Trọng Hiển
Ngày nhận đề tài: 20/3/2015
MSSV: 11141132 MSSV: 11141269 ĐT: 0983 712 862
Ngày nộp đề tài: 20/7/2015
1 Tên đề tài: THIẾT KẾ BÃI GIỮ XE ỨNG
DỤNG CÔNG NGHỆ NHẬN DẠNG DẤU VÂN
TAY
2 Các số liệu, tài liệu ban đầu:
Các giáo trình về lập trình C#, lập trình
Arduino
3 Nội dung thực hiện đề tài:
Tìm hiểu, nghiên cứu về Kit Arduino UNO R3, module cảm biến vân tay R305
Thiết kế, xây dựng hệ thống giữ xe ứng dụng công nghệ nhận dạng dấu vân tay
4 Sản phẩm:
Thiết kế được máy quét vân tay
Thiết kế được phần mềm quản lý xe ra/vào
Trang 3PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Nguyễn Nhật Minh
Họ và tên Sinh viên: Dương Lâm Duy
Ngành: CNKT Điện Tử, Truyền Thông
MSSV: 11141132 MSSV: 11141269
Tên đề tài: THIẾT KẾ BÃI GIỮ XE ỨNG DỤNG CÔNG NGHỆ NHẬN DẠNG DẤU
VÂN TAY
Họ và tên Giáo viên hướng dẫn: ThS Đậu Trọng Hiển
NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng năm 20…
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Trang 4PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Nhật Minh
Họ và tên Sinh viên: Dương Lâm Duy
Ngành: CNKT Điện Tử, Truyền Thông
MSSV: 11141132 MSSV: 11141269
Tên đề tài: THIẾT KẾ BÃI GIỮ XE ỨNG DỤNG CÔNG NGHỆ NHẬN DẠNG DẤU
VÂN TAY
Họ và tên Giáo viên phản biện 1: ThS Nguyễn Ngô Lâm
Họ và tên Giáo viên phản biện 2: TS Võ Minh Huân
NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng năm 20…
Giáo viên phản biện
Trang 5Người thực hiện báo cáo xin gửi lời cảm ơn sâu sắc tới thầy Đậu Trọng Hiển
đã tận tình giúp đỡ, chỉ bảo, hướng dẫn người thực hiện báo cáo thực hiện trongsuốt quá trình thực hiện đề tài này Trong thời gian làm việc với thầy, người thựchiện báo cáo không những tiếp thu thêm nhiều kiến thức bổ ích mà còn học tậpđược tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả của thầyđây là những điều rất cần thiết cho người thực hiện báo cáo trong quá trình học tập
và công tác sau này
Đồng thời người thực hiện báo cáo xin cảm ơn các thầy cô trong Khoa Điện Điện Tử đã tạo điều kiện, cung cấp cho người thực hiện báo cáo những kiến thức cơbản, cần thiết để người thực hiện báo cáo có điều kiện và đủ kiến thức để thực hiệnquá trình nghiên cứu
-Đồng thời, người thực hiện báo cáo cũng xin cảm ơn các thành viên trong lớp11141CLDT1 đã có những ý kiến đóng góp, bổ sung, giúp người thực hiện báo cáohoàn thành tốt đề tài
Ngoài ra, người thực hiện báo cáo cũng đã nhận được sự chỉ bảo của các anh(chị) đi trước Các anh (chị) cũng đã hướng dẫn và giới thiệu tài liệu tham khảothêm trong việc thực hiện nghiên cứu
Trân trọngNhóm thực hiện đồ án
Dương Lâm Duy Nguyễn Nhật Minh
Trang 6Trong thời đại của thế kỷ 21, với sự phát triển nhảy vọt của trình độ khoa học
kỹ thuật, con người đã tạo nên và phát triển nhiều công trình khoa học mang tínhtầm cỡ Với sự thay thế dần của máy móc cho con người trong các nhiệm vụ mangtính chính xác và tập trung cao thì kết quả đạt được đã hoàn toàn được tin cậy vàđánh giá cao Điều này thực sự có ý nghĩa to lớn và góp phần tăng thêm giá trị vàchất lựợng cuộc sống
Trong đồ án tốt nghiệp này, xây dựng hệ thống giữ xe ứng dụng công nghệnhận dạng dấu vân tay cũng không nằm ngoài ý nghĩa đó Đây là một đề tài ứngdụng thú vị mà nhiều nhà khoa học đã, đang và sẽ không ngừng nghiên cứu vì nhucầu thực tiễn và đa dạng phương pháp tiếp cận
Trong đề tài này sẽ trình bày các vấn đề liên quan tới kiến thức nền tảng xâydựng nên đồ án Người thực hiện báo cáo đã sử dụng công cụ Visual C#.NET để lậptrình cho phần mềm và môi trường lập trình Arduino IDE để lập trình cho phầncứng Ngoài ra người thực hiện báo cáo còn quan sát trực tiếp một số hệ thống giữ
xe thông minh hiện nay để tham khảo khi thực hiện đề tài này
Hệ thống giữ xe ứng dụng công nghệ nhận dạng dấu vân tay là hệ thống kếthợp kỹ thuật nhận dạng dấu vân tay và nhận dạng bán tự động qua các camera quansát
Trải qua một khoảng thời gian nghiên cứu và thực hiện, người thực hiện báocáo cũng đã xây dựng được hệ thống giữ xe ứng dụng công nghệ nhận dạng dấu vântay với nguyên tắc hoạt động như sau:
Khi xe vào - ra: Hệ thống sẽ nhận dạng và so khớp biển số (bán tự động),quét và so khớp mã vân tay (tự động), đồng thời nhân viên sẽ đối chiếu hình ảnhngười gửi xe và biển số xe đã lưu trong hệ thống với hình ảnh hiện tại
Trang 7NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii
LỜI CẢM ƠN iv
TÓM TẮT v
MỤC LỤC vi
DANH MỤC CÁC CHỮ VIẾT TẮT xi
DANH MỤC CÁC BẢNG BIỂU xii
DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ xiii
Chương 1 1
TỔNG QUAN 1
1.1 Giới thiệu tình hình nghiên cứu hiện nay 1
1.2 Tính cấp thiết của đề tài 1
1.3 Mục tiêu nghiên cứu 2
1.4 Nhiệm vụ nghiên cứu 2
1.5 Đối tượng và phạm vi nghiên cứu 2
1.6 Phương pháp nghiên cứu 2
1.7 Bố cục đồ án 2
Chương 2 4
CƠ SỞ LÝ THUYẾT 4
2.1 Kit Arduino Uno R3 4
2.1.1 Lịch sử ra đời của Arduino 4
2.1.2 Các loại board mạch của Arduino 5
2.1.3 Một số ứng dụng nổi bật của Board Arduino 7
2.1.4 Tổng quan về Kit Arduino Uno R3 9
2.1.4.1 Thông số của Arduino Uno R3 10
2.1.4.2 Cấu tạo 11
2.1.4.3 Vi điều khiển 13
Trang 82.1.4.4.1 Năng lượng 14
2.1.4.4.2 Các chân năng lượng của Arduino Uno R3 15
2.1.4.5 Bộ nhớ 15
2.1.4.6 Các cổng vào/ra 16
2.1.4.7 Cấu trúc phần mềm và lập trình cho Arduino 17
2.1.4.7.1 Download cài cài đặt Arduino IDE 17
2.1.4.7.2 Lập trình cho Arduino 18
2.2 Module cảm biến vân tay R305 19
2.2.1 Giới thiệu 19
2.2.1.1 Hình ảnh thực tế 19
2.2.1.2 Kết nối với vi điều khiển 19
2.2.1.3 Các thông số kỹ thuật 19
2.2.2 Nguyên lý hoạt động 20
2.2.3 Giao tiếp với vi điều khiển thông qua UART 21
2.2.4 Giao thức truyền gói dữ liệu 21
2.3 Chuẩn truyền dữ liệu 22
2.4 Giao tiếp máy tính và cơ sở dữ liệu 22
2.4.1 Giao tiếp máy tính 22
2.4.1.1 Giới thiệu về chuẩn giao tiếp USB 23
2.4.1.2 Mô hình Bus USB 24
2.4.1.3 Các kiểu truyền USB 25
2.4.1.4 Giao diện vật lý Bus USB 26
2.4.1.5 Giao thức truyền 28
2.4.2 Hệ quản trị cơ sở dữ liệu Microsoft Access 32
2.4.2.1 Định nghĩa HQT CSDL 32
2.4.2.2 Cơ sở dữ liệu (Database) 33
2.4.2.2.1 Định nghĩa 33
2.4.2.2.2 Các loại mô hình CSDL 33
2.4.2.2.2.1 Mô hình CSDL mức khái niệm 33
Trang 92.4.2.3.2 Các đối tượng chính của Micosoft Access 34
2.4.2.3.3 Định nghĩa một số thuật ngữ 35
2.4.3 Công cụ sử dụng 35
2.4.3.1 Microsoft Visual Studio 2013 36
2.4.3.2 Ngôn ngữ C# 37
2.4.3.3 Ngôn ngữ SQL 38
2.4.3.3.1 Giới thiệu 38
2.4.3.3.2 Cấu trúc lệnh 39
Chương 3 41
CÔNG NGHỆ SINH TRẮC HỌC TRONG NHẬN DẠNG DẤU VÂN TAY 41
3.1 Công nghệ sinh trắc học 41
3.2 Công nghệ sinh trắc học trong nhận dạng dấu vân tay 41
3.2.1 Lý do chọn dấu vân tay 42
3.2.2 Lịch sử của công nghệ vân tay 42
3.2.3 Nguyên lý hoạt động 43
3.2.3.1 Sự đăng ký 43
3.2.3.2 Sự nhận dạng 44
3.2.4 Ứng dụng 45
Chương 4 47
THIẾT KẾ HỆ THỐNG 47
4.1 Sơ đồ khối hệ thống 47
4.1.1 Yêu cầu của hệ thống 47
4.1.2 Sơ đồ khối và chức năng mỗi khối 48
4.1.2.1 Sơ đồ khối 48
4.1.2.2 Chức năng từng khối 48
4.1.3 Hoạt động của hệ thống 49
4.1.4 Tính năng của hệ thống 49
4.1.5 Lợi ích của hệ thống 50
4.1.6 Cấu hình cơ bản của hệ thống 50
Trang 104.2.1.1.1 Phần cứng 51
4.2.1.1.1.1 Sơ đồ, chức năng 52
4.2.1.1.1.2 Kết nối 52
4.2.1.1.1.3 Sơ đồ layout 54
4.2.1.1.2 Phần mềm 55
4.2.2 Khối 2: Module cảm biến vân tay R305 56
4.2.3 Khối 3: LED đơn 57
4.2.3.1 Phương án thiết kế 57
4.2.3.2 Tính toán, giải thích 57
4.2.4 Khối 4: Webcam 57
4.2.5 Giao tiếp máy tính 58
4.2.5.1 Yêu cầu 58
4.2.5.2 Phần mềm 59
4.2.5.2.1 Xe vào 59
4.2.5.2.2 Xe ra 60
4.2.5.3 Thiết kế giao diện chính chủa chương trình 61
4.2.5.4 Thiết kế mô hình CSDL (Microsoft Access) 63
4.2.5.4.1 Cơ sở dữ liệu về quản lý xe ra/vào 63
4.2.5.4.2 Cơ sở dữ liệu về quản lý nhân viên 64
4.2.5.4.3 Cơ sở dữ liệu về tính doanh thu 65
4.2.5.4.4 Cơ sở dữ liệu về chấm công nhân viên 65
4.2.5.4.5 Cơ sở dữ liệu về chấm công nhân viên (Tổng thời gian trực) 66 4.2.5.4.6 Cơ sở dữ liệu về bảng giá giữ xe 66
4.2.6 Mô hình triển khai ra thực tế 67
Chương 5 69
KẾT QUẢ 69
5.1 Kết quả nghiên cứu 69
5.1.1 Kết quả phần cứng 69
5.1.2 Kết quả phần mềm 71
Trang 115.1.2.4 Giao diện chức năng tính doanh thu 75
5.1.2.5 Giao diện chức năng thống kê 75
5.1.2.6 Giao diện chức năng quản lý giá giữ xe 76
5.1.2.7 Giao diện chức năng chấm công nhân viên 77
5.1.2.8 Giao diện chức năng quản lý nhân viên 78
5.1.2.9 Chức năng lưu trữ 79
5.2 Phân tích ưu, nhược điểm 79
Chương 6 81
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 81
6.1 Kết luận 81
6.1.1 Kết quả đạt được 81
6.1.2 Ý nghĩa 81
6.2 Hướng phát triển 81
TÀI LIỆU THAM KHẢO 82
PHỤ LỤC 1: CHƯƠNG TRÌNH 83
PHỤ LỤC 2: HƯỚNG DẪN SỬ DỤNG 84
Trang 12USB: Universal Serial Bus
PC: Personal Computer
HID: Human Interface Device
LSB: Least Significant Bit
MSB: Most Significant Bit
SOP: Start Of Packet
NRZI: Non Return to Zero Inverted
EOP: End Of Packet
ISO: Internationnal Standards Organization
ANSI: American National Standards Istitude
SQL: Structured Query Language
DDL: Data Definition Language
DML: Data Manipulation Language
ID: Identification
Trang 13Bảng 2.1: Một số thông số của Arduino UNO R3 10
Bảng 2.2: Thông số kỹ thuật của cảm biến vân tay R305 19
Bảng 2.3: Cable USB 27
Bảng 2.4: Bảng mã nhận dạng PID 29
-Bảng 4.1: -Bảng thực thể CSDL1 63
Bảng 4.2: Bảng thực thể DSNV 64
Bảng 4.3: Bảng thực thể DOANHTHU 65
Bảng 4.4: Bảng thực thể CHAMCONG 65
Bảng 4.5: Bảng thực thể CHAMCONG1 66
Bảng 4.6: Bảng thực thể BANGXE 66
Trang 14Hình 2.1: Những thành viên khởi xướng Arduino 4
Hình 2.2: Arduino Duemilanove 5
Hình 2.3: Arduino Diecimila 5
Hình 2.4: Arduino UNO 5
Hình 2.5: Arduino Leonardo 5
Hình 2.6: Arduino Mega 2560 R3 6
Hình 2.7: Arduino Mega 6
Hình 2.8: Arduino Nano 6
Hình 2.9: Arduino Due (nền tảng ARM) 6
Hình 2.10: LilyPad Arduino 6
Hình 2.11: Shield Ethernet 7
Hình 2.12: Shield LCD key 7
Hình 2.13: Máy in 3D Makerbot điều khiển bằng Arduino Mega2560 8
Hình 2.14: Thiết bị bay không người lái UAV 8
Hình 2.15: Robot di động tránh vật cản dùng Arduino nano và camera CMUCam 8
Hình 2.16: Kit Arduino Uno R3 10
Hình 2.17: Cấu tạo kit Arduino Uno R3 11
Hình 2.18: Mặt trước của Kit Arduino Uno R3 12
Hình 2.19: Mặt sau của Kit Arduino Uno R3 12
Hình 2.20: Vi điều khiển Atmega328 13
Hình 2.21: Vi điều khiển Atmega328 13
Hình 2.22: Sơ đồ chân 14
Hình 2.23: Các cổng vào/ra của Arduino Uno R3 16
Hình 2.24: Phần mềm lập trình cho Arduino 18
Hình 2.25: Cảm biến vân tay R305 19
Hình 2.26: Khung truyền định dạng 10 bit 21
Hình 2.27: Cáp USB kết nối Arduino với máy tính và cấu tạo của nó 23
Trang 15Hình 2.31: Kiểu đầu nối USB 27
Hình 2.32: Các loại gói nhận dạng trong truyền thông USB 30
Hình 2.33: Gói Khởi đầu khung 31
Hình 2.34: Gói dữ liệu 31
Hình 2.35: Gói bắt tay 32
Hình 2.36: Microsoft Access 32
Hình 2.37: Microsoft SQL Server 32
Hình 2.38: Giao diện của Microsoft Access 34
Hình 2.39: Giao diện chính của Microsoft Visual Studio 2013 36
Hình 2.40: Ngôn ngữ C# 37
Hình 2.41: Ngôn ngữ SQL 38
-Hình 3.1: Công nghệ sinh trắc học trong nhận dạng dấu vân tay 41
Hình 3.2: Mẫu vân tay 42
Hình 3.3: Lấy vân tay bằng phương pháp lăn tay 43
Hình 3.4: Sử dụng thiết bị để lấy vân tay 44
Hình 3.5: Máy chấm công sử dụng công nghệ nhận dạng dấu vân tay 45
Hình 3.6: Máy ATM bảo mật bằng vân tay 45
Hình 3.7: Khóa vân tay 46
Hình 4.1: Mô hình của hệ thống 47
Hình 4.2: Sơ đồ khối của hệ thống 48
Hình 4.3: Sơ đồ, chức năng các chân của board Arduino UNO 52
Hình 4.4: Sơ đồ kết nối dây của máy quét vân tay 53
Hình 4.5: Sơ đồ layout và bố trí linh kiện trong mạch 54
Hình 4.6: Lưu đồ giải thuật phần mềm 55
Hình 4.7: Module cảm biến vân tay R305 56
Hình 4.8: LED đơn 57
Hình 4.9: Webcam kết hợp Micro 58
Trang 16Hình 4.12: Giao diện của chương trình khi thiết kế 4 PictureBox 61
Hình 4.13: Giao diện của chương trình khi thiết kế 6 PictureBox 62
Hình 4.14: Giao diện của chương trình khi thiết kế 8 PictureBox 63
Hình 4.15: Mô hình triển khai ra thực tế 67
-Hình 5.1: -Hình ảnh sản phẩm nhìn từ trên xuống 70
Hình 5.2: Hình ảnh mặt trước và sau của sản phẩm 70
Hình 5.3: Hình ảnh mạch thực tế 71
Hình 5.4: Giao diện chức năng đăng nhập 71
Hình 5.5: Giao diện chức năng chính (Ghi danh) 72
Hình 5.6: Giao diện chức năng chính (Kiểm tra) 73
Hình 5.7: Giao diện chức năng tìm kiếm 74
Hình 5.8: Giao diện chức năng tính doanh thu 75
Hình 5.9: Giao diện chức năng thống kê 75
Hình 5.10: Giao diện chức năng quản lý giá giữ xe 76
Hình 5.11: Giao diện chức năng chấm công nhân viên 77
Hình 5.12: Giao diện chức năng quản lý nhân viên 78
Hình 5.13: Lưu trữ dữ liệu dưới dạng Excel 79
Trang 17Chương 1
TỔNG QUAN
1.1 Giới thiệu tình hình nghiên cứu hiện nay
Ngày nay, cùng với những tiến bộ vượt bậc của khoa học kỹ thuật nói chung,
bộ môn khoa học nhận dạng ảnh đã và đang thu được những thành tựu to lớn vàchứng tỏ vai trò không thể thiếu với những ứng dụng sâu rộng trong khoa học kỹthuật cũng như trong đời sống Một bộ phận của khoa học xử lý ảnh là nhận dạngảnh vân tay đã được nghiên cứu từ lâu và đưa vào áp dụng trong đời sống
Đồng thời việc phát triển của các thiết bị phần cứng cả về phương diện thunhận, hiển thị, tốc độ xử lý đã mở ra nhiều hướng mới cho công nghệ nhận dạng nóichung và nhận dạng ảnh vân tay nói riêng Nó có thể giải quyết các bài toán như giámsát tự động, bảo mật dữ liệu, xác thực cá nhân phục vụ trong cơ quan, ngân hàng, …
Công nghệ sinh trắc được áp dụng phổ biến và lâu đời nhất là công nghệnhận dạng vân tay Dấu vân tay là một đặc điểm quan trọng để phân biệt giữa ngườinày và người khác Công nghệ này đã mang lại nhiều thành quả lớn lao về mặt khoahọc công nghệ nói chung và đời sống con người nói riêng Hiện nay, vân tay là mộttrong những công nghệ mang tính bảo mật tốt nhất và thông dụng nhất Nhiều sảnphẩm công nghệ đã ứng dụng vân tay để bảo vệ thông tin, tài sản, dữ liệu như: máy
vi tính, két sắt, khóa cửa, máy chấm công, …Các nước phát triển đã bắt đầu triểnkhai ứng dụng công nghệ nhận dạng vân tay vào chứng minh thư, hộ chiếu điện tử
1.2 Tính cấp thiết của đề tài
Chúng ta ai cũng biết những nhược điểm vốn có của cách giữ xe cổ điển: Chậmchạp gây ùn tắc nhất là ở những thời điểm lưu lượng xe ra vào lớn Có khi năm, sáunhân viên giữ xe cũng làm không xuể Nếu có ai đó lỡ làm mất thẻ giữ xe thì thật là rắcrối Để lấy được xe có nơi yêu cầu phải có cà vẹt, CMND hoặc hộ khẩu
Đã bước sang thế kỷ 21, thế kỷ của kỹ thuật số, cũng là lúc chúng ta nói lờichia tay với bãi giữ xe cổ điển Thay vào đó là một hệ thống giữ xe hiện đại hơn,tiện lợi hơn, an toàn và thông minh hơn,
Xuất phát từ tình hình trên, người thực hiện báo cáo đã mạnh dạn chọn công
nghệ nhận dạng vân tay để tìm hiểu, nghiên cứu đề tài : “ THIẾT KẾ BÃI GIỮ XE
Trang 18cứu lý luận, phục vụ công tác an ninh, giải quyết được các vấn đề còn bất cập ở cácbãi giữ xe hiện nay.
Đề tài này sẽ đáp ứng được các như cầu như sau:
Vân tay của mỗi người là duy nhất Khi vào gửi xe, người gửi quét vân taycủa mình đồng thời hệ thống chụp biển số và gương mặt của chủ xe Lúc lấy xe ra,người gửi quét vân tay và hệ thống sẽ hiện lên hình ảnh chụp lúc gửi xe Nhân viêngiữ xe so sánh, nhận dạng và quyết định cho xe ra
Hệ thống sử dụng vân tay nên bảo đảm an toàn tuyệt đối và khách hàngkhông lo sợ mất thẻ giữ xe Không ai có thể lấy xe của bạn ngoại trừ chính bạn.Việcdùng vân tay làm cho hệ thống hoạt động hiệu quả, an toàn và tiết kiệm chi phí hơnbất kỳ hệ thống giữ xe nào khác có trên thị trường hiện nay
1.3 Mục tiêu nghiên cứu
Xây dựng chương trình quản lý xe ra/vào tại các bãi giữ xe hiện nay ở Việt Nam
Nghiên cứu ứng dụng và xây dựng phần mềm phát hiện và nhận dạng dấu vân tay của người gửi xe
Thiết kế máy quét vân tay
1.4 Nhiệm vụ nghiên cứu
Nghiên cứu các vấn đề lý luận chung về Board Arduino và ứng dụng của nó
Tìm hiểu về thực trạng của những bãi giữ xe hiện nay
Trên cơ sở đó đề xuất một phương pháp thiết kế hệ thống giữ xe ứng dụngcông nghệ nhận dạng dấu vân tay nhằm cải thiện được những bất cập của các bãi giữ xehiện nay
1.5 Đối tượng và phạm vi nghiên cứu
Kit Arduino Uno R3
Module nhận dạng vân tay R305
Chuẩn truyền máy tính
Cơ sở dữ liệu và giao tiếp máy tính
1.6 Phương pháp nghiên cứu
Phương pháp nghiên cứu tài liệu
Phương pháp quan sát
Phương pháp nghiên cứu sản phẩm hoạt động (Hệ thống giữ xe dùng thẻ từ)
Phương pháp phân tích, tổng hợp, …
Trang 19Bố cục gồm có 6 chương:
Chương 1: Tổng quan
Chương này xoay quanh giới thiệu chung về đề tài, lý do chọn đề tài,mục tiêu của đề tài, …
Chương 2: Cơ sở lý thuyết
Giới thiệu tổng quan về lý thuyết liên quan cũng như các thiết bị phầncứng sử dụng trong hệ thống
Chương 3: Công nghệ sinh trắc học trong nhận dạng dấu vân tay
Giới thiệu về công nghệ sinh trắc học trong nhận dạng dấu vân tay vànhững ứng dụng của nó
Chương 4: Thiết kế hệ thống
Chương này đề cập đến các yêu cầu và chức năng của phần cứng, chitiết sơ đồ khối, chức năng từng khối và sơ đồ nguyên lý từng khối, xây dựnglưu đồ giải thuật cho phần cứng và phần mềm
Chương 5: Kết quả
Trình bày kết quả đạt được của đề tài
Chương 6: Kết luận và hướng phát triển
Đánh giá các kết quả đã được, những hạn chế thiếu sót, kết luận vàhướng phát triển của đề tài tương lai
Trang 20Chương 2
CƠ SỞ LÝ THUYẾT
2.1 Kit Arduino Uno R3
2.1.1 Lịch sử ra đời của Arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là nhữngngười tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giốngvới những gì Apple đã làm được trên thị trường thiết bị di động Số lượng người dùngcực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm chongay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến
Hình 2.1: Những thành viên khởi xướng Arduino.
Arduino là gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tạicác trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng; hoặcngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng đểphát triển các ứng dụng Android tương tác với cảm biến và các thiết bị khác?
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác vớicác thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổibật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngônngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử
và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất
Trang 21đã có thể sở hữu một bo Arduino có 20 ngõ I/O có thể tương tác và điều khiểnchừng ấy thiết bị.
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vịvua vào thế kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vàonăm 2005 như là một công cụ khiêm tốn dành cho các 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 InteractionDesign Instistute Ivrea (IDII) Mặc dù hầu như không được tiếp thị gì cả, tin tức vềArduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹpcủa những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìmđến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino
2.1.2 Các loại board mạch của Arduino
Phần cứng Arduino gốc được sản xuất bởi công ty Italy tên là Smart Projects.Một vài board dẫn xuất từ Arduino cũng được thiết kế bởi công ty của Mỹ tên làSparkFun Electronics 9 phiên bản phần cứng của Arduino cũng đã được sản xuấtthương mại tính đến thời điểm hiện tại
Hình 2.2: Arduino Duemilanove Hình 2.3: Arduino Diecimila.
Trang 22Hình 2.6: Arduino Mega 2560 R3 Hình 2.7: Arduino Mega.
Hình 2.8: Arduino Nano Hình 2.9: Arduino Due (nền tảng ARM).
Trang 23Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại boardmạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch chính(thường được gọi là shield).
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ặtcấ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ơ v.v…
Hình 2.11: Shield Ethernet Hình 2.12: Shield LCD key.
2.1.3 Một số ứng dụng nổi bật của Board Arduino
Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đếnphứ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ủaArduino 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:
Xoscillo: oscilloscope mã nguồn mở
Các thiết bị khoa học
Arduinome: một thiết bị điều khiển MIDI bắt chước Monome
OBDuino: một máy tính hành trình sử dụng giao diện chẩn đoán on-board được tìm thấy trong hầu hết các loại xe hơi hiện đại
Thiết bị đọc sách cho con người: thiết bị điện tử giá rẻ với đầu ra TV có thểchứa một thư viện năm ngàn cuốn sách (ví dụ như các biên soạn offline Wikipedia) trênmột thẻ nhớ microSD
Ardupilot: software / hardware máy bay không người lái
Trang 24 ArduinoPhone.
Hình 2.13: Máy in 3D Makerbot điều khiển bằng Arduino Mega2560.
Hình 2.14: Thiết bị bay không người lái UAV.
Hình 2.15: Robot di động tránh vật cản dùng Arduino nano và camera CMUCam.
Trang 252.1.4 Tổng quan về Kit Arduino Uno R3
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tácvới nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một boardmạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARMAtmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộngkhác nhau
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ảmbiế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ớibắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động
Đ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ùng viết các chương trình cho Aduinobằng ngôn ngữ C hoặc C++
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ộtmón đồ mang tính công nghệ Do vậy đó là lí do Arduino được phát triển nhằm đơngiả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ềkiế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ácnề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ự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ênviệ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
Trang 26Giá của các board Arduino dao động xung quanh €20, hoặc $27 hoặc574.468VNĐ, nếu được "làm giả" thì giá có thể giảm xuống thấp hơn $9 Các boardArduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự làmlấy Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làmmột mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người
ta ước tính khoảng giữa năm 2011 có trên 300.000 mạch Arduino chính thức đãđược sản xuất thương mại, và vào năm 2013 có khoảng 700.000 mạch chính thức đãđược đưa tới tay người dùng
Hình 2.16: Kit Arduino Uno R3.
2.1.4.1 Thông số của Arduino Uno R3
Bảng 2.1: Một số thông số của Arduino R3
Vi điều khiển Atmega328 ( họ 8 bit )
Điện áp hoạt động 5V – DC ( chỉ được cấp qua cổng USB )
Số chân Analog 6 ( độ phân giải 10 bit )
Trang 27Dòng tối đa trên mỗi chân I/O 30mA
Bộ nhớ Flash 32 KB ( ATmega328 ) với 0.5 KB dùng bởi
Trang 28Hình 2.18: Mặt trước của Kit Arduino Uno R3.
Hình 2.19: Mặt sau của Kit Arduino Uno R3.
Arduino Uno là một board 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ộngxung 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ảmbiế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
là 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 bomạch và một chân cấp nguồn cho mạch, một ICPS 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
Trang 29Arduino có thể là từ máy tính thông qua cổng USB hoặc từ bộ nguồn chuyên dụngđược biến đổi từ xoay chiều sang một chiều hoặc là lấy từ nguồn pin.
2.1.4.3 Vi điều khiển
Hình 2.20: Vi điều khiển Atmega328.
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điềukhiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đonhiệt độ - độ ẩm và hiển thị lên màn hình LCD, Thiết kế tiêu chuẩn của ArduinoUNO 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ạnkhô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ểnkhá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)
2.1.4.3.1 Vi điều khiển ATmega328
Hình 2.21: Vi điều khiển Atmega328.
ATmega328 có tên đầy đủ là ATmega328P-PU ATmega328 là linh hồn củaboard mạch Arduino, sức mạnh phần cứng mà Arduino Uno có được là từ đây
Nếu bạn có vi điều khiển ATmega328, bạn hoàn toàn có thể tạo ra 1 Arduinoboard đơn giản cho những dự án của mình
Trang 302.1.4.3.2 Các thông số cơ bản của Atmega 328
Chip : AVR 8bit
Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit
Số kênh xung PWM: 6 kênh (1 timer 2 kênh)
Trang 312.1.4.4.2 Các chân năng lượng của Arduino Uno R3
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạndùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nốivới nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được
đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từchân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
2.1.4.5 Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộnhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùngcho bootloader nhưng đừng lo lắng, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báokhi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM.Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm.Khi mất điện, dữ liệu trên SRAM sẽ bị mất
1KB cho EEPROM (Electrically Eraseble Programmable Read OnlyMemory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu củamình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Trang 322.1.4.6 Các cổng vào/ra
Hình 2.23: Các cổng vào/ra của Arduino Uno R3.
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ỗichân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiểnATmega328 (mặc định thì các điện trở này không được kết nối)
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ácthông qua 2 chân này Kết nối bluetooth thường thấy chính là kết nối Serialkhông dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chânnà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àmanalogWrite() 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ácchứ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 SPIvới các thiết bị khác
LED 13: trên Arduino UNO có 1 đèn LED màu cam (kí hiệu chữ L) Khibấ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
Trang 33 Arduino UNO 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ânAREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng cácchâ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ângiả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
2.1.4.7 Cấu trúc phần mềm và lập trình cho Arduino
2.1.4.7.1 Download cài cài đặt Arduino IDE
Để có thể lập trình cho board Arduino, trước hết ta cần download và cài đặt môi trường viết chương trình cho Arduino
Download tại: http://arduino.cc/en/Main/Software
Hướng dẫn cài đặt cho người dùng Windows (người sử dùng hệ điều hành Mac OS thì không cần phải cài driver)
Kết nối board Arduino với máy tính, và để máy tính tự động cài đặt driver USB Tuy nhiên việc tự động cài đặt driver sẽ không thành công
Nếu không thành công thì: Mở Device Manager của Windows trên Control
Panel.
Ở mục Ports (COM & LPT) bạn sẽ thấy mục Arduino UNO (COMxx).
Nhấp chuột phải vào mục Arduino UNO (COMxx) và chọn Update Driver
Software.
Trên cửa sổ hiện ra, chọn Browse my computer for driver softwave.
Trang 342.1.4.7.2 Lập trình cho Arduino
Hình 2.24: Phần mềm lập trình cho Arduino.
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiềulợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm Môi
trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền
tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là số lượng thư việncode được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhấthiện nay là Windows, Mac OS X và Linux Do có tính chất nguồn mở nên môitrường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng cókinh nghiệm
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và dongôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùnghoàn toàn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn.Một số đặc điểm của Arduino IDE:
Hỗ trợ Windows, Mac OS X, Linux
Giao diện đơn giản dễ sử dụng
Có thể chạy ngay không cần cài đặt
Trang 352.2 Module cảm biến vân tay R305
2.2.1 Giới thiệu
2.2.1.1 Hình ảnh thực tế
Hình 2.25: Cảm biến vân tay R305.
2.2.1.2 Kết nối với vi điều khiển
Module cảm biến vân tay R305 có 2 cách kết nối với vi điều khiển là kết nối thông qua chuẩn USB và kết nối thông qua UART
Để giao tiếp thông qua UART thì kết nối như sau:
R305_RX (Xanh dương) MCU_TX.
R305_TX (Vàng) MCU_RX.
R305_GND (Đen) MCU_GND.
R305_VCC (Đỏ) 5V.
2.2.1.3 Các thông số kỹ thuật
Bảng 2.2: Thông số kỹ thuật của cảm biến vân tay R305
Trang 36N= 1~12 (defaultN= 6)
2.2.2 Nguyên lý hoạt động
Nguyên lí hoạt động của module cảm biến vân tay cơ bản gồm 2 phần:
Lấy dữ liệu hình ảnh của vân tay
Kết hợp các dữ liệu để tạo ra mẫu vân tay
Lấy dữ liệu hình ảnh của vân tay: Khi lấy dữ liệu, module sẽ lấy dữ liệuhình ảnh vân tay 2 lần thông qua cảm biến quang học và xử lí 2 hình ảnh này để tạo ramột mẫu
Kết hợp các dữ liệu để tạo ra mẫu vân tay: Quá trình này xảy ra sau khi
đã có hình ảnh vân tay Đây là quá trình kết hợp 2 mẫu hình ảnh vân tay để tạo ra một
Trang 382.2.3 Giao tiếp với vi điều khiển thông qua UART
Giao tiếp thông qua UART với tốc độ Baud mặc định là 57600 và có thể cài đặt tốc độ này trong dải từ 9600 115200.
Khung truyền định dạng 10 bit
Hình 2.26: Khung truyền định dạng 10 bit.
Theo đó, khung truyền gồm 1 bit Start, 8 bit Data với LSB bit là biết đầu tiên
Package content (Instruction/
Package content : Dữ liệu Có thể là lệnh, dữ liệu, xác nhận
Checksum (2 byte) : Là tổng số học của Package identifier, Package length,
Trang 392.3 Chuẩn truyền dữ liệu
Serial:
Đây là chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên các bo mạchArduino Mỗi bo có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứngtrong chip thực hiện) Bên cạnh đó, tất cả các cổng digital còn lại đều có thể thựchiện giao tiếp nối tiếp bằng phần mềm (có thư viện chuẩn, người dùng không cầnphải viết code) Mức tín hiệu của các cổng này là TTL 5V Lưu ý cổng nối tiếp RS-
232 trên các thiết bị hoặc PC có mức tín hiệu là UART 12V Để giao tiếp được giữahai mức tín hiệu, cần phải có bộ chuyển mức, ví dụ như chip MAX232
Số lượng cổng Serial cứng của Atmega328 là 1 và của Atmega2560 là 4.Với tính năng giao tiếp nối tiếp, các bo Arduino có thể giao tiếp được với rấtnhiều thiết bị như PC, touchscreen, các game console…
USB:
Các bo Arduino tiêu chuẩn đều có trang bị một cổng USB để thực hiện kếtnối với máy tính dùng cho việc tải chương trình Tuy nhiên các chip AVR không cócổng USB, do đó các bo Ardunino phải trang bị thêm phần chuyển đổi từ USBthành tín hiệu UART Do đó máy tính nhận diện cổng USB này là cổng COM chứkhông phải là cổng USB tiêu chuẩn
SPI:
Đây là một chuẩn giao tiếp nối tiếp đồng bộ có bus gồm có 4 dây Với tínhnăng này các bo Arduino có thể kết nối với các thiết bị như LCD, bộ điều khiểnvideo game, bộ điều khiển cảm biến các loại, đọc thẻ nhớ SD và MMC…
TWI (I2C):
Đây là một chuẩn giao tiếp đồng bộ khác nhưng bus chỉ có hai dây Với tínhnăng này, các bo Arduino có thể giao tiếp với một số loại cảm biến như thermostatcủa CPU, tốc độ quạt, một số màn hình OLED/LCD, đọc real-time clock, chỉnh âmlượng cho một số loại loa…
2.4 Giao tiếp máy tính và cơ sở dữ liệu
2.4.1 Giao tiếp máy tính
Cổng USB: đây là cổng giao tiếp để ta upload code từ PC lên vi điều khiển.
Đồng thời nó cũng là giao tiếp serial nối tiếp để truyền dữ liệu giữa vi điều khiển và
Trang 40Hình 2.27: Cáp USB kết nối Arduino với máy tính và cấu tạo của nó.
2.4.1.1 Giới thiệu về chuẩn giao tiếp USB
USB (Universal Serial Bus) là một chuẩn kết nối tuần tự đa dụng trong máytính USB sử dụng để kết nối các thiết bị ngoại vi với máy tính, chúng thường đượcthiết kế dưới dạng các đầu cắm cho các thiết bị tuân theo chuẩn “cắm là chạy” màvới tính năng cắm nóng thiết bị (nối và ngắt các thiết bị không cần phải khởi độnglại hệ thống)
USB có những đặc trưng sau đây:
Cho phép mở rộng 127 thiết bị kết nối cùng vào một máy tính thông qua một cổng USB duy nhất (bao gồm các hub USB)
Những sợi cáp USB riêng lẻ có thể dài tới 5 mét, với những hub, có thể kéodài tới 30 mét (6 sợi cáp nối tiếp nhau thông qua các hub) tính từ đầu cắm trên máy tính
Với USB 2.0 chuẩn tốc độ cao, đường truyền đạt tốc độ tối đa đến 480 Mbps.Hiện nay đã có chuẩn USB 3.0 có thể truyền với tốc độ trên lý thuyết là 4,8