Chương 1: Tổng quan đề tài: Trình bày về sự cần thiết đề tài, vai trò của đề tài trong cuộc sống. Đồng thời nêu ra được các phương pháp tiếp cận và thực hiện đề tài theo từng bước. Chương 2: Cơ Sở Lý Thuyết: Cơ sở lý thuyết. Nêu khái quát về truy cập vào ra, cơ sở dữ liệu và nêu lên các đặc điểm của công nghệ khi sử dụng.
Chương 3: Thiết Kế và Tính Toán: Trình bày về thiết kế hệ thống gồm sơ đồ khối, sơ đồ nguyên lý toàn mạch. Đưa ra sơ đồ toàn bộ hệ thống cho ứng dụng và chương trình điều khiển Chương 4: Thi Công Hệ Thống. Chương 5: Kết Quả, Nhận Xét, Đánh Giá: Chương này đưa ra các kết quả thực tế sau thời gian nghiên cứu và thiết kế Chương 6: Kết luận và hướng phát triển: Chương này sẽ đưa ra các kết quả đạt được sau khi thực hiện đồ án, các hướng phát triển và mở rộng của đồ án. 2 do an Chương 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN 2.
Giới thiệu giao thức UART Giới thiệu về giao thức truyền UART: Thuật ngữ UART trong tiếng anh là viết tắt của cụm tự Universal Synchronous & Asynchronous serial Reveiver and Transmitter, nghĩa là bộ truyền nhận nối tiếp đồng bộ và không đồng bộ. UART thường được dùng trong máy tính công nghiệp, truyền thông, vi điều khiển hay một số các thiết bị truyền tin khác. Mục đích của UART sinh ra là để truyền tín hiệu qua lại lẫn nhau hay truyền từ vi điều khiển tới vi điều khiển hoặc truyền từ ngoại vi tới vi điều khiển. Trong đó hai thiết bị giao tiếp với nhau thông qua giao thức UART bằng hai đường dẫn RX (read) và TX (transmit).
Vì phương thức giao tiếp không đồng bộ nên hai thiết bị giao tiếp với nhau phải được thống nhất về khung truyền, tốc độ truyền. TX RX Slave Master RX GND TX Hình 2. 1Cách kết nối hai thiết bị sử dụng giao thức UART. Sơ đồ khối UART: Bao gồm hai thành phần là máy phát và máy thu được hiển thị bên dưới.
Phần máy phát bao gồm ba khối là thanh ghi giữ truyền, thanh ghi dịch chuyển và logic điều khiển. Tương tự, phần máy thu bao gồm một thanh ghi giữ, thanh ghi thay đổi và logic điều khiển. Hai phần này thường được cung cấp bởi một bộ tạo tốc độ baud. Trình tạo này được sử dụng để tạo tốc độ khi phần máy phát và phần máy thu phải truyền hoặc nhận dữ liệu.
Thanh ghi giữ trong máy phát bao gồm byte dữ liệu được truyền. Các thanh ghi thay đổi trong máy phát và máy thu di chuyển các bit sang phải hoặc trái cho đến khi một byte dữ liệu được truyền hoặc nhận. Một logic điều khiển đọc (hoặc) ghi được sử dụng để biết khi nào nên đọc hoặc viết. Máy phát tốc độ baud giữa máy phát và máy thu tạo ra tốc độ dao động từ 110 bps đến 230400 bps.
Thông thường, tốc độ truyền của vi điều khiển là 9600 đến 115200. 3 do an Hình 2. 2Sơ đồ khối UART Hình 2. 3 Khung truyền dữ liệu của giao thức UART.
Các khái niệm quan trọng trong chuẩn truyền thông UART: - Baudrate: Số bit truyền được trong 1s, ở truyền nhận không đồng bộ thì ở các bên truyền và nhận phải thống nhất Baudrate. Các thông số tốc độ Baudrate thường hay sử dụng dể giao tiếp với máy tính là 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200. - Frame: Ngoài việc giống nhau của tốc độ baud 2 thiết bị truyền nhận thì khung truyền của bên cũng được cấu hình giống nhau. Khung truyền quy định số bit trong mỗi lần truyền, bit bắt đầu “Start bit”, các bit kết thúc (Stop bit), bit kiểm tra tính chẵn lẻ (Parity), ngoài ra số bit quy định trong một gói dữ liệu cũng được quy 4 do an định bởi khung truyền.
Có thể thấy, khung truyền đóng một vai trò rất quan trọng trong việc truyền thành công dữ liệu. Idle frame: Đường truyền UART ở mức “1”, để xác nhận hiện tại đường truyền dữ liệu trống, không có frame nào đang được truyền đi. Break frame: Đường truyền UART ở mức “0”, để xác nhận hiện tại trên đường truyền đang truyền dữ liệu, có frame đang được truyền đi. - Start bit: Bit đầu tiên được truyền trong một frame, bit này có chức năng báo cho bên nhận rằng sắp có một gói dữ liệu truyền đến.
Đường truyền UART luôn ở trạng thái cao mức “1” cho đến khi chip muốn truyền dữ liệu đi thì nó gởi bit start bằng cách kéo xuống mức “0”. Như vậy start bit giá trị điện áp 0V và phải bắt buộc có bit start trong khung truyền. 4 Vị trí Start bit - Data: Data hay dữ liệu là thông tin mà chúng ta nhận được trong quá trình truyền và nhận. Data trong STM32 có quy định khung truyền là 8bit hoặc 9bit.
Trong quá trình truyền UART, bit có trọng số thấp nhất (LSB – least significant bit – bên phải) sẽ được truyền trước và cuối cùng là bit có ảnh hưởng cao nhất (MSB – most significant bit – bên trái) 5 do an - Parity bit: Parity dùng để kiểm tra dữ liệu truyền có đúng hay không. Có 2 loại Parity đó là Parity chẵn (even parity) và parity lẽ (odd parity). Parity chẵn nghĩa là số bit 1 trong trong data truyền cùng với bit Parity luôn là số chẵn, ngược lại nếu Parity lẽ nghĩa là số bit 1 trong data truyền cùng với bit Parity luôn là số lẽ. Bit Parity không phải là bit bắt buộc và vì thế chúng ta có thể loại bỏ bit này ra khỏi khung truyền.
5 Vị trí Parity bit - Stop bits: Stop bits là một bit báo cáo để cho bộ truyền/nhận biết được gói dữ liệu đã được gởi xong. Stop bits là bit bắt buộc phải có trong khung truyền. Stop bits có thể là 1bit, 1.5bit tùy thuộc vào ứng dụng UART của người sử dụng. 6 do an Hình 2.
6 Vị trí Stop bit 2. Giới thiệu thư viện EmguCV Xử lý ảnh và thị giác máy là lĩnh vực mà ngày nay được phát triển và ứng dụng rất rộng rãi trong nhiều lĩnh vực khác nhau nhờ vào sự phát triển ngày càng mạnh mẽ của các hệ thống máy tính, các thuật toán và công trình nghiên cứu khác nhau của nhiều nhà khoa học trên thế giới.1 EmguCv là gì? EmguCV là một thư viện xử lý hình ảnh, thị giác máy tính dành riêng cho ngôn ngữ C#. EmguCV đã xây dựng những control mà có thể giúp bạn nhanh chóng xử lý hình ảnh với một mục đích nào đó của người dùng. Là một cross flatform .NET, một thư viện xử lý hình ảnh mạnh dành riêng cho ngôn ngữ C#.
Cho phép gọi được chức năng của OpenCV là từ. Tương thích ngôn ngữ như: C#, VB, VC ++, Iron Python. Wrapper có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity. Nó có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows Phone.2 Lợi thế của EmguCV.
EmguCV được viết hoàn toàn bằng C#. Có thể chạy trên bất kỳ nền tảng hỗ trợ bao gồm iOS, Android, Windows Phone, Hệ điều hành Mac OS X và Linux. EmguCV có thể được sử dụng từ nhiều ngôn ngữ khác nhau, bao gồm C#, VB.NET, C ++ và Iron Python. Nhận dạng ảnh: nhận dạng khuôn mặt, các vật thể … Xử lý ảnh: khử nhiễu, điều chỉnh độ sáng … Nhận dạng cử chỉ.
Hỗ trợ tài liệu XML và intellisense. Sự lựa chọn để sử dụng hình ảnh lớp hoặc trực tiếp gọi chức năng từ OpenCV. Giới thiệu về công cụ phân tích ký tự Tesseract OCR Tesseract bộ công cụ mã nguồn mở để nhận diện kí tự (OCR) được phát triển bởi hãng HP giữa những năm 1984 và 1994. Bộ mã nguồn mở này thực hiện đọc môt bức ảnh nhị phân, ảnh đen trắng hay ảnh màu và cho ra những dòng kí tự chứa trong bức ảnh đó.
Quá trình nhận dạng và cho ra kí tự được thực hiện từng bước một theo cơ chế liên kết pipeline.Đầu tiên là phân tích những đường nét phác thảo của hình ảnh đưa vào.Sau đó tạo ra các Blobs chứa các dòng kí tự. Tiếp theo những dòng kí tự này được phá vỡ tiếp thành các từ độc lập dựa vào khoảng cách giãn giữa các từ. Quá trình xử lí tiếp theo sẽ là phá vỡ ở mức kí tự trong từng từ và phân chia chúng thành các nhóm kí tự khác nhau. Tiếp theo chúng ta có thể tạo ra dữ liệu huấn luyện hay dùng những bộ dữ liệu đã có để cho ra ký tự được mã hóa trên máy tính với từng nhóm ký tự vừa được phân chia.Sau đó các ký tự được trả về theo trật tự từng từ đã tách ra và từng dòng đã phân tích.
Nguyên lý nhận dạng biển số 2. Tách biển số Tách biển số là một bước rất quan trọng trong quá trình nhận dạng biển số xe. Khối tách biển số xe được chia làm 2 giai đoạn chính: Giai đoạn 1: định vị trí của biển số trong ảnh chụp từ webcam. Giai đoạn 2: dùng các giải thuật để cắt biển số xe ra khỏi ảnh chụp và xoay biển số xe về phương ngang.
Ảnh RBG Định vị Cắt và xoay Ảnh RBG được chụp trí của biển số về chỉ chứa từ Webcam biển số phương ngang biển số Hình 2. 7 Sơ đồ khối của quá trình tách biển số. 8 do an Việc định vị biển số xe dựa vào các tính chất của biển số như: hình dạng, màu sắc của biển số so với nền. Biển số xe có hình chữ nhật với kích thước chiều dài và rộng không thay đổi.
Từ đó chúng ta có thể tìm các vùng có hình tứ giác trong hình, tính tỉ lệ giữa hai chiều của hình so với khoảng giá trị cho trước để xem thử vùng đó có chứa biển số hay không. Sau khi định vị biển số xe, chúng ta tiến hành cắt biển số xe. Biển số xe được cắt theo 2 bước. Bước đầu tiên là cắt vùng rộng hơn vùng chứa biển số.
Sau đó tìm góc nghiêng của biển số và thực hiện xoay biển số về phương thẳng đứng. Bước hai là cắt biển số ra khỏi vùng trên. Thực hiện việc cắt biển số qua hai bước như trên làm tăng độ chính xác, biển số được cắt nguyên vẹn, không cắt phạm chữ, trừ trường hợp ảnh bị chói, độ tương phản không đều hoặc bị che khuất thì kết quả của việc tách biển số mới không chính xác. Phần tách biển số sử dụng rất nhiều giải thuật và phương pháp xử lý đối với ảnh số như sơ đồ sau đây: 9 do an Ảnh RBG Tìm vùng Biến đổi ảnh RGB sang ảnh đen trắng.