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

Nghiên cứu và Ứng dụng xử lý Ảnh vào thiết kế mô hình Đèn giao thông thông minh tại thành phố hồ chí minh

116 3 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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Và Ứng Dụng Xử Lý Ảnh Vào Thiết Kế Mô Hình Đèn Giao Thông Thông Minh Tại Thành Phố Hồ Chí Minh
Tác giả Nguyễn Huy Long, Nguyễn Thanh Diện
Người hướng dẫn GVC. TS Phan Học
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Máy Tính
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 116
Dung lượng 6,82 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU (20)
    • 1.1 ĐẶT VẤN ĐỀ (20)
    • 1.2 MỤC TIÊU NGHIÊN CỨU (22)
    • 1.3 ĐỐI TƯỢNG NGHIÊN CỨU (22)
    • 1.4 PHẠM VI NGHIÊN CỨU (23)
    • 1.5 PHƯƠNG PHÁP NGHIÊN CỨU (23)
    • 1.6 GIỚI HẠN ĐỀ TÀI (23)
    • 1.7 BỐ CỤC (23)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (24)
    • 2.1 CÁC LINH KIỆN VÀ CÔNG CỤ PHẦN MỀM SỬ DỤNG (25)
    • 2.2 GIỚI THIỆU PHẦN CỨNG (25)
      • 2.2.1 Vi điều khiển Arduino Uno R3 (25)
      • 2.2.2 Module đèn tín hiệu giao thông (32)
      • 2.2.3 Module LED 7 đoạn 2 chữ số (34)
      • 2.2.4 IC 74HC595 (36)
    • 2.3 GIỚI THIỆU PHẦN MỀM (38)
      • 2.3.2 Ngôn ngữ lập trình Python (39)
      • 2.3.3 Công cụ lập trình PyCharm (41)
      • 2.3.4 Công cụ Visual Studio Code (42)
      • 2.3.5 Công cụ Altium Designer (43)
      • 2.3.6 Công nghệ xử lý ảnh (45)
      • 2.3.7 Giới thiệu mô hình YOLO (49)
    • 2.4 CHUẨN GIAO TIẾP UART (57)
    • 2.5 CHUẨN MUTCD VÀ PHƯƠNG PHÁP WEBSTER (60)
  • CHƯƠNG 3. TÍNH TOÁN THIẾT KẾ (25)
    • 3.1 GIỚI THIỆU (61)
    • 3.2 SƠ ĐỒ KHỐI HỆ THỐNG (61)
    • 3.3 TÍNH TOÁN VÀ THIẾT KẾ (63)
      • 3.3.1 Tính toán thời gian tối ưu đèn tín hiệu giao thông (63)
      • 3.3.2 Thiết kế khối xử lý và điều khiển phần cứng (69)
      • 3.3.3 Thiết kế khối hiển thị phần cứng (69)
      • 3.3.4 Sơ đồ nguyên lý toàn mạch (71)
  • CHƯƠNG 4. THI CÔNG VÀ LẬP TRÌNH HỆ THỐNG (24)
    • 4.1 GIỚI THIỆU (73)
    • 4.2 THI CÔNG HỆ THỐNG (73)
    • 4.3 LẬP TRÌNH HỆ THỐNG (76)
      • 4.3.1 Lập trình Arduino (76)
      • 4.3.2 Lập trình Python (83)
      • 4.3.3 Thiết kế giao diện (92)
      • 4.3.4 Mô hình phần cứng (93)
  • CHƯƠNG 5. KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG (24)
    • 5.1 GIỚI THIỆU (94)
    • 5.3 KẾT QUẢ THỰC NGHIỆM (95)
    • 5.4 NHẬN XÉT HỆ THỐNG (105)
    • 5.5 ĐÁNH GIÁ HỆ THỐNG (106)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (24)
    • 6.1 KẾT LUẬN (107)
    • 6.2 HƯỚNG PHÁT TRIỂN (107)
  • PHỤ LỤC (109)
  • TÀI LIỆU THAM KHẢO (110)

Nội dung

Đồ án của nhóm hướng đến việc thiết kế một hệ thống đèn giao thông thông minh, có thể tối ưu thời gian dừng đèn đỏ và thời gian được phép di chuyển đèn xanh của đèn tín hiệu giao thông d

GIỚI THIỆU

ĐẶT VẤN ĐỀ

Đèn tín hiệu giao thông hiện nay đóng vai trò quan trọng trong việc điều tiết lưu lượng phương tiện tại các giao lộ, đảm bảo an toàn và trật tự giao thông Tuy nhiên, hệ thống đèn tín hiệu truyền thống thường hoạt động dựa trên chu kỳ thời gian cố định, không phản ánh lưu lượng thực tế của phương tiện Điều này gây ra hạn chế và bất cập trong vận hành, đặc biệt tại các thành phố lớn như TP.HCM, nơi mật độ giao thông thay đổi không đồng đều và khó dự đoán.

Hệ thống đèn giao thông truyền thống tại TP.HCM đang gặp phải một vấn đề lớn do lượng phương tiện tham gia giao thông quá cao Đến tháng 9 năm 2022, thành phố đã quản lý tổng cộng 8.725.233 phương tiện, bao gồm 865.435 xe ô tô và 7.859.798 xe mô tô.

Mật độ phương tiện giao thông cao dẫn đến tình trạng kẹt xe thường xuyên, đặc biệt trong giờ cao điểm Hệ thống đèn tín hiệu với chu kỳ cố định không thể điều chỉnh theo lưu lượng giao thông thực tế, gây ra nhiều ùn tắc nghiêm trọng.

Thời gian chờ đợi lãng phí vào giờ thấp điểm là một vấn đề nghiêm trọng trong hệ thống giao thông Mặc dù lưu lượng phương tiện giảm, nhưng việc sử dụng đèn tín hiệu cố định khiến người tham gia giao thông vẫn phải chờ đèn đỏ theo chu kỳ, dẫn đến sự lãng phí thời gian và giảm hiệu quả vận hành của toàn bộ hệ thống.

Lượng khí thải từ phương tiện giao thông tại TP.HCM đang trở thành một vấn đề môi trường nghiêm trọng Hệ thống đèn tín hiệu giao thông cố định không tối ưu hóa lưu lượng phương tiện, dẫn đến việc dừng chờ đèn đỏ kéo dài, làm gia tăng tiêu thụ xăng dầu và phát thải CO2, gây hại cho môi trường và sức khỏe cộng đồng Nghiên cứu của Viện Môi trường và Tài nguyên Đại học Quốc gia TP.HCM chỉ ra rằng hoạt động giao thông là nguyên nhân chính gây ô nhiễm không khí, với xe máy thải ra khoảng 29% NO, 90% CO và 37,7% bụi, trong đó bụi siêu mịn chiếm khoảng 31%.

