Nhóm nghiên cứu đã ứng dụng công nghệ xử lý ảnh, lập trình giao diện website kết hợp với chip AVR, chip wifi ESP8266 để thiết kế, xây dựng thành công mô hình bãi gửi xe thông minh trong
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
NĂM 2020
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HƯỚNG DẪN ĐỖ XE Ô TÔ
THÔNG MINH TRONG HẦM TÒA NHÀ
Sinh viên thực hiện: Trần Mạnh Thắng
Nguyễn Tất Hiếu
Phạm Huy Nam Cấn Ngọc Sơn Lớp: Tự động hóa 1 K58
Khoa: Điện - Điện tử
Người hướng dẫn: PGS.TS Trịnh Lương Miên
Trang 2TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
NĂM 2020
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG HƯỚNG DẪN ĐỖ XE Ô TÔ
THÔNG MINH TRONG HẦM TÒA NHÀ
Sinh viên thực hiện:
Trần Mạnh Thắng Nam, nữ: Nam Dân tộc: Kinh
Nguyễn Tất Hiếu Nam, nữ: Nam Dân tộc: Kinh
Lớp: Tự động hóa 1 K58 Khoa: Điện - Điện tử Năm thứ: 3/4.5 Ngành học: Kỹ thuật điều khiển và tự động hóa
Người hướng dẫn: PGS.TS Trịnh Lương Miên
Trang 3TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung
- Tên đề tài: Nghiên cứu xây dựng hệ thống hướng dẫn đỗ xe ô tô thông minh trong hầm tòa nhà
- Sinh viên thực hiện: Trần Mạnh Thắng
Nguyễn Tất Hiếu Phạm Huy Nam Cấn Ngọc Sơn
Tính mới và sáng tạo của đề tài là sử dụng thẻ từ RFID cho việc giám sát xe vào
ra hầm gửi xe, sử dụng các cảm biến siêu âm phát hiện xe đỗ trong hầm gửi xe cùng với
đó là đèn led báo trạng thái chỗ đỗ còn trống Xây dựng giao diện web giám sát xe vào ra bãi đỗ Xây dựng giao diện xử lý ảnh quét và lưu biển số xe mỗi lần ra vào bãi đỗ Sử dụng module ESP8266 để truyền dữ liệu lên web quản lý.
4 Kết quả nghiên cứu
Các kết quả nghiên cứu chính trong đề tài chúng em đạt được đó là:
Trang 4+ Xây dựng được giao diện web quản lý và giám sát số lượng xe vào ra bãi đỗ Hệ thống xử lý ảnh giúp quét và lưu biển số xe, hệ thống thẻ gửi xe RFID.
+ Khi xe vào bãi sẽ quét thẻ RFID hệ thống barie mở cho xe vào bãi đồng thời lưu thông tin của phương tiện vào bãi Bằng đèn báo trạng thái, chủ phương tiện có thể biết được chỗ đỗ nào còn trống để có thể đỗ xe Đèn xanh báo hiệu chỗ đỗ còn trống và đèn đỏ báo hiệu chỗ đỗ đã có xe Khi xe vào ô đỗ xe, cảm biến siêu âm sẽ phát hiện có xe
và đèn báo đổi từ xanh sang đỏ.
+ Khi xe ra quét thẻ RFID hệ thống barie mở cho xe qua.
+ Dữ liệu xe vào ra sẽ được gửi lên web quản lý để biết được thời gian xe vào ra bãi đỗ Đồng thời có thể biết được thời điểm mật độ xe vào ra bãi đông đúc hay thưa thớt.
5 Đóng góp về mặt kinh tế - xã hội, giáo dục và đào tạo, an ninh, quốc phòng và khả năng áp dụng của đề tài
Giúp sinh viên tiếp cận, nghiên cứu, hiểu biết rõ về hệ thống quản lý giám sát xe vào ra bãi đỗ xe thông minh.
Kết quả nghiên cứu của đề tài là tài liệu tham khảo bổ ích cho đào tạo đại học lĩnh vực Điện-Điện tử; đồng thời có thể ứng dụng vào thực tế giám sát, quản lý xe tại hầm đỗ
xe của tòa nhà Từ đó ứng dụng và phát triển thêm những tính năng khác của hệ thống để hoàn thiện và có tính ứng dụng thực tế.
6 Công bố khoa học của sinh viên từ kết quả nghiên cứu của đề tài
Trang 5Nhóm nghiên cứu đã ứng dụng công nghệ xử lý ảnh, lập trình giao diện website kết hợp với chip AVR, chip wifi ESP8266 để thiết kế, xây dựng thành công mô hình bãi gửi xe thông minh trong hầm tòa nhà, cho phép quản lý giám sát hoạt động của hầm gửi
xe từ xa qua Internet, đồng thời cảnh báo đến người sử dụng về số điểm đỗ xe còn trống, giúp thuận tiện khi gửi xe vào hầm
Ngày tháng năm 2020
Trang 6
MỤC LỤC
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI 2
LỜI NÓI ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT LIEN QUAN ĐỀN ĐỀ TÀI 2
1 Nhu cầu về đỗ xe trong thời đại phát triển mới 2
2 Phân loại bãi đỗ xe thông minh 2
3 Giải pháp điều khiển, giám sát bãi đỗ xe trong hầm tòa nhà 2
3.1 Giới thiệu chung về công nghệ RFID 2
3.2 Tổng quan về xử lý ảnh 5
3.3 Đặt bài toán nghiên cứu của đề tài 9
3.4 Kết luận chương 1 9
CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG CHO HẦM GỬI XE Ô TÔ 10
1 Đề xuất giải pháp hệ thống cho hầm gửi xe ô tô 10
2 Thiết kế hệ thống 11
2.1 Lựa chọn máy tính cho hệ thống 12
2.2 Lựa chọn bộ điều khiển cho hệ thống 13
2.3 Tổ chức AVR 16
2.4 Lựa chọn chip 21
2.5 Lựa chọn linh kiện cho trạm kiểm soát 33
2.6 Lựa chọn linh kiện bên trong hầm gửi xe 38
2.7 Kết luận chương 2 45
1 Quy trình vào ra hầm gửi xe ô tô 45
1.1 Quy trình xe vào hầm gửi xe 45
1.2 Quy trình xe ra khỏi hầm gửi xe 46
Trang 74 Kết quả thử nghiệm hệ thống 54
5 Kết luận chương 3 55
KẾT LUẬN, KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 57
PHỤ LỤC 58
Trang 8LỜI NÓI ĐẦU
Đất nước ta đang trên đà phát triển và hội nhập, kinh tế tăng trưởng mạnh mẽ, cơ
sở hạ tầng không ngừng được mở rộng, các công trình xây dựng ngày càng nhiều và đầu
tư với qui mô lớn Trong khi đó hệ thống giao thông chưa được phát triển một cách tương xứng, phương tiện giao thông quá tải, các bãi giữ xe không đủ diện tích
Nhu cầu đi lại và khả năng kinh tế, mức thu nhập bình quân của người Việt Nam ngày càng nhiều hơn, dẫn tới sự gia tăng trong số lượng phương tiện cá nhân đi lại, đặc biệt là ô tô Điều này đã đặt ra áp lực lớn cho các tòa nhà văn phòng, khu chung cư, trung tâm thương mại hay các bãi gửi xe công cộng Vì thế, mà những nơi có mật độ xe ô tô ra vào nhiều, rất cần những mẫu thiết kế bãi đỗ xe thông minh mang tính hiện đại, tiện lợi
để giải quyết vấn đề đỗ xe cho người Trước tình hình đó, cần phải tìm ra phương án giải quyết cho vấn đề thiếu bãi đỗ xe và phát triển rộng khắp bãi đỗ xe thông minh.
Trong quá trình thực hiện đề tài nhóm nghiên cứu đã gặp rất nhiều khó khăn
nhưng nhờ sự giúp đỡ và đôn đốc nhiệt tình của thầy Trịnh Lương Miên mà nhóm
nghiên cứu đã hoàn thành được đề tài
Chúng em xin chân thành gửi lời cảm ơn sâu sắc đến thầy Trịnh Lương Miên
người thầy đã dẫn dắt, động viên chúng em cả về mặt tinh thần và kiến thức để chúng tôi
có thể vượt qua những ngày tháng khó khăn để hoàn thành đề tài nghiên cứu Một lần nữa xin chân thành cảm ơn thầy, chúc thầy luôn mạnh khỏe và đạt được nhiều thành công trong công tác và nghiên cứu.
Chúng em xin chân thành cảm ơn đến các thầy cô trong bộ môn Điều khiển học cũng như các thầy cô trong khoa Điện - Điện tử, những người đã cho chúng em những kiến thức chuyên ngành và những kinh nghiệm quý báu để chúng em có thể hoàn thành nghiên cứu và có kết quả như ngày hôm nay.
Chúng em xin chân thành cảm ơn!
Trang 9CHƯƠNG 1: CƠ SỞ LÝ THUYẾT LIEN QUAN ĐỀN ĐỀ TÀI
1 Nhu cầu về đỗ xe trong thời đại phát triển mới
Trong thời đại mới ngày nay, với sự bùng nổ của dân số, cùng với sự gia tăng nhanh chóng số lượng phương tiện cá nhân tham gia giao thông Đòi hỏi sự phát triển cơ
sở hạ tầng để đáp ứng nhu cầu đi lại cao cũng như dừng đỗ xe của người dân.
Cùng với tiến trình đô thị hóa là sự tăng lên mạnh mẽ của dân cư lại các thành phố lớn Theo đó áp lực về giao thông đang đè nặng lên cơ sở hạ tầng hiện có Một yêu cầu bức thiết đặt ra chính là việc đi tìm câu trả lời cho bài toán ùn tắc và bài toán về đỗ xe.
Hệ thống đỗ xe thông minh có thể nói là một lời đáp khá chính xác để giải quyết các vấn
đề giao thông Hiện tại ở Việt Nam ta đã thấy có những sự xuất hiện của các bãi đỗ xe tự động, tuy vậy nó còn khá hạn chế và mới mẻ
2 Phân loại bãi đỗ xe thông minh
Phân loại theo hệ thống điều khiển
1, Hệ thống bãi đỗ xe cơ khí
2, Hệ thống bãi đỗ xe tự động
3, Hệ thống bài đỗ xe thông minh
Phân loại theo kiến trúc không gian
1, Bãi đỗ lưu kho
3 Giải pháp điều khiển, giám sát bãi đỗ xe trong hầm tòa nhà
Để đảm bảo việc kiểm soát ô tô tại cổng vào ra với độ chính xác cao và ổn định,
đề tài cần kết hợp giữa phần mềm xử lý ảnh để xử lý, nhận dạng biển số và module thẻ từ RFID để có thể đảm bảo tính năng bảo mật cao hơn, kết hợp với phần điều khiển các cơ cấu như barie, …
3.1 Giới thiệu chung về công nghệ RFID
Trang 103.1.1 RFID là gì
Công nghệ RFID” (Radio Frequency Identification) là công nghệ nhận dạng đối tượng bằng sóng vô tuyến, 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, không thực hiện bất kỳ giao tiếp vật lý nào hoặc giữa hai vật không nhìn thấy.
Kỹ thuật RFID sử dụng truyền thông không dây trong dải 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ê Reader scan dữ liệu của tag và gửi thông tin đến cơ sở dữ liệu của tag
3.1.2 Phương thức làm việc của một hệ thống RFID
Một hệ thống RFID có ba thành phần cơ bản: tag (thẻ), reader (đầu đọc), và một máy chủ Hệ thống RFID cho phép dữ liệu được truyền qua tag đến một hoặc nhiều reader và bộ đọc xử lý thông tin trực tiếp hoặc truyền về máy chủ để xử lý theo yêu cầu của ứng dụng cụ thể Một cách tổng quát anten của đầu đọc gửi ra ngoài tín hiệu để truyền thông với các thiết bị cần nhận dạng Những tín hiệu đó tạo ra trường điện từ mà đại diện cho vùng hoạt động của đầu đọc Khi thẻ RFID đi vào vùng hoạt động của đầu đọc, nó sẽ phát hiện tín hiệu kích hoạt thẻ, bộ đọc giải mã dữ liệu đọc thẻ và dữ liệu được đưa vào một máy chủ, phần mềm ứng dụng trên máy chủ sẽ xử lý dữ liệu.
Hình 1.1: Phương thức làm việc của hệ thống RFID.
Tag RFID có thể giống như những nhãn giấy và được ứng dụng để bỏ vào hộp và đóng gói; có thể được dán vào các vách của các thùng chứa làm bằng plastic; một số khác được xây dựng thành miếng da bao cổ tay… Mỗi tag được lập trình với một nhận
Trang 11có thể chứa thông tin như chuỗi số, hướng dẫn cấu hình, dữ liệu kỹ thuật, sổ y học, lịch trình….
3.1.3 Thành phần cơ bản của một hệ thống RFID
Các hệ thống RFID tồn tại có nhiều dạng khác nhau, các thành phần trong nó được sản xuất bởi nhiều nhà sản xuất khác nhau nhưng một hệ thống RFID cơ bản bao gồm có các thành phần sau:
Đầu đọc: là thành phần bắt buộc đối với mọi hệ thống RFID, được sử dụng
để đọc và ghi dữ liệu đến các thẻ RFID.
Thẻ RFID: là thành phần bắt buộc, thiết bị này dùng để truyền dữ liệu đến đầu đọc, dữ liệu này mang thông tin định dạng cho đối tượng (hoặc chỉ ra đối tượng được nhận dạng).
Anten: đây là thành phần bắt buộc, để thực hiện việc truyền thông giữa thẻ và đầu đọc.
Mạch điều khiển (Controller): là thành phần bắt buộc Tuy nhiên, hầu hết các reader mới đều có thành phần này gắn liền với chúng.
Cảm biến (sensor), cơ cấu chấp hành (actuator) và bảng tín hiệu điện báo (annunciator): những thành phần này hỗ trợ quá trình nhập và xuất của hệ thống.
Máy chủ và hệ thống phần mềm: Về mặt lý thuyết, một hệ thống RFID có thể hoạt động độc lập không có thành phần này Thực tế, một hệ thống RFID gần như không có ý nghĩa nếu không có thành phần này.
Cơ sở hạ tầng truyền thông: là thành phần bắt buộc, nó gồm cả hai mạng có dây và không dây và các bộ phận kết nối tuần tự để kết nối các thành phần liệt kê ở trên với nhau để chúng liên lạc với nhau hiệu quả.
Trang 12Hình 1 2: Sơ đồ khối RFID
Về dải tần hoạt động của hệ thống RFID Khi phải lựa chọn một hệ thống RFID,
yêu cầu đầu tiên là chọn dải tần hoạt động của hệ thống
Tần số thấp - Low frequency 125 KHz: Dải đọc ngắn tốc độ đọc thấp
Dải tần cao - High frequency 13.56 MHz: Khoảng cách đọc ngắn tốc độ đọc
trung bình Phần lớn thẻ Passive sử dụng dải này
Dải tần cao hơn - High frequency: Dải đọc từ ngắn đến trung bình, tốc độ đọc
trung bình đến cao Phần lớn thẻ Active sử dụng tần số này
Dải siêu cao tần - UHF frequency 860-960 MHz Dải đọc rộng Tốc độ đọc cao Phần lớn dùng thẻ Active và một số thẻ Passive cao tần sử dụng dải này
Dải vi sóng - Microwave 2.45-5.8 GHz: Dải đọc rộng tốc độ đọc lớn.
3.2 Tổng quan về xử lý ảnh
3.2.1 Xử lý ảnh là gì
Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh Đây
là một phân ngành khoa học rất phát triển trong những năm gần đây Xử lý ảnh gồm 4 lĩnh vực chính : xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh.
Sự phát triển của xử lý ảnh đem lại rất nhiều lợi ích cho cuộc sống của con người.
Ngày nay xử lý ảnh đã được áp dụng rất rộng rãi trong đời sống như: photoshop, nén ảnh, nén video, nhận dạng biển số xe, nhận dạng khuôn mặt, nhận dạng chữ viết, xử
lý ảnh thiên văn, ảnh y tế,.
Quá trình xử lý ảnh được xem như là quá trình chỉnh sửa, biến đổi ảnh đầu vào nhằm cho ra một kết quả như mong muốn Kết quả có thể là một bức ảnh như mong muốn hoặc là một kết luận.
Kết luận Ảnh mong muốn
Trang 13Các vấn đề cơ bản trong xử lý ảnh:
Khử nhiễu: Có hai loại nhiễu cơ bản trong quá trình thu nhận ảnh:
- Nhiễu hệ thống: Là nhiễu có quy luật có thể khử bằng các phép biến đổi Có thể do chất lượng camera, do đặc điểm thu nhận ảnh của camera như ảnh không trong, ảnh hơi nhòe do tốc độ màn trập chưa đủ nhanh, ảnh có hạt nhiễu khi chụp đêm do khẩu độ nhỏ…
- Nhiễu ngẫu nhiên: Là nhiễu không có quy luật, vết bẩn không rõ nguyên nhân, khắc phục bằng các phép lọc.
Chỉnh mức xám: Nhằm khắc phục tính không đồng đều của hệ thống gây ra Thông thường có 2 hướng tiếp cận:
- Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành một Trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen trắng
- Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật nội suy Kỹ thuật này nhằm tăng cường độ mịn cho ảnh.
Phân tích ảnh: Là khâu quan trọng trong quá trình xử lý ảnh Trong phân tích ảnh việc trích chọn đặc điểm là một bước quan trọng Các đặc điểm của đối tượng được trích chọn tùy theo mục đích nhận dạng
trong quá trình xử lý ảnh Có thể nêu ra một số đặc điểm của ảnh sau đây:
- Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn
- Đặc điểm biến đổi: Các đặc điểm loại này được trích chọn bằng việc thực hiên lọc vùng Các bộ vùng được gọi là “mặt nạ đặc điểm” (feature mask) thường là các khe hẹp với hình dạng khác nhau (chữ nhật, tam giác, cung tròn )
- Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và do vậy rất hữu ích trong việc trích chọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng.
Thu nhận và biểu diễn ảnh
- Thu nhận ảnh: Các thiết bị thu nhận ảnh thường là camera số và thường cho ra ảnh màu Với sự tiến bộ của công nghệ ngày nay, camera trở nên đa dạng và hiện đại hơn, từ camera tích hợp sẵn trên điện thoại đến các máy ảnh số và cả những camera chuyện dụng chất lượng camera ngày càng được nâng cao về cả phân giải và chất lượng màu sắc.
Trang 14hiển thị qua màn hình hoặc biểu thị bằng cách in ấn ra giấy Chất lượng hình ảnh ảnh hưởng rất lớn đến việc hiển thị, in ấn Ảnh có độ phân giải càng lớn thì càng hiển thị càng sắc nét Việc lựa chọn độ phân giải thích hợp tùy thuộc vào nhu cầu sử dụng và đặc trưng của từng ảnh.
3.2.2 Tổng quan về thư viện xử lý ảnh
Ngày nay có rất nhiều thư viện hỗ trợ xử lý hình ảnh trên nền tảng các ngôn ngữ
phổ biến Visual C++, C# ,… như là OpenCV, EmguCV
OpenCV (Open Source Computer Vision) là thư viện hỗ trợ người làm việc xử lý các hình ảnh trên nền tảng ngôn ngữ C++, C, Java, Python, Windows, Linux, …
Được viết tối ưu hóa C/C++
EmguCV 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# Thích hợp các ngôn ngữ như C#, Python, VB ,… Warpper
có thể được dịch bởi Visual Studio, Xamarin Studio và Unity
Theo như nghiên cứu và tìm hiểu được thì EmguCv có một số lợi thế như sau:
- 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
-
3.2.3 Tổng quan về thuật toán xử lý nhận diện ảnh
Thuật toán OCR
OCR là thuật toán nhận dạng ký tự bằng quang học được tạo ra để chuyển các
Trang 15Nhậ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 ký tự quang học được mở rộng và bao gồm luôn ý nghĩa nhận dạng ký
tự số
Một số hạn chế của OCR đã tìm hiểu đươc:
- Hầu hết các phần mềm sử dụng OCR chỉ nhận dạng được khoảng 80 - 90%
trên hình ảnh rõ nét.
- Đối với những hình ảnh có màu nền mà màu chữ không có nhiều chênh lệch, hay các hình chụp chữ viết tay thì kết quả nhận dạng không khả quan
cho lắm
- Đến thời điểm hiện tại thì OCR chưa hỗ trợ tất cả các ngôn ngữ
Thuật toán Canny
Biên là vấn đề quan trọng trong trích chọn đặc điểm nhằm tìm hiểu ảnh Cho đến nay thì chưa có định nghĩa chính xác về biên, trong mỗi ứng dụng người ta đưa ra các độ đo khác nhau về biên, một trong số các độ đo đó là sự thay đổi đột ngột về cấp xám Tập hơp các điểm biên tạo nên biên hay đường bao của đối
tượng Người ta đưa ra 2 phương pháp phát hiện biên cơ bản:
1) Phát hiện trực tiếp: là phương pháp phát hiện biên dựa vào sự thay đổi của
mức xám sử dụng các kỹ thuật thay đổi theo hướng
2)Phát hiện gián tiếp.
Kỹ thuật phát hiện biên bằng phương pháp Canny là phương pháp dò biên trực tiếp rất hiệu quả áp dụng cho các loại ảnh nhiễu Canny đưa ra ba điểm chính
mà một phương pháp phát hiện biên phải xác định được đó là:
1) Mức lỗi: Phương pháp phải làm sao chỉ có hiệu quả đối với các điểm biên,
phải tìm ra tất cả các biên và không có đường biên nào bị bỏ sót
2)Định vị: Khoảng cách giữa các điểm biên được tìm thấy trong giải thuật và
biên trong thực tế phải càng nhỏ càng tốt
3) Hiệu xuất: Không được phép chỉ ra nhiều biên trong khi chỉ có một biên tồn
tại
Giải thuật phát hiện biên Canny được trình bày như sau:
Trang 162) Tạo một mặt nạ G để nhân xoắn với I Độ lệch tiêu chuẩn của mặt nạ này
chính là tham số để tách cạnh
3) Tạo một mặt nạ cho đạo hàm bậc nhất của Gassian theo hướng x, y và gọi là
Gx, Gy và giá trị vẫn được giữ như ở bước 2
4) Nhân xoắn ảnh I cùng với G dọc theo các hàng tạo ảnh thành phần x gọi là
Ix và theo các cột tạo ra ảnh Iy
5) Nhân xoắn Ix với Gx để sinh ra I'x: thành phần x của I được nhân xoắn với
đạo hàm của Gaussian, và nhân xoắn Iy với Gy để tạo ra I'y.
3.3 Đặt bài toán nghiên cứu của đề tài
Mục tiêu đặt ra của đề tài là nghiên cứu, xây dựng mô hình thiết bị phần cứng và phần mềm hướng dẫn đỗ xe ôtô thông minh trong hầm tòa nhà Quản lý giám sát các xe vào ra hầm gửi xe, báo số chỗ gửi xe còn trống trong hầm gửi xe cho người gửi Quản lý,
giám sát từ xa hoạt hầm gửi xe từ xa qua Internet
Các nội dung nghiên cứu chính của đề tài chúng là + Nghiên cứu ứng dụng công nghệ thẻ RFID và công nghệ xử lý ảnh cho quản lý
giám sát bãi gửi xe + Nghiên cứu thiết kế chế tạo mạch phần cứng cho bãi giữ xe thông minh: sử dụng thẻ RFID để quản lý xe ra vào, ứng dụng công nghệ xử lý ảnh nhận dạng biển số xe
ô tô tự động, sử dụng cảm biến siêu âm phát hiện xe ô tô tại vị trí gửi xe trong hầm.
+ Xây dựng giao diện web quản lý và giám sát số lượng xe vào ra bãi đỗ
3.4 Kết luận chương 1
Chương 1 trình bày tổng quan về nhu cầu của bãi đỗ xe ô tô thông minh; tổng quan
về công nghệ thẻ từ RFID; tổng quan về công nghệ xử lý ảnh; đặt bài toán nghiên cứu
của đề tài.
Trang 17CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG CHO HẦM GỬI XE Ô TÔ
1 Đề xuất giải pháp hệ thống cho hầm gửi xe ô tô
Hiện nay nhu cầu đi lại với các phương tiện giao thông như xe máy, xe mô tô, ô tô
và các phương tiện khác tại chung cư có xu hướng tăng cao dẫn đến các hoạt động bãi đỗ
xe tại hầm chung cư trở lên quá tải, khó kiểm soát hơn Do đó bài toán đặt ra cho các chủ quản lý bãi đỗ xe là làm thế nào để bãi đỗ xe của mình hoạt động nhanh chóng hơn, kiểm
soát ra vào tốt hơn, có thể sử dụng các thiết bị công nghệ nào thay thế sức lao động của con người Hay nói cách khác là tìm giải pháp quản lý bãi giữ xe hiệu quả cho thực trạng
này Vì vậy việc thiết kế hệ thống bãi giữ xe ứng dụng sử dụng thẻ RFID và xử lý ảnh để đọc biển số tại chung cư là hết sức cần thiết, việc này giúp giảm bớt nhân lực và tăng khả năng chuẩn xác hơn trong việc quản lý xe ra vào tại đây gồm một làn vào và một làn ra Sau quá trình tìm hiểu thực trạng và nhu cầu thực tế về các hệ thống tự động quản
lý ô tô vào ra Tổng kết các yêu cầu cần có của hệ thống để đạt được độ chính xác và ổn định trong quá trình vận hành Giải pháp hệ thống chúng em đề xuất gồm:
Có 2 camera để chụp ảnh lúc xe vào và lúc xe ra.
Có 2 camera để chụp toàn cảnh làn xe vào và làn xe ra.
Phần mềm xử lý ảnh nhằm đọc biển số, so sánh, đưa quyết định và lưu trữ thông tin vào cơ sở dữ liệu.
2 động cơ điều khiển barie vào và barie ra.
2 trạm quét thẻ và thẻ từ nhằm mục đích nhận diện, quản lý bãi xe.
Cảm biến siêu âm nhận biết số lượng xe trong hầm gửi xe và đèn báo ô còn trống.
Trang 18Đối với xe ô tô gửi theo tháng, hệ thống quét biển số, nhận dạng biển số và tự động mở barie ra/vào hầm gửi xe.
Đối với xe gửi lượt: khi xe vào bãi gửi sẽ quét thẻ RFID hệ thống barie mở cho xe vào bãi đồng thời lưu thông tin của phương tiện vào cơ sở dữ liệu Khi xe ra quét thẻ RFID hệ thống barie mở cho xe ra.
Bằng đèn báo trạng thái/hiển thị số lượng chỗ đỗ còn trống trong hầm gửi xe, chủ phương tiện có thể biết được chỗ đỗ nào còn trống để có thể đỗ xe Đèn xanh báo hiệu chỗ đỗ còn trống và đèn đỏ báo hiệu chỗ đỗ đã có xe Khi xe vào ô đỗ xe, cảm biến siêu
âm sẽ phát hiện có xe và đèn báo đổi từ xanh sang đỏ.
Dữ liệu xe vào ra sẽ được gửi lên web quản lý để biết được thời gian xe vào ra bãi đỗ Đồng thời có thể biết được thời điểm mật độ xe vào ra bãi đông đúc hay thưa thớt
2 Thiết kế hệ thống
Sơ đồ khối chức năng hệ thống được mô tả như hình 2.1 Hoạt động của các khối
trong sơ đồ như sau:
Hình 2.1: Sơ đồ khối hệ thống
Trong hầm gửi xe đỗ xe, các cảm biến siêu âm SRF-05 trong từng ô sẽ đo khoảng cách từ nó đên vật cản gần nhất để gửi tín hiệu về cho vi điều khiển ATMEGA 2560 (SLAVE) Từ đó vi điều khiển nhận biết được bên trong từng ô đỗ xe có xe hay không và đếm số xe trong bãi, tiếp đó vi xử lý Slave sẽ gửi các số liệu như số xe có trong hầm gửi
xe về cho vi xử lý Master từ đó điều khiển trạm điều hành ra vào bãi đỗ xe.
Tại cửa vào: nếu trong hầm gửi xe đỗ xe còn ô trống thì khi vào cổng người lái xe sẽ
Trang 19quan vào cơ sở dữ liệu đồng thời phát tín hiệu cho barie mở ra Khi xe đi đến cảm biến đặt ngay ở barie, hệ thống sẽ nhận biết được đang có xe đến và barie sẽ đóng lại khi xe hoàn toàn qua khỏi barie Nếu trong hầm gửi xe đỗ xe hết chỗ thì màn hình tại cửa bãi đỗ
xe sẽ thông báo đã hết chỗ đỗ trong bãi
Tại cửa ra: Quá trình thực hiện tương tự Người lái xe sẽ quét thẻ, lúc này camera sẽ chụp lại ảnh, xử lý ảnh và so sánh với kết quả ở đầu vào, nếu trùng khớp thì cho mở gác chắn cho xe ra Nếu sai thì phát tín hiệu cảnh báo để nhân viên trực kiểm tra
2.1 Lựa chọn máy tính cho hệ thống
Máy tính là thành phần quan trọng nhất của hệ thống, không có máy tính hệ thống sẽ không thể hoạt động được
- Đối với máy tính quản lý 1 hoặc 2 làn xe cần trang bị cấu hình tối thiểu: CPU Core-i3, RAM 4GB.
- Cài đặt hệ điều hành Windows 7, 8, 10 64 bit.
- Cài đặt các phần mềm Antivirus, DeepFreeze, WinLock,…
Nếu máy tính được chọn làm máy chủ lưu dữ liệu => Cần chọn ổ cứng có dung lượng phù hợp để có thể lưu dữ liệu của hệ thống bãi xe trong khoảng thời gian mong muốn
Dữ liệu của hệ thống bãi xe bao gồm:
- Ảnh chụp từ camera , 2 ảnh cho mỗi lượt xe ra vào => dữ liệu này là chủ yếu.
- Dữ liệu thời gian ra vào, vé xe, tiền,… dạng text – không đáng kể.
- Bảng dung lượng ảnh JPEG với các độ phân giải khác nhau:
Bảng 1.1: Bảng dung lượng ảnh JPEG.
Bảng 1.2: Bảng tính toán dung lượng ổ cứng.
Trang 20-Trường hợp muốn lưu thêm cả dữ liệu video(H264,24/7) từ các camera:
Bảng 1.3: Bảng tính toán dung lượng khi lưu thêm dữ liệu video.
• Dữ liệu video của camera ở làn xe nào thì lưu trên máy tính của làn xe đó
• Đặt chế độ ghi hình theo chuyển động Nếu thời gian có chuyển động (có xe vào ra) là 50% thì dung lượng ổ cứng cần thiết giảm đi 1 nửa
• Sử dụng DVR/NVR/Server ghi hình độc lập với hệ thống bãi xe.
• Lưu dữ liệu ghi hình trong khoảng thời gian ngắn hơn (1-2 tuần).
2.2 Lựa chọn bộ điều khiển cho hệ thống
2.2.1 Giới thiệu chung về AVR
AVR là họ Vi điều khiển khá mới trên thị trường cũng như đối với người sử dụng Đây là họ vi điều khiển được chế tạo theo kiến trúc RISC (Reduced Instruction Set Computer) có cấu trúc khá phức tạp Ngoài các tính năng như các họ vi điều khiển khác,
nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người thiết kế và lập trình.
Vi điều khiển AVR do hãng Atmel (Hoa Kì) sản xuất được gới thiệu lần đầu năm
1996 Họ vi điều khiển AVR là một họ vi điều khiển có cấu trúc hiện đại (so với 8051)
Có ba loại trong họ này đó là:
+TinyAVR
Trang 21Hình 2.2 Các dòng AVR tiny, AVR và AT mega
Tất cả các thiết bị trong họ AVR đều có chung một tập lệnh, và tổ chức bộ nhớ giống nhau Nhưng khi chúng ta chuyển nghiên cứu từ một vi điều khiển AVR này sang loại khác thì thật là đơn giản Cấu tạo AVR bao gồm: SRAM, EEPROM và giao tiếp SRAM mở rộng, bộ chuyển đổi tương tự số (ADC), cấu trúc nhiều tuyến, UART, USART…
2.2.2.2 Wavrasm:
Trang 22Hình Phần mềm Wavrasm
Phần mềm Wavrasm cũng được cung cấp bởi Atmel, nó chính là tiền thân của AvrStudio Hiện tại wavrasm không còn được sử dụng nhiều vì so với AvrStudio trình biên dịch này có nhiều hạn chế
2.2.2.3 WinAVR hay avr-gcc:
Hình Phần mềm WinAVR
Trang 23bộ biên dịch này cũng miễn phí và đa số nguồn source code C được viết bằng bộ này,
vì vậy nó rất lí tưởng cho bạn khi viết các ứng dụng chuyên nghiệp
2.2.2.4 CodeVisionAvr:
Phần mềm CodeVisionAvr CodeVisionAvr là một chương trình bằng ngôn ngữ C rất hay cho AVR, hỗ trợ
nhiều thư viện lập trình Hỗ trợ cấu hình nhanh cho người lập trình bằng dao diện, vì thế giupws nguoif lập trình viết code nhanh và hiệ quả Đặc biệt với các version từ 3.0 Code VisionAVR còn có công cụ hỗ trợ nạp code trực tiếp cho các bo mạch Arduino sử dụng chip Avr hiện đang rất phổ biến
2.3 Tổ chức AVR
AVR có cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ liệu (data memory bus) và đường truyền cho bộ nhớ chương trình (program memory bus) được tách riêng Data memory bus chỉ có 8 bit và được kết nối với hầu hết các thiết bị ngoại vi, với register file Trong khi đó program memory bus có độ rộng 16 bits và chỉ phục vụ cho instruction registers.
2.3.1 Bộ nhớ chương trình (Program memory):
Là bộ nhớ Flash lập trình được, trong các chip AVR cũ (như AT90S1200 hay
AT90S2313…) bộ nhớ chương trình chỉ gồm 1 phần là Application Flash Section nhưng trong các chip AVR mới chúng ta có thêm phần Boot Flash setion Boot section sẽ được khảo sát trong các phần sau, trong bài này khi nói về bộ nhớ chương trình, chúng ta tự hiểu là Application section
Trang 24Hình 2.13 Tổ chức bộ nhớ của AVR.
2.3.2 Bộ nhớ dữ liệu (data memory):
Đây là phần chứa các thanh ghi quan trọng nhất của chip, việc lập trình cho chip
phần lớn là truy cập bộ nhớ này Bộ nhớ dữ liệu trên các chip AVR có độ lớn khác nhau tùy theo mỗi chip, tuy nhiên về cơ bản phần bộ nhớ này được chia thành 5 phần:
Phần 1: là phần đầu tiên trong bộ nhớ dữ liệu, như mô tả trong hình 1, phần này
bao gồm 32 thanh ghi có tên gọi là register file (RF), hay General Purpose Rgegister – GPR, hoặc đơn giản là các Thanh ghi Tất cả các thanh ghi này đều là các thanh ghi
8 bits như trong hình 2.
Thanh ghi 8 bits.
Tất cả các chip trong họ AVR đều bao gồm 32 thanh ghi Register File có địa chỉ tuyệt đối từ 0x0000 đến 0x001F Mỗi thanh ghi có thể chứa giá trị dương từ 0 đến
255 hoặc các giá trị có dấu từ -128 đến 127 hoặc mã ASCII của một ký tự nào đó… Các thanh ghi này được đặt tên theo thứ tự là R0 đến R31 Chúng được chia thành 2 phần, phần 1 bao gồm các thanh ghi từ R0 đến R15 và phần 2 là các thanh ghi R16 đến R31.
Trang 25Hình Register file.
Tóm lại 32 RF của AVR được xem là 1 phần của CPU, vì thế chúng được CPU
sử dụng trực tiếp và nhanh chóng, để gọi các thanh ghi này, chúng ta không cần gọi địa chỉ mà chỉ cần gọi trực tiếp tên của chúng RF thường được sử dụng như các toán hạng (operand) của các phép toán trong lúc lập trình.
Phần 2: là phần nằm ngay sau register file, phần này bao gồm 64 thanh ghi được
gọi là 64 thanh ghi nhập/xuất (64 I/O register) hay còn gọi là vùng nhớ I/O (I/O Memory) Vùng nhớ I/O là cửa ngõ giao tiếp giữa CPU và thiết bị ngoại vi Tất cả các thanh ghi điều khiển, trạng thái…của thiết bị ngoại vi đều nằm ở đây Xem lại ví
dụ trong bài 1, trong đó tôi có đề cập về việc điều khiển các PORT của AVR, mỗi PORT liên quan đến 3 thanh ghi DDRx, PORTx và PINx, tất cả 3 thanh ghi này đều nằm trong vùng nhớ I/O Xa hơn, nếu muốn truy xuất các thiết bị ngoại vi khác như Timer, chuyển đổi Analog/Digital, giao tiếp USART…đều thực hiện thông qua việc điều khiển các thanh ghi trong vùng nhớ này.
+ Vùng nhớ I/O có thể được truy cập như SRAM hay như các thanh ghi I/O Nếu sử dụng instruction truy xuất SRAM để truy xuất vùng nhớ này thì địa chỉ của chúng được tính từ 0x0020 đến 0x005F Nhưng nếu truy xuất như các thanh ghi I/O thì địa chỉ của chúng đựơc tính từ 0x0000 đến 0x003F.
Trang 26+ Để thống nhất cách sử dụng từ ngữ, từ bây giờ chúng ta dùng khái niệm “địa chỉ I/O” cho các thanh ghi trong vùng nhớ I/O để nói đến địa chỉ không tính phần Register File, khái niệm “địa chỉ bộ nhớ” của thanh ghi là chỉ địa chỉ tuyệt đối của chúng trong SRAM Ví dụ thanh ghi DDRD có “địa chỉ I/O” là 0x0011 và “địa chỉ
bộ nhớ” của nó là 0x0031, “địa chỉ bộ nhớ” = “địa chỉ I/O” + 0x0020.
Vì các thanh ghi trong vùng I/O không được hiểu theo tên gọi như các Register file, khi lập trình cho các thanh ghi này, người lập trình cần nhớ địa chỉ của từng thanh ghi, đây là việc tương đối khó khăn Tuy nhiên, trong hầu hết các phần mềm lập trình cho AVR, địa chỉ của tất cả các thanh ghi trong vùng I/O đều được định nghĩa trước trong 1 file Definition, bạn chỉ cần đính kèm file này vào chương trình của bạn là có thể truy xuất các thanh ghi với tên gọi của chúng Giả sử trong ví dụ ở bài 1, để lập trình cho chip Atmega8 bằng AVRStudio, dòng thứ 2 chúng ta sử dụng INCLUDE "M8DEF.INC" để load file định nghĩa cho chip ATMega8, file M8DEF.INC Vì vậy, trong sau này khi muốn sử dụng thanh ghi DDRD bạn chỉ cần
gọi tên của chúng, như: OUT DDRD, R6.
Phần 3: RAM tĩnh, nội (internal SRAM), là vùng không gian cho chứa các biến
(tạm thời hoặc toàn cục) trong lúc thực thi chương trình, vùng này tương tự các thanh RAM trong máy tính nhưng có dung lượng khá nhỏ (khoảng vài KB, tùy thuộc vào loại chip).
Phần 4: RAM ngoại (external SRAM), các chip AVR cho phép người sử dụng
gắn thêm các bộ nhớ ngoài để chứa biến, vùng này thực chất chỉ tồn tại khi nào người sử dụng gắn thêm bộ nhớ ngoài vào chip.
Phần 5: EEPROM (Electrically Ereasable Programmable ROM) là một phần
quan trọng của các chip AVR mới, vì là ROM nên bộ nhớ này không bị xóa ngay cả khi không cung cấp nguồn nuôi cho chip, rất thích hợp cho các ứng dụng lưu trữ dữ liệu Như trong hình 1, phần bộ nhớ EEPROM được tách riêng và có địa chỉ tính từ 0x0000.
Trang 27Hình 2.16 Cấu trúc bên trong AVR.
2.3.3 Stack.
Stack được hiểu như là 1 “tháp” dữ liệu, dữ liệu được chứa vào stack ở đỉnh
“tháp” và dữ liệu cũng được lấy ra từ đỉnh Kiểu truy cập dữ liệu của stack gọi là LIFO (Last In First Out – vào sau ra trước)
Hình 2.17 Stack.
Khái niệm và cách thức hoạt động của stack có thể được áp dụng cho AVR , bằng cách khai báo một vùng nhớ trong SRAM là stack ta có thể sử dụng vùng nhớ này như một stack thực thụ.
Để khai báo một vùng SRAM làm stack chúng ta cần xác lập địa chỉ đầu của
Trang 28stack bằng cách xác lập con trỏ stack SP StackPoiner SP là 1 con trỏ 16 bit bao gồm 2 thanh ghi 8 bit SPL và SPH (chữ L là LOW chỉ thanh ghi mang giá trị byte thấp của SP, và H = HIGH), SPL và SPH nằm trong vùng nhớ I/O Giá trị gán cho thanh ghi SP sẽ là địa chỉ khởi động của stack.
2.3.4 Thanh ghi trạng thái - SREG (STATUS REGISTRY).
Nằm trong vùng nhớ I/O, thanh ghi SREG có địa chỉ I/O là 0x003F và địa chỉ bộ nhớ là 0x005F (thường đây là vị trí cuối cùng của vùng nhớ I/O) là một trong số các thanh ghi quan trọng nhất của AVR, vì thế mà tôi dành phần này để giới thiệu về thanh ghi này Thanh ghi SREG chứa 8 bit cờ (flag) chỉ trạng thái của bộ xử lí, tất cả các bit này đều bị xóa sau khi reset, các bit này cũng có thể được đọc và ghi bởi chương trình Chức năng của từng bit được mô tả như sau:
Hình 2.18 Thanh ghi trạng thái.
2.4 Lựa chọn chip
Do mục tiêu nhiên cứu của đề tài và nhu cầu thực tế, để có thể điều khiển và quản
lý bãi đỗ xe mà cụ thể là quản lý từng ô (chuồng) đỗ Vì vậy ta cần nhiều hệ vi xử lý để
đo và tính toán trong hầm gửi xe đỗ, trong đó sẽ có một vi xử lý trung tâm gọi là master
để thu thập thông tin từ các vi xử lý khác gọi là slave
2.4.1 Vi điều khiển Slave
Lựa chọn board ARDUINO ATMEGA 2560
Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi là Arduino Mega 1280.
Arduino Mega 2560 phiên bản hiện đang được sử dụng rộng rãi và ứng dụng nhiều hơn Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4 KB cho bộ nhớ EEPROM Giúp cho người dùng thêm khả năng viết những chương trình phức tạp và điều khiển các thiết bị lớn hơn như máy in 3D, điều khiển robot.
Trang 29Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip ATmega2560 Bao gồm:
54 chân digital (trong đó có 15 chân có thể được sủ dụng như những chân PWM là
từ chân số 2 → 13 và chân 44 45 46).
6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt 5), chân
19 (interrupt 4), chân 20 (interrupt 3), and chân 21 (interrupt 2)
16 chân vào analog (từ A0 đến A15).
4 cổng Serial giao tiếp với phần cứng:
Trang 30Điện áp vào (giới hạn) 6V-20V
Cường độ dòng điện trên mỗi 3.3V pin 50 mA
Cường độ dòng điện trên mỗi I/O pin 20 mA
2.4.2 Vi điều khiển ATMEGA 2560
2.4.2.1 Sơ đồ chân (PIN mapping)
Trang 321 PG5 ( OC0B ) Chân vào ra số Port G/PWM
2 PE0 ( RXD0 / PCINT8 ) Chân vào ra số Port E/chân nhận dữ liệu giao tiếpUART 0
3 PE1 ( TXD0 ) Chân vào ra số Port E/chân nhận dữ liệu giao tiếpUART 0
6 PE4 ( OC3B / INT4 ) Chân vào ra số Port E PWM/ ngắt ngoài
7 PE5 ( OC3C / INT5 ) Chân vào ra số Port E /PWM/ ngắt ngoài
8 PE6 ( T3 / INT6 ) Chân vào ra số Port E /PWM/ ngắt ngoài
9 PE7 ( CLKO / ICP3 / INT7 ) Chân vào ra số Port E /PWM/ ngắt ngoài
19 PB0 ( SS / PCINT0 ) Chân vào ra số Port B/Chọn địa chỉ giao tiếp SPI
26 PB7 ( OC0A / OC1C / PCINT7 ) Chân vào ra số PortB (PWM)
Trang 3343 PD0 ( SCL / INT0 ) Chân vào ra số Port D(SCL/Ngắt ngoài 0 )
44 PD1 ( SDA / INT1 ) Chân vào ra số Port D (SDA/Ngắt ngoài 1 )
45 PD2 ( RXDI / INT2 ) Chân vào ra số Port D ( RX1/Ngắt ngoài 2 )
46 PD3 ( TXD1 / INT3 ) Chân vào ra số Port D ( TX1/Ngắt ngoài 3 )
65 PJ2 ( XCK3 / PCINT11 ) Chân vào ra số Port J
Trang 3482 PK7 ( ADC15 / PCINT23 ) Chân vào ra số Port K /ADC
98
2.4.2.2 Tổng quan về timer của Atemega 2560
Timer/ counter là một phần không thể thiếu của bất kì vi điều khiển nào và chúng cùng
sử dụng chung một địa chỉ I/0 Trên chip Atemega 2560 có tích hợp sẵn 6 bộ Timer/Counter, trong đó có 2 bộ đếm 8bit (Timer0 và Timer2) và 6 bộ đếm 16 bit.
Trang 35Timer 0 là 1 bộ đếm 8 bit có thể đếm từ 0 đến 255, giá trị đếm được lưu trong thanh ghi TCNT0 và giá trị này tăng lên sau mỗi xung nhịp hoặc 1 chuỗi xung nhịp tùy theo bộ chia trước được cài đặt trên thanh ghiTCCR0B, khi bộ đếm đầy cờ ngắt tràn của timer 0 (TOV 0) lên 1
Các thanh ghi của timer 0
Thanh ghi TCCR0A
Thanh ghi TCCR0B
Có thể xét các chế độ của timer, tuy nhiên chúng ta chỉ sử dụng ngắt tràn (để đo tín hiệu phản hồi từ cảm biến siêu âm) nên chỉ quan tâm đến các bit sau đây
Để chọn chế độ hoạt động của timer, chúng ta cài đặt các bit WGM2: WGM
Để chọn bộ chia trước cho timer 0, chúng ta cài đặt các bit CS02: CS00
Trang 36Để điều chỉnh thời gian tràn của timer 0, ta cài đặt thanh ghi TCNT0 trong dải giá trị từ 0 đến 255.
Để sử dụng chế độ ngắt tràn của timer 0, ta cần quan tâm các bit sau:
Bit 0 của thanh ghi TIMSK0 – Timer/ counter interrupt Mask Register.
Bit 0 TOIE 0: Cho phép ngắt tràn khi được cài đặt lên 1.
Bit 0 của thanh ghi TIFR 0: Thanh ghi cờ ngắt
Bit 0 TOV 0 cờ tràn của timer/ counter 0.
2.4.2.4 UART của ATMEGA 2560
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 giao thức truyền thông (I2C & SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp
và giao tiếp dữ liệu song song.
Sơ đồ khối 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ữ
Trang 37Má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.
Sơ đồ khối UART
Truyền thông UART
Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau Đối với điều này, chỉ cần hai cáp để giao tiếp giữa hai UART Luồng dữ liệu sẽ từ cả hai chân truyền (Tx) và nhận (Rx) của UARTs Trong UART, việc truyền dữ liệu từ Tx UART sang Rx UART có thể được thực hiện không đồng bộ (không có tín hiệu CLK để đồng bộ hóa các bit o / p) Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, v.v Sau khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bit như bắt đầu, dừng lại và trung bình Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu Tóm lại, gói dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận.
Trang 38Truyền thông UART
Start-bit
Start-bit còn được gọi là bit đồng bộ hóa được đặt trước dữ liệu thực tế Nói chung, một đường truyền dữ liệu không hoạt động được điều khiển ở mức điện áp cao Để bắt đầu truyền dữ liệu, truyền UART kéo đường dữ liệu từ mức điện áp cao (1) xuống mức điện
áp thấp (0) UART thu được thông báo sự chuyển đổi này từ mức cao sang mức thấp qua đường dữ liệu cũng như bắt đầu hiểu dữ liệu thực Nói chung, chỉ có một start-bit.
Dữ liệu bit hoặc khung dữ liệu
Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận Độ dài khung dữ liệu có thể nằm trong khoảng 5 & 8 Nếu bit chẵn lẻ không được sử dụng thì chiều dài khung dữ liệu có thể dài 9 bit Nói chung, LSB của dữ liệu được truyền trước tiên sau đó nó rất hữu ích cho việc truyền.
Trang 392.4.2.5 Các thanh ghi:
Thanh ghi bộ đệm dữ liệu trong vi điều khiển ATMEGA 2560, bộ đệm truyền và nhận
dữ liệu dung chung 1 địa chỉ phần cứng
Thanh ghi điều khiển và trạng thái UCSRnA - USART
Bit 7- RXCn- USART: cờ hoàn thành nhận.
Bit này được set lên 1 khi dữ liệu trong bộ đệm nhận chưa được đọc hết và bằng 0 khi bộ đếm nhận trống.
Bit 6- TXCn- USART: cờ hoàn thành truyền.
Bit này sẽ được set lên 1 khi toàn bộ frame trong thanh ghi đệm truyền đã được truyền đi và không có dữ liệu mới được ghi vào thanh ghi UDRn
Bit 5- UDREn: cờ báo thanh ghi UDRn trống.
Bit 4- FEn: khung truyền lỗi.
Bit 3- DORn: Data over run set lên 1khi bộ đệm đã đầy.
Bit2- UPEn: báo lỗi chẵn lẻ.
Bit 1- U2Xn: nhân đôi tốc độ chỉ sử dụng trong chế độ truyền đồng bộ.
Bit 0- MPCMn: truyền thông đa điểm.
Thanh ghi UCSRnB thanh ghi điều khiển và trạng thái UART B
Trang 40Bit 7- RXCIEn: cho phép ngắt nhận.
Bit 6- TXCIEn: cho phép ngắt truyền.
Bit 5- UDRIEn: cho phép ngắt khi bộ đệm trống Bit 4- RXENn: cho phép nhận.
Bit 3- TXENn: cho phép truyền.
Bit 2- UCSZn2: kích cỡ kí tự
Bit 1- RXB8n: nhận dữ liệu bit thứ 9
Bit 0- TXB8n: truyền dữ liệu bit thứ 9
Thanh ghi UCSRnC:
Bit 7:6 – lựa chọn chế dộ UART
1 0: cho phép (Even parity)
1 1: cho phép (Odd parity) Bit 3- stop bit
0: 1 bit 1: 2 bit Bit 2:1 – cài đặt độ dài kí tự