Nội dung chính của đề tài: Thiết kế mô hình xe tự hành sử dụng xử lý ảnh để nhận diện được các biển báo giao thông khác nhau, hệ thống sử dụng camera Pi để quan sát và gửi dữ liệu về ki
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG CHUYÊN NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ-VIỄN
THÔNG ĐỀ TÀI: MÔ HÌNH XE TỰ HÀNH SỬ DỤNG
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG CHUYÊN NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ-VIỄN
THÔNG ĐỀ TÀI: MÔ HÌNH XE TỰ HÀNH SỬ DỤNG
Đà Nẵng, 12/2023
Trang 3Tên đề tài: MÔ HÌNH XE TỰ HÀNH SỬ DỤNG XỬ LÝ ẢNH
Sinh viên thực hiện: Phạm Ngọc Trí MSV: 1911505410163 Lớp: 19DT1 Nguyễn Văn Tuấn MSV: 1911505410157 Lớp: 19DT1 Nhóm thực hiện đề tài “Mô hình xe tự hành sử dụng xử lý ảnh” đã sử dụng chuẩn giao tiếp UART để kết nối Raspberry Pi 4 với Arduino, Raspberry Pi 4 sẽ nhận hình ảnh từ camera gởi về và xử lý hình ảnh sau đó gởi dữ liệu cho Arduino bằng giao tiếp UART và sau đó Arduino sẽ truyền dữ liệu để L298N điều khiển 4 động cơ DC Mô hình xử dụng thuật toán YOLOv8 để train hình ảnh
Kết quả sau khi hoàn thành mô hình là mô hình sẽ nhận diện được các biển báo giao thông như là stop, rẻ trái , rẻ phải, đèn đỏ, đèn xanh
Trang 4Khoa Điện – Điện tử Độc lập – Tự do – Hạnh phúc
Tài liệu tổng quan về đề tài: kỹ thuật xử lý ảnh, lập trình Raspberry Pi Tài liệu về thông số kỹ thuật và lập trình Raspberry Pi 4, cảm biến camera Pi Tài liệu về kỹ thuật xử lý ảnh (thu nhận ảnh, tiền xử lí ảnh,…), tìm hiểu phương
pháp nhận dạng và phân loại các biển báo giao thông
3 Nội dung chính của đề tài:
Thiết kế mô hình xe tự hành sử dụng xử lý ảnh để nhận diện được các biển báo giao thông khác nhau, hệ thống sử dụng camera Pi để quan sát và gửi dữ liệu về kit Raspberry Pi để xử lý và đưa ra kết quả Hoàn thành báo cáo đúng tiến trình
4 Các sản phẩm dự kiến:
Báo cáo tổng kết đồ án tốt nghiệp Mô hình thực tế xe tự hàng sử dụng xử lý ảnh
5 Ngày giao đồ án: 28/08/2023 6 Ngày nộp đồ án: 17/12/2023
Đà Nẵng, ngày 28 tháng 08 năm 2023
TS.Nguyễn Linh Nam
Trang 5Trường đại học sư phạm kỹ thuật
Khoa Điện – Điện tử
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP 1 Họ và tên sinh viên 1: Phạm Ngọc Trí Mã sinh viên: 1911505410163 2 Họ và tên sinh viên 2: Nguyễn Văn Tuấn Mã sinh viên: 1911505410157 3 Họ và tên người hướng dẫn: TS.Nguyễn Linh Nam
Nhận diện được các biển báo giao thông Thiết kế và thi công mô hình
Trao dồi kỹ năng làm việc, hoạt động nhóm cũng như kỹ năng tìm kiếm tài liệu
6 Nội dung chính
Tìm hiểu về lập trình Raspbery Pi Tìm hiểu về kỹ thuật, công nghệ xử lý ảnh Viết chương trình
Thiết kế và thi công mô hình Chạy thử nghiệm và cân chỉnh mô hình Viết báo cáo đồ án tốt nghiệp
7 Kết quả dự kiến đạt được
Hiểu và vận dụng được những vấn đề cơ bản của kỹ thuật xử lý ảnh Nghiên cứu và sử dụng Kit Raspbery Pi, ứng dụng vào trong đồ án tốt nghiệp Tính toán, thiết kế và thi công hoàn chỉnh mô hình xe tự hành sử dụng xử lý ảnh
Hoàn thành báo cáo đồ án tốt nghiệp đúng tiến độ và yêu cầu đặt ra
Trang 6STT Thời gian Nội dung công việc Kết quả dự kiến đạt được
1 Tuần 1
(28/8-5/8)
Gặp giáo viên hướng dẫn trao đổi về đề tài đồ án tốt nghiệp
Chốt đề tài: “Mô hình xe tự hành sử dụng xử lý ảnh”
Code hoạt động ổn định
(25/9-2/10)
Thi công phần cứng, lắp ráp mô hình Hoàn thành mô hình
10 Tuần 10
(2/10-9/10)
Thi công phần cứng, lắp ráp mô hình Hoàn thành mô hình
Trang 711
12 Tuần 12 (16/10_23/10)
Chạy thử nghiệm và điều
13 Tuần 13 (23/10-30/10)
Báo cáo GVHD Chạy thử, điều chỉnhvà đánh giá
Chỉnh sửa và hoàn thiện báo cáo
Đà Nẵng, ngày 28 tháng 08 năm 2023
TS.Nguyễn Linh Nam Phạm Ngọc Trí
Nguyễn Văn Tuấn
Trang 8Chúng em xin cam đoan đây là công trình nghiên cứu của riêng nhóm và được sự hướng dẫn khoa học của TS.Nguyễn Linh Nam Các nội dung nghiên cứu, kết quả trong đề tài này là do nhóm tôi 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 trước đó Những thông tin phục vụ cho đề tài được chính tác giả thu thập từ các nguồn khác nhau và có ghi rõ trong phần tài liệu tham khảo Nếu có bất kỳ sự gian lận nào chúng tôi xin chịu trách nhiệm về nội dung đồ án của mình
Đã thực hiện chỉnh sửa, bổ sung theo đúng yêu cầu của GV phản biện và Hội Đồng chấm
Người thực hiện đề tài
Phạm Ngọc Trí
Nguyễn Văn Tuấn
Trang 9Đầu tiên, chúng em xin chân thành gửi lời cảm ơn sâu sắc đến quý Thầy, Cô khoa Điện – điện tử, Trường Đại Học Sư Phạm Kỹ Thuật Đại học Đà Nẵng đã tạo điều kiện về thời gian để tác giả hoàn thành đồ án này Đặc biệt, chúng em xin chân thành cảm ơn Thầy Nguyễn Linh Nam, trong suốt thời gian hoàn thành bài thực tập Thầy đã quan tâm, giúp đỡ, tạo mọi điều kiện tốt nhất để tác giả hoàn thành đồ án tốt nghiệp này Cuối cùng, tác giả cảm ơn bố mẹ, bạn bè đã hỗ trợ, khích lệ, chia sẻ, giúp đỡ nhóm trong quá trình học tập và hoàn thành đồ án này
Nhóm xin chúc quý Thầy, Cô, Ban lãnh đạo Trường Đại Học Sư Phạm Kỹ Thuật Đại học Đà Nẵng, bố mẹ, bạn bè dồi dào sức khỏe, gặp nhiều may mắn, thành công trong công việc cũng như trong cuộc sống Tuy được hướng dẫn tận tình nhưng kiến thức còn hạn chế, không tránh khỏi những sai sót trong báo cáo đồ án tốt nghiệp Nhóm xin nhận được sự góp ý từ quý Thầy, Cô trong hội đồng bảo vệ!
Xin chân thành cảm ơn!
Người thực hiện đề tài
Phạm Ngọc Trí – Nguyễn Văn Tuấn
Trang 101.4 Tính cấp thiết của đề tài 8
1.5 Mục tiêu của đề tài 9
1.6 Mục tiêu nghiên cứu 9
1.7 Giới hạn đề tài 9
1.8 Nội dung đề tài 9
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 11
2.3 Module điều khiển động cơ L298N 22
2.3.1 Giới thiệu sơ lược L298N 22
2.3.2 Đặc điểm và thông số kỹ thuật module L298N 23
2.3.3 Sơ đồ chân Module điều khiển động cơ DC L298N 24
2.3.4 Sơ đồ mạch bên trong module điều khiển động cơ L298N 28
2.3.5 Nguyên lý hoạt động của IC điều khiển động cơ L298N 28
2.3.6 PWM- kiểm soát động cơ 29
2.3.7 Mạch cầu H- Đảo chiều quây động cơ DC 29
2.3.8 Giao tiếp Module điều khiển đọng cơ DC L298N với Arduino 30
2.4 Động cơ DC 31
2.4.1 Nguyên lý hoạt động của động cơ DC 32
2.4.2 Ưu điểm của động cơ DC 33
2.4.3 Nhược điểm của động cơ DC 33
2.5 Camera 33
Trang 112.9.2 Sơ đồ chân của Raspberry Pi 4 45
2.9.3 Module giao tiếp dữ liệu nối tiếp Raspberry 46
2.9.4 Ứng dụng của Raspberry Pi 4 47
2.9.5 Mô tả bảng mạch của Raspberry Pi 4 48
2.9.6 Tính năng giao diện HDMI Raspberry Pi 4 49
2.9.7 Các thiệt bị ngoại vi chính 49
2.9.8 Cấu trúc phần cứng 50
2.9.9 Hệ điều hành cho Raspberry Pi 4 51
2.9.10 Thông số kỹ thuật chính 52
2.10 Phương thức truyền thông UART 53
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG 57
3.1 Thiết kế sơ đồ khối 57
3.2 Sơ đồ từng khối 58
3.2.1 khối camera 58
3.2.2 Khối xử lý trung tâm 58
3.2.3 khối điều khiển động cơ 60
3.3 Sơ đồ nguyên lý của Raspberry Pi 4 60
3.4 Sơ đồ nối dây toàn mạch 61
3.5 Xử lý ảnh trong mô hình xe tự hành 62
3.6 Động cơ DC hoạt động trong mô hình xe tự hành 63
3.7 Thi công phần cứng 64
3.7.1 Thi công board mạch 64
3.7.2 Thi công mô hình 65
3.8 Lập trình phần mềm 66
3.8.1 Lưu đồ giải thuật cho vi điều khiển 66
3.9 Phần mềm lập trình Arduino 69
3.10 Phần mềm THONNY 70
3.11 Nhận diện với cái biển báo trên phần mềm THONNY 71
3.11.1 Biển báo STOP(dừng) 71
3.11.2 Biển báo rẻ phải 71
3.11.3 Biển báo rẻ trái 72
3.11.4 Đèn đỏ 72
3.11.5 Đèn xanh 72
3.12 Bản thiết kế mô hình đường để xe chạy 73
3.12.1 Các biển báo giao thông 73
3.13 Các bước truy cập, lập trình trên hệ điều hành của Raspberry 75
3.13.1 Các bước cài đặt và lập trình phần mềm IDE THONNY và IDE Arduino 75
3.13.2 Các bước chạy mô hình 76
Trang 12PHỤ LỤC
DANH SÁCH CÁC HÌNH VẼ, BẢNG
Hình 1.1 Tổng quan về xe tự hành 1
Hình 1.2 Sự phát triển của xe tự hành trong tương lai 2
Hình 1.3 Cấu tạo của xe tự hành[4] 4
Hình 2.1 Quá trình xử lý ảnh 11
Hình 2.2 Các bước cơ bản trong một hệ thống xử lý ảnh 11
Hình 2.3 Ảnh thu nhận và ảnh mong muốn 12
Hình 2.4 Quá trình hiển thị và chỉnh sửa, lưu trữ ảnh thông qua DIB 15
Hình 2.5 Sự chuyển đổi giữa các mô hình biểu diễn ảnh 16
Hình 2.6 Những phiên bản của Arduino 17
Hình 2.7 Arduino Uno 18
Hình 2.8 Sơ đồ nối chân Arduino và Atmega328 21
Hình 2.9 Module điều khiển động cơ L298N 22
Hình 2.10 Module điều khiển động cơ L298N 23
Hình 2.11 Cấu hình sơ đồ bố trí chân của L298N 25
Hình 2.12 Sợ đồ 2 chân cấp nguồn đầu vào VS, VSS và chân nối đất GND 25
Hình 2.13 Sơ đồ 2 chân đầu ra OUT1 & OUT2 và OUT3 & OUT4 26
Hình 2.14 Sơ đồ 2 chân điều khiển hướng di chuyển IN1 & IN2 và IN3 & IN4 26 Hình 2.15 Sơ đồ 2 chân điều khiển tốc độ ENA và ENB 27
Hình 2.16 IC ổn áp 5V 78M05 và JUMPER 27
Hình 2.17 sơ đồ mạch bên trong module L298N 28
Hình 2.18 Sơ đồ xung của PWM 29
Hình 2.19 Mạch cầu H-Đảo chiều quay động cơ DC 30
Hình 2.20 sơ đồ nối mạch L298N với Arduino 30
Hình 2.21 Động cơ DC 32
Hình 2.22 Nguyên lý hoạt động của động cơ DC 32
Hình 2.23 Webcom A13-1080p Full HD 34
Hình 2.24 Yolo thị giác máy tính 34
Hình 2.34 Giao tiếp UART 54
Hình 2.35 Sơ đồ khối của giao tiếp UART 54
Hình 2.36 Truyền thông UART 55
Hình 3.1 Sơ đồ khối của mô hình 57
Hình 3.2 sơ đồ kết nối Raspberry với camera 58
Hình 3.3 Sơ đồ kết nối Raspberry Pi 4 với Arduino Uno 58
Trang 13Hình 3.5 Sơ đồ khối điều khiển động cơ 60
Hình 3.6 Sơ đồ nguyên lý của Raspberry Pi 4 60
Hình 3.7 Sơ đồ nguyên lý toàn mạch 61
Hình 3.8 Sơ đồ mạch cầu H 63
Hình 3.9 Mạch in của L298N 64
Hình 3.10 Layout của L298N 64
Hình 3.11 Hoàn thiện mô hình xe 66
Hình 3.12 Lưu đồ giải thuật cho Raspberry Pi 4 66
Hình 3.13 Lưu đồ giải thuật cho Arduino 68
Hình 3.14 Giao diện của Arduino IDE 69
Hình 3.15 Quy trình làm việc của arduino IDE 70
Hình 3.16 Giao diện của THONNY 70
Hình 3.17 Nhận diện với biển báo STOP(dừng) 71
Hình 3.18 Nhận diện với biển báo rẻ phải 71
Hình 3.19 Nhận diện với biển báo rẻ trái 72
Hình 3.20 Nhận diện với đèn đỏ 72
Hình 3.21 Nhận diện với đen xanh 72
Hình 3.22 Mô hình đường xe chạy 73
Hình 3.23 Biển báo rẻ trái 73
Hình 3.24 Biển báo rẻ phải 74
Hình 3.25 Biển báo STOP(dừng) 74
Hình 3.26 Đèn đỏ 74
Hình 3.27 Đèn xành 75
Hình 3.28 Hệ điệu của Raspberry 75
Hình 3.29 Cài đặt Arduino IDE 75
Hình 3.30 Cài đặt YOLOv8 76
Hình 3.31 Lập trình trên Raspberry với phần mềm THONNY 76
Hình 3.32 lập trình trên Raspberry với phần mềm Arduino IDE 76
Hình 3.33 Giao diện phần mềm VNC 77
Hình 3.34 Thanh công cụ tìm kiếm địa chỉ IP 77
Hình 3.35 Màn hình chính Raspberry 77
Hình 3.36 Màn hình khi chạy code mở camera 78
Bảng 2.1 Một vài thông số Arduino Uno R3 18
Bảng 2.2 Thông số kĩ thuật của Module L298N 23
Bảng 2.3 Mô tả các chân cho module L298N 24
Bảng 2.4 Thông số kĩ thuật của Raspberry 52
Bảng 3.1 Linh kiện sử dụng trong mô hình 65
Trang 14STT Ký hiệu chữ viết tắt Chữ viết đầy đủ
10 CPU Central Processing Unit 11 UART Universal Asynchronous Receiver-
Transmitter 12 SPI Serial Peripheral Interface 13 I2C Inter-Integrated Circuit 14 GPIO General Purpose Input Output
16 UART Universal Asynchronous Receiver /
Transmitter
Trang 15LỜI MỞ ĐẦU
Xe tự hành đã trở thành một xu hướng đột phá trong ngành công nghiệp ô tô và công nghệ thông tin trong những năm gần đây Khả năng của các hệ thống xe tự hành không chỉ tạo ra sự tiện lợi cho người dùng mà còn mang lại tiềm năng lớn để cải thiện tính an toàn và hiệu suất giao thông đường bộ Trong bối cảnh này, đề tài này tập trung vào việc phát triển một mô hình xe tự hành đặc biệt, sử dụng xử lý ảnh như một phần quan trọng trong hệ thống
Mục tiêu chính của đề tài này là nghiên cứu và phát triển một hệ thống xe tự hành có khả năng tự động lái dựa trên thông tin từ các camera và cảm biến ảnh Chúng tôi tin rằng việc sử dụng xử lý ảnh sẽ cung cấp cho hệ thống khả năng phát hiện và nhận biết môi trường xung quanh một cách hiệu quả, đóng vai trò quan trọng trong việc đảm bảo tính an toàn và sự tự tin của xe tự hành trong các tình huống đa dạng trên đường
Trong lời nói đầu này, chúng tôi sẽ giới thiệu ngắn gọn về ngữ cảnh của đề tài, đặt ra câu hỏi nghiên cứu, và trình bày cách tiếp cận của chúng tôi đối với việc phát triển mô hình xe tự hành sử dụng xử lý ảnh Chúng tôi cũng sẽ nhấn mạnh tầm quan trọng của dự án này và tiềm năng của nó trong việc cải thiện cuộc sống và an toàn giao thông của chúng ta
Bố cục đề tài gồm 4 chương: Chương 1: Tổng quan về đề tài Chương này trình bày các phần: Tổng quan về xe tự hành Chương 2: Cơ sở lý thuyết và công nghệ
Chương này sẽ trình bày cơ sở lý thuyết như Raspbery Pi 4, Arduino UNO R3, , các công nghệ sử dụng, các chuẩn giao tiếp sử dụng trong mô hình
Chương 3: Thiết kế và thi công Trong chương này trình bày sơ đồ khối và thiết kế các khối chức năng như khối xử lý trung tâm Sau đó tiến trình layout và gia công mạch được tiến hành sau khi có mô hình và chương trình điều khiển, tiến hành thử nghiệm và kiểm tra hoạt động của hệ thống, tìm lỗi và khắc phục nếu có
Kết quả, nhận xét và đánh giá Chương này cho mô hình khi chạy thử xem kết quả và nhận xét sau đó đưa ra đánh giá về mô hình đã hoàn thành
Trang 16CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
Chương này trình bày các phần: các vấn đề liên quan đến xe tự hành, tổng quan về xử lý ảnh, trí tuệ nhân tạo
1.1 Xe tự hành
1.1.1 Định nghĩa về xe tự hành
Xe tự hành hay còn gọi là Autonomous Vehicles là các phương tiện di chuyển không cần sự can thiệp của con người để thực hiện các chức năng lái xe Còn được biết đến với các thuật ngữ khác như oto tự lái, xe tự lái hoặc xe tự động, xe tự hành tích hợp công nghệ đột phá như cảm biến, hệ thống điều khiển tự động, và trí tuệ nhân tạo để có khả năng nhận diện môi trường xung quanh, ra quyết định, và cách thực hiện các thao tác lái xe một cách an toàn và hiệu quả [1]
Hình 1.1 Tổng quan về xe tự hành
Xe tự hành là phương tiện được thiết kế để di chuyển giữa các điểm đến mà không cần ngưới lái xe phải liên tục theo dõi đường Công nghệ của xe tự hành phải đạt được các mục tiêu sau [1]:
Xử lý một lượng dữ liệu rất lớn và sử dụng nó để đưa ra quyết định thông minh Có khả năng thích nghi với môi trường đã biết hoặc chưa biết
Nhìn vào tương lai, chúng ta tin rằng vô lăng của xe sẽ biến mất hoàn toàn và chiếc xe sẽ tự hành một cách tự động kết hợp với việc sử dụng một số hệ thống cảm biến, radar, và bản đồ GPS Xe ô tô ngày càng thông minh hơn được minh họa trong hình 1.2
Trang 17Hình 1.2 Sự phát triển của xe tự hành trong tương lai
Những chiếc xe tự hành sử dụng nhiều công nghệ tự động khác nhau để cung cấp một phương thức di chuyển thông minh Việc cung cấp loại phương thức này đòi hỏi sự đồng bộ hài hòa giữa các cảm biến thụ thập thông tin về môi trường xung quanh, và các thuật toán phức tạp xử lý dữ liệu điều khiển xe trong thời gian thực
Những công nghệ này có thể nhận biết đối tượng, con người, ô tô, đánh dấu đường, biển báo, và đèn giao thông, tuân thủ các quy tắc giao thông đường bộ, và cảnh báo nhiều mối nguy hiểm không đoán trước được
Các hệ thống xe tự hành được phân loại dựa trên mức độ độc lập và kiếm soát chúng, theo thang bảy cấp độ tương tự như được đặt ra bởi SAE International (Hiệp hội kỹ sư tự động) Cấp độ này bao gồm từ việc con người phải giữ lại toàn bộ kiểm soát (cấp độ 0) cho đến xe có khả năng hoàn toàn tự động trong mọi điều kiện (cấp độ 5)
Như vậy, xe tự hành được xem là một xu hướng quan trọng trong ngành công nghiệp ô tô và giao thông vận tải, với nhiều ứng dụng tiềm năng không chỉ trong lĩnh vực cá nhân mà còn trong các ứng dụng công nghiệp và dịch vụ [1]
1.1.2 Lịch sử phát triển của xe tự hành
Lịch sử phát triển của xe tự hành là một hành trình ấn tượng, đánh dấu bằng những bước tiến quan trọng và các sự kiện đáng chú ý Mọi khám phá bắt đầu với DARPA Grand Challenge váo năm 2004, nơi các xe tự hành đối đầu với thách thức của sa mạc để chứng minh khả năng của công nghệ này Đến năm 2007, DARPA Urban Challenge mở ra một chương mới, khi các xe tự hành phải đối mặt với môi trường đô thị phức tạp [2]
Sự xuất hiện của Google X và sau này là Waymo vào năm 2009 không chỉ đánh dấu bước tiến quan trọng mà còn đưa công nghệ xe tự hành từ giai đoạn nghiên cứu sang thực tế thương mai Cùng với đó, Uber và Apple cũng đưa vào cuộc đua với các dự án riêng của họ, tạo nên sự canh tranh sôi nổi trong lĩnh vực này
Trang 18Chức năng Autopilot của Tesla được giới thiệu vào năm 2015, mở ra một đợt sóng mới của xe tự hành, mặc dù đôi khi gặp phải những thách thức và tranh cãi an toàn Từ đó, xu hướng phát triển xe tự hành trở nên toàn cầu, với nhiều quốc gia và khu vực tham gia tích cực vào cuộc đua này
Nhìn chung, lịch sử phát triển của xe tự hành là một câu chuyện về đổi mới, thách thức và cam kết không ngừng, hứa hẹn một tương lai khi mà công nghệ này sẽ trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta [2]
1.1.3 Phân loại
Phân loại xe tự hành thường dựa trên mức độ độc lập và khả năng kiểm soát của con người Hiện nay, có thể sử dụng hệ thống phân loại theo cấp độ độc lập của SAE International (Hiệp hội kỹ sư tự động) như sau [3]:
Cấp độ 0, xe không có khả năng tự lái, mọi chức năng lái xe phụ thuộc vào sự
can thiệp của con người
Cấp độ 1, các chức năng hỗ trợ lái xe như cruise control thông minh và hệ thống
hỗ trợ đỗ xe có thể hoạt động, nhưng quyền kiểm soát vẫn ở tay con người
Cấp độ 2, đưa chúng ta vào lĩnh vực “Tự Lái Bộ”, trong đó xe có khả năng thực
hiện một số chức năng lái xe mà không cần sự can thiệp của của con người Tuy nhiên, con người vẫn hải sẵn sàng can thiệp khi cần
Cấp độ 3, mở ra khái niệm “Lái xe tự động có hạn”, nơi xe có thể tự động lái trong một số điều kiện nhất định và yêu cầu con người can thiệp khi hệ thống cần
Cấp độ 4, chúng ta đã bước vào lĩnh vực “Lái xe tự động toàn bộ”, trong đó xe
có khả năng tự động thực hiện hầu hết các nhiệm vụ lái xe mà mà không cần sự can thiệp của con người Tuy nhiên, có thể có một số hạn chế trong một số điều kiện cụ thể
Cuối cùng, cấp độ 5, đánh dấu sự hoàn toàn tự động, nơi xe có khả năng hoàn
toàn tự động mà không cần sự can thiệp của con người trong mọi điều kiện và môi trường đường Đây là mục tiêu cao cả của công nghệ xe tự hành, khi không còn sự cần thiết của người lái
Các cấp độ độc lập này cung cấp một khung pháp lý và kỹ thuật quan trọng để định hình sự tiến bộ của xe tự hành trong tương lai [3]
1.1.4 Cấu trúc cơ bản của xe tự hành
Cấu trúc cơ bản của xe tự hành là một hệ thống phức tạp và tích hợp nhiều thành phần công nghệ để đảm bảo khả năng tự lái an toàn và hiệu quả Trí tuệ nhân tạo (AI)
Trang 19đóng vai trò lớn trong việc xử lý dữ liệu và đưa ra quyết định thông minh về việc lái xe
Cảm biến chính của xe tự hành bao gồm radar, lidar, camera, và cảm biến tiệm cận Radar sử dụng sóng radio để đo khoảng cách và phát hiện vật thể, trong khi lidar sử dụng tia laser để tạo hình 3D của môi trường Camera đóng vai trog quan trọng trong việc nhận diện biển báo, dấu đường và các vật thể xung quanh, trong khi cảm biến tiệm cận được sử dụng để đo khoảng cách và tránh vật thể [4]
Hệ thống GPS làm nhiệm vụ xác định vị trí chính xác của xe, thường được kết hợp với các cảm biến khác để đảm bảo độ chính xác Hệ thống điều khiển tự động quản lý tốc độ, hướng đi và các chức năng lái xe khác mà không yêu cầu sự can thiệp của con người, dựa vào dữ liệu cảm biến và hệ thống AI
Bộ xử lý mạnh mẽ được tích hợp để xử lý lượng lớn dữ liệu và thực hiện các phép toán AI Hệ thống liên lạc và giao tiếp giúp xe tự hành tương tác với các xe khác và hạ tầng đường bộ, như biển báo giao thông thông minh,…
Hệ thống năng lượng và điện được sử dụng để cung cấp cho các thiết bị điện tử và động cơ xe Cơ cấu điều khiển động cơ bao gồm động cơ điện hoặc động cơ đốt trong, cùng với hệ thống lái và khung xe Hệ thống hỗ trợ lái xe như cruise control thông minh và hỗ trợ đỗ xe đảm bảo sự thuận tiện trong quá trình di chuyển
Cuối cùng, hệ thống bảo mật đảm bảo an toàn của xe trước các mối đe dọa mạng và tấn công Tất cả các thành phần này tương tác để tạo nên một hệ thống tự hành đồng bộ, khả năng tự động và an toàn trong môi trường đường bộ
Hình 1.3 Cấu tạo của xe tự hành[4]
1.2 Tổng quan về xử lý ảnh
1.2.1 Xử lý ảnh
Xử lý ảnh là một lĩnh vực của khoa học máy tính và kỹ thuật điện tử tập trung vào việc xử lý và phân tích hình ảnh Nó bao gồm nhiều phương pháp và kỹ thuật để
Trang 20chuyển đổi, phân tích và rút trích thông tin từ hình ảnh Dưới đây là một tổng quan về xử lý ảnh [5]:
Biến đổi hình ảnh
Phóng to và thu nhỏ: thay đổi kích thước của hình ảnh Xoay và cắt: thực hiện xoay hoặc cắt ảnh để đạt được góc nhìn mong muốn Chuyển đổi màu sắc và độ sáng: thay đổi màu sắc và độ sáng của ảnh
Nhận dạng đối tượng và nhận diện khuôn mặt
Học máy và Deep Learning: sử dụng mô hình học máy và mạng nơ-ron để nhận diện đối tượng và khuôn mặt
Xử lý ảnh y tế và khoa học
Segmentation trong y học: phân loại và đánh dấu các cấu trúc trong hình ảnh y tế Microscopy Image Analysis: xử lý ảnh từ kính hiển vi để phân tích các cấu trúc nhỏ
Ứng dụng thực tế
Xử lý ảnh video: theo dõi đối tượng, nhận dạng hành động trong video Thị giác máy: sử dụng trong xe tự lái, nhận diện vật thể trong thời gian thực
Challenges
Trang 21Nhiễu: nhiễu trong hình ảnh có thể làm giảm chất lượng của quá trình xử lý Biểu đồ đa chiều: đối với hình ảnh threedimensional, việc xử lý và hiển thị là một thách thức
1.2.2 Ứng dụng của xử lý ảnh trong xe tự hành
Xử lý ảnh đóng một vai trò quan trọng trong nhiều khía cạnh của công nghệ xe tự hành Dưới đây là một số ứng dụng quan trọng của xử lý ảnh trong lĩnh vực này [5]:
Nhận diện và theo dõi đối tượng
Hệ thống nhận diện đối tượng: sử dụng xử lý ảnh để nhận diện và phân loại các đối tượng như xe, người đi bộ, xe đạp, và các vật thể khác trong môi trường đường sá
Phân loại khu vực an toàn và nguy hiểm
Phân loại khu vực an toàn: xử lý ảnh giúp định rõ các khu vực an toàn và nguy hiểm, giúp hệ thống đưa ra quyết định về tốc độ và hướng di chuyển
Điều khiển tốc độ và khoảng cách
Theo dõi khoảng cách: sử dụng xử lý ảnh để đo lường khoảng cách giữa xe và các đối tượng xung quanh, từ đó điều khiển tốc độ của xe
Điều khiển đèn pha tự động
Điều chỉnh đèn pha: xử lý ảnh giúp tự động điều chỉnh ánh sáng đèn pha để tránh làm chói mắt người lái khác và cải thiện khả năng nhìn đêm
Xử lý dữ liệu lidar và radar
Trang 22Kết hợp với các cảm biến khác: kết hợp thông tin từ các cảm biến như LIDAR và Radar với dữ liệu từ xử lý ảnh để tạo ra một hình ảnh chính xác và toàn diện về môi trường xung quanh
Nhận diện biển báo giao thông
Đọc và nhận diện biển báo: sử dụng xử lý ảnh để nhận diện và đọc thông tin từ biển báo giao thông, giúp hệ thống tự động thích ứng với các quy tắc đường sá
1.3 Lý do chọn đề tài
Sự phát triển nhanh chóng của công nghệ tự hành: Lĩnh vực xe tự hành đang phát triển với tốc độ nhanh chóng và trở thành một xu hướng quan trọng trong ngành công nghiệp ô tô Sử dụng trí tuệ nhân tạo và xử lý ảnh là một phần quan trọng trong việc phát triển các hệ thống xe tự hành hiện đại
Cải thiện tính an toàn giao thông: Một trong những lợi ích quan trọng của xe tự hành là khả năng tăng cường tính an toàn giao thông Xử lý ảnh có thể giúp xe tự hành phát hiện và phản ứng đúng cách đối với các tình huống đường phố như biển báo giao thông, người đi bộ, xe cộ khác, và các trở ngại
Tích hợp dữ liệu từ các cảm biến hình ảnh: Hiện nay, các xe tự hành thường được trang bị nhiều camera và cảm biến hình ảnh để thu thập dữ liệu về môi trường xung quanh Sử dụng xử lý ảnh giúp khai thác tối đa thông tin từ các nguồn này để đảm bảo hoạt động an toàn và hiệu quả
Khả năng thích nghi với tình huống thay đổi: Mô hình xe tự hành phải có khả năng thích nghi với các tình huống đường phố thay đổi liên tục Xử lý ảnh có thể cung cấp thông tin thời gian thực và chi tiết về môi trường, giúp xe tự hành đưa ra các quyết định thông minh trong thời gian ngắn
Nhu cầu trong ngành công nghiệp và nghiên cứu: Công nghiệp ô tô, công nghệ
Trang 23thông tin và nghiên cứu trí tuệ nhân tạo đang đặt nhiều nguồn lực vào việc phát triển các hệ thống xe tự hành Vì vậy, có nhu cầu lớn cho các nghiên cứu liên quan đến việc sử dụng xử lý ảnh trong mô hình xe tự hành
Thách thức kỹ thuật và nghiên cứu tiềm năng: Đề tài này đối diện với nhiều thách thức kỹ thuật thú vị, chẳng hạn như việc phát triển các thuật toán xử lý ảnh tiên tiến để nhận diện đối tượng và tạo ra mô hình dự đoán cho hành vi của xe tự hành Nghiên cứu trong lĩnh vực này có tiềm năng tạo ra các đóng góp quan trọng đối với ngành công nghiệp và xã hội
Tóm lại, lý do chọn đề tài này xuất phát từ sự quan trọng và tiềm năng của việc sử dụng xử lý ảnh trong mô hình xe tự hành, cũng như nhu cầu gia tăng trong ngành và sự hấp dẫn của các thách thức nghiên cứu liên quan
1.4 Tính cấp thiết của đề tài
Đề tài "Mô hình xe tự hành sử dụng xử lý ảnh" có tính cấp thiết cao vì nó đáp ứng một số vấn đề quan trọng và mang lại lợi ích cho nhiều khía cạnh trong xã hội và công nghiệp, bao gồm:
Tăng cường an toàn giao thông: Xe tự hành có khả năng giảm tai nạn giao thông do người lái gây ra do yếu tố con người như mệt mỏi, sai lầm, hoặc thiếu tập trung Sử dụng xử lý ảnh giúp xe tự hành phát hiện và phản ứng đúng cách đối với các tình huống nguy hiểm, giảm nguy cơ tai nạn
Cải thiện tính hiệu quả và tiện ích giao thông: Mô hình xe tự hành có khả năng tối ưu hóa việc di chuyển trên đường và giảm tắc nghẽn giao thông Điều này có thể giảm thời gian di chuyển, tiết kiệm nhiên liệu, và giảm ô nhiễm môi trường
Sự phát triển của ngành công nghiệp ô tô và công nghệ thông tin: Xe tự hành là một lĩnh vực đang phát triển mạnh mẽ và có tiềm năng thúc đẩy sự phát triển của ngành công nghiệp ô tô và công nghệ thông tin Điều này có thể tạo ra nhiều cơ hội mới về công việc làm và doanh nghiệp
Thách thức giao thông đô thị: Trong các thành phố đông dân cư, tắc nghẽn giao thông và ô nhiễm môi trường trở thành vấn đề ngày càng nghiêm trọng Mô hình xe tự hành có khả năng giúp giải quyết một phần thách thức này bằng cách cải thiện quản lý và tối ưu hóa giao thông đô thị
Sự phát triển của trí tuệ nhân tạo và xử lý ảnh: Đề tài này cung cấp cơ hội để nghiên cứu và phát triển các thuật toán và công nghệ xử lý ảnh tiên tiến, đóng góp vào sự phát triển của trí tuệ nhân tạo và xử lý ảnh không chỉ trong lĩnh vực xe tự hành mà còn trong các ngành khác
Trang 24Sự thay đổi trong văn hóa giao thông: xe tự hành có khả năng thay đổi cách chúng ta sử dụng và quản lý giao thông đường bộ Điều này đòi hỏi sự nghiên cứu và phát triển để đảm bảo tính an toàn và tiện ích của hệ thống xe tự hành
Tóm lại, đề tài này có tính cấp thiết cao do nó liên quan trực tiếp đến sự an toàn và hiệu quả của giao thông đường bộ, cũng như có tiềm năng thúc đẩy sự phát triển của nhiều lĩnh vực khác, từ công nghiệp ô tô đến công nghệ thông tin và trí tuệ nhân tạo
1.5 Mục tiêu của đề tài
Mục tiêu của đề tài này là phát triển một hệ thống xe tự hành thông minh, an toàn và hiệu quả dựa trên xử lý ảnh để cải thiện tính an toàn và tiện ích giao thông đường bộ
1.6 Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của đề tài này là phát triển và nghiên cứu các công nghệ và thuật toán để tạo ra một hệ thống xe tự hành thông minh dựa trên xử lý ảnh, đồng thời cũng nhằm đóng góp vào sự phát triển của lĩnh vực này và cải thiện tính an toàn và hiệu quả của giao thông đường bộ
1.7 Giới hạn đề tài
Vì do là đề tài xử lý hình ảnh nên còn rất nhiều vấn đề làm ảnh hướng tới biển báo như ánh sáng, trầy xước, khi vào ban đêm sẽ khó xử lý hình ảnh
1.8 Nội dung đề tài
Bố cục của đề tài gồm 4 chương: Chương 1: Tổng quan về đề tài Chương này trình bày tổng quan về xe tự hành, xử lý ảnh và trí tuệ nhân tạo AI Chương 2: Cơ sở lý thuyết vả công nghệ
Chương này trình bày cơ sở lý thuyế như Raspbery Pi 4, Arduino UNO R3, các công nghệ sử dụng, các chuẩn giao tiếp sử dụng trong mô hình
Chương 3: Thiết kế và thi công mô hình Chương này trình bày sơ đồ khối và thi công mô hình Trong chương này trình bày sơ đồ khối và thiết kế các khối chức năng như khối xử lý trung tâm Sau đó tiến trình layout và gia công mạch được tiến hành Tiếp theo, hệ thống mô hình hoàn chỉnh đã được xây dựng trước đó được lắp ráp để từ đó có thể xây dựng lưu đồ giải thuật và viết chương trình điều khiển cho hệ thống Cuối cùng, sau khi có mô hình và chương trình
Trang 25điều khiển, tiến hành thử nghiệm và kiểm tra hoạt động của hệ thống, tìm lỗi và khắc phục nếu có
Chương 4: Kết quả, nhận xét và đánh giá Chương này trình bày những kết quả đã đạt được qua 15 tuần thực hiện mô hình, kết quả thực tế mô hình đã làm được bao gồm kết quả chạy các chức năng của mô hình và kết quả phần mềm Qua đó đánh giá một vài thông số để đưa ra nhận xét ưu điểm và nhược điểm của mô hình
Trang 26CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
Chương này sẽ trình bày cơ sở lý thuyết như xử lý ảnh, Arduino UNO R3, Raspbery Pi 4, các công nghệ sử dụng trong mô hình
2.1 Xử lý ảnh
2.1.1 Định nghĩa xử lý ảnh
Xử lý ảnh một trong những lĩnh vực khá quan trọng của khoa học máy tính và công nghệ thông tin, tập trung vào việc xử lý và hiểu thông tin từ hình ảnh và video Được sử dụng rộng rãi trong nhiều lĩnh vực, xử lý ảnh đòi hỏi sự kết hợp giữa các phương pháp truyền thống và công nghệ tiên tiến nhằm giải quyết các thách thức phức tạp trong việc đánh giá và xử lý dữ liệu hình ảnh [6]
Hình 2.1 Quá trình xử lý ảnh
Quá trình tiền xử lý ảnh là bước rất quan trọng, trong đó hình ảnh sẽ được làm sạch, loại bỏ nhiễu, và điều chỉnh để chuẩn bị cho các bước xử lý tiếp theo Nhận diện đối tượng và nhận dạng đưa ra khả năng xác định và phân loại các đối tượng trong hình ảnh, từ khuôn mặt đến vật thể
Hình 2.2 Các bước cơ bản trong một hệ thống xử lý ảnh
Phân loại hình ảnh đưa ra khả năng đánh giá loại hoặc nhãn của hình ảnh, hỗ trợ trong việc tổ chức và quản lý dữ liệu lớn Phân đoạn hình ảnh giúp phân chia hình ảnh thành các vùng có ý nghĩa, cung cấp cái nhìn tổng quan và chi tiết về nội dung
Trích xuất đặc trưng từ hình ảnh là quá trình xác định và rút trích các đặc trưng quan trọng, hỗ trợ trong việc nhận biết và hiểu biết về thông tin hình ảnh Nhận diện hình ảnh chuyển động đặt ra khả năng theo dõi và nhận diện các vùng chuyển động trong video, đóng vai trò quan trọng trong an ninh và giám sát
Xử lý ảnh thường sử dụng các phương pháp học máy, trong đó đặc biệt là học sâu, để tự động học và cải thiện khả năng xử lý dữ liệu hình ảnh Với ứng dụng rộng
Trang 27rãi từ y học đến xe tự hành và giải trí số, xử lý ảnh là một lĩnh vực đầy hứa hẹn và đóng vai trò quan trọng trong cuộc cách mạng công nghiệp 4.0 [6]
2.1.2 Các vấn đề cơ bản trong xử lý ảnh
2.1.2.1 Nén chỉnh biến dạng
Ảnh thu nhận thường bị biến dạng do các thiết bị quang trọng và điện tử
Hình 2.3 Ảnh thu nhận và ảnh mong muốn
Để khắc phục người ta sử dụng các phép chiếu, các phép chiếu thường được xây dựng trên tập các điểm điều khiển
Giả sử (Pi, Pi′)i = 1, 𝑛̅̅̅̅̅ có n các tập điều khiển Tìm hàm f: Pi ⟼ f(Pi) sao cho
∑||f(Pi) − Pi′||2
𝑛𝑖=1
→ 𝑚𝑖𝑛 Giả sử ảnh bị biến đổi chi bao gồm: Tịnh tiến, quay, tỉ lệ biến dạng bậc nhất tuyến tính Khi đó hàm f có dạng:
f(x,y) = (a1x + b1y + c1, a2x + b2y + c2) Ta có:
𝜙 = ∑(𝑓(𝑃𝑖) − 𝑃𝑖′)2𝑛
𝑖=1
= ∑[(𝑎1𝑥𝑖+ 𝑏1𝑦𝑖 + 𝑐1− 𝑥𝑖′)2+ (𝑎2𝑥𝑖 + 𝑏2𝑦𝑖 + 𝑐2− 𝑦𝑖′)2]
𝑛𝑖=1
Để 𝜙 → 𝑚𝑖𝑛 thì
{𝜕𝜙𝜕𝑎1 = 0
𝜕𝜙𝜕𝑏1 = 0
𝜕𝜙𝜕𝑐1 = 0
↔
{ ∑ 𝑎1𝑥𝑖2
𝑛𝑖=1
+ ∑ 𝑏1𝑥𝑖𝑦𝑖
𝑛𝑖=1
+ ∑ 𝑐1𝑥𝑖
𝑛𝑖=1
= ∑ 𝑥𝑖𝑥𝑖′
𝑛𝑖=1
∑ 𝑎1𝑥𝑖𝑦𝑖
𝑛𝑖=1
+ ∑ 𝑏1𝑦𝑖2
𝑛𝑖=1
+ ∑ 𝑐1𝑦𝑖
𝑛𝑖=1
= ∑ 𝑦𝑖𝑥𝑖′
𝑛𝑖=1
∑ 𝑎1𝑥𝑖
𝑛𝑖=1
+ ∑ 𝑏1𝑦𝑖
𝑛𝑖=1
+ 𝑛𝑐1 = ∑ 𝑥𝑖′
𝑛𝑖=1
Trang 28Giải hệ phương trình tuyến tính tìm được a1, b1, c1 Tương tự tìm được a2, b2, c2
Xác định được hàm f
2.1.2.2 Khử nhiễu
Có 2 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 Nhiễu ngẫu nhiên:vết bẩn không rõ nguyên nhân đến khắc phục bằng các phép lọc
Tăng số mức xám: Tiếp cận này thực hiện việc nội suy để tạo ra các mức xám trung gian, thường sử dụng kỹ thuật nội suy Mục tiêu của quá trình này là tăng cường độ mịn của ảnh và giảm tính không đồng đều
2.1.2.4 Nhận dạng ảnh
Nhận dạng tự động tên gọi tiếng anh là automatic recognition, đặt ra các thách thức quan trọng trong thị giác máy, bao gồm mô tả, phân loại và nhóm các mẫu trong nhiều lĩnh vực khoa học khác nhau Một câu hỏi quan trọng xuất hiện là định nghĩa "mẫu" là gì Theo Watanabe, một trong những người đầu tiên nghiên cứu lĩnh vực này, mẫu được mô tả như một thực thể, xác định mơ hồ và có thể được đặt tên
Ví dụ về mẫu có thể là ảnh vân tay, hình ảnh của một đối tượng được chụp, chữ viết, khuôn mặt người, hoặc một biểu đồ tín hiệu tiếng nói Khi đã biết về một mẫu cụ thể, quá trình nhận dạng hoặc phân loại mẫu đó có thể được thực hiện theo một trong những cách sau[6]:
Phân loại có mẫu (supervised classification), Bao gồm các phương pháp như phân tích phân biệt, trong đó mẫu đầu vào được xác định là một thành phần của một lớp đã biết trước Phân loại không có mẫu (unsupervised classification hay clustering),Trong trường hợp này, các mẫu được gán vào các lớp khác nhau dựa trên
Trang 29một tiêu chuẩn đồng dạng, mà cho đến thời điểm phân loại, lớp không biết hoặc chưa được đặt tên
2.1.2.5 Nén ảnh
Để giảm thiểu không gian lưu trữ, thường có hai phương hướng chính: nén bảo toàn thông tin và nén không bảo toàn thông tin Nén không bảo toàn thông tin thường mang lại hiệu suất nén cao hơn, tuy nhiên, điều này thường đi kèm với sự giảm mất thông tin và khả năng phục hồi kém Dựa trên hai hướng tiếp cận này, có bốn cách tiếp cận cơ bản trong quá trình nén ảnh[6]:
Nén ảnh thống kê là phương pháp nén dựa trên việc phân tích tần suất xuất hiện của các giá trị điểm ảnh, và từ đó áp dụng chiến lược mã hóa tương ứng Một đại diện tiêu biểu của kỹ thuật nén này là định dạng *.TIF
Nén ảnh không gian là một kỹ thuật nén dựa trên vị trí không gian của các điểm ảnh để thực hiện quá trình mã hóa, tận dụng sự tương đồng giữa các điểm ảnh trong các khu vực gần nhau Một ví dụ cụ thể cho phương pháp này là định dạng nén *.PCX Nén ảnh thông qua phép biến đổi là một phương pháp tiếp cận chủ yếu theo hướng nén không bảo toàn thông tin, làm cho kỹ thuật này thường mang lại hiệu suất nén cao hơn Một ví dụ điển hình cho phương pháp này là định dạng *.JPG
Nén ảnh Fractal là một phương pháp sử dụng tính chất Fractal của các đối tượng trong ảnh, nhấn mạnh sự lặp lại của các chi tiết Kỹ thuật nén này thực hiện tính toán để chỉ cần lưu trữ phần gốc của ảnh và quy luật sinh ra ảnh dựa trên nguyên lý Fractal
2.1.3 Thu nhận và biển diễn ảnh
2.1.3.1 Thu nhận ảnh
Các thiết bị thu nhận ảnh bao gồm camera và máy quét (scanner), có khả năng tạo ra ảnh đen trắng Có hai loại chính của ảnh tương ứng với hai loại thiết bị thu nhận chính: Raster và Vector [6]
Thiết bị thu nhận ảnh thông thường Raster thường là camera, trong khi thiết bị thu nhận ảnh thông thường Vector bao gồm cảm biến hoặc bàn số hóa (Digitalizer), hoặc có thể được chuyển đổi từ ảnh Raster
Tính chung của các hệ thống thu nhận ảnh thường bao gồm hai bước chính[6]: Cảm biến:Chuyển đổi năng lượng quang học thành năng lượng điện Trong trường hợp của camera và máy quét, cảm biến sẽ chụp thông tin ánh sáng từ môi trường và biến đổi thành tín hiệu điện Tổng hợp năng lượng điện thành ảnh: Các tín hiệu điện từ cảm biến sau đó được xử lý để tạo ra ảnh kỹ thuật số hoặc ảnh trên giấy tùy thuộc vào loại thiết bị Trong trường hợp ảnh Raster, quá trình này thường liên
Trang 30quan đến việc ghi lại các giá trị pixel, trong khi ảnh Vector thường được tạo ra thông qua việc xử lý các dữ liệu vị trí và đối tượng
2.1.3.2 Biểu diễn ảnh
Ảnh trên máy tính là sản phẩm của quá trình thu thập thông tin thông qua các phương pháp số hoá tích hợp trong các thiết bị kỹ thuật đa dạng Việc lưu trữ hình ảnh được thực hiện với hai mục đích chính [6]:
Tiết kiệm bộ nhớ: Quá trình lưu trữ thông tin một cách hiệu quả giúp giảm không gian bộ nhớ cần thiết để lưu trữ ảnh
Giảm thời gian xử lý: Tối ưu hóa lưu trữ ảnh đồng thời giảm thời gian cần thiết cho quá trình xử lý hình ảnh
Cách lưu trữ thông tin trong bộ nhớ có ảnh hưởng lớn đến quá trình hiển thị, in ấn và xử lý hình ảnh Ảnh được coi là một tập hợp các điểm có kích thước tương đồng, và sử dụng nhiều điểm ảnh sẽ làm cho bức ảnh trở nên đẹp, mịn và hiển thị chi tiết rõ ràng hơn Đặc điểm này được gọi là độ phân giải, đánh giá mức chi tiết và chất lượng của hình ảnh.Việc chọn độ phân giải phù hợp tùy thuộc vào nhu cầu sử dụng cụ thể và đặc tính của mỗi hình ảnh Dựa trên yêu cầu này, thường có hai mô hình cơ bản để biểu diễn ảnh
Mô hình Rater
Mô hình Raster là cách phổ biến nhất để biểu diễn ảnh hiện nay, trong đó hình ảnh được ánh xạ dưới dạng một ma trận các điểm (pixel) Thường thu thập thông tin từ các thiết bị như máy ảnh và máy quét Mỗi điểm ảnh trong mô hình Raster có thể được biểu diễn bằng 1 hoặc nhiều bít, tùy thuộc vào yêu cầu cụ thể của ứng dụng [6] Mô hình Raster mang lại thuận lợi cho việc hiển thị và in ấn Ngày nay, công nghệ phần cứng cung cấp các thiết bị thu nhận ảnh Raster có tốc độ nhanh và chất lượng cao cho cả đầu vào và đầu ra Microsoft đã đưa ra một khuôn dạng ảnh trung gian là DIB (Device Independent Bitmap) để thuận tiện cho việc hiển thị trong môi trường Windows Hình ảnh 1.8 mô tả quy trình chung để hiển thị ảnh Raster thông qua DIB
[6]
Hình 2.4 Quá trình hiển thị và chỉnh sửa, lưu trữ ảnh thông qua DIB
Trang 31Một trong những hướng nghiên cứu cơ bản trên mô hình biểu diễn ảnh Raster là kỹ thuật nén ảnh Các kỹ thuật nén ảnh thường được phân loại thành hai hướng chính là nén bảo toàn và không bảo toàn thông tin
Nén Bảo Toàn:Có khả năng phục hồi hoàn toàn dữ liệu ban đầu sau khi được nén Các định dạng như BMP, TIF, GIF, PCX thường thuộc hướng này
Nén Không Bảo Toàn: Chỉ có khả năng phục hồi độ sai số cho phép nào đó, và dữ liệu ban đầu không thể được khôi phục một cách hoàn toàn Các định dạng hỗ trợ kỹ thuật nén như JPEG thường thuộc hướng này
Hiện nay, trên thế giới có hơn 50 định dạng ảnh thông dụng, bao gồm cả các định dạng hỗ trợ kỹ thuật nén có khả năng phục hồi dữ liệu 100% và nén với độ sai số được chấp nhận Các định dạng này cung cấp sự linh hoạt cho việc lựa chọn theo nhu cầu và yêu cầu cụ thể của ứng dụng và người dùng [6]
Mô hình Vector
Mô hình Vector là một phương pháp biểu diễn ảnh được thiết kế không chỉ để tiết kiệm không gian lưu trữ mà còn để dễ dàng trong quá trình hiển thị, in ấn, sao chép, di chuyển và tìm kiếm Các ưu điểm của kỹ thuật biểu diễn Vector thường được thấy rõ trong việc đáp ứng các yêu cầu này
Trong mô hình Vector, phương pháp sử dụng hướng giữa các vector của điểm ảnh lân cận để mã hóa và tái tạo hình ảnh ban đầu Ảnh vector có thể được thu thập trực tiếp từ các thiết bị số hoá như Digital hoặc được chuyển đổi từ ảnh Raster thông qua các chương trình số hoá.Mặc dù công nghệ phần cứng cung cấp thiết bị xử lý với tốc độ nhanh và chất lượng cho cả đầu vào và đầu ra, thường chỉ hỗ trợ cho ảnh Raster Do đó, các nghiên cứu về biểu diễn Vector thường tập trung vào chuyển đổi từ ảnh Raster, nhằm kết hợp sự linh hoạt và ưu điểm của cả hai mô hình trong nhiều ứng dụng khác nhau [6]
Hình 2.5 Sự chuyển đổi giữa các mô hình biểu diễn ảnh
2.2 Arduino UNO R3
2.2.1 Giới thiệu
Năm 2005, Viện Thiết kế Tương tác Arduino được thành lập tại Ivrea, Ý Cái tên "Arduino" được lấy từ một quán bar ở Ivrea, nơi những người sáng lập thường gặp nhau Arduino là một bo mạch xử lý dùng để lập trình và xây dựng các ứng dụng giao
Trang 32tiếp giữa các thành phần hoặc với môi trường xung quanh Ngôn ngữ lập trình Arduino rất dễ đọc và các thiết bị ngoại vi trên bo mạch được tiêu chuẩn hóa để người dùng không có thiết bị điện tử có thể lập trình Arduino được thiết kế cho nền tảng AVR Atmel 8bit hoặc ARM Atmel 32bit Một bo mạch Arduino bao gồm các thành phần như giao diện USB, các chân đầu vào analog và đầu nối I/O kỹ thuật số được thiết kế để tương thích với nhiều bo mạch mở rộng khác nhau [7]
Các thiết bị dựa trên Arduino được lập trình bằng ngôn ngữ đặc biệt dựa trên ngôn ngữ Wires, một biến thể của C/C++ Sau khi nền tảng Wires đã sẵn sàng, các nhà nghiên cứu đã làm việc để phân phối và cải tiến nó trong cộng đồng nguồn mở Arduino nhằm mục đích cung cấp một phương pháp đơn giản và giá cả phải chăng cho những người có sở thích, sinh viên và chuyên gia Thông tin về phần cứng Arduino được công bố rộng rãi để những ai muốn tự làm bo mạch Arduino cho riêng mình có thể thực hiện Tính đến năm 2011, có hơn 300.000 bo mạch Arduino chính thức được sản xuất thương mại và đến năm 2023, con số đó sẽ tăng lên khoảng 700.000 bo mạch chính thức được người dùng sử dụng
Ngoài công ty Smart Projects ở Italy, phần cứng Arduino gốc, còn có một số board Arduino tương đương khác được thiết kế và sản xuất bởi công ty SparkFun Electronics ở Mỹ [7] Arduino đã có nhiều phiên bản phù hợp cho các mục đích sử dụng khác nhau:
Hình 2.6 Những phiên bản của Arduino
2.2.2 Arduino Uno
“Uno” có nghĩa là “một” trong tiếng Ý và được chọn là tên cho phiên bản Arduino 1.0 sắp tới, đó sẽ là phiên bản tài liệu tham khảo chính cho Arduino Arduino Uno là phiên bản mới nhất trong các board Arduino và là mô hình tham chiếu cho nền tảng Arduino
Trang 33Arduino Uno là một “board điều khiển” dựa trên vi điều khiển Atmega328 Arduino có 14 chân đầu vào/ra analog, tần số chạy là 16MHz, có kết nối USB, một jack cắm nguồn, một tiêu đề ICSP và một nút reset Nó đi kèm với tất cả các thành phần cần thiết để hỗ trợ vi điều khiển và chỉ cần kết nối với máy tính qua cáp USB hoặc cấp nguồn để bắt đầu sử dụng [8]
Hình 2.7 Arduino Uno
Arduino Uno khác biệt với các phiên bản trước bởi việc không sử dụng chip FTDI để điều khiển USB-to-serial Thay vào đó, nó được trang bị tính năng Atmega16U2 để lập trình và chuyển đổi USB-to-serial
Phiên bản (R2) của Arduino Uno sử dụng chip Atmega 8U2 và có một điện trở kéo dòng 8U2 HWB xuống đất, giúp việc chuyển sang chế độ FDU (DFU) dễ dàng hơn
Phiên bản R3 của Arduino Uno (phiên bản hiện tại) có các cải tiến sau: Phiên bản R3 của Arduino Uno cũng có thêm chân SDA và SCL, được đặt gần chân Aref Ngoài ra, hai chân mới được đặt gần chân RESET, và có chân IOREF để điều chỉnh dòng cung cấp
Mạch được thiết kế lại để có độ bền tốt hơn Atmega16U2 thay thế cho Atmega8U2
2.2.3 Cấu trúc, thông số
Bảng 2.1 Một vài thông số Arduino Uno R3
Trang 34Dòng tiêu thụ Khoảng 30mA Số chân digital I/O 14 chân (6 chân hardware PWM) Số chân analog 6 chân (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30mA
Bộ nhớ Flash 32KB (Atmega328) với 0,5KB dùng bởi
Board Arduino thường cung cấp hầu hết các chân I/O của vi điều khiển để sử dụng với mạch ngoại vi Các phiên bản như diecimila, duemilanove, và hiện tại là Uno cung cấp 14 chân I/O digital, trong đó có 6 chân hỗ trợ chế độ điều chế độ rộng xung (PWM), và 6 chân I/O analog, có thể được sử dụng như là 6 chân I/O digital khác Những chân này được đặt ở phía trên mặt board thông qua cái header cái khoảng 0,1 inch (tương đương 2,5 milimet) Các phiên bản như Arduino Nano, Arduino compatible Bare Bones Board và Boarduino được thiết kế với các chân header đực ở phía trên, giúp dễ dàng cắm chúng vào các breadboard Kích thước tối đa của mạch Arduino Uno là 2,7 inch (chiều dài) và 2,1 inch (chiều rộng), bao gồm kết nối USB và jack điện mở rộng vượt ra ngoài không gian ban đầu Có bốn lỗ vít cho phép gắn board vào một board khác [7]
2.2.3.2 Nguồn cấp
Arduino Uno có thể được cấp nguồn thông qua kết nối USB hoặc từ nguồn điện bên ngoài Nguồn điện được chọn tự động Nguồn cấp bên ngoài (không phải là USB) có thể được cung cấp từ bộ chuyển đổi AC – DC hoặc nguồn pin Bộ chuyển đổi có thể được kết nối bằng cách cắm một đầu cắm đường kính 2,1mm vào lỗ cắm điện trên
Trang 35board mạch Nếu sử dụng nguồn từ pin, nó có thể được kết nối vào hai chân GND và Vin trên header kết nối POWER
Board mạch có thể hoạt động với nguồn cấp từ 6 đến 20V Tuy nhiên, nguồn cấp tối thiểu thường là 7V Các chân 5V có thể nhận nguồn nhỏ hơn 5V, nhưng trong trường hợp này, hoạt động của board có thể không ổn định Nếu sử dụng nguồn cấp lớn hơn 12V, bộ ổn áp sẽ nóng và có thể làm hỏng mạch Do đó, khuyến nghị nên sử dụng trong khoảng 7 đến 12V
Các chân nguồn trên Arduino Uno bao gồm [7]: Vin – đây là điện áp đầu vào của board Arduino khi sử dụng nguồn cấp bên ngoài Có thể cấp nguồn qua chân Vin hoặc thông qua các jack cắm kết nối với chân này
5V – đây là chân đầu ra được định rõ là 5V Board mạch có thể nhận nguồn từ jack cắm, kết nối USB, hoặc chân Vin của board Cấp nguồn điện thông qua chân 5V hoặc 3,3V mà không tuân theo khuyến nghị có thể gây hỏng board mạch
3,3V – đây là nguồn cấp 3,3V được định rõ trên board mạch Dòng cấp tối đa là 50mA
GND – đây là chân nối đất IOREF – đây là chân cấp điện áp tham chiếu cho vi điều khiển hoạt động Bộ hỗ trợ cấu hình chuẩn của Arduino cho phép đọc điện áp trên chân IOREF và lựa chọn nguồn cấp phù hợp hoặc kích hoạt dịch điện áp trên đầu ra để làm việc với các nguồn 5V hoặc 3,3V [7]
2.2.3.3 Đầu vào, đầu ra
Trên board mạch Arduino, có tổng cộng 14 chân digital có thể sử dụng như đầu vào hoặc đầu ra bằng cách sử dụng các hàm pinMode(), digitalWrite(), và digitalRead() Các chân này hoạt động ở mức điện áp 5V và có khả năng cung cấp hoặc nhận dòng tối đa là 40mA Chúng cũng được kết nối với các điện trở mặc định từ 20 – 50KΩ[8] Ngoài ra, còn có một số chân có chức năng đặc biệt trên board Arduino Uno:
Chân nối tiếp (Serial): Chân 0 (RX) và chân 1 (TX) được sử dụng để nhận và truyền dữ liệu theo giao thức TTL Chúng được kết nối với các chân tương ứng trên vi điều khiển Atmega328 [8]
Chân ngắt ngoài (External Interrupt): Chân 2 và chân 3 có thể được thiết lập để thực hiện ngắt khi có thay đổi điện áp đột ngột hoặc điện áp quá thấp Thông thường, hàm attachInterrupt() được sử dụng để xử lý ngắn
Trang 36PWM (Pulse Width Modulation): Các chân 3, 5, 6, 9, và 10 có khả năng tạo xung PWM với độ rộng 8bit Hàm analogWrite() được sử dụng để điều chỉnh độ rộng xung đầu ra[8]
SPI (Serial Peripheral Interface): Các chân 10 (SS), 11 (MOSI), 12 (MISO), và 13 (SCK) hỗ trợ truyền dữ liệu theo giao thức SPI, sử dụng thư viện SPI [8]
LED: Chân 13 được kết nối với một đèn LED trên board Khi chân này ở mức điện áp cao, đèn LED sáng và khi chân này ở mức điện áp thấp, đèn LED tắt
Ta có thể xem kết nối giữa các chân của Arduino và Atmega328:
Hình 2.8 Sơ đồ nối chân Arduino và Atmega328 Arduino Uno cũng có 6 đầu ra analog, có đánh số từ A0 đến A5 Mỗi chân này cung cấp 10bit dữ liệu (tương ứng với 1024 giá trị khác nhau) Trên board Arduino Uno Ethernet, cũng có 6 chân đầu vào analog tương tự, có nhãn từ A0 đến A5 Cấp nguồn cho các chân là từ 0 đến 5V, tuy nhiên, phạm vi hoạt động có thể được thay đổi bằng cách sử dụng các chân AREF và hàm analogReference Ngoài ra, một số chân có chức năng riêng biệt:
TWI (Two-Wire Interface):Chân A4 (SDA) và chân A5 (SCL) hỗ trợ giao tiếp dữ liệu theo giao thức TWI (I2C) bằng cách sử dụng thư viện Wire
AREF (Analog Reference): Chân AREF được sử dụng để cung cấp điện áp tham chiếu cho đầu vào analog Bằng cách sử dụng hàm analogReference(), người dùng có thể chọn nguồn điện tham chiếu tùy ý
Reset: Chân reset được dùng để khởi động lại vi điều khiển Arduino Thông thường, nút reset trên board được sử dụng để thực hiện việc này, đặc biệt khi cần khởi động lại chương trình hoặc thiết lập trạng thái ban đầu
Trang 372.2.3.4 Bộ nhớ
Atmega328 trên Arduino Uno có 32KB bộ nhớ Flash, trong đó 0,5KB được dành riêng cho bootloader Bộ nhớ Flash là nơi lưu trữ các đoạn lệnh chương trình Một phần của bộ nhớ Flash thường được sử dụng cho bootloader
Vi điều khiển còn có 2KB bộ nhớ SRAM, đây là nơi lưu trữ các giá trị biến khai báo trong quá trình chạy chương trình Số lượng biến và dữ liệu sử dụng trong chương trình ảnh hưởng đến việc sử dụng bộ nhớ SRAM
Ngoài ra, Atmega328 cũng có 1KB bộ nhớ EPROM Bộ nhớ EPROM có thể đọc và ghi dữ liệu mà không bị mất khi mất điện Nó tương tự như một chiếc USB để lưu trữ dữ liệu[7]
2.3 Module điều khiển động cơ L298N
2.3.1 Giới thiệu sơ lược L298N
Module điều khiển động cơ L298N sử dụng để điều khiển động cơ DC và động cơ bước Trong đó module có một IC điều khiển động cơ L298 và một bộ điều chỉnh điện áp 5V 78M05 [9]
Ngoài ra, Module L298N có thể điều khiển 2 động cơ DC hoắc là tối đa 4 động cơ DC tùy thuộc vào mô hình ta muốn điều khiển với khả năng điều khiển hướng và tốc độ
Hình 2.9 Module điều khiển động cơ L298N Trong Module điều khiển động cơ L298N gồm có bộ điều chỉnh điện áp 78M05 IC điều khiển động cơ L298, điện trở, tụ điện , LED nguồn và juumper 5v tích hợp
Mạch điều khiển được thiết kế với bộ điều chỉnh điện áp 78M05, và để kích hoạt nó, bạn cần đặt jumper Khi nguồn điện nhỏ hơn hoặc bằng 12V, mạch sẽ sử dụng bộ điều chỉnh điện áp để cấp nguồn, và chân 5V có thể được sử dụng làm nguồn cung cấp cho vi điều khiển Tuy nhiên, không nên đặt jumper khi nguồn điện lớn hơn 12V, và chân 5V phải được cấp nguồn riêng cho mạch bên trong
Trang 38Chân ENA và ENB được sử dụng để điều khiển tốc độ của động cơ A và B, trong khi chân IN1 và IN2 cũng như IN3 và IN4 được sử dụng để điều khiển hướng quay của động cơ A và B Điều này tạo ra một cấu trúc điều khiển linh hoạt cho cả hai động cơ, cho phép bạn kiểm soát cả tốc độ và hướng chuyển động của chúng [9]
Hình 2.10 Module điều khiển động cơ L298N
2.3.2 Đặc điểm và thông số kỹ thuật module L298N
Bảng 2.2 Thông số kĩ thuật của Module L298N
Điện áp cấp cho động cơ ( tối đa) 46V
Cảm biến dòng điện cho mỗi động cơ Có tản nhiệt cho hiệu suất tốt hơn
Có đèn báo LED bật nguồn
Trang 39Ngoài ra module điều khiển động cơ L298N có thể được thay thế bằng các loại khác như : TMC2209, DR8825, A4988, L9110S, DRV8711
Mỗi loại module có những đặc tính và ưu điểm riêng, và sự thay thế phụ thuộc vào yêu cầu cụ thể của dự án hoặc ứng dụng Đối với các linh kiện khác, danh sách bao gồm:IC điều khiển động cơ LM298, Bộ điều khiển điện áp 78M05, Tụ điện, Điện trở, Tản nhiệt [9]
2.3.3 Sơ đồ chân Module điều khiển động cơ DC L298N
Bảng 2.3 Mô tả các chân cho module L298N
IN1 & IN2 Các chân đầu vào điều khiển hướng quay của động cơ A
IN3 & IN4 Các chân đầu vào điều khiển hướng quay của động cơ B
ENA Kích hoạt tín hiệu PWM cho động cơ A
VIB Kích hoạt tín hiệu PWM cho động cơ B
OUT1 & OUT2 Chân đầu ra cho động cơ A
OUT3 & OUT4 Chân đầu ra cho động cơ B
12V Đầu vào cấp nguồn 12
5V Cấp nguồn cho mạch logic bên trong IC L298N
GND Chân nối đất
Trang 40Hình 2.11 Cấu hình sơ đồ bố trí chân của L298N
Chân nguồn cấp cho động cơ(Power Pins) [9]
Module điều khiển động cơ DC L298N Arduino có 2 chân cấp nguồn đầu vào là VS và VSS GND là chân để nối đất
Hình 2.12 Sợ đồ 2 chân cấp nguồn đầu vào VS, VSS và chân nối đất GND
VS: Chân này dùng để cấp nguồn vào cho mạch H bên trong của IC Nguồn điện áp đầu vào từ 5V đến 12V
VSS: Chân này được sử dụng để cấp nguồn vào cho mạch logic bên trong IC L298N và điện áp của nó nằm trong khoảng từ 5V đến 7V
GND: Chân này được sử dụng để nối đất
Chân đầu ra (Output Pins) [9]
Kênh đầu ra của module điều khiển động cơ L298N Arduino có thứ tự như sau: OUT1 & OUT2 cho động cơ A và OUT3 & OUT4 cho động cơ B Chúng ta có thể sử dụng hai động cơ DC 5-12V