Hệ thống đèn giao thông thông minh tại Thành phố Hồ Chí Minh được phát triển nhằm khắc phục những hạn chế của hệ thống truyền thống, với khả năng tự động vận hành và điều chỉnh thời gian đèn dựa trên lưu lượng phương tiện thực tế Sử dụng công nghệ xử lý ảnh, hệ thống này có thể nhận diện và phân tích mật độ phương tiện tại các giao lộ, từ đó tối ưu hóa dòng chảy giao thông và giảm thiểu tình trạng tắc nghẽn.

Giảm thiểu thời gian chờ đợi không cần thiết giúp tiết kiệm thời gian và nhiên liệu cho người tham gia giao thông, đồng thời giảm lượng khí thải và bảo vệ môi trường Theo báo cáo của Văn phòng Cơ quan Hợp tác Quốc tế Nhật Bản (JICA), cải thiện hiệu quả giao thông có thể giảm tới 20% lượng khí thải CO2 tại các thành phố lớn.

Việc điều chỉnh thời gian đèn giao thông một cách linh hoạt và kịp thời tại Việt Nam không chỉ giảm thiểu nguy cơ va chạm, mà còn nâng cao mức độ an toàn cho người đi đường, đặc biệt trong các tình huống giao thông phức tạp.

Hệ thống đèn giao thông thông minh không chỉ nâng cao hiệu quả quản lý mà còn cho phép giám sát và phản ứng nhanh với các tình huống khẩn cấp Giải pháp công nghệ tiên tiến này hứa hẹn cải thiện đáng kể an toàn giao thông, đồng thời góp phần xây dựng các thành phố thông minh và phát triển bền vững Nhiều quốc gia trên thế giới đã áp dụng hệ thống này, mang lại hiệu quả rõ rệt về chất lượng, đáp ứng nhu cầu của người tham gia giao thông và cải thiện môi trường.

MỤC TIÊU NGHIÊN CỨU

Nhóm nghiên cứu nhằm tìm hiểu cách vận hành của hệ thống đèn tín hiệu giao thông và lựa chọn linh kiện phù hợp để thiết kế mô hình phần cứng mô phỏng giao lộ ngã tư Mô hình sử dụng các module đèn giao thông và LED 7 đoạn để hiển thị thời gian đếm ngược, cùng với vi điều khiển Arduino Ngoài ra, nhóm cũng phát triển giao diện phần mềm để đếm và hiển thị số lượng phương tiện qua lại bằng công nghệ xử lý ảnh, cho phép điều khiển đèn tín hiệu dựa trên số lượng xe Trong trường hợp không cần điều khiển qua phần mềm, mô hình có thể hoạt động theo giá trị cố định đã được lập trình trên vi điều khiển.

ĐỐI TƯỢNG NGHIÊN CỨU

Nhóm nghiên cứu tập trung vào hệ thống đèn giao thông thông minh, có khả năng vận hành và hoạt động dựa trên các chức năng đã được trình bày.

PHẠM VI NGHIÊN CỨU

Nhóm nghiên cứu đã chọn đề tài liên quan đến không gian tại giao lộ Ngã tư Hàng Xanh, quận Bình Thạnh, TP.HCM, nhằm mục đích thu thập dữ liệu.

PHƯƠNG PHÁP NGHIÊN CỨU

Nghiên cứu được tiến hành thông qua các phương pháp nghiên cứu khác nhau Cụ thể:

- Phương pháp nghiên cứu tài liệu: tham khảo tài liệu, bài báo có uy tín về các thông tin có liên quan đến bài nghiên cứu

Nhóm nghiên cứu đã thu thập dữ liệu liên quan đến thời gian đèn giao thông tại các chiều đi, khoảng cách giữa hai giao lộ, và video mô tả tình hình giao thông vào hai thời điểm trong ngày: giờ cao điểm và giờ thấp điểm.

Phân tích và tính toán số liệu là bước quan trọng trong việc tối ưu hóa thời gian tín hiệu đèn giao thông Cần tính toán thời gian trung bình cho các đèn và thời gian di chuyển của các phương tiện từ giao lộ này đến giao lộ kế tiếp, dựa trên khoảng cách và vận tốc trung bình Từ những dữ liệu này, chúng ta có thể đề xuất phương án tối ưu hóa thời gian đèn cho từng thời điểm, nhằm nâng cao hiệu quả giao thông.

GIỚI HẠN ĐỀ TÀI

Một vài giới hạn và hạn chế của đề tài:

- Thiết kế mô hình phần cứng và phần mềm với mục đích mô phỏng

- Sử dụng cổng giao tiếp có dây để giao tiếp giữa phần cứng và phần mềm

- Giá trị của module LED 7 đoạn hiển thị còn bị nhiễu đoạn, chưa rõ ràng do liên quan đến độ trễ

- Xử lý ảnh và đếm số lượng phương tiện chỉ với 2 video, đại diện cho 2 chiều giao nhau tại giao lộ.

BỐ CỤC

Bố cục đề tài bao gồm các phần sau:

CƠ SỞ LÝ THUYẾT

CÁC LINH KIỆN VÀ CÔNG CỤ PHẦN MỀM SỬ DỤNG

- Dữ liệu đầu vào: Video

- Phương pháp xử lý ảnh: thư viện OpenCV kết hợp mô hình YOLO của Ultralytics

- Thiết bị điều khiển trung tâm: Arduino Uno R3

- Thiết bị đầu ra phần cứng: module LED 7 đoạn 2 chữ số 5621AS, module đèn giao thông

- Thiết bị đầu ra phần mềm: giao diện trên máy tính lập trình bằng ngôn ngữ Python

- Thiết bị phần cứng khác: IC 74HC595

- Giao thức truyền dữ liệu: UART

- Phần mềm sử dụng: Arduino IDE, PyCharm, Visual Studio Code và Altium Designer.

GIỚI THIỆU PHẦN CỨNG

2.2.1 Vi điều khiển Arduino Uno R3

Arduino là nền tảng mã nguồn mở, ra đời năm 2005 tại Ý, nhằm hỗ trợ phát triển dự án điện tử và lập trình nhúng Được sáng lập bởi nhóm sinh viên và giáo sư tại Viện Thiết kế Tương tác Ivrea, bao gồm Massimo Banzi và David Cuartielles, Arduino hướng đến việc cung cấp công cụ dễ sử dụng cho sinh viên, khuyến khích sự sáng tạo và phát triển trong lĩnh vực điện tử.

Kể từ khi ra mắt, Arduino đã trở thành công cụ phổ biến trong cộng đồng maker, giáo dục và công nghiệp nhờ tính dễ sử dụng, chi phí thấp và cộng đồng hỗ trợ mạnh mẽ Nền tảng này bao gồm bo mạch vi điều khiển, môi trường phát triển tích hợp (IDE) và thư viện phần mềm, giúp đơn giản hóa quá trình lập trình và điều khiển thiết bị phần cứng.

Arduino IDE là một công cụ dễ sử dụng với giao diện trực quan, giúp người mới bắt đầu nhanh chóng làm quen và làm việc với nền tảng mà không cần kiến thức chuyên sâu về điện tử hay lập trình.

