


















Preview text:
lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG MÔ HÌNH BÃI GIỮ XE THÔNG MINH i
DANH MỤC CÁC TỪ VIẾT TẮT GND Ground ID Identification lOMoARcPSD| 59149108 IoT Internet of Things IRQ Interrupt
JPG (JPEG) Joint Photographic Experts Group MISO Master Input Slave Output MOSI Master Output Slave Input OCR Optical Character Recognition PPM Pulse Position Modulation RAM Random Access Memory RFID
Radio Frequency Identification ROM Read Only Memory SCK Serial Clock SDA Serial Data SPI Serial Peripheral Interface TWI Two Wire Interface UART
Universal Asynchronous Receiver Transmitter ii lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 1/51
CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1.1Đặt vấn đề
Trong thời buổi hiện nay, kỹ thuật công nghệ hiện đại được ứng dụng hầu như ở
mọi khía cạnh trong đời sống hằng ngày. Với tiêu chí giúp giảm thiểu chi phí cũng
như tang sự chính xác trong công tác quản lý và vận hành, tầm quan trọng của công
nghệ là không thể phủ nhận, đặc biệt trong đó phải kể đến IoT (Internet of Things).
IoT là một mạng lưới kết nối vạn vật, ở đó những thiết bị không dây được kết nối,
truyền dữ liệu với nhau thông qua nhiều chuẩn khác nhau như Bluetooth, wifi mà
không có sự can thiệp của con người.
Đi cùng sự phát triển đó, các bãi giữ xe ngày nay đã áp dụng nhiều công nghệ
khác nhau nhằm thay thế các bãi giữ xe truyền thống vốn đã không thể đáp ứng được
lưu lượng xe cộ ra vào ngày càng tăng cao, để giúp tiết kiệm chi phí trong công tác
quản lý cũng như hạn chế mất mát tài sản. Hệ thống bãi giữ xe thông minh đã ra đời
và đã được ứng dụng rộng rãi ở nhiều quốc gia.
Với hệ thống giữ xe thông minh, các vấn đề của cách giữ xe truyền thống sẽ được
giải quyết như: không gây ùn tắc ở điểm vào ra của bãi, không ghi nhầm biển số xe,
kiểm tra được thời gian ra vào bãi, hiển thị chỗ trống trong bãi, giảm chi phí nhân công... 1.2Mục tiêu
Đề tài “Bãi giữ xe thông minh” sẽ thực hiện nghiên cứu để xây dựng một mô hình
bãi giữ xe gồm các tính năng như kiểm tra ra vào tự động bằng thẻ RFID, hiển thị vị
trí ô trống ở bãi xe, tính toán thời gian ra vào bãi, tìm vị trí xe đang đậu bằng ứng dụng.
1.3Nội dung thực hiện
Để thực hiện các mục tiêu trên, đề tài thực hiện bao gồm các nội dung cụ thể như sau:
• Tìm hiểu về thực trạng các bãi giữ xe nước ta hiện nay ở các khu đại siêu thị,
rạp chiếu phim, nhà hát, bệnh viện ... cho thấy nhu cầu cấp thiết của đề tài. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 2/51
• Đề xuất mô hình tổng quan gồm khối điều khiển có chức năng xử lý hình ảnh,
nhận diện biển số, lưu lại thông tin dùng thẻ RFID; khối ứng dụng hiển thị chỗ
trống ngay cổng vào, ghi nhớ vị trí đậu xe.
• Tìm hiểu giải thuật nhận dạng biển số xe, viết chương trình nhận dạng biển số trên phần mềm Matlab.
• Thực hiện xây dựng mô hình phần cứng, xây dựng giao diện ứng dụng hệ thống của đề tài.
• Thực hiện đánh giá, nhận xét hệ thống đã thực hiện. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 3/51
CHƯƠNG 2. HỆ THỐNG PHẦN CỨNG
2.1Mô hình hệ thống
Một hệ thống quản lý bãi xe thông minh là áp dụng các kỹ thuật công nghệ mới để
tang cường tính tự động hóa trong quản lý, bao gồm các khối chính như trên hình 2.1
sau. Giải thuật trong đề tài này sẽ tập trung chủ yếu ở hệ thống nhận diện biển số xe,
với sự hỗ trợ của công nghệ thẻ RFID, thị giác camera, cảm biến…
Hình 2-1 Sơ đồ khối của hệ thống
• Biển số: biển số xe ô tô.
• Khối điều khiển: camera chụp ảnh, đầu đọc thẻ RFID, thẻ từ.
• Khối xử lý: chương trình nhận dạng biển số.
• Các thông tin khác: ngày giờ ra vào bãi, ảnh chụp ra vào bãi … lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 4/51
• Khối điều khiển đóng mở thanh barie: nhận tín hiệu điều khiển thanh barie
đóng mở theo kết quả nhận dạng biển số của hệ thống.
• Khối hiển thị chỗ trống: nhận tín hiệu báo chỗ còn trống trong bãi.
2.2Linh kiện phần cứng 2.2.1 Arduino Uno
Trong đề tài này, Arduino được sử dụng như là trung tâm nhận tín hiệu từ các linh
kiện khác để gửi đến giao diện chương trình xử lý.
Hình 2-2 Arduino Uno [1]
Arduino là nền tảng điện tử mã nguồn mở, dựa trên phần cứng và phần mềm, linh
hoạt và dễ sử dụng, các board Arduino có khả năng đọc dữ liệu từ môi trường (ánh
sáng, nhiệt độ, độ ẩm,...), trạng thái nút nhấn, tin nhắn từ Twitter,... và điều khiển trở
lại với các thiết bị như động cơ, đèn LED, gửi thông tin đến 1 nơi khác,... Chúng ta
có thể điều khiển các vi điều khiển trên board Arduino bằng cách sử dụng ngôn ngữ
lập trình C++, được điều khiển biên dịch bởi Arduino IDE và các trình biên dịch đi
kèm ra mã máy nhị phân. Lúc này Vi điều khiển có thể dễ dàng thực thi chương
trình[2].Arduino UNO R3 là kit Arduino UNO thế hệ thứ 3, 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). lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 5/51
Bảng 2-1 Thông số kỹ thuật Arduino Uno 2.2.2 Thẻ từ RFID
Thẻ từ được sử dụng trong đề tài để gửi mã ID đến bộ đầu đọc thẻ Reader.
Hình 2-3 Thẻ RFID [3]
Công nghệ RFID cho phép một thiết bị đọc thông tin chứa trong chip không cần
tiếp xúc trực tiếp ở khoảng cách xa, không thực hiện bất kỳ giao tiếp vật lý nào hoặc
giữa 2 vật không nhìn thấy. Công nghệ này cho ta phương pháp truyền, nhận dữ liệu
từ 1 điểm đến điểm khác. Kỹ thuật RFID sử dụng truyền thông không dây trong dải lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 6/51
tần 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 sản phẩm, hộp
hoặc giá kê (pallet). 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[4].
Nguyên lý hoạt động của thẻ RFID:
Hình 2-4 Nguyên lý hoạt động thẻ RFID [5].
Thẻ RFID chứa rất nhiều mã nhận dạng khác nhau, thông thường là 32bit tương
ứng với hơn 4 tỷ mã số khác nhau. Ngoài ra khi xuất xưởng, mỗi thẻ RFID được gán
cho một mã số khác nhau. Do vậy một vật được gắn chip RFID thì khả năng nhận
nhầm vật đó với một thẻ RFID khác là rất thấp, với xác xuất 1 phần 4 tỷ. Với ưu điểm
như thế nên khả năng bảo mật của thẻ RFID là rất cao.
2.2.3 Module đọc thẻ RC522
Module RC522 là bộ đầu thu Reader sử dụng chip MFRC522 có nhiệm vụ nhận
mã ID từ thẻ RFID sau đó gửi mã ID đến Arduino. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 7/51
Hình 2-5 Module đọc thẻ RC522 [6]
Module RFID RC522 sử dụng IC MFRC522 của Phillip dùng để đọc và ghi dữ
liệu cho thẻ NFC tần số 13.56mhz, với mức giá rẻ thiết kế nhỏ gọn, module này là sự
lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ RFID.
Bảng 2-2 Thông số kỹ thuật RC255
Bảng 2-3 Sơ đồ chân RC522
2.2.4 Động cơ Servo SG90
Động cơ Servo SG90 được sử dụng như thanh Barie đóng mở sau khi chương
trình trích xuất được biển số xe từ ảnh. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 8/51
Hình 2-6 Động cơ Servo [7]
Hình 2-7 Cấu tạo bên trong động cơ Servo SG90 [7]
Servo là một dạng động cơ điện đặc biệt, 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. Mỗi loại servo có kích thước,
khối lượng và cấu tạo khác nhau.
2.2.5 Cảm biến siêu âm HC-SR05
Cảm biến được sử dụng để gửi tín hiệu về trung tâm cảnh báo có vật thể hay không
có vật thể phía trước cảm biến. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 9/51
Hình 2-8 Cảm biến siêu âm HC-SR05 [8]
Cảm biến siêu âm HC-SR05 (cảm biến đo khoảng cách) sử dụng rất phổ biến để
xác định khoảng cách. HC-SR05 sử dụng sóng siêu âm và có thể đo khoảng cách
trong khoảng từ 2 -> 300 cm, với độ chính xác gần như chỉ phụ thuộc vào cách lập trình.
Bảng 2-4 Sơ đồ chân của HC-SR05
Bảng 2-5 Thông số kỹ thuật HC-SR05 2.2.6 Arduino Mega2560
Đây là trung tâm nhận tín hiệu từ giao diện chương trình sau đó gửi tín hiệu để dóng mở thanh Barie. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 10/51
Hình 2-9 Arduino Mega2560 [9]
Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì không sử dụng FTDI
chip điều khiển chuyển tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng
ATmega16U2 lập trình như là một công cụ chuyển đổi tín hiệu từ USB. Ngoài ra,
Arduino Mega2560 cơ bản vẫn giống Arduino Uno R3, chỉ khác số lượng chân và
nhiều tính năng mạnh mẽ hơn.
Bảng 2-6 Thông số cơ bản Arduino Mega2560
2.3Vẽ mạch kết nối schematic
Mạch nhận diện thẻ trong đề tài bao gồm 2 linh kiện chính là Arduino Uno có
nhiệm vụ xử lý tín hiệu nhận được, sau đó gửi tín hiệu đến hệ thống giao diện chương
trình và module RFID RC522 có nhiệm vụ gửi ID thẻ RFID đến Arduino. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 11/51
Hình 2-10 Mạch nhận diện thẻ
Mạch điều khiển thanh Barie trong đề tài gồm 2 linh kiện chính là Arduino
Mega2560 và động cơ Servo SG90. Khi hoạt động, Arduino nhận được tín hiệu từ
giao diện chương trình sẽ thực thi lệnh kích động cơ Servo xoay 1 góc 90 độ.
Hình 2-11 Mạch điều khiển thanh Barie
Mạch hiển thị chỗ trống trong đề tài sử dụng gồm Arduino Uno, cảm biến
HCSR05, đèn LED xanh dương và đỏ. Khi có vật thể đặt trước cảm biến, cảm biến
sẽ gửi tín hiệu đến Arduino, Arduino tiếp nhận tín hiệu và kích chân LED sáng. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 12/51
Hình 2-12 Mạch hiển thị chỗ trống
CHƯƠNG 3. MÔ HÌNH GIẢI THUẬT NHẬN DẠNG BIỂN SỐ XE
Giải thuật nhận dạng biển số xe là phần quan trọng nhất của hệ thống bãi giữ xe thông
minh, đóng vai trò quyết định thành công của đề tài. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 13/51
3.1Các khái niệm cơ bản về ảnh số 3.1.1 Ảnh số Hình 3-1 Ảnh số
Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh
gần với ảnh thật. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ phân giải
càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở
nên thực và sắc nét hơn. Một hình ảnh là một tín hiệu hai chiều. Nó được xác định
bởi hàm toán học f (x, y) trong đó x và y là hai tọa độ theo chiều ngang và chiều dọc.
Các giá trị của f (x, y) tại bất kỳ điểm nào là cung cấp các giá trị điểm ảnh (pixel) tại
điểm đó của một hình ảnh. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 14/51
3.1.2 Ảnh đen trắng (ảnh nhị phân)
Hình 3-2 Ảnh nhị phân
Ảnh nhị phân là ảnh mà các điểm ảnh chỉ chứa 2 giá trị là 0 hoặc 1 tương ứng với 2 màu đen hoặc trắng. 3.1.3 Ảnh xám Hình 3-3 Ảnh xám
Ảnh xám hay còn được gọi là ảnh đơn sắc, ở đó mỗi điểm ảnh chỉ có 1 màu duy
nhất là xám. Ứng với mỗi điểm ảnh sẽ có 256 mức xám khác nhau. Mỗi mức xám lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 15/51
được biểu diễn dưới dạng là một số nguyên nằm trong khoảng từ 0 đến 255 với mức
0 biễu diễn cho mức cường độ đen nhất, 255 biễu diễn cho mức cường độ sáng nhất. 3.1.4 Ảnh màu (RGB)
Hình 3-4 Ảnh màu [10]
Ảnh màu là ảnh tổ hợp từ 3 màu cơ bản: đỏ (R), lục (G), xanh (B) và thường thu
nhận trên các dải băng tần khác nhau. Với ảnh màu, cách biểu diễn cũng tương tự
như ảnh đen trắng, chỉ khác là các số tại mỗi phần tử của ma trận biểu diễn cho 3 màu
riêng rẽ gồm: đỏ (R), lục (G), xanh (B). Để biễu diễn cho mỗi điểm ảnh màu cần 24
bit, 24 bit này được chia thành 3 khoảng 8 bit. Mỗi màu cũng phân thành 256 cấp
màu khác nhau. Mỗi khoảng này biểu diễn cho cường độ sáng của một trong các màu chính.
3.1.5 Các định dạng ảnh
Hình ảnh cũng có rất nhiều định dạng khác nhau và phổ biến nhất mà chúng ta
vẫn hay gặp đó là các định dạng như *.JPG, *.PNG, *.GIF, *.TIFF và *.BMP. Những
định dạng hình ảnh này lại có các thuộc tính khác nhau và được tạo ra để sử dụng vào
những mục đích khác nhau. Định dạng ảnh JPG (JPEG) là chuẩn hình ảnh thông dụng
nhất hiện nay cũng như được sử dụng trực tiếp trong đề tài này. Với các ưu điểm như
có độ sâu màu từ 24bit đến 16 triệu màu, thích hợp để tạo ra các file ảnh có dung
lượng nhỏ, JPEG tương thích với mọi trình duyệt web hiện nay, sử dụng tốt nhất,
hiệu quả nhất cho ảnh đen trắng, ảnh với màu sắc phức tạp, ảnh tĩnh vật, ảnh đời thường, ảnh chân dung. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 16/51
3.1.6 Các đại lượng đặc trưng
3.1.6.1Điểm ảnh (Pixel): Hình 3-5 Pixel
Là phần tử nhỏ nhất của một hình ảnh. Mỗi điểm ảnh tương ứng với 1 giá trị.
Trong 1 ảnh xám 8 bit, giá trị điểm ảnh trong khoảng từ 0 đến 255. Giá trị của pixel
tại bất kỳ điểm nào tương ứng với cường độ photon tại điểm đó. Mỗi giá trị điểm ảnh
tỉ lệ thuận với cường độ ánh sáng. Mỗi điểm ảnh có 1 màu duy nhất, được chỉ định
như 1 tỉ lệ nhất định của 3 màu cơ bản là đỏ, lục, lam. Bằng cách phối hợp liều lượng
khác nhau của 3 màu cơ bản trên chúng ta hầu như có thể tạo ra bất cứ màu nào.
Thông thường một ảnh được tạo ra bởi hàng triệu điểm ảnh.
3.1.6.2Độ phân giải
Độ phân giải cho biết số lượng pixel có trong ảnh đó, ảnh có độ phân giải càng
cao thì càng hiển thị rõ nét nhưng tốn nhiều dung lượng để lưu trữ. Hầu hết các
chương trình ứng dụng đồ họa đều diễn tả độ phân giải của hình ảnh bằng pixel
dimensions - kích thước pixel, với số đo chiều ngang đi trước. lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 17/51
Hình 3-6 Ví dụ độ phân giải của ảnh [11]
Ví dụ, một hình ảnh có kích thước được nêu ra là “2592x1944” sẽ chứa 2,592
pixel trên mỗi hàng ngang và 1,944 pixel trên mỗi hàng dọc. Nhân 2 con số này với
nhau sẽ cho ta 5,038,848-pixel hay độ phân giải xấp xỉ 5 megapixel. Hình 3-7 Mức xám
Là kết quả của sự biến đổi tương ứng giá trị độ sáng của một điểm ảnh với một
giá trị số nguyên dương. Tùy thuộc vào số giá trị biểu diễn mức xám mà mỗi điểm
ảnh sẽ được biểu diễn trên 1, 4, 8, 24 hay 32 bit. Số lượng bit biểu diễn mức xám
càng lớn thì chất lượng ảnh càng cao nhưng sẽ tốn dung lượng bộ nhớ nhiều hơn để
lưu trữ và cần một hệ thống mạnh hơn để xử lý. Ảnh 8 mức xám sẽ có giá trị mỗi
điểm ảnh nằm trong đoạn [0, 7]. Ảnh 256 mức xám sẽ có giá trị mỗi điểm ảnh nằm
trong đoạn [0, 255]. Giá trị điểm ảnh = 0 nghĩa là điểm ảnh đó tối (đen), giá trị điểm
ảnh lớn nhất nghĩa là điểm ảnh đó trắng. Nói cách khác, giá trị mỗi điểm ảnh càng
lớn thì điểm ảnh đó càng sáng.
3.2Tổng quan xử lý ảnh
Một hệ thống xử lý ảnh thường được định nghĩa như sau: lOMoARcPSD| 59149108
ĐỒ ÁN TỐT NGHIỆP TRANG 18/51
Một hệ thống xử lý ảnh điển hình có xử lý số tín hiệu được biểu diễn trong hình 3-8.
Nguồn ảnh đầu vào I(x,y) là một vật hoặc một cảnh tự nhiên, nhưng nó cũng có thể
được tạo ra bởi một hệ thống khác, như bộ lọc, đèn hình CRT. Bộ số hóa chuyển tín
hiệu nguồn đầu vào thành tín hiệu điện mà biên độ biểu diễn cường độ ảnh và sau đó
đem số hóa nó bằng bộ chuyển đổi tương tự - số (A/D). Sau đó chuỗi f(n1,n2) ở đầu
ra bộ số hóa được xử lý bởi một giải thuật (algorit) xử lý ảnh số. Algorit này có thể
cài trên máy tính, bộ vi xử lý, hoặc một phần cứng chuyên dụng. Algorit cụ thể được
sử dụng vào phụ thuộc vào mục đích xử lý, có thể là cải thiện ảnh, phục hồi ảnh, mã
hóa ảnh, lý giải ảnh, hoặc một tổ hợp bất kỳ của chúng. Kết quả xử lý được hiển thị
cho người dùng xem, nhưng đôi khi cũng đưa vào đầu vào của hệ thống khác. Bộ
hiển thị được dùng là đèn hình CRT, nhưng cũng có thể là bức ảnh hoặc băng video
catxet. Nếu kết quả là một biểu diễn bằng ký hiệu như trong lý giải ảnh, thì thiết bị
hiển thị có thể là máy in[12].
Hình 3-8 Hệ thống xử lý ảnh [12]
3.3Kỹ thuật nhận dạng biển số 3.3.1 Kỹ thuật OCR
OCR (Optical Character Recognition) – nhận dạng ký tự quang học là quá trình
phần mềm máy tính xử lý và chuyển các file ảnh (thường là sản phẩm của máy
scanner) thành các file văn bản dạng ký tự (text). Hiện nay, công nghệ OCR được
ứng dụng rộng rãi ở nhiều lĩnh vực, quốc gia. Nhận dạng ký tự quang học (dùng các
kỹ thuật quang học chẳng hạn như gương và ống kính) và nhận dạng ký tự số (sử
dụng máy quét và các thuật toán máy tính) lúc đầu được xem xét như hai lĩnh vực
khác nhau. Bởi vì chỉ có rất ít các ứng dụng tồn tại với các kỹ thuật quang học thực
sự, bởi vậy thuật ngữ Nhận dạng ky tự quang học được mở rộng và bao gồm luôn ý
nghĩa nhận dạng ky tự số. Đầu tiên hệ thống nhận dạng yêu cầu phải được huấn luyện
với các mẫu của các ký tự cụ thể. Các hệ thống "thông minh" với độ chính xác nhận