Kết quả đạt được, giá trị khoa học, khả năng ứng dụng của đề tài: 0.75đ/1đ - Đề tài “Thiết kế mô hình hệ thống điều khiển đèn giao thông tự động thông qua xử lý ảnh” sinh viên đã hoàn th
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 - ĐIỆN TỬ
CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ
ĐỀ TÀI:
THIẾT KẾ MÔ HÌNH HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG TỰ ĐỘNG
THÔNG QUA XỬ LÝ ẢNH
Giảng viên hướng dẫn: ThS NGÔ THỊ MINH HƯƠNG
NGUYỄN QUANG SƠN
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH : CÔNG NGHỆ KỸ THUẬT ĐIỆN – ĐIỆN TỬ
CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ
ĐỀ TÀI:
THIẾT KẾ MÔ HÌNH HỆ THỐNG
ĐIỀU KHIỂN ĐÈN GIAO THÔNG TỰ ĐỘNG
THÔNG QUA XỬ LÝ ẢNH
NGUYỄN QUANG SƠN
1911505120236
Đà Nẵng, tháng 6 năm 2023
Trang 3NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
(Dành cho người hướng dẫn)
I Thông tin chung:
1 Họ và tên sinh viên: Trần Quang Quý (1); Nguyễn Quang Sơn (2)
2 Lớp: (1)19D2; (2)19D2 Mã SV: (1)1911505120144; (2)1911505120236
3 Tên đề tài: Thiết kế mô hình hệ thống điều khiển đèn giao thông tự động thông qua
xử lý ảnh
4 Người hướng dẫn: Ngô Thị Minh Hương Học hàm/ học vị: Thạc sĩ
II Nhận xét, đánh giá đồ án tốt nghiệp:
1 Về tính cấp thiết, tính mới, mục tiêu của đề tài: (1đ/1đ)
Đề tài cơ bản đã đạt được mục tiêu yêu cầu của ĐATN
2 Về kết quả giải quyết các nội dung nhiệm vụ yêu cầu của đồ án: (3.75đ/4đ)
Đề tài đã xây dựng hệ thống đếm phương tiện qua hình ảnh với đầu vào là hình ảnh
có chứa đối tượng cần đếm từ ảnh chụp Thông qua quá trình xử lý ảnh sẽ cho ra kết
quả là số lượng phương tiện của mỗi làn đường từ đó gửi dữ liệu xuống kít điều khiểnarduino để điều khiển tín hiệu đèn giao thông điều tiết giao thông
3 Về hình thức, cấu trúc, bố cục của đồ án tốt nghiệp: (2đ/2đ)
Đồ án được trình bày theo format chuẩn
4 Kết quả đạt được, giá trị khoa học, khả năng ứng dụng của đề tài: (0.75đ/1đ)
- Đề tài “Thiết kế mô hình hệ thống điều khiển đèn giao thông tự động thông qua xử
lý ảnh” sinh viên đã hoàn thành đề tài đúng với mục tiêu đề ra ban đầu
- Đề tài có tính thực tiễn cao, có khả năng tiếp tục phát triển
5 Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa:
Chỉnh sửa lại các lỗi chính tả, hình ảnh
III Tinh thần, thái độ làm việc của sinh viên: (2đ/ 2đ)
- Có tinh thần trách nhiệm và nhận thức được nhiệm vụ khi được giao Đồ án
Trang 4IV Đánh giá:
1 Điểm đánh giá: 9.5/10 (lấy đến 1 số lẻ thập phân)
2 Đề nghị: ☒ Được bảo vệ đồ án ☐ Bổ sung để bảo vệ ☐ Không được bảo vệ
Đà Nẵng, ngày 25 tháng 5 năm 2023
Người hướng dẫn
Ngô Thị Minh Hương
Trang 6Ngày nay cùng với sự phát triển của khoa
Trang 7Ngày nay cùng với sự phát triển của khoa
Ngày nay cùng với sự phát triển của khoa
Trang 8Ngày nay cùng với sự phát triển của khoa học kỹ thuật, xã hội ngày càng vănminh và hiện đại, sự phát triển ở đô thị ngày một đi lên Nhu cầu về giao thông ngàycàng trở nên cấp thiết, nhất là trong các khu vực thành thị.Sự phát triển nhanh chóngcủa nền kinh tế và lượng dân cư đông đúc Nhu cầu đi lại, vận chuyển cũng tăng lênnhanh chóng đi kèm theo nó là bài toán tắc nghẽn ùn tắc giao thông Ùn tắc giao thônggây thiệt hại không nhỏ cho sự phát triển kinh tế quốc gia, giảm hiệu suất lao động vàtăng các chi phí không cần thiết trong quá trình sản xuất Trong bối cảnh kinh tế lạmphát và khó khăn như hiện nay, lãng phí trong giao thông lại đặt thêm một gánh nặngđối với đời sống kinh tế của người dân Qua thực trạng đó, nhóm muốn xây dựng một
hệ thống điều khiển giao thông tự động, phân luồng trực tiếp và hiệu quả hơn phần nào
đó giảm bớt tình trạng ùn tắc giao thông Đồng thời tiếp cận, bổ sung các kiến thứcmới, cũng như củng cố lại những kỹ năng kiến thức trong suốt quá trình học tập tại
Trang 9Tóm tắt nội dung:
Chương 1: Tổng quan về đề tài nêu lên những vấn đề cấp thiết của thực trạng giao
thông nước ta Cùng với đó giới thiệu tổng quát về giải pháp
Chương 2: Cơ sở lý thuyết Đây là chương cũng cố lý thuyết nền tảng về kỹ thuật và
công nghệ liên quan
Chương 3: Thiết kế hệ thống và thi công hệ thống Xác định những yêu cầu của thực
trạng giao thông hiện nay từ đó vận dụng những kiến thức cơ sở ở chương 2 để thiết kế
mô hình
Chương 4: Quá trình thực hiện và kết quả.
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
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: ThS Ngô Thị Minh Hương
Sinh viên thực hiện:Trần Quang Quý Mã SV: 1911505120144
Nguyễn Quang Sơn Mã SV: 1911505120236
1 Tên đề tài:
Thiết kế mô hình hệ thống điều khiển đèn giao thông tự động thông qua xử lý ảnh
2 Các số liệu, tài liệu ban đầu:
- Camera thu thập hình ảnh đầu vào
- Kit điều khiển chính: Raspberry Pi 4, board mạch Arduino Uno, 4 Module Led 7
thanh 2 digit, 4 đèn tín hiệu giao thông
Trang 10mà camera thu được Thông qua quá trình xử lý hình ảnh cho ra kết quả số lượngphương tiện trên mỗi làn đường, từ đó dữ liệu sẽ được vi điểu khiển xử lý điều khiểntín hiệu đèn giao thông sao cho phù hợp nhất với mỗi thời gian thực khác nhau Nhóm
sẽ thực hiện các nội dung như sau:
- Tìm hiểu về Raspberry Pi 4
- Tìm hiểu nguyên lý hoạt động của đèn giao thông ở ngoài thực tế
- Xây dựng quá trình xử lý ảnh đầu vào
- Xây dựng chương trình đếm phương tiện trên ảnh
- Xây dựng chương trình điều khiển tín hiệu đèn giao thông
Trang 11Lời đầu tiên, em xin chân thành gửi lời cảm ơn sâu sắc đến ThS Ngô Thị Minh Hương, người đã đồng hành, dẫn dắt và hướng dẫn em trong quá trình hình thành và
phát triển đề tài tốt nghiệp này
Theo đó em muốn gửi gắm lòng biết ơn đến các quý thầy cô trong Khoa Điện – Điện tử, trường Đại học Sư Phạm Kỹ thuật Đà Nẵng đã luôn tạo điều kiện thuận
lợi, môi trường học tập tốt nhất cho em Giúp em xây dựng vững chắc nền tảng kiếnthức chuyên ngành mà mình đang hướng đến
Cảm ơn sự giúp đỡ của giảng viên nhóm chúng em chắc rằng cuốn đồ án nàycũng không tránh khỏi những thiếu sót trong khi làm cũng như trong suốt quá trìnhchúng em thực hiện đồ án này, chúng em rất cảm ơn nếu nhận được những ý kiến đónggóp của khoa, giảng viên và cùng với tất cả các bạn đọc để chúng tôi ngày càng hoànthiện hơn
Cuối cùng, chúng em xin chân thành cảm ơn các thầy cô và bạn bè, đã luôn tạođiều kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em trong suốt quá trình học tập
và hoàn thành đồ án tốt nghiệp
Chúng em xin chân thành cảm ơn!
Trang 12Tên sinh viên: Trần Quang Quý sinh viên lớp 19D2
Nguyễn Quang Sơn sinh viên lớp 19D2
Chúng em xin cam đoan các kết quả được trình bày trong đồ án này là thành quảnghiên cứu của em trong suốt thời gian qua và chưa từng xuất hiện trong công bố haysao chép của tác giả khác dưới sự định hướng và hướng dẫn của cô ThS Ngô ThịMinh Hương Các thông tin trích dẫn trong đồ án được chỉ rõ, nguồn gốc rõ ràng vàđược phép công bố Các kết quả đạt được chính xác và trung thực Toàn bộ nội dungtrong báo cáo không quá 80% là sao chép Nếu có bất kỳ vi phạm nào, em xin chịuhoàn toàn trách nhiệm và chịu mọi sự kỷ luật của khoa và nhà trường
Sinh viên thực hiện(Chữ ký, họ và tên sinh viên)
Trần Quang QuýNguyễn Quang Sơn
MỤC LỤC
Trang 13TÓM TẮT
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
LỜI NÓI ÐẦU i
CAM ĐOAN ii
MỤC LỤC iii
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT vi
DANH MỤC CÁC BẢNG, HÌNH VẼ vii
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 3
1.1 Giới thiệu chương 3
1.2 Đặt vấn đề 3
1.3 Một số hệ thống điều khiển giao thông bằng xử lý ảnh hiện nay 4
1.4 Mục đích đề tài 4
1.5 Sơ đồ khối hệ thống 5
1.6 Nội dung nghiên cứu 5
1.7 Tính mới của đề tài 6
1.8 Phạm vi ứng dụng 6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7
2.1 Raspberry pi 4 [2] 7
2.1.1 Giới thiệu chung 7
2.1.2 Phân loại Raspberry Pi 8
2.1.3 Hệ điều hành và phần mềm chạy được trên Raspberry Pi 8
2.1.4 Phần cứng của Raspberry Pi 4 9
2.1.5 Mô tả chân raspberry pi 12
2.2 Mạch hiển thị 2 Led 7 đoạn 74HC595 16
2.3 Module đèn tín hiệu giao thông 5V 17
Trang 142.6 Webcam HD 1080p 21
2.7 Chuẩn giao tiếp UART 21
2.8 Tổng quan về xứ lý ảnh [3] 24
2.8.1 Giới thiệu xử lý ảnh 24
2.8.2 Các vấn đề cơ bản trong xử lý ảnh 27
2.8.2.1 Điểm ảnh (Picture Element) 27
2.8.2.2 Độ phân giải của ảnh 28
2.8.2.3 Mức xám của ảnh 28
2.8.2.4 Trích chọn đặc điểm 28
2.8.2.5 Nhận dạng 29
2.8.2.6 Nén ảnh 29
2.9 Xử lý ảnh sử dụng YOLO [4] 30
2.9.1 Khái niệm YOLO 30
2.9.2 Kiến trúc mạng YOLO 31
2.9.3 Cách yolo hoạt động 32
2.9.4 Output của YOLO 34
2.9.5 Hàm tính IOU 35
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 36
3.1 Giới thiệu 36
3.2 Thiết kế hệ thống phần cứng 36
3.2.1 Thiết kế sơ đồ khối hệ thống 36
3.2.2 Sơ đồ kết nối hệ thống 37
3.2.3 Thiết kế mô hình ngã tư 40
3.2.4 Quy trình hoạt động của hệ thống 40
3.3 Thi công hệ thống phần cứng 41
3.3.1 Sơ đồ nguyên lý khối salve 41
Trang 153.3.4 Mô hình sau khi hoàn thiện 47
3.4 Xây dựng chương trình mô phỏng giao thông 48
3.5 Cài đặt hệ thống 50
3.6 Lập trình hệ thống 54
3.6.1 Lập trình trên Thonny của Raspberry Pi 54
3.6.1.1 Sơ đồ đếm số lương phương tiện 54
3.6.1.2 Lưu đồ thuật toán 54
3.6.2 Sơ đồ khối xử lý trên arduino 56
3.6.3 Training dữ liệu ở mô hình YOLO 57
3.6.3.1 Chuẩn bị dữ liệu 57
CHƯƠNG 4: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ 62
4.1 Kết quả 62
4.2 Nhận xét - đánh giá mô hình hệ thống 67
KẾT LUẬN – HƯỚNG PHÁT TRIỂN 69
TÀI LIỆU THAM KHẢO 70 PHỤ LỤC
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Trang 16GPU: Graphics Processing Unit
CPU: Central Processing Unit
RAM: Random Access Memory
UART: Universal Asynchronous Receiver-Transmitter
SPI: Serial Peripheral Interface
I2C: Inter-Integrated Circuit
HDMI: High-Definition Multimedia Interface
SDIO: Storage Device Input/Output
VNP: virtual private network
CCD: Change Coupled Device
CGA: Color Graphic Adaptor
XLA: Xử lý ảnh
EasyEDA: Easy Electronics Design Automation
IOU: intersection over union
SSD: Single Shot Detector
YOLO: You Only Look Once
DANH MỤC CÁC BẢNG, HÌNH VẼ
Trang 17Bảng 2.3 Bảng chân UART 15
Bảng 2.4 Bảng sơ đồ chân SPI 15
Bảng 2.5 Bảng chân I2C 15
Bảng 2.6 Chân PWM 16
Bảng 2.7 Bảng chân SD0CLK 16
Bảng 3.1 Thời gian đèn tín hiệu tương ứng với số phần trăm 39
Bảng 3.2 Thống kê dòng tiêu thụ 39
Bảng 4.1 Bảng chế độ hoạt động 63
Bảng 4.2 Bảng kết quả đếm xe ở 2 làn xe 65
Hình 1.1 Sơ đồ tổng quát của hệ thống 5
Hình 2.1 Board mạch Raspberry Pi 4 7
Hình 2.2 Mặt trước Raspberry Pi 10
Hình 2.3 Mặt sau Raspberry Pi 10
Hình 2.4 Cấu trúc phần cứng Raspberry Pi 11
Hình 2.5 Cổng nguồn Type C 11
Hình 2.6 Cổng màn hình HDMI 12
Hình 2.7 Cổng Ethernet và USB 12
Hình 2.8 Sơ đồ chân Raspberry Pi 13
Hình 2.9 GPIO Raspberry Pi 13
Hình 2.10 Mạch hiển thị 2 led 7 đoạn 74HC595 17
Hình 2.11 module đèn tín hiệu giao thông 5V 17
Hình 2.12 Màn hình LCD 3.5 inch Raspberry Pi 18
Hình 2.13 Arduino UNO R3 19
Hình 2.14 Webcam HD 1080P 21
Hình 2.15 Hai MCU giao tiếp trực tiếp với nhau bằng Tx và Rx 22
Hình 2.16 Dữ liệu truyền qua UART 23
Hình 2.17 Sơ đồ xử lý ảnh 25
Hình 2.18 Hệ thống xử lý ảnh 25
Hình 2.19 Các lớp trong YOLO 31
Hình 2.20 Sơ đồ kiến trúc mạng YOLO 31
Hình 2.21 Các layer trong mạng Darknet-53 32
Hình 2.22 Hoạt động của YOLO 33
Hình 2.23 Output của YOLO 34
Trang 18Hình 3.3 Nguồn DC điện áp 5V- 3A 39
Hình 3.4 Mô hình đèn giao thông 40
Hình 3.5 Sơ đồ nguyên lý của khối nhận tín hiệu điều khiển Arduino 41
Hình 3.6 Khối Slave Arduino 42
Hình 3.7 Mạch thực tế 42
Hình 3.8 Phần mềm vẽ mạch EasyEDA 43
Hình 3.9 Mạch in PCB lớp bottom 43
Hình 3.10 Mạch in ở chế độ xem 3D 44
Hình 3.11 Ống nhựa sau khi uốn 44
Hình 3.12 Trụ đèn sau khi hoàn thành 45
Hình 3.13 Mô hình sau khi phân chia làn đường 45
Hình 3.14 Vị trí lắp camera trên mô hình 46
Hình 3.15 Góc nhìn camera trên cao 46
Hình 3.16 Mô hình sau khi hoàn thiện 47
Hình 3.17 Vị trí đặt bộ điều khiển 47
Hình 3.18 Mô hình trên nhìn xuống 48
Hình 3.19 Phần mềm giả lập giao thông 49
Hình 3.20 Giao diện phần mềm giả lập tín hiệu đèn giao thông 49
Hình 3.21 Phương tiện khi gặp đèn tín hiệu 50
Hình 3.22 Giao diện chương trình mô phỏng ngã tư có cảm biến 50
Hình 3.23 Chọn hệ điều hành và thẻ nhớ 51
Hình 3.24 Tạo tệp trống để cấu hình Wifi 51
Hình 3.25 Thay đôi tên và mật khẩu Wifi 52
Hình 3.26 Địa chỉ IP của Raspberry Pi 52
Hình 3.27 Dùng địa chỉ IP để truy cập 53
Hình 3.28 Giao diện Raspbian nhìn từ máy tính 53
Hình 3.29 Sơ đồ quá trình đếm đối tượng sử dụng OPENCV 54
Hình 3.30 Lưu đồ thuật toán chương trình xử lý ảnh và điều khiển đèn giao thông 55
Hình 3.31 Sơ đồ khối xử lý trên Arduino 56
Hình 3.32 Phần mềm Make Sense 57
Hình 3.33 Tạo tên nhãn đối tượng 58
Hình 3.34 Cắt các đối tượng xe trong ảnh 58
Hình 3.35 Xuất file tọa độ đối tượng 59
Hình 3.36 Tọa độ đối tượng trong ảnh 59
Trang 19Hình 3.39 Câu lệnh chạy chương trình nhận diện 61
Hình 3.40 Kết quả nhận diện 61
Hình 4.1 Mô hình hoàn thiện và cho chạy thử 62
Hình 4.2 Giao diện camera quan sát trên máy tính 62
Hình 4.3 Hình ảnh chương trình nhận diện ở chế độ ít xe 64
Hình 4.4 Tín hiệu đèn xanh ở làn 1 và đèn đỏ ở làn 2 64
Hình 4.5 Tín hiệu đèn đỏ ở làn 1 và đèn xanh ở làn 2 64
Hình 4.6 Giản đồ thời gian đèn tín hiệu ở chế độ ít phương tiện 65
Hình 4.7 Kết quả đếm phương tiện ở 2 làn xe 65
Hình 4.8 Giản đồ thời gian đèn tín hiệu ở chế độ đông phương tiện 66
Hình 4.9 Chương trình nhận diện ở chế độ đông xe 66
Hình 4.10 Thời gian đèn xanh ở làn 1 và đèn đỏ ở làn 2 66
Hình 4.11 Thời đèn đỏ ở làn 1 và đèn xanh ở làn 2 67
Hình 4.12 Giản đồ thời gian đèn tín hiệu 67
Trang 20MỞ ĐẦU
Ngày nay trên các thành phố lớn tại Việt Nam xảy ra tình trạng ùn tắc giao thôngvào giờ cao điểm, gây ra thiệt hại kinh tế, ô nhiễm môi trường Có nhiều giải pháp đểgiảm ùn tắc như mở rộng đường, xây dựng cầu vượt tại các giao lộ Nhưng đa số rấttốn kém và khó áp dụng tại tất cả các các giao lộ mà chỉ áp dụng vào các nút giaothông trọng điểm Từ thực trạng đó chúng tôi đã đưa ra một giải pháp điều khiển hệthống giao thông bằng công nghệ xử lý hình ảnh và liên kết các hệ thống lại với nhaunhằm đưa ra một giải pháp điều khiển tối ưu nhất
Qua thực trạng đó, nhóm muốn xây dựng một hệ thống điều khiển giao thông tựđộng, phân luồng trực tiếp và hiệu quả hơn phần nào đó giảm bớt tình trạng ùn tắcgiao thông Đồng thời tiếp cận, bổ sung các kiến thức mới, cũng như củng cố lạinhững kỹ năng kiến thức trong suốt quá trình học tập tại trường Do đó, nhóm thực
hiện đồ án chọn đề tài: “Thiết kế mô hình hệ thống điều khiển đèn giao thông tự động thông qua xử lý ảnh”.
Mục tiêu của đề tài là xây dựng hệ thống đếm phương tiện qua camera với đầuvào là hình ảnh chứa những phương tiện cần được nhận diện thông qua quá trình xử lýảnh sẽ cho ra kết quả là số lượng phương tiện của mỗi làn đường từ đó gửi dữ liệuxuống kít điều khiển arduino để điều khiển tín hiệu đèn giao thông
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 vấn đề lý do chọn đề tài, mục tiêu, nội dung nghiên cứu,các giới hạn thông số và bố cục đồ án
Chương 2: Cơ sở lý thuyết.
Giới thiệu về Raspberry Pi 4, giới thiệu về xử lý ảnh Các phần cứng được sửdụng trong đề tài cũng như trên mô hình Giới thiệu về thuật toán nhận diện và đếm sốlượng phương tiện
Chương 3: Thiết kế và thi công hệ thống
Phân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế chương trình cho hệthống đếm phương tiện qua hình ảnh được viết trên Raspberry Pi 4 Thiết kế mô hìnhgiả lập mô phỏng giao thông thực tế Thiết kế hệ thống thi công mô hình, lưu đồ, đưa
ra giải thuật và chương trình
Chương 4: Kết quả, nhận xét, đánh giá và hướng phát triển
Nêu các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh
Trang 21giá kết quả thực thi được, những hình ảnh của hệ thống, đưa ra những thông số đánhgiá về hệ thống.Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướngphát triển trong tương lai cho hệ thống.
Trang 22CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu chương.
Nội dung chương này bày về mục tiêu, nội dung nghiên cứu, lý do chọn đề tài, sơ
đồ khối của hệ thống, phạm vi ứng dụng của hệ thống, một số hệ thống điều khiển giaothông tự động hiện nay
1.2 Đặt vấn đề.
Tại Việt Nam số lượng xe máy trong những năm qua tăng một cách đột biến, mật
độ xe lưu thông trên đường ngày một nhiều, trong khi đó hệ thống đường xá ở ViệtNam còn quá nhiều hạn chế nên thường gây ra các hiện tượng như kẹt xe, ùn tắc giaothông, đặc biệt là tai nạn giao thông ngày càng nhiều trở thành mối hiểm họa chonhiều người Sự phát triển nhanh chóng của nền kinh tế và lượng dân cư đông đúc.Nhu cầu đi lại, vận chuyển cũng tăng lên nhanh chóng đi kèm theo nó là bài toán tắcnghẽn ùn tắc giao thông Ùn tắc giao thông gây thiệt hại không nhỏ cho sự phát triểnkinh tế quốc gia, giảm hiệu suất lao động và tăng các chi phí không cần thiết trong quátrình sản xuất Trong bối cảnh kinh tế lạm phát và khó khăn như hiện nay, lãng phítrong giao thông lại đặt thêm một gánh nặng đối với đời sống kinh tế của người dân.Nguyên nhân của vấn đề này một phần là do cơ sở hạ tầng chưa đáp ứng được nhu cầulưu thông hiện nay, một phần là do việc phân chia, định thời gian của hệ thống đèngiao thông hiện tại ở các giao lộ chưa hợp lý khiến cho số lượng phương tiện giaothông bị ùn tắc theo thời gian rồi dẫn đến tắc nghẽn giao thông Qua thực trạng đó,nhóm muốn xây dựng một hệ thống điều khiển tín hiệu đèn giao thông tự động, phânluồng trực tiếp và hiệu quả hơn phần nào đó giảm bớt tình trạng ùn tắc giao thông.Đồng thời tiếp cận, bổ sung các kiến thức mới, cũng như cũng cố lại những kỹ năngkiến thức đã học trong suốt quá trình học tập tại trường [1]
Do đó, nhóm thực hiện đồ án chọn đề tài: “Thiết kế thi công hệ thống điều khiểntín hiệu đèn giao thông tự động thông qua xử lý ảnh” Nghiên cứu này nhằm mục tiêuphát triển giải thuật điều khiển hệ thống đèn giao thông cho một giao lộ, với chu kỳđèn tín hiệu tùy thuộc vào tình trạng xe lưu thông trên hai tuyến đường quan sát đượcbởi camera Giải thuật đếm số lưu lượng xe trên đường được xây dựng để quyết địnhthời gian của chu kỳ đèn xanh kế tiếp cho tuyến đường tương ứng Hình ảnh thu được
từ camera sẽ được mô phỏng giả lập để kiểm chứng giải thuật điều khiển Kết quả môphỏng cho thấy tuyến đường nào có lưu lương xe lớn hơn thì chu kỳ đèn xanh củatuyến đường đó dài hơn và ngược lại
Trang 231.3 Một số hệ thống điều khiển giao thông bằng xử lý ảnh hiện nay.
Hiện nay trên thế giới, có nhiều hệ thống giao thông điều khiển tự động bằngcông nghệ xử lý ảnh Có thể kể đến một số hệ thống như sau:
Hệ thống phát hiện và điều khiển đèn giao thông dựa trên luồng giao thông: Hệthống này sử dụng camera để theo dõi và phân tích luồng giao thông trên các tuyếnđường Bằng cách phân tích dữ liệu hình ảnh, hệ thống xác định mật độ giao thông vàđiều chỉnh đèn giao thông tự động để ưu tiên cho luồng giao thông có nhiều phươngtiện hơn và giảm ùn tắc
Hệ thống nhận dạng phương tiện ưu tiên: hệ thống này sử dụng mô hìnhYOLOv8 xử lý ảnh để nhận dạng phương tiện ưu tiên như xe cứu thương, xe cảnh sáthoặc xe cứu hỏa Khi phương tiện ưu tiên tiến đến giao lộ, hệ thống có thể phát hiện và
ưu tiên mở đèn xanh cho phương tiện ưu tiên để đảm bảo an toàn và ưu tiên cho nhữngtrường hợp khẩn cấp
Hệ thống nhận dạng và điều khiển đèn giao thông dựa trên người đi bộ: hệ thốngnày sử dụng xử lý ảnh để nhận dạng và đếm số lượng người đi bộ tại các vạch đi bộhoặc vạch dừng Dựa trên thông tin này, hệ thống có thể điều chỉnh đèn giao thông đểđảm bảo an toàn cho người đi bộ và tăng cường tính hiệu quả của giao thông đô thị
Hệ thống phát hiện và điều chỉnh đèn giao thông dựa trên dữ liệu thời tiết: hệthống này sử dụng xử lý ảnh cùng với dữ liệu thời tiết để đánh giá tình hình giaothông Ví dụ, trong trường hợp mưa lớn, hệ thống có thể phát hiện và điều chỉnh đèngiao thông để giảm tốc độ và tăng cường an toàn cho người tham gia giao thông
Ở các quốc gia tiên tiến, giải pháp đưa ra là lắp đặt các hệ thống camera để tựđộng điều tiết giao thông tại các giao lộ trọng yếu Trong quá trình phát triển hệ thốngkiểm soát giao thông, đã có rất nhiều công bố về việc nghiên cứu thông qua mô phỏng
và thực nghiệm nhằm tối ưu hóa các bộ điều khiển đèn tín hiệu Trong đó, các nghiêncứu điển hình về việc sử dụng kỹ thuật xử lý ảnh kết hợp với điều khiển mờ (fuzzycontrol) đèn tín hiệu đã được áp dụng thành công Các hệ thống này có giá rất cao, ví
dụ một hệ thống đèn giao thông thông minh thương mại sử dụng máy tính công nghiệp
và các camera giám sát được giới thiệu bởi AdvanTech lên đến hàng tỉ đồng cho mỗichốt giao thông
1.4 Mục đích đề tài.
Trước tình hình phương tiện tham gia giao thông ngày càng gia tăng khôngngừng và hệ thống giao thông nước ta ngày càng phức tạp Dần đến tình trạng ùn tắc
Trang 24và tai nạn giao thông ngày càng gia tăng Xuất phát từ nhu cầu thực tế đó, chúng ta cầncác giải pháp để giải quyết một phần nào đó về các nhu cầu thực tế trên.
Mục tiêu của đề tài “Thiết kế thi công hệ thống điều khiển tín hiệu đèn giaothông tự động thông qua xử lý ảnh” là xây dựng hệ thống đếm phương tiện quawebcam với đầu vào là hình ảnh có chứa đối tượng cần đếm từ khung ảnh Thông quaquá trình xử lý ảnh sẽ cho ra kết quả là số lượng phương tiện của mỗi làn đường từ đógửi dữ liệu về board arduino để điều khiển tín hiệu đèn giao thông điều tiết lưu lượngphương tiện
1.5 Sơ đồ khối hệ thống.
Đây là sơ đồ khối của hệ thống xử lý đèn giao thông tự động bằng xử lý ảnh:
Hình 1.1 Sơ đồ tổng quát của hệ thống
1.6 Nội dung nghiên cứu.
Mục tiêu xây dựng đề tài: “Thiết kế thi công hệ thống điều khiển tín hiệu đèn giaothông tự động thông qua xử lý ảnh” nhóm sẽ thực hiện những nội dung như sau:
Nội dung 1: Tìm hiểu về Raspberry Pi 4.
Nội dung 2: Tìm hiểu về phần mềm mô phỏng giao thông
Nội dung 3: Cài đặt thư viện cho Raspberry Pi.
Nội dung 4: Tìm hiểu các thuật toán nhận di phương tiện giao thông, nguyên lý
hoạt động của đèn giao thông ở ngoài thực tế
Nội dung 5: Xây dựng quá trình xử lý ảnh đầu vào.
Nội dung 6: Xây dựng hệ thống đếm phương tiện trong ảnh, lập trình hiển thị hình
ảnh sau khi qua quá trình xử lý ảnh để mô phỏng quá trình thu thập dữ liệu
Nội dung 7: Xây dựng chương trình điều khiển đèn tín hiệu đèn giao thông trên
Aruino Uno
Trang 25 Nội dung 8: Đánh giá kết quả thực hiện.
1.7 Tính mới của đề tài.
Đề tài “Thiết kế mô hình điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh”điểm mới của đề tài là sử dụng máy tính nhúng Raspberry Pi để nhúng chương trìnhthuật toán YOLOv8 để xử lý ảnh sau đó dữ liệu được gửi về Arduino để điều khiển tínhiệu đèn giao thông Hệ thống sẽ tự động điều chỉnh thời gian cho hợp lý khi phát hiện
số lượng phương tiện lưu thông tránh tính trạng tắc nghẽn giao thông vào các giờ caođiểm và ưu tiên luồng nào nhiều phương tiện sẽ được lưu thông trong thời gian dàihơn
1.8 Phạm vi ứng dụng.
Đề tài “Thiết kế mô hình điều khiển tín hiệu đèn giao thông tự động thông qua
xử lý ảnh” được ứng dụng cho tình trạng giao thông nước ta hiện nay Xử lý tính trạnggiao thông đông đúc tại các thành phố của nước ta Cũng như kiểm soát đèn giao thôngtại các điểm nguy hiểm Hệ thống sử dụng xử lý ảnh để phát hiện các điểm nguy hiểmtrên đường như ngã tư, giao lộ không có đèn tín hiệu hoặc khu vực có nguy cơ tai nạncao Bằng cách phân tích hình ảnh và dữ liệu giao thông, hệ thống có thể điều chỉnhđèn giao thông để tăng cường an toàn cho người tham gia giao thông và giảm thiểunguy cơ tai nạn Điều khiển đèn giao thông tại các khu vực đô thị đông đúc: trong cáckhu vực đô thị có mật độ dân cư cao, việc điều khiển đèn giao thông trở nên phức tạp
Hệ thống sử dụng để theo dõi và phân tích luồng giao thông tại các ngã tư và giao lộ.Dựa trên thông tin này, hệ thống điều chỉnh tín hiệu đèn giao thông tự động để tối ưuhóa luồng giao thông, giảm thiểu ùn tắc và tạo ra một môi trường giao thông an toàn
Đó chính là các bài toán cần xử lý trong hệ thống giao thông nước ta hiện nay
Trang 26CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Raspberry pi 4 [2]
2.1.1 Giới thiệu chung.
Raspberry Pi là một máy vi tính rất nhỏ gọn, kích thước hai cạnh chỉ cỡ một cáithẻ ATM, trong đó đã tích hợp mọi thứ cần thiết để bạn sử dụng như một máy tính Bộ
xử lý SoC Broadcom BCM2835 của nó bao gồm CPU, GPU, RAM, khe cắm thẻmicroSD, WiFi, Bluetooth, Ethernet, HDMI và 4 cổng USB 2.0
Hình 2.2 Board mạch Raspberry Pi 4
Trước khi bắt đầu làm việc với Raspberry Pi, bước đầu tiên cài đặt hệ điều hànhbằng cách tải hệ điều hành Raspian vào thẻ nhớ, gắn chuột, bàn phím và màn hình là
có thể sử dụng như một máy tính thông thường
Với khả năng tùy biến cao, Raspberry Pi có thể biến thành rất nhiều thiết bị từphần cứng đến phần mềm, có thể kể đến một số công dụng như sau:
Máy chơi game cầm tay, console, game thùng Chơi như máy điện tử băng ngàyxưa, giả lập được nhiều hệ máy
Dùng làm VPN cá nhân
Biến ổ cứng bình thường thành ổ cứng mạng (NAS)
Làm camera an ninh, quan sát từ xa
Hiển thị thời tiết, hiển thị thông tin mạng nội bộ
Trang 27 Máy nghe nhạc, máy đọc sách.
Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman và được phân phốichính bởi Element14, RS Components và Egoman
Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả nănglập trình cho những sinh viên, nhưng Pi đã được sự quan tâm từ nhiều đối tượng khácnhau Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC BroadcomBCM2835 (là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điệnthoại di động) bao gồm CPU, GPU,bộ xử lí âm thanh, hình ảnh và các tính năng khác.Tất cả được tích hợp bên trong chip có điện năng thấp này
Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay Bạnkhông thể chạy Windows trên đó vì BCM2835 dựa trên cấu trúc ARM nên không hỗtrợ mã x86/x64, nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt web, môitrường Desktop và các nhiệm vụ khác Tuy nhiên Raspberry Pi là một thiết bị đa năngđáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảo cho những hệthống điện tử , những dự án DIY, thiết lập hệ thống tính toán rẻ tiền cho những bài họctrải nghiệm lập trình…
2.1.2 Phân loại Raspberry Pi.
Đã có 4 thế hệ Raspberry Pi: Pi 1, Pi 2, Pi 3 và Pi 4 (thường có một Model A vàmột Model B trong hầu hết các thế hệ) Model A là một biến thể rẻ hơn, có xu hướnggiảm bớt số RAM và các cổng, như USB và Ethernet
Có 2 phiên bản model Raspberry Pi bao gồm Model A và Model B, tên cácmodel này dược đặt theo tên BBC Micro Model A có bộ nhớ RAM 256 MB và mộtcổng USB Model này rẻ hơn và sử dụng ít năng lượng hơn so với Model B Model B
có 2 cổng USB, một cổng Ethernet để kết nối với mạng và có bộ nhớ RAM 512MB 2loại model Raspberry Pi là Model A và Model B đã được nâng cấp lên A + và B +.Trên các bản nâng cấp này có một số cải tiến nhỏ, chẳng hạn như tăng số cổng USB vàmức tiêu thụ năng lượng được cải thiện, đặc biệt là trong phiên bản B +
Raspberry Pi 4 là phiên bản đầu tiên của Raspberry Pi có sẵn với nhiều cấu hìnhRAM Các model trước đó đã được nâng cấp với những phiên bản nhỏ (như Pi Zero và
Pi Zero W, hoặc Raspberry Pi 3 và 3B+) Bạn có thể chọn ba phiên bản Raspberry Pi4:
Trang 28Raspberry Pi được thiết kế cho hệ điều hành Linux, và nhiều bản phân phốiLinux hiện cũng có phiên bản tối ưu hóa Raspberry Pi Hai trong số các lựa chọn phổbiến nhất là Raspbian Jessie dựa trên hệ điều hành Debian, và Pidora dựa trên hệ điềuhành Fedora.
Trên thực tế cả 2 tùy chọn này đều hoạt động tốt, lựa chọn Raspbian Jessie hayPidora là do sở thích của mỗi người Khi khởi động đầu tiên từ thẻ SD, bạn sẽ đượccung cấp menu có nhiều phân phối (bao gồm cả Raspbian và Pidora) để lựa chọn.Chúng ta vẫn còn những lựa chọn khác: OpenELEC và RaspBMC là 2 hệ điềuhành phân phối dựa trên Linux, nhắm mục tiêu hướng tới sử dụng Raspberry Pi làmtrung tâm truyền thông Ngoài ra còn có các hệ thống không phải Linux, chẳng hạnnhư RISC OS, chạy trên Pi
Có rất nhiều hệ điều hành khác nhau chạy được với Raspberry Pi Tùy theo mụcđích và nhu cầu mà bạn lựa chọn cho phù hợp
Raspberry Pi OS: Hệ điều hành khuyên dùng cho các nhu cầu như văn phòng, lậptrình, máy chủ, lưu trữ … Pi OS có các phiên bản 32/64Bit với các tùy chọn Lite (giaodiện dòng lệnh), Desktop (có giao diện đồ họa) và Full (có giao diện đồ họa và cácphần mềm cơ bản như Office, web, mail, ….)
Ubuntu: tương tự như Raspberry Pi OS, nó cũng có các tùy chọn cho bản server(chỉ có dòng lệnh), desktop Tuy nhiên, so sánh phiên bản có giao diện desktop thìUbuntu có vẻ chậm hơn Pi OS, bù lại nó có giao diện đẹp và bóng bẩy hơn
Phục vụ nhu cầu media: với nhu cầu sử dụng Pi để giải trí, bạn có thể lựa chọnLibreELEC hoặc OSMC (xem phim, nghe nhạc, truyền hình, … trên nền Kodi) Nếubạn có nhu cầu nghe nhạc thì có thể lựa chọn Volumio, RuneAudio Nhu cầu chơigame, giả lập: Bạn sẽ có các lựa chọn như RetroPie, RecallBox, Lakka
Windows: Raspberry Pi có thể chạy được Windows 10 hoặc Windows 11, WinIoT Tuy nhiên, chạy Windows 10/11 trên Raspberry Pi không phù hợp với tất cả mọinhu cầu Nó khá chậm và không sử dụng được Wifi
3D Printing: Bạn có thể chọn OctoPi, Mainsail OS, SimplyPi
Home Automation: với nhu cầu nhà thông minh, bạn có thể chọn HomeAssistant, Home Bridge, Raspbery Matic
Ở đề tài này nhóm chúng em sử dụng Raspbian đây là bản build Linux dựa trênnên Debian (Gần giống ubuntu) với giao diện LXDE (thay vì GNOME) Có đầy đủweb browser, media player, tools, etc … Nói chung hệ điều hành này dành cho nhữngngười muốn dùng Raspberry Pi như một cái PC
2.1.4 Phần cứng của Raspberry Pi 4.
Trang 29Hình 2.3 Mặt trước Raspberry Pi.
Hình 2.4 Mặt sau Raspberry Pi
Thông số kỹ thuật
• Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
• 2GB, 4GB hoặc 8GB LPDDR4-3200 SDRAM (tùy thuộc vào kiểu máy)
• 2,4 GHz và 5,0 GHz IEEE 802.11ac wireless
• Cổng hiển thị MIPI DSI 2 làn
• Cổng camera MIPI CSI 2 làn
• Cổng video tổng hợp và âm thanh stereo 4 cực
• H.265 (giải mã 4kp60), H264 (giải mã 1080p60, mã hóa 1080p30)
• Đồ họa OpenGL ES 3.0
• Khe cắm thẻ nhớ Micro-SD để tải hệ điều hành và lưu trữ dữ liệu
• 5V DC qua đầu nối USB-C (tối thiểu 3A *)
• 5V DC qua đầu cắm GPIO (tối thiểu 3A *)
Trang 30• Bật nguồn qua Ethernet (PoE) (yêu cầu PoE HAT riêng biệt)
Hình 2.5 Cấu trúc phần cứng Raspberry Pi
Những tính năng mới của Raspberry Pi 4
Nguồn: đầu kết nối chuyển từ micro USB type B sang USB type C
Công suất tiêu thụ: mức tiêu thụ điện năng tối đa của Pi 4 là khoảng 7,6W khi tải
và 3,4W khi không tải
Nguồn điện cung cấp: bộ cấp nguồn USB Type-C, ở mức 5V / 3A
2.1.5 Mô tả chân raspberry pi.
Raspberry Pi 4 có thể sử dụng trong hệ thống nhúng để giao tiếp tín hiệu
Trong 40 chân GPIO bao gồm:
26 chân GPIO Khi thiết lập là input, GPIO có thể được sử dụng như chân interupt,GPIO 14 & 15 được thiết lập sẵn là chân input
1UART, 1 I2C, 2 SPI, 1 PWM (GPIO 4)
2 chân nguồn 5V, 2 chân nguồn 3.3V, 8 chân GND
2 chân ID EEPROM
Các chân GPIO không chỉ thực hiện các chức năng I/O đơn giản mà còn hỗ trợgiao thức UART, SPI và I2C
Trang 31Hình 2.9 Sơ đồ chân Raspberry Pi.
Hình 2.10 GPIO Raspberry Pi
Chân cấp nguồn
Power In: trong Raspberry pi, có hai cách cấp nguồn, một là từ cổng nguồn
USB-C và thứ hai là từ các chân 5V
Đầu vào ở chân 5V phải ổn định và theo đúng thông số kỹ thuật Trong trườnghợp có điện áp cao hơn, thiết bị có thể bị cháy
Các chân đầu vào 5V sẽ không có cầu chì và bộ điều chỉnh điện áp khi được sửdụng làm đầu vào cấp nguồn, do đó nguồn điện 5V phải theo đúng thông số kỹ thuật
để tránh hư hại Chân đầu vào cấp nguồn cho Raspberry Pi 4 được cung cấp bên dưới:
Từ chân 2 đến 6 : 5V Chân 6 : GND
Power Out: có hai loại chân nguồn ra trong Raspberry pi 4 là 3V3 và 5V 5V
được kết nối trực tiếp với cổng USB nhưng 3V3 được kết nối thông qua bộ điều chỉnhđiện áp cho ra đầu ra 3V ổn định Tất cả các chân nguồn ra được cung cấp bên dưới:3V3 – Chân 1, chân 17 5V – Chân 2, chân 6
Ground: Raspberry Pi 4 có nhiều chân ground được kết nối bên trong và các
chân này này có thể làm điểm nối đất chung cho nguồn điện hoặc thiết bị bên ngoài.Danh sách các chân ground được đưa ra dưới đây:
Chân I/O digital
Hầu hết mọi thiết bị đều cần các chân đầu vào và đầu ra để giao tiếp Trong thiết
bị này có 28 chân GPIO được sử dụng làm đầu vào và đầu ra digital Các chân GPIOtrong bộ điều khiển có một số giá trị mặc định
Các chân GPIO từ 0-9 sẽ ở trạng thái logic cao và từ 10 trở lên các chân sẽ ởtrạng thái logic thấp Tất cả các chân đó trong Raspberry Pi 4 đều được cung cấp bảngdưới:
Trang 32Bảng 2.2 Bảng chân I/O digital.
GPIO0 – Chân 27 GPIO1 – Chân 28 GPIO2 – Chân 3 GPIO3 – Chân 5GPIO4 – Chân 7 GPIO5 – Chân 29 GPIO6 – Chân 31 GPIO7 – Chân 26GPIO8 – Chân 24 GPIO9 – Chân 21 GPIO10 – Chân 19 GPIO11 – Chân 23GPIO12 – Chân 32 GPIO13 – Chân 33 GPIO14 – Chân 8 GPIO15 – Chân 10GPIO16 – Chân 36 GPIO17 – Chân 11 GPIO18 – Chân 12 GPIO19 – Chân 35GPIO20 – Chân 38 GPIO21 – Chân 40 GPIO22 – Chân 15 GPIO23 – Chân 16GPIO24 – Chân 18 GPIO25 – Chân 22 GPIO26 – Chân 37 GPIO27 – Chân 13
Module giao tiếp dữ liệu nối tiếp Raspberry Pi
Các chân UART trong Raspberry Pi
Có nhiều giao thức nối tiếp và UART là một trong số đó Nó khá phổ biến vì có
hệ thống giao tiếp đơn giản và phụ thuộc vào hầu hết các phần mềm Có nhiều chângiao tiếp UART trong Raspberry Pi 4 được đưa ra bên dưới:
Bảng 2.3 Bảng chân UART
TXD5 – GPIO12 – Chân 32 RXD5 – GPIO13 – Chân 33
Chân giao tiếp SPI
Một số thiết bị sử dụng giao thức SPI và nó giúp điều khiển nhiều thiết bị bằngcách sử dụng 1 đường truyền dữ liệu duy nhất Trong Raspberry pi 4 có nhiều chânSPI được sử dụng cho giao tiếp SPI Chân SPI của Raspberry Pi 4 được cung cấp bêndưới:
Bảng 2.4 Bảng sơ đồ chân SPI
SPI3 CEO N –
GPIO0 – Chân 27
SPI3 MISO –GPIO1 – Chân 28
SPI3 MOSI –GPIO2 – Chân 3
SPI3 SCLK –GPIO3 – Chân 5SPI4 CEO N –
GPIO4 – Chân 7
SPI4 MISO –GPIO5 – Chân 29
SPI4 MOSI –GPIO6 – Chân 31
SPI4 SCLK –GPIO7 – Chân 26SPI0 CE1 N – SPI0 CE0 N – SPI0 MISO – SPI0 MOSI –
Trang 33GPIO8 – Chân 24 GPIO9 – Chân 21 GPIO10 – Chân 19 GPIO11 – Chân 23
Chân giao tiếp I2C
Raspberry Pi 4 có hỗ trợ giao thức I2C Là giao thức được sử dụng ở một số cảmbiến và động cơ Tất cả các chân này được đưa ra bên dưới:
Bảng 2.5 Bảng chân I2C
SDA0 / SDA6 –
GPIO0 – Chân 27
SCL0 / SCL6 –GPIO1 – Chân 28
SDA1 / SDA3 –GPIO2 – Chân 3
SCL1 / SCL3 –GPIO3 – Chân 5SDA3 – GPIO4 –
Chân 7
SCL3 – GPIO5 –Chân 29
SDA4 – GPIO6 –Chân 31
SCL4 – GPIO7 –Chân 26
SDA4 – GPIO8 –
Chân 24
SCL4 – GPIO9 –Chân 21
SDA5 – GPIO10 –Chân 19
SCL5 – GPIO11 –Chân 23
Các chân GPIO PWM
Để tạo ra tín hiệu đầu ra xung mong muốn Raspberry Pi 4 có một số chân PWM.Các chân này cấp dữ liệu trực tiếp cho các thiết bị ngoại vi điện áp thấp Để tạo ra tínhiệu đầu tiên các chân phải được lập trình trước Tất cả các chân PWM được đưa rabên dưới:
Bảng 2.6 Chân PWM
Các chân SDIO Raspberry Pi
Trong Raspberry Pi 4 có một khe cắm thẻ SD nhưng các cgaab GPIO cũng hỗ trợkhả năng tương thích với thẻ SD Chân SDIO trên thiết bị có thể được sử dụng cho thẻ
SD khi có ứng dụng yêu cầu:
Bảng 2.7 Bảng chân SD0CLK
SD0CLK / SD1 CLK –
GPIO22 – Chân 15
SD0 CMD / SD1 CMD –GPIO23 – Chân 16
SD0 DATA0 / SD1 DAT0– GPIO24 – Chân 18SD0 DAT1 / SD1 DAT1 –
GPIO25 – Chân 22
SD1 DAT2 / SD1 DAT2 –GPIO26 – Chân 37
SD0 DAT3 / SD1 DAT3 –GPIO27 – Chân 13
HDMI
Raspberry Pi 4 có hai cổng micro HDMI, cho phép kết nối hai màn hình riêng
Trang 34biệt Cần cáp micro HDMI-to-HDMI hoặc cáp HDMI-to-HDMI cùng với bộ chuyểnđổi micro HDMI-to-HDMI để kết nối Raspberry Pi 4 với màn hình.
2.2 Mạch hiển thị 2 Led 7 đoạn 74HC595.
Mạch hiển thị 2 led 7 đoạn 74hc595 được thiết kế giúp bạn có thể dễ dàng điềukhiển và hiển thị thông tin lên 2 led 7 đoạn chỉ với 3 chân giao tiếp thông qua IC ghidịch 74HC595, ngoài ra mạch còn có khả năng mở rộng thêm các led tiếp theo quacổng đầu ra nối tiếp, mạch có bộ thư viện đi kèm dễ sử dụng phù hợp cho các ứngdụng: bộ đếm, đồng hồ
Thông số kỹ thuật của Mạch hiển thị 2 Led 7 đoạn 74HC595
Nguồn sử dụng: 3 ~ 6VDC
Dòng điện sử dụng: 50mA
IC Driver: 74HC595
3 chân giao tiếp: SCLK, RCLK, DIO
Hiển thị 2 led 7 đoạn cỡ 0.5”
Hình 2.11 Mạch hiển thị 2 led 7 đoạn 74HC595
2.3 Module đèn tín hiệu giao thông 5V.
Module đèn tín hiệu giao thông được sử dụng trong các mô hình sử dụng đèngiao thông hoặc trong các bài thực hành vi điều khiển về đèn giao thông, mạch có thiết
kế nhỏ gọn, dễ kết nối với chân GND (0VDC) chung, các chân điều khiển kích mứccao VCC (3.3~5VDC) để đèn sáng
Hình 2.12 module đèn tín hiệu giao thông 5V
Trang 35 Đầu vào: đầu ra tín hiệu số
Giao diện: điều khiển riêng cực âm đỏ vàng xanh lục
Ánh sáng vàng sáng hơn ánh sáng xanh và ánh sáng đỏ là sáng nhất
2.4 Màn hình LCD 3.5 inch Raspberry Pi.
Màn Hình LCD 3.5 inch Raspberry Pi Cảm Ứng Điện Trở được sử dụng với cácloại Raspberry Pi có GPIO 40 chân: Raspberry Pi 4, Raspberry Pi 3, Raspberry Pi 2, giúp biến Raspberry Pi thành một máy tính hoàn chỉnh với màn hình cảm ứng siêu nhỏgọn, màn hình tích hợp cảm ứng điện trở, chất lượng hiển thị tốt, độ bền cao, rất dễ sửdụng
Thông số kỹ thuật
Màn Hình LCD 3.5 inch Raspberry Pi Cảm Ứng Điện Trở
Độ phân giải: 320 x 480 pixels
Giao tiếp và cấp nguồn: 40 chân GPIO của Raspberry Pi, phương thức giao tiếpchuẩn SPI
Hình 2.13 Màn hình LCD 3.5 inch Raspberry Pi
2.5 Arduino Uno R3.
Trang 36Arduino Uno R3 được sử dụng vi điều khiển ATmega328, tương thích với hầuhết các loại Arduino Shield trên thị trường, có thể gắn thêm các module mở rộng đểthực hiện thêm các chức năng như điều khiển motor, kết nối wifi hay các chức năngkhác Sử dụng ngôn ngữ lập trình C, C++ hoặc Arudino, một ngôn ngữ bắt nguồn từ C,C++ trên phần mềm riêng cho lập trình Arduino IDE.
Hình 2.14 Arduino UNO R3
Thông số kỹ thuật:
Chip điều khiển chính: ATmega328P
Chip nạp và giao tiếp UART: ATmega16U2
Nguồn nuôi mạch: 5VDC từ cổng USB hoặc nguồn ngoài cắm từ giắc tròn DC
Số chân Digital I/O: 14 (trong đó 6 chân có khả năng xuất xung PWM)
Số chân PWM Digital I/O: 6
Số chân Analog Input: 6
Dòng điện DC Current trên mỗi chân I/O: 20 mA
Dòng điện DC Current chân 3.3V: 50 mA
Flash Memory: 32 KB (ATmega328P), 0.5 KB dùng cho bootloader
SRAM: 2 KB (ATmega328P)
EEPROM: 1 KB (ATmega328P)
Clock Speed: 16 MHz
Bộ nhớ của Arduino UNO R3
32KB bộ nhớ Flash: đây là nơi lưu trữ những đoạn lệnh bạn lập trình Những
ứng dụng thông thường thì sẽ để ra vài KB trong số này cho bootloader, nhưng bạnyên tâm, vì mình chắc bạn không dùng quá 20KB đâu
2KB cho SRAM (Static Random Access Memory): đây là nơi lưu những giá trị
các biến bạn khai báo khi lập trình Bạn khai báo càng nhiều biến thì càng cần nhiều
Trang 37bộ nhớ RAM Cũng như Flash, bạn không cần quá quan tâm đến dung lượng của bộnhớ RAM này Và đã là Ram thì tất nhiên dữ liệu trên SRAM sẽ bị mất khi mất điện.
1K cho EEPROM (Electrically Eraseble Programmable Read Only Memory):
đây được coi là chiếc mini USB, nơi bạn có thể đọc và ghi dữ liệu của mình mà không phải lo bị mất khi mất điện Với những ứng dụng lớn, các bạn nên quan tâm đến dung lượng của bộ nhớ này để phân bố cho hiệu quả
Các cổng vào/ra trên Arduino UNO R3
Nhìn hình ảnh trên ta có thể thấy 14 chân digital dùng để đọc hoặc xuất tín hiệu.Mức điện áp logic là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗichân đều có các điện trở pull-up đươc thiết kế có sẵn trong vi điều khiển ATmega328(mặc định thì các điện trở này không được kết nối) Khi muốn dùng các điện trở pull upnày, các bạn cần đến lập trình
Ngoài ra, cần lưu ý một số chân dùng cho các giao tiếp cơ bản:
2 chân Serial: 1 (TX) và 0 (RX): dùng để nhận (receive – RX) và gửi (transmit
– TX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2chân này Bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn băm xung PWM với độ phân
giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite()
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các
chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thứcSPI với các thiết bị khác
LED 13: trên board Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Bạn sẽ
thấy đèn này nhấp nháy khi nhấn nút reset Công dụng của nó chỉ để báo hiệu Nóđược nối với chân số 13
Analog Pin: 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 →
210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Bạn có thể để đưa vào
chân AREF trên board điện áp tham chiếu khi sử dụng các chân analog Nói cách
khác, khi bạn cấp điện áp 2.5V vào chân này thì bạn có thể đo điện áp trong khoảng từ0V → 2.5V với độ phân giải vẫn là 10bit
Giao tiếp I2C: 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các
thiết bị khác
Ứng dụng của Arduino Uno R3
Aruino Uno R3 được sử dụng phổ biến trong việc tự thiết kế ra các mạch điện tửnhư điều khiển led, gửi dữ liệu lên lcd, điều khiển motor, hay được gắn thêm các
Trang 38Shield để kết nối nhiều module cảm biến khác để thực hiện thêm nhiều chức năng mởrộng như gửi dữ liệu qua wifi.
Ngoài ra, trên thị trường còn có nhiều biến thể của Arduino Uno để thực hiệnthêm các tính năng chuyên dụng, ví dụ như mCore, Orion trên mBot được chuyêndụng với việc dễ dàng phân biệt các loại module nào có thể sử dụng cắm vào trên cáccổng để trẻ dễ dàng sử dụng
2.6 Webcam HD 1080p.
Webcam chuyên dụng để học zoom, quay webcam, livestream
Webcam full hd độ phân giải 1080p và 720p (1920x1080 và 1280x720)
Có thể xoay nghe nói thu âm giúp thao tác dễ dàng, camera webcam sịn sò âmthanh nổi
Webcam PC có camera thông minh tốc độ lấy nét bằng tay nhanh, hình ảnh âmthanh sắc nét video mượt mà
Cắm vào máy tính qua cổng usb sử dụng luôn không cần cài đặt, tương thích cácphần mềm và game
Hình 2.15 WebcamHD 1080P
2.7 Chuẩn giao tiếp UART.
UART (Universal Asynchronous Receiver-Transmitter) bộ truyền nhận dữ liệunối tiếp bất đồng bộ Đây là một trong những giao thức truyền thông giữa thiết bị vớithiết bị được sử dụng nhiều nhất Giao tiếp UART được sử dụng nhiều trong các ứngdụng để giao tiếp với các module như: Wifi, Bluetooth, Xbee, module đầu đọc thẻRFID với Raspberry Pi, Arduino hoặc vi điều khiển khác Đây cũng là chuẩn giao tiếpthông dụng và phổ biến trong công nghiệp
Trong giao tiếp UART, hai UART giao tiếp trực tiếp với nhau UART truyềnchuyển đổi dữ liệu song song từ một thiết bị điều khiển như CPU thành dạng nối tiếp,
Trang 39truyền nó nối tiếp đến UART nhận, sau đó chuyển đổi dữ liệu nối tiếp trở lại thành dữliệu song song cho thiết bị nhận.
Hình 2.16 Hai MCU giao tiếp trực tiếp với nhau bằng Tx và Rx
Hai đường dây mà mỗi thiết bị sử dụng để truyền dữ liệu đó là:
Transmitter (Tx)
Receiver (Rx)
UART truyền dữ liệu không đồng bộ, có nghĩa là không có tín hiệu đồng hồ đểđồng bộ hóa đầu ra của các bit từ UART truyền đến việc lấy mẫu các bit bởi UARTnhận Thay vì tín hiệu đồng hồ, UART truyền thêm các bit start và stop vào gói dữ liệuđược chuyển Các bit này xác định điểm bắt đầu và điểm kết thúc của gói dữ liệu đểUART nhận biết khi nào bắt đầu đọc các bit
Khi UART nhận phát hiện một bit start, nó bắt đầu đọc các bit đến ở một tần số
cụ thể được gọi là tốc độ truyền (baud rate) Tốc độ truyền là thước đo tốc độ truyền
dữ liệu, được biểu thị bằng bit trên giây (bps – bit per second), có nhiều tốc độ truyềnkhã nhau từ 9600 bps 115200 bps Cả hai UART đều phải hoạt động ở cùng mộttốc độ truyền Tốc độ truyền giữa UART truyền và nhận chỉ có thể chênh lệch khoảng10% trước khi thời gian của các bit bị lệch quá xa
Cả hai UART cũng phải được cấu hình để truyền và nhận cùng một cấu trúc gói
dữ liệu
Cách thức hoạt động của giao tiếp UART
UART sẽ truyền dữ liệu nhận được từ một bus dữ liệu (Data Bus) Bus dữ liệuđược sử dụng để gửi dữ liệu đến UART bởi một thiết bị khác như CPU, bộ nhớ hoặc
vi điều khiển Dữ liệu được chuyển từ bus dữ liệu đến UART truyền ở dạng song song.Sau khi UART truyền nhận dữ liệu song song từ bus dữ liệu, nó sẽ thêm một bit start,một bit chẵn lẻ và một bit stop, tạo ra gói dữ liệu Tiếp theo, gói dữ liệu được xuất ranối tiếp từng bit tại chân Tx UART nhận đọc gói dữ liệu từng bit tại chân Rx của nó.UART nhận sau đó chuyển đổi dữ liệu trở lại dạng song song và loại bỏ bit start, bit
Trang 40chẵn lẻ và bit stop Cuối cùng, UART nhận chuyển gói dữ liệu song song với bus dữliệu ở đầu nhận.
UART truyền dữ liệu nối tiếp, theo một trong ba chế độ:
Full duplex: Giao tiếp đồng thời đến và đi từ mỗi master và slave
Half duplex: Dữ liệu đi theo một hướng tại một thời điểm
Simplex: Chỉ giao tiếp một chiều
Hình 2.17 Dữ liệu truyền qua UART
St: bit khởi đầu, luôn ở mức thấp
(n): dữ liệu các bit (0 – 8)
P: bit chẵn lẻ, có thể là số chẵn hoặc lẻ
Sp: bit dừng, luôn ở mức cao
IDLE: không chuyển giao trên đường dây liên lạc (RxDn hoặc TxDn), phải ở mứccao
Dữ liệu truyền qua UART được tổ chức thành các gói Mỗi gói chứa 1 bit bắtđầu, 5 đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ tùy chọn và 1 hoặc 2bit dừng
Bit khởi đầu: Đường truyền dữ liệu trong giao tiếp UART thường được giữ ởmức điện áp cao khi nó không truyền dữ liệu Để bắt đầu truyền dữ liệu, UART truyền
sẽ kéo đường truyền từ mức cao xuống mức thấp trong một chu kỳ đồng hồ KhiUART 2 phát hiện sự chuyển đổi điện áp cao xuống thấp, nó bắt đầu đọc các bit trongkhung dữ liệu ở tần số của tốc độ truyền (baud rate)
Khung dữ liệu: Khung dữ liệu chứa dữ liệu thực tế đang được truyền Nó có thểdài từ 5 bit đến 8 bit nếu sử dụng bit Parity (bit chẵn lẻ) Nếu không sử dụng bit Parity,khung dữ liệu có thể dài 9 bit Trong hầu hết các trường hợp, dữ liệu được gửi với bitLSB (bit có trọng số thấp nhất) trước tiên
Bit chẵn lẻ: Bit chẵn lẻ là một cách để UART nhận cho biết liệu có bất kỳ dữ liệunào đã thay đổi trong quá trình truyền hay không Bit có thể bị thay đổi bởi bức xạ