Arduino là một nền tảng phần cứng có chi phí thấp, giúp giảm thiểu đáng kể chi phí đầu vào cho các dự án điện tử và lập trình, đặc biệt hữu ích trong môi trường giáo dục.

Arduino là một nền tảng mã nguồn mở, cho phép người dùng tự do truy cập và tùy chỉnh cả phần cứng lẫn phần mềm, từ đó thúc đẩy sự sáng tạo và hợp tác trong cộng đồng người dùng toàn cầu.

Arduino sở hữu một cộng đồng người dùng đông đảo và năng động, mang đến nhiều tài liệu, hướng dẫn, thư viện và hỗ trợ kỹ thuật phong phú Sự hỗ trợ này giúp người dùng dễ dàng tìm kiếm giải pháp cho các vấn đề gặp phải và học hỏi từ các dự án của người khác.

Arduino mang lại tính linh hoạt và khả năng mở rộng vượt trội, hỗ trợ nhiều loại cảm biến, mô-đun và thiết bị ngoại vi Điều này cho phép người dùng dễ dàng tùy chỉnh và mở rộng hệ thống của mình theo nhu cầu cụ thể.

Arduino hỗ trợ lập trình bằng nhiều ngôn ngữ như C/C++, Python và JavaScript thông qua các công cụ và thư viện mở rộng, mang đến cho người dùng nhiều lựa chọn phù hợp với kỹ năng và nhu cầu của họ.

Arduino Uno là board vi điều khiển phổ biến và dễ sử dụng, lý tưởng cho người mới bắt đầu tìm hiểu về Arduino Board này có 14 chân số, trong đó 6 chân có thể hoạt động như PWM outputs, và 6 chân đầu vào 5V Với khả năng phân giải 1024 mức, tốc độ hoạt động 16MHz và điện áp từ 7V đến 12V, kích thước của Arduino Uno là 5,5×7cm.

Arduino Nano là một bo mạch nhỏ gọn, sử dụng vi điều khiển ATmega328P, với 14 chân digital input/output và 8 chân analog inputs, là lựa chọn lý tưởng cho các dự án cần kích thước nhỏ.

Arduino Mega 2560 là lựa chọn lý tưởng cho các dự án phức tạp cần nhiều chân I/O, được trang bị vi điều khiển ATmega2560 Bo mạch này sở hữu 54 chân digital input/output, trong đó 15 chân có khả năng hoạt động như PWM outputs, cùng với 16 chân analog inputs.

Arduino Leonardo sử dụng vi điều khiển ATmega32U4, cho phép giao tiếp USB trực tiếp với máy tính Bo mạch này có 20 chân digital input/output, trong đó 7 chân có khả năng hoạt động như PWM outputs, cùng với 12 chân analog inputs.

- Arduino Micro: tương tự Leonardo nhưng nhỏ gọn hơn, cũng sử dụng vi điều khiển

ATmega32U4 Bo mạch này thích hợp cho các dự án yêu cầu ít không gian hơn nhưng vẫn cần nhiều tính năng [6, 10]

Arduino Due sử dụng vi điều khiển ARM Cortex ® M3 (Atmel SAM3X8E) với điện áp hoạt động 3.3V, khác biệt so với các bo mạch 5V khác Bo mạch này có 54 chân digital input/output, trong đó 12 chân hỗ trợ PWM outputs và 12 chân analog inputs.

- Arduino Pro Mini: nhỏ gọn, không có cổng USB tích hợp, sử dụng vi điều khiển

ATmega328P, có 14 chân digital input/output và 8 chân analog inputs Đây là lựa chọn tốt cho các dự án yêu cầu tối giản về kích thước và chi phí [12]

Arduino Zero là một board vi điều khiển sử dụng ARM Cortex ® M0+ (SAMD21), lý tưởng cho các dự án yêu cầu xử lý mạnh mẽ với 20 chân digital input/output và 6 chân analog inputs Ngoài Arduino Zero, còn có nhiều loại board Arduino khác như Arduino RedBoard và Arduino LilyPad Trong nghiên cứu này, nhóm sẽ tập trung vào việc tìm hiểu và sử dụng board Arduino Uno R3.

Arduino Uno R3 là một trong những bo mạch phổ biến nhất trong dòng sản phẩm Arduino Phiên bản R3 (Revision 3) được phát hành để cải thiện và mở rộng các tính năng so với các phiên bản trước, đồng thời vẫn duy trì sự đơn giản và dễ sử dụng của nền tảng Arduino.

GIỚI THIỆU PHẦN MỀM

2.3.1 Công cụ lập trình Arduino IDE

Arduino IDE là phần mềm mã nguồn mở chủ yếu dùng để viết và biên dịch mã cho module Arduino Nó bao gồm phần cứng và phần mềm; phần cứng là các bo mạch đã được thiết kế sẵn với cảm biến và linh kiện lập trình được, trong khi phần mềm là trình soạn thảo văn bản giúp người dùng viết chương trình (gọi là sketch) và nạp vào board.

Hình 2.11 Giao diện phần mềm Arduino IDE

➢ Ưu điểm của Arduino IDE [20]

Phần mềm mã nguồn mở miễn phí cho phép người dùng sửa đổi, cải tiến và phát triển theo các nguyên tắc mà nhà phát hành quy định Dù là phần mềm mã nguồn mở, nhưng khả năng bảo mật thông tin của nó vẫn rất đáng tin cậy.

Ngôn ngữ lập trình C/C++ được xem là thân thiện và phổ biến, giúp người dùng dễ dàng học hỏi và tiếp cận việc thiết kế các chương trình cho Arduino.

Thư viện phong phú với hơn 700 thư viện miễn phí từ Arduino, cho phép người dùng dễ dàng lựa chọn và sử dụng theo nhu cầu của dự án mà không tốn kém chi phí.

Giao diện của phần mềm được thiết kế đơn giản và dễ sử dụng, với một màn hình lớn giúp người dùng dễ dàng viết chương trình Các nút tính năng như Verify (kiểm tra chương trình) và Upload được bố trí rõ ràng, tạo điều kiện thuận lợi cho việc lập trình và quản lý dự án.

(nạp chương trình vào board Arduino), Save (lưu chương trình), Serial Monitor (giao tiếp giữa máy tính với board Arduino thông qua giao thức UART)

- Hỗ trợ đa nền tảng như Windows, MacOS và Linux

2.3.2 Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình hướng đối tượng đa năng, nổi bật với cấu trúc dữ liệu cấp cao và hệ thống thư viện phong phú Được phát triển bởi Guido van Rossum, Python lần đầu tiên ra mắt vào năm 1991 tại Viện nghiên cứu quốc gia về toán học và khoa học máy tính ở Hà Lan Ngôn ngữ này hiện đang được sử dụng rộng rãi trong lĩnh vực phát triển trí tuệ nhân tạo.

