Các số liệu ban đầu: ghi những thông số, tập tài liệu tín hiệu, hình ảnh,… Vì đề tài là thiết kế, thi công bãi giữ xe nên nhóm chỉ sưu tầm những tấm hình biển số xe có sẵn trên mạng để
Trang 1TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC
I TÊN ĐỀ TÀI: THIẾT KẾ, THI CÔNG BÃI GIỮ XE ỨNG DỤNG CÔNG
NGHỆ RFID VÀ XỬ LÝ ẢNH
II NHIỆM VỤ
1 Các số liệu ban đầu: (ghi những thông số, tập tài liệu tín hiệu, hình ảnh,…)
Vì đề tài là thiết kế, thi công bãi giữ xe nên nhóm chỉ sưu tầm những tấm hình biển
số xe có sẵn trên mạng để sau này đưa vào sử dụng trong phần xử lý ảnh
2 Nội dung thực hiện: (ghi những nội dung chính cần thực hiện như trong phần
tổng quan)
Tổng quan về hệ thống quản lý xe ra vào tự động ứng dụng xử lý ảnh
Nghiên cứu thuật toán xử lý ảnh ứng dụng
Viết chương trình điều khiển cho Arduino, xử lý trên mô hình thực tế
Viết chương trình xử lý ảnh
Giải pháp thiết kế giao diện giám sát hoạt động của hệ thống
Hoàn thiện hệ thống điều khiển và mô hình, tiến hành chạy mẫu
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 10/06/2019
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Ngô Lâm
Trang 2TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC
- Trình bày phướng án thực hiện đề tài
- Phân chia công việc cho từng thành viên
Tuần 4
(11/3 – 17/3)
- Tìm hiểu hoạt động, nguyên lý làm việc và test thử các module (Board Arduino, RFID, …) Tuần 5
Trang 3(25/3 – 31/3)
Tuần 7
(1/4 - 7/4)
- Nghiên cứu thiết kế cơ bản sơ đồ nguyên lý
- Nghiên cứu thiết kế cơ bản về phần cứng, mô hình nhà giữ xe
Tuần 8
(8/4 – 14/4)
- Viết chương trình điểu khiển cho Arduino, nạp code, chạy thử riêng phần RFID trên phần cứng thực tế
Tuần 9
(15/4 – 21/4)
- Xử lý hình ảnh biển số xe nhận về từ camera thông qua phần mềm Matlab
Tuần 10
(22/4 – 28/4)
- Tiếp tục xử lý về hình ảnh, khi ảnh bị lệch, chụp không rõ, hoặc nhận dạng sai,…
Trang 4LỜI CAM ĐOAN
Đề tài này là do nhóm chúng tôi tự thực hiện dựa vào một số tài liệu trước đó
và không sao chép từ tài liệu hay công trình đã có trước đó
Người thực hiện đề tài
Nguyễn Đăng Việt – Trần Trí Đạt
Trang 5LỜI CẢM ƠN
Trong thời gian thực hiện đề tài này, nhóm em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của các thầy cô và bạn bè, vậy nên nhóm em xin chân thành cảm ơn:
Ban giám hiệu nhà trường Đại học Sư Phạm Kỹ Thuật TP.HCM đã tạo điều kiện tốt nhất cho sinh viên học tập và nghiên cứu
Thầy cô trong trường đã tận tình hướng dẫn và thư viện trường đã cung cấp giáo trình và tài liệu tham khảo trong suốt quá trình học tập của sinh viên
Đặc biệt là sự hướng dẫn và giúp đỡ tận tình của thầy giáo Nguyễn Ngô Lâm
đã giảng dạy, giúp đỡ và phân tích rõ về những vấn đề sinh viên còn khúc mắc Nhóm em đã cố gắng trong quá trình tìm hiểu và thực hiện đề tài nhưng vì kiến thức còn hạn chế khiến bài tiểu luận này không được như ý thầy Nhóm rất mong được sự góp ý, nhận xét đánh giá về nội dung và hình thức trình bày từ thầy để nhóm
có thể hoàn thiện bài báo cáo tốt hơn
Xin chân thành cảm ơn!
TP.HCM, Ngày tháng 07 năm 2019
Nguyễn Đăng Việt – Trần Trí Đạt
Trang 6MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii
LỜI CAM ĐOAN iv
LỜI CẢM ƠN v
MỤC LỤC vi
LIỆT KÊ HÌNH VẼ ix
LIỆT KÊ BẢNG xi
PHỤ LỤC CÁC TỪ VIẾT TẮT xii
TÓM TẮT xiii
Chương 1: TỔNG QUAN 1
1.1 Giới thiệu 1
1.2 Tình hình nghiên cứu hiện nay 1
1.2.1 Tình hình nghiên cứu trong nước 1
1.2.2 Tình hình nghiên cứu ngoài nước 3
1.3 Tính cấp thiết của đề tài 3
1.4 Mục tiêu đề tài 4
1.5 Phương hướng thực hiện đề tài 4
1.6Bố cục đồ án 4
Chương 2: CƠ SỞ LÝ THUYẾT 6
2.1 Giới thiệu linh kiện 6
2.1.1 Borad Arduino Uno R3 6
2.1.2 Module RFID RC522 9
2.1.3 Màn hình LCD 20x4 10
2.1.4 Động cơ Servo SG90 13
2.1.5 Camera USB 2.0 14
2.2 Phần mềm lập trình điều khiển 15
2.2.1 Phần mềm lập trình Arduino IDE 15
2.2.2 Giới thiệu phần mềm Matlab 21
2.2.3 Cài đặt thư viện Arduino cho Matlab 23
2.3 Sơ lược về công nghệ RFID 25
2.4 Sơ lược về UART 27
2.5 Sơ lược về chuẩn giao tiếp SPI 33
2.6 Sơ lược về I2C 33
2.7 Lý thuyết ảnh số 33
Trang 72.7.1 Khái niệm ảnh số 33
2.7.2 Cấu trúc một file ảnh 34
2.7.3 Ảnh RGB 34
2.7.4 Mức xám (Gray level) 35
2.7.5 Lược đồ mức xám (Histogram) 35
2.7.6 Ảnh nhị phân 36
2.8 Các Phương pháp xử lý ảnh số 36
2.8.1 Chuyển ảnh màu RGB thành ảnh mức xám Gray level 36
2.8.2 Phương pháp lọc nhiễu ảnh 37
Chương 3: THIẾT KẾ - THI CÔNG HỆ THỐNG 38
3.1 Sơ đồ khối của hệ thống 38
3.1.1 Yêu cầu hệ thống 38
3.1.2 Thiết kế sơ đồ khối 38
3.1.3 Hoạt động của hệ thống 39
3.2Thiết kế 39
3.2.1 Khối động cơ 39
3.2.2 Khối hiển thị 40
3.2.3 Khối RFID 41
3.2.4 Khối nguồn 43
3.3Thiết kế phần mềm 44
3.3.1 Thiết kế phần mềm cho PC 44
3.3.2 Lưu đồ giải thuật chương trình chính 44
3.3.3 Lưu đồ chương trình con khởi tạo, điều khiển LCD – Servo 45
3.3.4 Lưu đồ chương trình con RFID 46
3.3.5 Thiết kế giao diện quản lý trên PC 46
3.4 Thi công 47
3.4.1 Thiết kế mạch in 47
3.4.2 Board mạch đã hoàn thiện 48
3.4.3 Thi công mô hình bãi xe 50
Chương 4 : HỆ THỐNG NHẬN DẠNG BIỂN SỐ XE MÁY 52
4.1 Mô hình tổng quát nhận dạng biển số xe máy 52
4.2 Ảnh đầu vào 52
4.3 Tiền xử lý 53
4.3 Phân vùng ảnh và tách biển số 53
4.3.1 Phân vùng ảnh 53
Trang 84.3.2 Trích vùng biển số 54
4.4 Phân đoạn biển số 55
4.5 Nhận dạng biển số 55
4.5.1 Tạo mẫu ký tự 55
4.5.2 Nhận dạng ký tự bằng phương pháp tương quan 57
Chương 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ 60
5.1 Kết quả thực hiện 60
5.2 Nhận xét – Đánh giá 62
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
6.1 Kết luận 63
6.2 Hướng phát triển 64
TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 1: CHƯƠNG TRÌNH 66
1 Code Arduino 66
2 Code Matlab 66
PHỤ LỤC 2: CÁCH VẬN HÀNH HỆ THỐNG 72
Trang 9LIỆT KÊ HÌNH VẼ
Hình 1 1: Máy tính hiển thị và lưu dữ liệu thông tin xe ra - vào 2
Hình 1 2: Đầu đọc thẻ xe CR500 3
Hình 2 1: Hình ảnh thực tế Arduino Uno R3 6
Hình 2 2: Sơ đồ chân của Arduino Uno R3 7
Hình 2 3: Hình ảnh thực tế module RFID RC522 9
Hình 2 4: Hình ảnh LCD 20x4 10
Hình 2 5: Dạng sóng điều khiển LCD 12
Hình 2 6: Module chuyển đổi I2C 12
Hình 2 7: Hình ảnh động cơ Servo SG90 13
Hình 2 8: Hình ảnh Camera 14
Hình 2 9: Giao diện phần mềm Arduino IDE 16
Hình 2 10: Vùng lập trình code Arduino 16
Hình 2 11: Chọn board để biên dịch code 17
Hình 2 12: Chọn port của board đang kết nối 17
Hình 2 13: Lưu lại file đã lập trình 18
Hình 2 14: Biên dịch chương trình 18
Hình 2 15: Biên dịch chương trình 19
Hình 2 16: Nạp chương trình 19
Hình 2 17: Nạp chương trình 20
Hình 2 18: Nạp chương trình 20
Hình 2 19: Kết quả chương trình 21
Hình 2 20: Giao diện phần mềm Matlab 22
Hình 2 21: Nhận gói hỗ trợ phần cứng 24
Hình 2 22: Chọn gói hỗ trợ phần cứng cho Arduino 24
Hình 2 23: Chọn hoàn tất cài đặt 25
Hình 2 24: Hệ thống RFID cơ bản 27
Hình 2 25: Giao tiếp UART 28
Hình 2 26: Giao tiếp song song 29
Hình 2 27: Sơ đồ khối UART 30
Hình 2 28: Truyền thông UART 31
Hình 2 29: Giao diện UART 32
Hình 2 30: Mảng 2 chiều của một file ảnh 34
Hình 2 31: Mô hình màu RGB 35
Hình 2 32: Ảnh xám và lược đồ mức xám 36
Hình 2 33: Ảnh nhị phân 36
Hình 3 1: Sơ đồ khối hệ thống 38
Hình 3 2: Sơ đồ kết nối Arduino với 2 servo 40
Hình 3 3: Sơ đồ kết nối Arduino với LCD 41
Hình 3 4: Sơ đồ kết nối khối RFID với Arduino 42
Hình 3 5: Lưu đồ giải thuật chương trình chính 44
Hình 3 6: Lưu đồ chương trình khối xử lý trung tâm 45
Hình 3 7: Lưu đồ chương trình RFID 46
Trang 10Hình 3 8: Giao diện quản lý trên PC 47
Hình 3 9: Mạch in kết nối Arduino với module RFID 47
Hình 3 10: Mạch in kết nối Arduino với servo và LCD 48
Hình 3 11: Board mạch Arduino – RFID 48
Hình 3 12: Board mạch đã đóng hộp 49
Hình 3 13: Board mạch Arduino – servo và LCD 49
Hình 3 14: Board mạch sau khi đã đóng hộp 50
Hình 3 15: Mặt trước của mô hình 50
Hình 3 16: Mặt sau của mô hình 51
Hình 4 1: Sơ đồ hệ thống nhận dạng biển số xe máy 52
Hình 4 2: Quá trình tiền xử lý 53
Hình 4 3: Nhị phân biển số xe 55
Hình 4 4: Chuẩn hóa và tìm ký tự 55
Hình 4 5: Mẫu ký tự số 1 56
Hình 4 6: Thuật toán tạo mẫu ký tự 57
Hình 4 7: Thuật toán so sánh mẫu và xuất ký tự 58
Hình 4 8: Mẫu ký tự số 1, 2 (42 hàng, 24 cột) 59
Hình 5 1: Giao diện trên PC và mô hình hệ thống 60
Hình 5 2: Giao diện khi mới khởi động 60
Hình 5 3: Giao diện khi có xe vào 61
Hình 5 4: Giao diện khi có xe ra 62
Hình 5 5: Giao diện khi xe ra không hợp lệ 62
Trang 11LIỆT KÊ BẢNG
Bảng Trang
Bảng 2 1: Thông số kỹ thuật chính của borad Arduino 8
Bảng 2 2: Chức năng các chân của LCD 12
Bảng 3 1: Bảng nối chân giữa LCD và arduino 41
Bảng 3 2: Sơ đồ kết nối với RC522 42
Bảng 3 3: Dòng và áp quy định các link kiện 43
Trang 12PHỤ LỤC CÁC TỪ VIẾT TẮT
RFID Radio Frequency Identification Nhận dạng qua tần số vô tuyến IoT Internet of Things Mạng lưới vạn vật kết nối Internet UART Universal Asynchronous Receiver /
Transmitter
Truyền dữ liệu nối tiếp bất đồng
bộ SPI Serial Peripheral Interface Chuẩn truyển thông nối tiếp
I2C Inter – Intergrated Circuit Giao tiếp giũa các IC
LCD Liquid Crystal Display Màn hình tinh thể lỏng
RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên
SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh EPROM Electrically Eraseble Programmable
Read Only Memory
Bộ nhớ không mất dữ liệu khi ngừng cung cấp điện
SPI MISO Master Input Slave Output Chân mang dữ liệu từ các thiết bị
SPI về vi điều khiển MOSI Master Output Slave Input Chân mang dữ liệu từ vi điều
khiển đến các thiết bị SPI
UHF Ultra High Frequencies Tần số rất cao
SHF Super High Frequencies Tần số siêu cao
Trang 13TÓM TẮT
Theo sau sự phát triển và biến động như vũ bão của nền kinh tế, cùng đó là tốc
độ phát triển chóng mặt của Khoa học – Kỹ thuật, ngày nay ở các thành phố lớn mật
độ số lượng xe ngày càng đông Điều này phần nào nói lên sự phát triển của một quốc gia nhưng ngược lại dẫn đến sự ô nhiễm về môi trường, ùn tắc giao thông và thiếu bãi đậu, đỗ xe cần được giải quyết
Điện tử đang trở thành một ngành công nghiệp đa nhiệm, đã và đang đáp ứng nhu cầu của mọi người về tất cả những lĩnh vực phổ biến trong đời sống Các thiết bị điện tử đã, đang và sẽ tiếp tục được ứng dụng rộng rãi và mang lại hiệu quả tối ưu nhất trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như đời sống xã hội
Với trình độ khoa học kỹ thuật ngày càng phát triển, rất nhiều những vấn đề
đã được giải quyết một cách nhanh gọn với công nghệ điện tử hiện đại Các bãi giữ
xe truyền thống đã không còn phù hợp với những trung tâm thương mại, siêu thị hay bệnh viện vì những rắc rối mà nó mang lại Với hệ thống giữ xe bằng thẻ từ và xử lý ảnh để nhận dạng biển số xe thì những vấn đề như mất xe, mất vé gửi xe đã được giải
quyết nhanh gọn và triệt để Xuất phát từ những vấn đề thiết thực đó đề tài “Thiết
kế, thi công bãi giữ xe ứng dụng công nghệ RFID và xử lý ảnh” đã được chọn cho
quá trình nghiên cứu
Trang 14là môi trường, ùn tắc giao thông, thiếu bãi đậu xe, cần được giải quyết cấp thiết
Trong khi ngành công nghiệp điện tử cũng đang phát triển rất mạnh, đã và đang dần đáp ứng được nhu cầu từ tất cả các lĩnh vực công, nông, lâm, ngư nghiệp cho đến những nhu cầu trong đời sống hàng ngày Với trình độ khoa học kỹ thuật ngày càng phát triển, nhiều vấn đề từ đó đã được giải quyết nhanh gọn với công nghệ điện tử và tự động hóa Vậy nên các bãi xe truyền thống đã không còn phù hợp với hầu hết các trung tâm thương mai, hội nghị, chung cư hay những bệnh viện lớn, vì những rắc rối mà nó mang lại như ùn tắc, mất xe, mất vé gửi xe,… Với hệ thống giữ
xe bằng thẻ từ, các vấn đề gần như được giải quyết triệt để Xuất phát từ các vấn đề thiết thực đó, đề tài “Bãi giữ xe ứng dụng công nghệ RFID và xử lý ảnh” đã được chọn để nghiên cứu
1.2 Tình hình nghiên cứu hiện nay
1.2.1 Tình hình nghiên cứu trong nước
Hiện nay tình trạng bãi giữ xe dần trở nên là một vấn đề nan giải ở các thành phố lớn trong nước ta vào các dịp lễ Tết và cũng như là ngày thường Trong khi đó, cũng xuất hiện thêm rất nhiều các bãi xe tự phát với mục đích là thu lợi nhuận từ tiền gửi xe của người dân nhưng không đảm bảo về an ninh, chất lượng quản lý và đặc biệt là lấy giá vé gửi xe rất cao, khiến cho rất nhiều bộ phận người dân bức xúc Vì thế có thể thấy nhu cầu về bãi xe thông minh và an toàn ở thời điểm hiện tại là cực
kỳ lớn
Năm qua, UBND TP.HCM đã có ý kiến về việc đầu tư bãi đậu xe thông minh cao tầng lắp ghép trên địa bàn TP Theo đó, UBND TP.HCM chấp thuận về nguyên tắc đầu tư xây dựng và khai thác tạm các bãi đậu xe thông minh ở các vị trí đất đủ điều kiện để phục vụ nhu cầu dừng đậu xe tại khu trung tâm TP.HCM theo như đề xuất của Sở Giao thông Vận tải
UBND TP.HCM giao Sở Giao thông vận tải chủ trì phối hợp với các sở ngành nghiên cứu, xác định cụ thể các vị trí đất đủ điều kiện, thời hạn khai thác tương ứng
Trang 15và hình thức đầu tư phù hợp để hướng dẫn các nhà đầu tư có quan tâm thực hiện theo quy định Bãi đậu xe cao tầng lắp ghép tại các khu đất thuộc côn trường Lam Sơn ở phía sau nhà hát TP.HCM (rộng 1.410 m2) có 9 tầng với tổng mức đầu tư 161 tỉ đồng
Dự án có tổng diện tích xây dựng hơn 6.000 m2 với sức chứa 168 ôtô Bãi xe được
trang bị hệ thống đậu xe sử dụng robot tự động xếp xe Hình thức đầu tư dự án được
đề xuất theo hợp đồng Xây dựng – Sở hữu – Kinh doanh
Bên cạnh đó còn có kế hoạch xây dựng thêm bãi xe thông minh ở công viên 23/9 (rộng 4.048 m2), công viên Lê Văn Tám (rộng 1.416 m2) và công viên Tao Đàn (rộng 570 m2) [7] Và cho tới thời điểm này hầu hết các trung tâm thương mại và siêu thị lớn đều đã tích hợp các bãi xe sử dụng công nghệ RFID và đạt được thành công Tuy nhiên so với thực tế tình hình phát triển của đất nước thì còn cần nhiều bãi giữ xe hơn là thế nữa
Đây là hình ảnh bãi giữ xe sử dụng công nghệ RFID ngay tại trường Đại học
Sư Phạm Kỹ Thuật TP.HCM:
Hình 1 1: Máy tính hiển thị và lưu dữ liệu thông tin xe ra - vào
Trang 16Hình 1 2: Đầu đọc thẻ xe CR500
1.2.2 Tình hình nghiên cứu ngoài nước
Ngày nay, ở các nước tiên tiến trên thế giới như Hàn Quốc, Nhật Bản,
Australia,… gần như hoàn toàn 100% ở những thành phố lớn và chật hẹp, người ta
đã xây dựng hệ thống bãi giữ xe tự động được trang bị thiết bị để di chuyển xe từ mặt đất lên điểm đỗ xe trên cao hay xuống dưới lòng đất để tiết kiệm diện tích (hay còn gọi là hệ thống gửi xe ngầm) Đây là những giải pháp giúp tăng xấp xỉ khoảng 100 lần số lượng xe so với cách giữ xe truyền thống, cho phép giải quyết được vấn đề về thiếu mặt bằng xây dựng và rất nhiều những vấn đề khác
Ở các nước phát triển công nghệ RFID và IoT gần như đã được ứng dụng hầu hết trong mọi lĩnh vực Việc ứng dụng công nghệ mới đã góp phần phát triển kinh tế, đất nước và bảo vệ môi trường rất nhiều Nạn kẹt xe hay thiếu chỗ để xe và vấn đề
về an ninh, bảo mật, sự không hài lòng của các hành khách ở bãi xe về chất lượng quản lý đã không còn nữa vì các bãi xe theo kiểu truyển thống đã không còn quá nhiều và dần biến mất
1.3 Tính cấp thiết của đề tài
Như vấn đề đã đặt ra thì nhu cầu sử dụng bãi xe thông minh ở thị trường Việt
Nam rất cao và thậm chí là đã lên đến đỉnh điểm Nắm bắt được điểm yếu đó trên thị trường nên nhiều công ty về công nghệ đã không ngừng phát triển các hệ thống bãi
Trang 17xe thông minh nhằm đáp ứng nhu cầu của người dân cũng như là thu về lợi nhuận rất khủng
Như ở các bãi xe truyền thống trước đó, bộ phận quản lý gặp rất nhiều khó khăn trong công việc quản lý và cũng không ít trường hợp nhân viên giữ xe bị gây khó dễ, việc thất thoát tài chính là điều không tránh khỏi, rồi ở một số nới việc ghi phấn lên xe khiến nhiều người khó chịu, còn nếu ghi vé xe bằng giấy thì một số trường hợp bị ướt sẽ rất khó xử lý,… gây lãng phí và ô nhiễm môi trường
Để khắc phục những vấn đề đó thì đề tài này phần nào góp phần giải quyết được nhu cầu về bãi xe, tích hợp được công nghệ RFID vào để cải thiện tính hiệu quả
và linh hoạt trong các hệ thống hiện có
1.4 Mục tiêu đề tài
Mục tiêu của đề tài là thiết kế và thi công được một hệ thống bãi giữ xe gồm
mô hình một bãi giữ xe tự động và phần mềm quản lý trên PC ứng dụng công nghệ RFID và xử lý ảnh
1.5 Phương hướng thực hiện đề tài
Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin từ sách, tạp chí
về khoa học điện tử, tham khảo từ nguồn Internet và các đồ án của những khóa trước
Phương pháp quan sát: khảo sát một số bãi xe thông minh hiện hành để đưa
ra phương án thiết kế sau này cách tốt nhất
Phương pháp thực nghiệm: từ những ý tưởng và kiến thức của nhóm, kết hợp với sự hướng dẫn của giảng viên, nhóm đã chọn lọc được cách làm tối ưu nhất
1.6 Bố cục đồ án
Chương 1: Tổng quan
Giới thiệu sơ lược, mục tiêu và phương pháp nghiên cứu đề tài
Chương 2: Cơ sở lý thuyết
Nêu các lý thuyết cần thiết để sử dụng trong đề tài
Chương 3: Thiết kế và xây dựng hệ thống trên board Arduino
Chương 4: Hệ thống nhận dạng biển số xe bằng Matlab
Trình bày sơ bộ về hệ thống, nguyên lý hoạt động và giải thích hoạt
Trang 18động của hệ thống
Trình bày các thuật toán nhận dạng biển số xe
Chương 5: Kết quả thực hiện, nhận xét, đánh giá
Trình bày kết quả đã thực hiện, về cả phần cứng lẫn phần mềm
Nêu ra nhận xét và đánh giá
Chương 6: Kết luận và hướng phát triển
Nếu ra ưu điểm và nhược điểm của hệ thống
Đưa ra những điểm cần cải thiện của đề tài, hướng phát triển và phạm
vi sử dụng của đề tài trong tương lai gần
Trang 19Chương 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu linh kiện
2.1.1 Borad Arduino Uno R3
Hình 2 1: Hình ảnh thực tế Arduino Uno R3
Arduino Uno R3 là kit Arduino Uno thế hệ thứ 3, tích hợp vi điều khiển ATmega328P(8bits), với khả năng lập trình cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại bộ nhớ ROM, RAM và Flash, các ngõ vào
ra digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C)
Arduino Uno R3 có 6 chân Analog (A0 ÷ A5) cung cấp độ phân giải 10bit (0 ÷
210 -1) để đọc giá trị điện áp trong khoảng 0V – 5V Với chân AREF trên board, ta 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 cấp điện áp 2.5V vào chân này thì có thể dùng các chân Analog để đo điện áp trong khoảng 0V
÷ 2.5V với độ phân giải vẫn là 10bit
Arduino có thế cấp nguồn 5V thông qua cổng USB
Bộ nhớ của Arduino Uno R3 cung cấp cho người dùng:
Trang 20 32KB bộ nhớ Flash: những đoạn lệnh 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ùng cho bootloader nhưng rất hiếm khi nào cần quá 20KB bộ nhớ này
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập trình sẽ ở đây Khai báo càng nhiều biến thì cần càng nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM trở thành thứ đáng để mà phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
EPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi mà bạn có thể đọc và ghi dữ liệu của mì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 là 1KB
Hình 2 2: Sơ đồ chân của Arduino Uno R3
Trang 21Thông sỗ kỹ thuật của board Arduino Uno R3:
Trang 22 MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường Output còn nếu là chip Slave thì MOSI là Input MOSI của Master và các Slaves được nối trực tiếp với nhau
SS – Slave Select: đường chọn Slave cần giap tiếp, tích cực mức thấp
Thông số kỹ thuật:
Nguồn: 3.3VDC, 13 - 26mA
Dòng ở chế độ chờ: 1013mA
Dòng ở chế độ nghỉ: < 80uA
Trang 23 Tần số sóng mang: 13.56MHz
Khoảng cách hoạt động: 0~60mm(mifare1 card)
Chuẩn giao tiếp: SPI
Tốc độ truyền dữ liệu: tối đa 10Mbit/s
2.1.3 Màn hình LCD 20x4
Hình 2 4: Hình ảnh LCD 20x4
LCD 20x4 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất
LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí
tự Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện
Thông số kĩ thuật của LCD 20x4:
Điện áp: 5V
Ngõ giao tiếp: 16 chân
Màu sắc: xanh lá hoặc xanh dương
Module hỗ trợ giao tiếp với vi điều khiển: LCD I2C 16x2
Trang 24Chức năng các chân:
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này
với VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD
Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi + 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ế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp
Trang 25Bảng 2 2: Chức năng các chân của LCD
Cách điều khiển LCD:
Hình 2 5: Dạng sóng điều khiển LCD
Nhìn vào dạng song ta có thể thấy được trình tự điều khiển như sau:
Điều khiển tín hiệu RS
Điều khiển tín hiệu R/W xuống mức thấp
Điều khiển tín hiệu E lên mức cao để cho phép
Xuất dữ liệu D7 – D0
Điều khiển tín hiệu E về mức thấp
Điều khiển tín hiệu R/W lên mức cao trở lại
Kết nối với Arduino thông qua Module chuyển đổi I2C với địa chỉ giao tiếp I2C là 0x27
Hình 2 6: Module chuyển đổi I2C
Trang 26Để sử dụng các loại LCD có driver là HD44780 (LCD 1602, LCD 2004, …) 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, chỉ cần hai chân (SDA và SCL) của MCU kết nối với hai chân (SDA và SCL) của module để
có thể hiển thị thông tin lên LCD Ngoài ra có thể điều chỉnh được độ tương phản bởi biến trở gắn trên module
Thông số kĩ thuật của module I2C:
Kích thước: 41.5mm(L)X19mm(W)X15.3MM(H)
Trọng lượng: 5g
Điện áp hoạt động: 2.5v-6v
Jump chốt: Cung cấp đèn cho LCD hoặc ngắt
Biến trở xoay độ tương phản cho LCD
2.1.4 Động cơ Servo SG90
Hình 2 7: Hình ảnh động cơ Servo SG90
Servo là một dạng động cơ điện đặc biệt Không giống như động cơ thông thường là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM), với góc quay nằm trong khoảng bất kì từ 0o - 180o
Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín Tín hiệu ra của động cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vị trí sẽ
Trang 27được hồi tiếp về mạch điều khiển này Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác
Thông số kỹ thuật của động cơ:
Ngày nay, tại các bãi giữ xe thông minh thì camera là phần quan trọng nhất,
không thể thiếu trong quá trình làm việc, hệ thống camera quan sát bãi giữ xe có chức
năng tìm kiếm hình ảnh xe ra vào một cách thông minh giúp cho người giũ xe không
lo nghĩ về việc mất xe hoặc thất lạc thẻ giữ xe một cách thông thường
Trang 28Arduino IDE (Arduino Integrated Development Environment) là một trình
trên Windows , MAC OS X và Linux
Một chương trình viết bởi Arduino IDE được gọi là sketch, sketch được lưu dưới định dạng ino
Sau khi khởi động Arduino IDE, ta được giao diện như hình sau:
Trang 29Hình 2 9: Giao diện phần mềm Arduino IDE
Vùng lập trình source code:
Hình 2 10: Vùng lập trình code Arduino
Trang 30Sau khi gõ code, tiến hành chọn Board và Port giao tiếp
Hình 2 11: Chọn board để biên dịch code
Hình 2 12: Chọn port của board đang kết nối
Trang 31Tiến hành lưu file và kiểm tra lỗi:
Hình 2 13: Lưu lại file đã lập trình
Có 3 cách kiểm tra lỗi:
Cách 1: nhấn Ctrl + R
Cách 2: vào Sketch chọn Verify/Compile
Hình 2 14: Biên dịch chương trình
Trang 32 Cách 3: nhấn trực tiếp
Hình 2 15: Biên dịch chương trình
Sau khi kiểm tra lỗi, ta tiến hành nạp chương trình vào kit
Có 3 cách để nạp chương trình vào kit:
Cách 1: nhấn Ctrl + U
Cách 2: vào Sketch chọn Upload
Hình 2 16: Nạp chương trình
Trang 33 Cách 3: nhấn trực tiếp
Hình 2 17: Nạp chương trình
Sau khi nạp, nhấp chuột vào đây để xem kết quả:
Hình 2 18: Nạp chương trình
Trang 34Kết quả chương trình:
Hình 2 19: Kết quả chương trình
2.2.2 Giới thiệu phần mềm Matlab
Với mục tiêu của đề tài là xử lý ảnh nên phần mềm để viết chương trình xử lý ảnh sẽ là phần mềm Matlab
MATLAB là viết tắt của Matrix Laboratory, Matlab là một môi trường tính toán số và lập trình có tính trực quan rất cao, được thiết kế bởi công ty MathWorks Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như
C, C++, và Fortran
Matlab được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học Với hàng triệu kĩ sư và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tính toán khoa học
Trang 35Hình 2 20: Giao diện phần mềm Matlab
Về dữ liệu, dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), và có các kiểu dữ liệu được liệt kê sau đây:
Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab
Kiểu Sparse
Kiểu uint8, uint8, uint16, uint64
Kiểu char ví dụ “Hello”
Trang 36 Logic mờ
Simulink
Hệ thống Matlab, hệ thống giao diện của Matlab được chia thành 5 phần:
Môi trường phát triển: đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh và các file, ta có thể liệt kê một số như sau:
+ Desktop
+ Command Window
+ Command History
+ Browsers for viewinghelp
Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin atan, atan2 etc , các phép tính đơn giản đến các phép tính phức tạp như tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library
Ngôn ngữ Matlab Đó là các ngôn ngữ cao về ma trận và mảng, với các dòng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng
Đồ hoạ trong Matlab Bao gồm các câu lệnh thể hiện đồ họa trong môi trường 2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện tương tác giữa người sử dụng và máy tính
Giao tiếp với các ngôn ngữ khác Matlab cho phép tương tác với các ngôn ngữ khác như C, Fortran …
2.2.3 Cài đặt thư viện Arduino cho Matlab
Đầu tiên, chạy ứng dụng Matlab, trên thanh Toolbox Add Ons Get Hardware Support Packages
Trang 37Hình 2 21: Nhận gói hỗ trợ phần cứng
Tại cửa sổ Add On Explore MATLAB Support Package for Arduino Hardware
Hình 2 22: Chọn gói hỗ trợ phần cứng cho Arduino
Trang 38Tại cửa sổ Add On Explore Install Install
Hình 2 23: Chọn hoàn tất cài đặt
Tiếp theo đăng nhập vào tài khoản Mathworks của bạn và tải chúng về
Sau đó phần mềm sẽ hiển thị lên các bước hướng dẫn tiếp theo, ta chỉ việc làm theo cho tới khi hoàn tất
2.3 Sơ lược về công nghệ RFID
RFID chính là viết tắt của thuật ngữ Radio Frequency Identification, là một trong những công nghệ nhận dạng dữ liệu tự động tiên tiến nhất hiện nay có tính khả thi cao và áp dụng thực tế rất hiệu quả RFID đang hiện diện trong rất nhiều lĩnh vực
tự động hóa, rất nhiều ứng dụng quản lý và các mô hình quản lý khác nhau nhẳm đem lại những giải pháp nhận dạng dữ liệu tự động tối ưu và hiệu quả hơn
RFID có thể hiểu đây chính là việc nhận dạng qua tần số vô tuyến RFID là một công nghệ dùng kết nối sóng vô tuyến để tự động xác định và theo dõi các thẻ nhận dạng gắn vào vật thể Công nghệ này cho phép nhận biết các đối tượng thông qua hệ thống thu phát sóng radio, từ đó có thể giám sát, quản lý từng đối tượng Công nghệ thẻ RFID cho phép xác định và quản lý các thiết bị, tài sản Nó áp dụng cho việc gắn thẻ mục trong các cửa hàng bán lẻ, sử dụng trong hệ thống kiểm kê, khóa thẻ
từ trong khách sạn, resort Các sản phẩm thương mại như ô tô, máy móc hay cả quần
áo, hàng tiêu dùng có thể theo dõi từ nhà máy đến khách hàng
Kỹ thuật RFID sử dụng truyền thông không dây trong dải tần số sóng vô tuyến
để truyền dữ liệu từ các tag (thẻ) đến các reader (bộ đọc) Tag có thẻ được đính kèm hoặc gắn vào đối tượng được nhận dạng chẳng hạn như là sản phẩm, giá kệ, pallet,
Trang 39xe,… Reader scan dữ liệu của tag và gửi thông tin đến cơ sở dữ liệu có lưu trữ dữ liệu của tag Ví dụ, các tag có thể được đặt trên kính chắn gió của xe hơi để hệ thống thu phí đường nhanh chóng nhận dạng và thu tiền trên các tuyến đường lớn
Một hệ thống RFID cơ bản bao gồm 2 thành phần chính:
Phần cứng: gồm có thẻ (con tem), anten, máy đọc thẻ, máy chủ
Phần mềm: gồm có phần mềm trung gian (middle ware) và phần mềm ứng dụng (trong lĩnh vực thư viện nó là các phần mềm quản trị thư viện)
Phần cứng
Thẻ RFID (RFID tag): Thẻ RFID được cấu tạo mềm mỏng có chứa chíp vi xử
lí và anten (đối với loại thẻ không năng) Nó có thể đọc, ghi dữ liệu, và thậm chí có chứa cả thông tin về bảo mật Thẻ này có thể dán vào các vật cần quản
lý như sách, hàng hóa, động vật,…
Máy đọc (Readers): Máy đọc có nhiệm vụ chuyển dữ liệu giải mã dữ liệu được
từ thẻ tới phần mềm trung gian và phần mềm ứng dụng để xử lý Thông thường máy đọc tích hợp với anten Máy đọc thường được đặt tại bàn mượn/trả, các điểm mượn/trả tự động, trong kho và máy phân loại tự động, tại lối ra của thư viện
Máy chủ: là máy vi tính được dùng để chạy các phần mềm trung gian và phần mềm ứng dụng
Phần mềm
Phần mềm trung gian (Middleware): Phần mềm trung gian là các phần mềm được sử dụng để nhận và xử lý các dữ liệu thô nhận được từ các máy đọc để chuyển tới các phần mềm quản trị thư viện Đây là một thành phần không thể thiếu trong hệ thống RFID Phần mềm này thường được xây dựng và cung cấp bởi các nhà cung cấp thiết bị RFID
Phần mềm ứng dụng (Application software): Là các phần mềm được sử dụng
để xử lý và tự động hóa các công việc của một cơ quan, tổ chức Trong lĩnh vực thư viện, phần mềm ứng dụng chính là các phần mềm thư viện điện tử tích hợp trong đó có lưu thông tin về các tài liệu, bạn đọc, quá trình mượn/trả, hệ thống kho… mà thư viện quản lý Phần mềm này sẽ nhận dữ liệu đã được xử
lý từ phần mềm trung gian để phân tích
Trang 40Hình 2 24: Hệ thống RFID cơ bản
Các tần số thường được sử dụng trong hệ thống RFID:
LF: 125 kHz - 134,2 kHz: low frequencies, ứng dụng nhiều cho hệ thống quản lý nhân sự, chấm công, cửa bảo mật, bãi giữ xe…
HF: 13.56 MHz: high frequencies, ứng dụng nhiều cho quản lý nguồn gốc hàng hóa, vận chuyển hàng hóa, cửa bảo mật, bãi giữ xe…
UHF: 860 MHz - 960 MHz: ultra high frequencies, ứng dụng nhiều trong các hệ thống kiểm soát như thu phí đường bộ tự động, kiểm kê kho hàng, kiểm soát đường đi của hàng hóa…
SHF: 2.45 GHz: super high frequencies, ứng dụng nhiều trong các hệ thống kiểm soát như thu phí đường bộ tự động, kiểm soát lưu thông hàng hải, kiểm soát hàng hóa, kiểm kê kho hàng…
2.4 Sơ lược về UART
Nếu nhớ lại các bộ phận máy tính cũ như máy in, chuột, bàn phím được liên kết với sự trợ giúp của các đầu nối Quá trình giao tiếp giữa máy tính và các bộ phận này có thể được thực hiện bằng UART Universal serial Bus (USB) đã thay đổi tất cả các loại nguyên tắc giao tiếp trên máy tính Nhưng, UART vẫn được sử dụng trong các ứng dụng được khai báo ở trên Tất cả các loại kiến trúc vi điều khiển đều có phần cứng UART tích hợp do giao tiếp nối tiếp và chỉ sử dụng hai cáp để liên lạc Vậy UART là gì?
Các tên đầy đủ UART là “Universal Asynchronous Receiver / Transmitter”,
và nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một