1. Trang chủ
  2. » Giáo Dục - Đào Tạo

mô hình xe tự hành sử dụng xử lý ảnh

100 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

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 2

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

Đà Nẵng, 12/2023

Trang 3

Tê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 4

Khoa Đ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 5

Trườ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 6

STT 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 7

11

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 8

Chú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 10

1.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 11

2.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 12

PHỤ 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 13

Hì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 14

STT 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 15

LỜ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 16

CHƯƠ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 17

Hì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 18

Chứ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 20

chuyể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 21

Nhiễ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 22

Kế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 23

thô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 24

Sự 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 26

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ư 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 27

rã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 28

Giả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 29

mộ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 30

quan đế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 31

Mộ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 32

tiế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 33

Arduino 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 34

Dò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 35

board 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 36

PWM (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 37

2.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 38

Châ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 39

Ngoà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 40

Hì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

Ngày đăng: 19/09/2024, 20:09