Hình 2.12 Logo Python Ảnh: ALLPCWorld

- Là một ngôn ngữ dễ dàng tiếp cận: Python có cú pháp đơn giản, gần gũi với tiếng

Anh, giúp người mới bắt đầu dễ dàng học hỏi và đọc hiểu code

Python mang lại năng suất cao nhờ khả năng viết chương trình với số lượng mã ít hơn so với các ngôn ngữ lập trình khác Điều này giúp bạn tiết kiệm thời gian và công sức, đồng thời nâng cao hiệu quả công việc.

Python có một thư viện tiêu chuẩn phong phú và đa dạng, cung cấp nhiều mã nguồn mở cho hầu hết các tác vụ lập trình Điều này giúp lập trình viên tiết kiệm thời gian viết mã và tập trung hơn vào việc phát triển ứng dụng.

- Liên kết linh hoạt: Python dễ dàng kết hợp với các ngôn ngữ lập trình phổ biến khác như Java, C và C++

Cộng đồng Python rất năng động và nhiệt tình, với hàng triệu lập trình viên trên toàn thế giới luôn sẵn sàng hỗ trợ Đây là nơi lý tưởng để bạn giải quyết mọi thắc mắc trong quá trình học tập và phát triển kỹ năng lập trình của mình với Python.

Internet là nguồn tài nguyên phong phú cho việc học Python, cung cấp nhiều tài liệu miễn phí như video hướng dẫn, tài liệu tham khảo và bài viết blog Bạn có thể dễ dàng tìm kiếm tài liệu phù hợp với trình độ và nhu cầu học tập của mình.

- Khả năng tương thích cao: Python có thể hoạt động trên nhiều hệ điều hành phổ biến như Windows, macOS, Linux và Unix

Một 3 ứng dụng của phổ biến của Python [22]:

Python là ngôn ngữ lập trình lý tưởng cho phát triển web, đặc biệt với các framework như Django và Flask, giúp xây dựng website hiệu quả Các lập trình viên thường kết hợp Python để phát triển hệ thống server, trong khi JavaScript đảm nhiệm vai trò front-end, tạo ra trải nghiệm người dùng mượt mà và tương tác.

- Xây dựng game: Python có thể thực hiện các dự án game với sự hỗ trợ của 2 thư viện là Pygame và Kivy

Python là ngôn ngữ lập trình lý tưởng cho khoa học dữ liệu và học máy, giúp khai thác, phân tích và triển khai các thuật toán phức tạp Với các thư viện chuyên dụng, Python hỗ trợ thu thập và xử lý dữ liệu từ nhỏ đến lớn, tối ưu hóa quy trình vận hành hệ thống Bên cạnh đó, Python còn cho phép xây dựng các ứng dụng yêu cầu công nghệ học máy và thị giác máy tính.

2.3.3 Công cụ lập trình PyCharm

PyCharm là một IDE mạnh mẽ dành riêng cho lập trình Python, được phát triển bởi JetBrains Nền tảng này hỗ trợ thiết kế và phát triển ứng dụng Python, và được sử dụng bởi nhiều công ty lớn như Twitter, Facebook và Amazon làm công cụ lập trình chính.

Hình 2.13 Giao diện phần mềm PyCharm

PyCharm là IDE phổ biến nhất cho Python, được đánh giá là môi trường phát triển ứng dụng tốt nhất với giao diện đầy đủ tính năng, nhiều plugin và phím tắt hữu ích IDE này còn hỗ trợ nhiều extensions, môi trường ảo, tái cấu trúc mã nguồn và tìm kiếm mã nguồn một cách nhanh chóng và hiệu quả.

Điều hướng mã là một công cụ quan trọng cho lập trình viên, cho phép họ dễ dàng truy cập vào các hàm, lớp hoặc tệp cần thiết Nhờ vào khả năng này, các nhà phát triển có thể chỉnh sửa và cải thiện mã nhanh chóng, tiết kiệm thời gian và nâng cao hiệu quả công việc.

- Hỗ trợ nhiều công nghệ web: PyCharm hỗ trợ các công nghệ web phổ biến như

HTML, CSS và JS Ngoài ra, nó cũng hỗ trợ AngularJS và NodeJS để phát triển các ứng dụng web

- Hỗ trợ framework Python phổ biến: PyCharm cũng hỗ trợ các framework như

Django, tự động điền và gợi ý cho các thông số của Django và vá lỗi mã nguồn của Django

- Không phải là phần mềm miễn phí (trừ phiên bản Community)

- Tính năng tự điền sẽ không tốt cho các lập trình viên newbie

- Có thể gây ra sự cố trong khi sửa chữa các công cụ như venv

2.3.4 Công cụ Visual Studio Code

CHUẨN GIAO TIẾP UART

UART, hay còn gọi là Universal Asynchronous Receiver/Transmitter, là một chuẩn giao tiếp phổ biến trong vi điều khiển Chuẩn này cho phép truyền và nhận dữ liệu nối tiếp không đồng bộ giữa các thiết bị phần cứng.

UART sử dụng hai dây tín hiệu TX (Transmit) và RX (Receive) để thực hiện việc truyền nhận dữ liệu giữa hai thiết bị, bao gồm một thiết bị chủ (Master) và một thiết bị tớ (Slave) Để đảm bảo quá trình truyền nhận diễn ra hiệu quả, cả hai thiết bị cần được cấu hình với cùng một cấu trúc gói dữ liệu và tốc độ truyền giống nhau.

Chuẩn UART truyền dữ liệu bằng cách chuyển từ bus dữ liệu sang Master dưới dạng song song Sau khi nhận dữ liệu, Master (UART 1) sẽ thêm một bit đầu (Start), một bit kiểm tra chẵn, lẻ (Parity) và một bit dừng (Stop) để tạo thành một gói dữ liệu (Packet) Gói dữ liệu này sau đó được xuất ra dưới dạng nối tiếp từng bit tại chân Tx của Master và gửi đến chân Rx của Slave (UART 2).

Hình 2.28 Cách thức truyền dữ liệu theo chuẩn UART Ảnh: Circuit Basics

Slave sẽ đọc gói dữ liệu, loại bỏ các bit Start, Parity và Stop, sau đó chuyển đổi dữ liệu về dạng song song Cuối cùng, Slave đưa dữ liệu song song này vào bus dữ liệu tại đầu nhận.

Hình 2.29 Cấu trúc một gói dữ liệu Ảnh: IoTEDU

- Bit Start: Khi không truyền dữ liệu, bit Start ở trạng thái mức cao Khi bắt đầu truyền,

Master sẽ giảm điện áp từ mức cao xuống mức thấp, và Slave sẽ nhận diện sự thay đổi này để bắt đầu đọc các bit dữ liệu tiếp theo với tốc độ truyền đã được thiết lập.

Hình 2.30 Cách thức hoạt động của bit Start Ảnh: KySuNgheo

Bit Parity là một phương pháp kiểm tra tính chẵn lẻ của bit nhằm xác nhận tính toàn vẹn của dữ liệu trong quá trình truyền Khi dữ liệu được truyền, có thể xảy ra nhiễu dẫn đến thay đổi điện áp Slave sẽ đếm số bit có giá trị cao (mức 1) để xác định xem tổng số bit đó là chẵn hay lẻ, từ đó phát hiện các lỗi trong dữ liệu.

Hình 2.31 Cách thức hoạt động của bit Parity Ảnh: WISCONSIN

- Bit Stop: báo hiệu kết thúc của gói dữ liệu, đảm bảo quá trình truyền đã hoàn tất [48]

➢ Ưu điểm và nhược điểm của UART

Bảng 2.8 Ưu và nhược điểm của chuẩn UART [48] Ưu điểm Nhược điểm

- Sử dụng chỉ với 2 dây

- Không cần tín hiệu xung đồng hồ

- Có thể kiểm tra lỗi dữ liệu dựa trên bit

- Cấu trúc gói dữ liệu có thể được thay đổi

- Kích thước khung dữ liệu bị giới hạn

- Không hỗ trợ truyền với nhiều thiết bị

TÍNH TOÁN THIẾT KẾ

GIỚI THIỆU

Trong chương tính toán và thiết kế, nhóm sẽ trình bày sơ đồ khối và sơ đồ nguyên lý, đồng thời tính toán các thông số thời gian tối ưu cho đèn giao thông Dựa trên kết quả tính toán và các sơ đồ đã xây dựng, nhóm sẽ tiến hành thiết kế mô hình.

SƠ ĐỒ KHỐI HỆ THỐNG

Hình 3.1 trình bày sơ đồ khối tổng thể (bao gồm phần cứng và phần mềm) của hệ thống đèn giao thông thông minh:

Hình 3.1 Sơ đồ khối tổng thể của hệ thống

Chức năng của từng khối:

Dữ liệu đầu vào cho nghiên cứu này bao gồm các video được ghi lại từ camera an ninh theo thời gian thực, nhưng nhóm sẽ sử dụng video từ camera điện thoại di động Mỗi video có thời lượng khoảng 5-10 phút và được phân loại riêng biệt cho các làn đường của xe máy và ô tô.

Hình 3.2 Ảnh trích xuất từ video đầu vào

Khối xử lý ảnh sử dụng thư viện OpenCV trong Python kết hợp với mô hình YOLOv8 để nhận diện đối tượng Hệ thống hiển thị kết quả nhận diện bằng cách vẽ hình chữ nhật (Bounding Box) xung quanh đối tượng, đồng thời cung cấp các thông số như ID và xác suất dự đoán danh mục của đối tượng.

Hình 3.3 Xử lý, nhận diện đối tượng và xác suất dự đoán danh mục của đối tượng

Khối xử lý và điều khiển phần mềm sử dụng dữ liệu đầu vào và chức năng từ khối xử lý ảnh, kết hợp với các thuật toán từ thư viện Python để đếm số lượng phương tiện giao thông và thiết kế giao diện mô phỏng hiệu quả.

Khối hiển thị phần mềm cung cấp giao diện mô phỏng cho ngã tư có đèn tín hiệu giao thông, hiển thị các tín hiệu, thời gian đếm ngược và dữ liệu video đầu vào đã được xử lý hình ảnh.

Khối xử lý và điều khiển phần cứng nhận dữ liệu từ khối phần mềm qua giao tiếp UART Dữ liệu này được gửi vào board Arduino Uno R3 để điều khiển đèn giao thông và hiển thị thời gian đếm ngược trên LED 7 đoạn.

Khối hiển thị phần cứng bao gồm hai module đèn tín hiệu giao thông và các LED 7 đoạn, tất cả được điều khiển bởi Arduino Uno R3.

THI CÔNG VÀ LẬP TRÌNH HỆ THỐNG

GIỚI THIỆU

Trong chương này, nhóm sẽ trình bày quy trình thi công hệ thống đèn giao thông thông minh, bao gồm việc thống kê linh kiện cần thiết, thiết kế mạch in cho phần cứng, xây dựng mô hình phần cứng cho hệ thống và lập trình cho toàn bộ hệ thống.

THI CÔNG HỆ THỐNG

➢ Thống kê linh kiện sử dụng

Bảng 4.1 trình bày tên linh kiện và số lượng linh kiện sẽ sử dụng cho mô hình phần cứng

Bảng 4.1 Thống kê các linh kiện sẽ sử dụng

Tên linh kiện Số lượng Chức năng Vị trí đặt

R3 1 Điều khiển các linh kiện đầu ra Trên mạch in

Header 5 chân 4 Sử dụng thay thế cho 5 chân phía trên của

LED 7 đoạn 2 số Trên mạch in

Header 4 chân 4 Sử dụng thay thế cho 4 chân phía dưới của

LED 7 đoạn 2 số (không tính chân DP) Trên mạch in

IC 74HC595 2 Điều khiển các LED 7 đoạn 2 số Trên mạch in

LED đơn có màu 12 Mô phỏng đèn giao thông tại ngã tư Trên mô hình thiết kế

LED 7 đoạn 2 chữ số 4 Hiển thị thời gian tương ứng với màu đèn trên ngã tư

Trong thiết kế mô hình, LED đơn màu và LED 7 đoạn 2 chữ số được lắp đặt tại vị trí phù hợp Để thuận tiện cho việc kết nối dây từ Header sang các chân linh kiện, mạch in sẽ sử dụng các Header.

➢ Thiết kế mạch in cho hệ thống

Hệ thống mạch in được thiết kế bởi nhóm trên phần mềm Altium Designer, với việc nghiên cứu và sắp xếp các linh kiện một cách hợp lý để thuận tiện cho việc đi dây trên bo mạch.

Hình 4.1 Thiết kế mạch in cho hệ thống

Trên mạch in, Arduino Uno R3 được đặt ở trung tâm phía dưới, với đầu cắm dây kết nối với máy tính hướng ra ngoài Bên phải mạch, các header P1 và P2 là chân của module đèn giao thông đường Đông – Tây, trong khi P3 và P4 là chân của module đèn giao thông đường Bắc – Nam Bên trái mạch, IC 74HC595 (U1) điều khiển 2 LED 7 đoạn trên đường Đông – Tây, mỗi LED sử dụng 2 cặp Header (P5 – P6 và P7 – P8) Tương tự, IC 74HC595 thứ hai (U2) điều khiển 2 LED 7 đoạn trên đường Bắc – Nam với 2 cặp Header (P9 – P10 và P11 – P12) Các Header P13 và P14 nối chung chân nguồn VCC của Arduino và U1 do hạn chế trong việc đi dây đồng trên bo mạch.

Sau khi hoàn thiện thiết kế, nhóm thực hiện quy trình tạo mạch in thành phẩm bằng cách xuất file thiết kế dưới định dạng PDF và in lên giấy chuyên dụng Tiếp theo, cắt bo đồng theo kích thước mạch cần in, sau đó áp mặt bo đồng phủ lớp đồng lên mặt có mực in của giấy và giữ chặt hai mặt Sử dụng bàn ủi ở chế độ nóng nhất, ủi đều lên mặt sau của tờ giấy in cho đến khi mực in dính chắc và rõ nét lên bo đồng Sau khi ủi, để bo nguội rồi cẩn thận bóc lớp giấy in ra Ngâm bo đồng vào dung dịch nước và axit pha theo tỷ lệ nhất định cho đến khi phần đồng không bám mực bị loại bỏ hoàn toàn Cuối cùng, rửa sạch và lau khô bo mạch, sau đó tiến hành khoan mạch, lắp ráp linh kiện, hàn mạch, chỉnh sửa và kiểm tra thông mạch.

Hình 4.2 Mặt trước bo mạch in

Hình 4.3 Mặt sau bo mạch in

KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG

GIỚI THIỆU

Chương này tóm tắt các kết quả lý thuyết và thực nghiệm mà nhóm đã đạt được, đồng thời đưa ra nhận xét về hệ thống đèn giao thông thông minh, nêu rõ những ưu điểm và hạn chế của nó.

Trong quá trình thực hiện đồ án, nhóm đã nghiên cứu lý thuyết, chức năng và cách hoạt động của các linh kiện sử dụng, đồng thời tham khảo tài liệu từ các trang báo uy tín liên quan Ngoài ra, nhóm đã thu thập dữ liệu thực tiễn tại ngã tư Hàng Xanh, quận Bình Thạnh, TP.HCM để tính toán phục vụ cho dự án Dưới đây là những kết quả lý thuyết mà nhóm đã đạt được.

Nhóm đã tìm hiểu và sử dụng các linh kiện điện tử và vi điều khiển như Arduino Uno R3, module đèn tín hiệu giao thông, module LED 7 đoạn 2 chữ số và IC 74HC595, cùng với nguyên lý hoạt động của chúng, nhằm áp dụng hiệu quả vào đồ án của mình.

➢ Biết cách sử dụng các phần mềm lập trình: nhóm đã sử dụng các phần mềm như

Arduino IDE và PyCharm là những công cụ quan trọng để lập trình cho Arduino và phát triển giao diện phần mềm Nhóm đã có cơ hội làm quen với các ngôn ngữ lập trình như C/C++ và Python, từ đó nắm vững cách sử dụng chúng để lập trình cho hệ thống một cách hiệu quả.

Trong đồ án này, nhóm đã nhận thức rõ tầm quan trọng của việc áp dụng xử lý ảnh Để thực hiện điều này, nhóm đã nghiên cứu sâu về trí tuệ nhân tạo, thị giác máy tính và các kỹ thuật xử lý ảnh Đồng thời, nhóm cũng tìm hiểu các thư viện và mô hình hỗ trợ cho việc xử lý hình ảnh trong dự án của mình.

Để tính toán thời gian đèn tín hiệu giao thông, thời gian đếm ngược cho mỗi đèn là yếu tố quan trọng Nhóm đã nghiên cứu chuẩn tính toán đèn tín hiệu giao thông Webster và các nguyên tắc MUTCD do Bộ Giao thông Vận tải Hoa Kỳ ban hành, áp dụng ở nhiều quốc gia Mặc dù chuẩn này chưa được áp dụng phổ biến tại Việt Nam do đặc thù giao thông, nhưng nhóm nhận thấy rằng việc áp dụng một số nguyên tắc giao thông, đặc biệt là đèn tín hiệu, theo chuẩn Webster và MUTCD có thể mang lại hiệu quả trong nhiều trường hợp cụ thể.

Để giao tiếp và đồng bộ dữ liệu giữa phần cứng và máy tính, nhóm đã áp dụng chuẩn giao tiếp có dây nối tiếp không đồng bộ UART.

KẾT QUẢ THỰC NGHIỆM

Kết quả thực nghiệm của hệ thống được nhóm thử nghiệm trên nhiều trường hợp và ghi lại kết quả

➢ Kết quả nhận diện phương tiện chạy qua đường kẻ

Nhóm thử nghiệm đã tiến hành nhận diện phương tiện chạy qua đường kẻ trong ba giai đoạn: ngay trước đường kẻ, trong đường kẻ và khi phương tiện chạy qua đường kẻ, bao gồm cả ô tô và xe máy.

Hình 5.1 Kết quả nhận diện phương tiện ô tô

Hình 5.2 Kết quả nhận diện phương tiện xe máy

Kết quả được trình bày như bảng sau:

Bảng 5.1 Kết quả nhận diện từng phương tiện chạy qua đường kẻ

Số lượng phương tiện thử nghiệm

Số lượng phương tiện nhận diện

Ngay sau đường kẻ Ô tô

Kết quả nghiên cứu cho thấy, số lượng phương tiện được nhận diện ngay trước và sau đường kẻ rất thấp, chỉ từ 0 đến 1 phương tiện Tuy nhiên, khi các phương tiện di chuyển qua đường kẻ, tỷ lệ nhận diện đạt mức cao gần như tuyệt đối, dao động từ 97% đến 100% với số lượng phương tiện từ 10 đến 100.

➢ Kết quả đếm số lượng phương tiện chạy qua đường kẻ trong 1 phút

Kết quả đếm số lượng phương tiện chạy qua trong 1 phút được thực hiện trên 2 trường hợp: có mật độ phương tiện thấp và mật độ phương tiện cao

• Trường hợp 1: mật độ xe chạy qua thấp

Hình 5.3 Thử nghiệm video có mật độ phương tiện thấp

Kết quả thử nghiệm được trình bày như bảng sau:

Bảng 5.2 Kết quả đếm số lượng phương tiện chạy qua trong 1 phút với mật độ thấp

Số lượng phương tiện chạy qua Số lượng phương tiện nhận diện được Phút thứ nhất

Tỷ lệ nhận diện ô tô 100% 100% 100%

Tỷ lệ nhận diện xe máy 96.7% 95.9% 97.9%

Kết quả thử nghiệm trong 3 phút cho thấy, khi mật độ phương tiện thấp, tỷ lệ chính xác trong việc đếm ô tô đạt 100% với số lượng từ 5 đến 8 xe, và tỷ lệ chính xác đối với xe máy đạt từ 96% đến 98% khi có khoảng 50 đến 75 xe.

• Trường hợp 2: mật độ phương tiện chạy qua cao

Hình 5.4 Thử nghiệm video có mật độ phương tiện cao

Kết quả thử nghiệm được trình bày như bảng sau:

Bảng 5.3 Kết quả đếm số lượng phương tiện chạy qua trong 1 phút với mật độ cao

Số lượng phương tiện chạy qua Số lượng phương tiện nhận diện được Trong phút thứ nhất

Trong phút thứ ba Ô tô 20 14 15 19 14 14

Tỷ lệ nhận diện ô tô 95% 100% 93.3%

Tỷ lệ nhận diện xe máy 94% 95.1% 97%

Kết quả thử nghiệm cho thấy trong 3 phút, tỷ lệ nhận diện phương tiện chạy qua đường kẻ đạt từ 93% đến 100% với 14 – 20 ô tô và từ 94% đến 97% với 102 – 117 xe máy khi mật độ xe cao.

➢ Kết quả điều khiển đèn giao thông trên giao diện

Trong giao diện phần mềm, thời gian đếm số lượng phương tiện là 1 phút, nhưng thời gian đếm ngược của các đèn khác nhau Để tránh việc các đèn thay đổi màu và thời gian đột ngột khi hết 1 phút, nhóm lập trình sẽ đảm bảo rằng sau khi đếm đủ 1 phút, các đèn hoàn thành chu kỳ hiện tại trước khi chuyển sang chu kỳ mới dựa trên lưu lượng xe đã đếm.

• Trường hợp 1: lưu lượng xe ở mức 1 (mức thấp điểm) Ở mức thấp điểm, giá trị đèn đỏ được thiết lập cho 1 hướng là 14 giây, đèn xanh là

24 giây và đèn vàng là 3 giây

Hình 5.5 Kết quả thử nghiệm trường hợp lưu lượng xe mức 1 ở hướng Đông – Tây

Hình 5.6 Kết quả thử nghiệm trường hợp lưu lượng xe mức 1 ở hướng Bắc – Nam

Kết quả thử nghiệm lưu lượng xe mức 1 cho thấy trong nửa chu kỳ đầu, đèn đỏ sẽ được cập nhật trên hướng có lưu lượng xe cao hơn trong 14 giây, trong khi đèn xanh của hướng còn lại sẽ là 11 giây (giá trị đèn đỏ trừ đi 3 giây cho đèn vàng) Ở nửa chu kỳ sau, thời gian đèn xanh trên hướng có lưu lượng xe cao hơn sẽ được điều chỉnh tương ứng.

Thời gian đèn đỏ của hướng ngược lại là 24 giây, tương đương với thời gian đèn xanh cộng thêm 3 giây Cách thức hoạt động này áp dụng trong các trường hợp tương tự.

Trong trường hợp 2 với lưu lượng xe ở mức 2 (sắp vào cao điểm), thời gian đèn tín hiệu được thiết lập như sau: đèn đỏ cho một hướng là 24 giây, đèn xanh là 35 giây và đèn vàng là 3 giây Đối với lưu lượng xe ở mức 2 tại các hướng, thời gian các đèn vẫn giữ nguyên kết quả giống như trường hợp 1.

Hình 5.7 Kết quả thử nghiệm trường hợp lưu lượng xe mức 2 ở hướng Bắc – Nam

Hình 5.8 Kết quả thử nghiệm trường hợp lưu lượng xe mức 2 ở hướng Đông – Tây

Trong trường hợp lưu lượng xe ở mức 3 (mức cao điểm), thời gian đèn tín hiệu được thiết lập cụ thể với đèn đỏ là 75 giây, đèn xanh là 83 giây và đèn vàng là 3 giây Kết quả cho thấy rằng việc điều chỉnh thời gian đèn tín hiệu ở mức này mang lại hiệu quả hợp lý cho tất cả các hướng giao thông.

Từ các kết quả trên, nhóm có bảng kết quả sau:

Bảng 5.4 Kết quả điều khiển đèn giao thông theo lưu lượng phương tiện

Thời gian đèn giao thông tại hướng có lưu lượng xe cao hơn

Thời gian đèn giao thông tại hướng còn lại Đèn đỏ Đèn vàng Đèn xanh Đèn đỏ Đèn vàng Đèn xanh

➢ Kết quả giao tiếp dữ liệu giữa phần cứng và máy tính

Thử nghiệm giao tiếp giữa phần cứng và máy tính được thực hiện bằng cách truyền nhận dữ liệu liên tục mỗi giây, với 50 lần truyền nhận cho mỗi chu kỳ đèn bắt đầu.

Hình 5.9 Thử nghiệm giao tiếp dữ liệu

Kết quả thử nghiệm được trình bày như bảng sau:

Bảng 5.5 Kết quả thử nghiệm giao tiếp dữ liệu giữa phần cứng và máy tính

Gửi tín hiệu trong Số lần gửi tín hiệu Số lần nhận tín hiệu Tỷ lệ

Mỗi lần bắt đầu chu kỳ đèn 50 50 100%

Kết quả thử nghiệm cho thấy rằng khi gửi tín hiệu mỗi giây, tỷ lệ thành công đạt 96% trong 50 lần gửi, trong khi nếu gửi mỗi phút, tỷ lệ thành công là 100%.

Nhóm đã tiến hành thử nghiệm điều khiển phần cứng dựa trên dữ liệu nhận từ máy tính, chia thành hai trường hợp nhận dữ liệu Trong quá trình thử nghiệm, nhóm kiểm tra tính đồng bộ thời gian và màu sắc đèn hiển thị trên giao diện cùng với mô hình ở các mức lưu lượng xe khác nhau.

Hình 5.10 Kết quả điều khiển phần cứng theo dữ liệu gửi ở mức 1

Hình 5.11 Kết quả điều khiển phần cứng theo dữ liệu gửi ở mức 2

Hình 5.12 Kết quả điều khiển phần cứng theo dữ liệu gửi ở mức 3

• Trường hợp 1: phần cứng nhận được dữ liệu mỗi 1 giây

Kết quả thử nghiệm được trình bày như bảng sau:

Bảng 5.6 Kết quả thử nghiệm điều khiển phần cứng theo dữ liệu nhận được mỗi 1 giây

Thời gian đèn giao thông tại hướng có lưu lượng xe cao hơn

Thời gian đèn giao thông tại hướng còn lại Đèn đỏ Đèn vàng Đèn xanh Đèn đỏ Đèn vàng Đèn xanh

• Trường hợp 2: phần cứng nhận được dữ liệu mỗi lần bắt đầu một chu kỳ đèn

Bảng 5.7 Kết quả thử nghiệm điều khiển phần cứng theo dữ liệu nhận được mỗi lần bắt đầu một chu kỳ đèn

Thời gian đèn giao thông tại hướng có lưu lượng xe cao hơn

Thời gian đèn giao thông tại hướng còn lại Đèn đỏ Đèn vàng Đèn xanh Đèn đỏ Đèn vàng Đèn xanh

NHẬN XÉT HỆ THỐNG

Sau khi kiểm tra và ghi nhận kết quả thực nghiệm, nhóm nhận thấy hệ thống đáp ứng đầy đủ các yêu cầu và mục tiêu đề ra Hệ thống không chỉ khả thi mà còn phù hợp với nhu cầu của người tham gia giao thông, góp phần tiết kiệm thời gian và giảm thiểu ô nhiễm môi trường.

Một vài ưu điểm và hạn chế của hệ thống:

- Mô hình phần cứng có tính thẩm mỹ và an toàn

- Giao diện được thiết kế đơn giản, đẹp mắt và dễ sử dụng

- Các đèn LED và LED 7 đoạn hiển thị rõ ràng

- Giao tiếp chuẩn UART truyền nhận dữ liệu tốt

- Xử lý ảnh cho video có độ chính xác cao, đếm và điều khiển đèn theo lưu lượng hiệu quả

- Chưa sử dụng các dịch vụ không dây vào hệ thống để xử lý, lưu trữ dữ liệu lên cơ sở dữ liệu

- Chưa tích hợp các nút nhấn để điều khiển thủ công khi hệ thống tự động có sự cố.

Ngày đăng: 19/12/2024, 14:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] L. Hoàng, "TP.HCM: Mỗi ngày hơn 1.000 phương tiện đăng ký mới," Báo Giao Thông, 3 Oct Sách, tạp chí
Tiêu đề: TP.HCM: Mỗi ngày hơn 1.000 phương tiện đăng ký mới
[2] C. phủ, "TP.HCM: Tăng cường kiểm tra khí thải các phương tiện giao thông," Bộ GTVT, 25 May 2020. [Online]. Available:https://mt.gov.vn/moitruong/Pages/ChiTietTin.aspx?groupID=1129&IDNews=66773. [Accessed 23 May 2024] Sách, tạp chí
Tiêu đề: TP.HCM: Tăng cường kiểm tra khí thải các phương tiện giao thông
[3] Đ. TPHCM, "Percentage contribution of each on-road emission in HCMC, 2019," ĐHQG TPHCM, Vietnam, 2019 Sách, tạp chí
Tiêu đề: Percentage contribution of each on-road emission in HCMC, 2019
[4] JICA, "Dự án hỗ trợ lên kế hoạch và thực hiện các hành động giảm nhẹ phát thải khí nhà kính phù hợp điều kiện quốc gia (SPI-NAMA)," JICA, Vietnam, 2018 Sách, tạp chí
Tiêu đề: Dự án hỗ trợ lên kế hoạch và thực hiện các hành động giảm nhẹ phát thải khí nhà kính phù hợp điều kiện quốc gia (SPI-NAMA)
[5] Arduino, "What is Arduino?," Arduino, 5 Feb. 2018. [Online]. Available: https://www.arduino.cc/en/Guide/Introduction. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: What is Arduino
[6] Mesidas, "Arduino là gì? Tổng quan về bo mạch vi điều khiển Arduino," Mesidas, 3 Oct. 2020. [Online]. Available: https://mesidas.com/arduino-la-gi/. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Arduino là gì? Tổng quan về bo mạch vi điều khiển Arduino
[7] ksp, "Arduino Nano - Nhỏ, tiện lợi, mang trên mình tinh hoa của Arduino Uno," Arduino.vn, 22 Jul. 2014. [Online]. Available: http://arduino.vn/bai-viet/273-arduino-nano-nho-tien-loi-mang-tren-minh-tinh-hoa-cua-arduino-uno. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Arduino Nano - Nhỏ, tiện lợi, mang trên mình tinh hoa của Arduino Uno
[8] C. M. G. Huy, "Giới thiệu Arduino Mega2560," Arduino.vn, 28 Nov. 2015. [Online]. Available: http://arduino.vn/bai-viet/542-gioi-thieu-arduino-mega2560. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Giới thiệu Arduino Mega2560
[9] ksp, "Arduino Leonardo là gì ?," Arduino.vn, 8 Jan. 2016. [Online]. Available: http://arduino.vn/bai-viet/570-arduino-leonardo-la-gi. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Arduino Leonardo là gì
[10] TheEngineeringProjects, "Introduction to Arduino Micro," Arduino, 29 Sep. 2018. [Online]. Available: https://www.theengineeringprojects.com/2018/09/introduction-to-arduino-micro.html.[Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Introduction to Arduino Micro
[11] TheEngineeringProjects, "Introduction to Arduino Due," TheEngineeringProjects, 19 Sep. 2018. [Online]. Available: https://www.theengineeringprojects.com/2018/09/introduction-to-arduino-due.html. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Introduction to Arduino Due
[12] Arduino, "Arduino Pro Mini," Arduino, 14 Mar. 2024. [Online]. Available: https://docs.arduino.cc/retired/boards/arduino-pro-mini/. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Arduino Pro Mini
[13] Arduino, "Getting started with the Arduino Zero," Arduino, 5 Feb. 2018. [Online]. Available: https://wiki-content.arduino.cc/en/Guide/ArduinoZero. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Getting started with the Arduino Zero
[14] ArduinoKit, "Mạch Arduino Uno R3 là gì? Hướng dẫn chi tiết cách sử dụng," ArduinoKit, 21 Dec Sách, tạp chí
Tiêu đề: Mạch Arduino Uno R3 là gì? Hướng dẫn chi tiết cách sử dụng
[15] ksp, "Arduino UNO R3 là gì?," Arduino.vn, 22 May 2014. [Online]. Available: http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: Arduino UNO R3 là gì
[16] Robocon, "LED179 LED 7 THANH 5621AS 0.56 INCH 2 SỐ MÀU ĐỎ CATHODE CHUNG 10 CHÂN," Robotics Company, 28 Nov. 2016. [Online]. Available: https://robocon.vn/detail/led179-led-7-thanh-5621as-056-inch-2-so-mau-do-cathode-chung-10-chan.html. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: LED179 LED 7 THANH 5621AS 0.56 INCH 2 SỐ MÀU ĐỎ CATHODE CHUNG 10 CHÂN
[17] XLITX, "5621AS - 0.56-inch Red 2-Digit CC LED 7-Segment Display," XLITX, China, 2024 Sách, tạp chí
Tiêu đề: 5621AS - 0.56-inch Red 2-Digit CC LED 7-Segment Display
[18] Dientutuonglai, "IC 74HC595," Dientutuonglai, 27 Mar. 2018. [Online]. Available: https://dientutuonglai.com/tim-hieu-74hc595.html. [Accessed 24 May 2024] Sách, tạp chí
Tiêu đề: IC 74HC595
[19] T. Instruments, "SNx4HC595 8-Bit Shift Registers With 3-State Output Registers," Texas Instruments, USA, 2021 Sách, tạp chí
Tiêu đề: SNx4HC595 8-Bit Shift Registers With 3-State Output Registers
2022. [Online]. Available: https://elcom.com.vn/thi-giac-may-tinh-la-gi-ung-dung-cua-thi-giac-may-tinh-trong-thuc-tien-1663913803#:~:text=Th%E1%BB%8B%20gi%C3%A1c%20m%C3%A1y%20t%C3%ADnh%20l%C3%A0%20m%E1%BB%99t%20l%C4%A9nh%20v%E1%BB%B1c,ra%20%C4%91%E1%BB Link

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w