Luận văn Hệ thống điều khiển giao thông thông minh cho đô thị

Cài đặt một hệ thống điều khiển tín hiệu đèn giao thông dựa vào việc phân tích các chuyển động của phương tiện giao thông trong hình ảnh thu nhận được từ một Camera đặt tại một ngã tư. Phạm vi thử nghiệm chỉ thực hiện trên Camera tĩnh, ứng dụng phải được xác định các vùng mặt đường, làn đường và xác định hướng đi quy định. Phạm vi khảo sát là một ngã tư của 2 con đường một chiều.

pdf23 trang | Chia sẻ: vietpd | Lượt xem: 1636 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Hệ thống điều khiển giao thông thông minh cho đô thị, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
- 38 - Chương 4 - PHÁT TRIỂN HỆ THỐNG ĐIỀU KHIỂN GIAO THÔNG THÔNG MINH CHO ĐÔ THỊ 4.1 - Mục đích và phạm vi ứng dụng Cài đặt một hệ thống điều khiển tín hiệu đèn giao thông dựa vào việc phân tích các chuyển động của phương tiện giao thông trong hình ảnh thu nhận được từ một Camera đặt tại một ngã tư. Phạm vi thử nghiệm chỉ thực hiện trên Camera tĩnh, ứng dụng phải được xác định các vùng mặt đường, làn đường và xác định hướng đi quy định. Phạm vi khảo sát là một ngã tư của 2 con đường một chiều. Hình 4 - 1: Phạm vi ứng dụng 4.2 - Mô hình phát hiện chuyển động được áp dụng trong chương trình Để giảm thiểu chi phí tính toán và tăng tốc độ chương trình, mỗi một đơn vị ảnh là một block (n x n) điểm ảnh. Hệ số n này là hệ số thực nghiệm. Chương trình cho phép thay đổi hệ số n. Theo thực nghiệm n = 3 là tốt nhất. - 39 - Ngoài ra chương trình còn có khả năng thay đổi các thông số khác nữa, như là khoảng thời gian tĩnh để các đối tượng di động đứng yên đủ lâu để có thể được tích hợp vào hình nền, các ngưỡng để sử dụng trong hàm xác định độ khác biệt đặc trưng của khung hình hiện thời và khung hình đối chiếu, ... Dựa vào lý thuyết được trình bày ở trên, tôi xin đưa ra mô hình phát hiện chuyển động được áp dụng trong chương trình thực nghiệm như sau. Khung hình hiện thời Khung hình trước Rút trích đặc trưng độ sáng Rút trích đặc trưng độ sáng Đối sánh khung hình Cập nhật hình nền Khung hình nền Đối sánh hình nền Phát hiện đối tượng chuyển động Khác biệt nền Khác biệt khung hình Khử nhiễu. Khử bóng. Đối tượng chuyển động Hình 4 - 2: Sơ đồ thuật toán phát hiện chuyển động cài đặt thử nghiệm - 40 - 4.2.1 - Hàm rút trích đặc trưng Fa. Chương trình thực nghiệm lấy giá tri đặc trưng màu để áp dụng cho quá trình phát hiện chuyển động. Chương trình cũng sử dụng phương pháp hiệu chỉnh độ sáng sao cho giảm thiểu nhiễu do tác động của môi trường sáng nên camera là khác nhau trong thời gian vận hành 24 giờ. Hàm lấy giá trị đặc trưng màu được cài đặt là trung bình cộng từng kênh màu (R, G, B) của block. Sau đó được chuyển đổi các thông số R, G, B sang hệ màu H, L, S. Ứng với mỗi block (kích thước n x n), chương trình sẽ lấy trung bình cộng từng kênh màu R, G, B của tất cả điểm ảnh thuộc block đó. Các giá trị này sẽ được chuyển đổi sang các giá trị trong hệ màu HLS. Thảm khảo source code ở phần Phụ lục 1 và 2. 4.2.2 - Thuật toán cập nhật nền tự động. Trong phương pháp cập nhật nền tự động, chương trình sử dụng một biến đếm thời gian Ct = Kt gắn cho một block chuyển động. Cứ sau mỗi khung hình Mi được xử lý, biến Ct sẽ giảm một đơn vị nếu block được coi là đứng yên. Nếu Ct = 0 tức là sau Kt khung hình, block vẫn không thay đổi, thì block này được coi như là một block của khung hình nền và được cập nhật lên khung hình nền. - 41 - Không khác biệt đủ lâu theo ngưỡng cho trước Cập nhật các block không khác biệt vào hình nền Rút trích đặc trưng Rút trích đặc trưng Đối sánh khung hình đựa theo giá trị đặc trưng Khung hình nền đã được cập nhật Khung hình trước đó Khung hình hiện thời Hình 4 - 3: Mô hình phương pháp cập nhật động hình nền Giá trị Kt là giá trị thực nghiêm. Chương trình cho phép thay đổi động giá trị Kt. Tuy nhiên nếu chương trình tự động thay đổi hệ số Kt đẻ phù hợp với hoàn cảnh là một bước cải tiến trong tương lai. - 42 - Không Có Khung hình trước đó Giảm biến đếm 1 đơn vị Kiểm tra từng block có chuyển động ? Đặt biến đếm bằng giá trị Kt Đặt block đứng yên vào ảnh nền Gán khung hình trước bằng khung hình hiện thời. Chờ khung hình tiếp theo. Biến đếm = 0? Lấy khung hình hiện thời Sai Đúng Khung hình nền Bắt đầu KThúc ? Không XL Thoát Kết thúc Kết thúc Hình 4 - 4: Thuật toán cập nhật nền động - 43 - Mô tả thuật toán: Bước 1: Khởi tạo hình nền ban đầu là khung hình hiện thời. Khởi tạo các biến đếm cho các block tương ứng với khung hình nền Count[i] = 0. Sang bước 2 Bước 2: Nếu mỗi block i trong khung hình hiện thời có chuyển động so với khung hình trước đó Thì đặt biến đếm Count[i] = Kt Ngược lại: Count[i] = max(0, Count[i] – 1) Nếu Count[i] = 0 thì cập nhật block đứng yên i vào khung hình nền. Sang bước 3 Bước 3: Gán khung hình trước bằng khung hình hiện thời. Lấy khung hình tiếp theo làm khung hình hiện thời. Quay lại bước 2. Chi tiết mã chương trình của thuật toán cập nhật hình nền tự động được trình bày trong phần Phụ lục 4. Bảng 4 - 1: Thống kê hiệu quả phát hiện chuyển động với ngưỡng cập nhật nền STT Ngưỡng Kt Tỉ lệ phát hiện chuyển động đúng 1 20 30% 2 30 35% 3 40 53% 4 50 71% 5 80 79% 6 100 94% 7 120 86% 8 150 83% Theo thực nghiêm hệ số Kt = 100 là thích hợp nhất. 4.2.3 - Hàm đo khoảng cách Fc. Hàm đo khoảng cách Fc được áp dụng trong chương trình đơn giản là phép trừ bậc một giữa hai giá trị đặc trưng. Hàm này được áp dụng cho từng cặp block của 2 hình được so sánh. Hàm này có sự tinh chỉnh về độ sáng và ngưỡng để có thể khử - 44 - được nhiễu, làm tăng hiệu suất phát hiện chuyển động. Các giá trị đặc trưng đầu vào của hàm này chính là các giá trị đặc trưng của các block đã được chuyển đổi sang các giá trị H, L, S. Hàm đo khảng cách được trình bày source code ở phần Phụ lục 3. 4.2.4 - Hàm nhận biết chuyển động Fb Trong bước tính toán này, ma trận Mc sẽ được đem so sánh vói một ngưỡng toàn cục k. Điểm ảnh được coi là chuyển động nếu giá trị Fc(x, y, t) > k, đứng yên nếu nhỏ hơn. Hệ số k cũng là hệ số thực nghiệm. Hệ số k = 0.05 là thích hợp nhất. - 45 - Sai Đúng Rút trích đặc trưng độ sáng Block được coi là đứng yên Ứng với mỗi block, giá trị của ma trận khác biệt > ngưỡng Kt Block được coi là chuyển động Các xử lý block đứng yên Các xử lý block chuyển động Lấy khung hình hiện thời Lấy khung hình nền Rút trích đặc trưng độ sáng Tính toán ma trận khác biệt Hình 4 - 5: Thuật toán nhận biết chuyển động 4.2.5 - Lọc nhiễu Lọc nhiễu là một bước tinh chế quan trọng để nâng cao kết quả của bài toán. Sau khi thực hiện bước phát hiện chuyển động, ta thu được một ảnh kết quả chứa các đối tượng chuyển động. Tuy nhiên kết quả này vẫn tồn tại các nhiễu gây ra bởi camera hoặc các sai số trong quá trình phát hiện chuyển động, các nhiễu này tồn tại - 46 - trong cả kết quả đối tượng chuyển động lẫn kết quả nền tĩnh đồng thời đường biên của các đối tượng chuyển động không được trơn mịn. Quá trình lọc nhiễu và khử bóng được thực thi để hạn chế ảnh hưởng của chúng trên kết quả. Cách thông thường người ta thường sử dụng để lọc các vùng nhiễu là phương pháp loại bỏ các vùng nhỏ. Tuy nhiên nó có thể loại bỏ luôn các vùng nhỏ nhưng thật sự cần thiết vì chúng thuộc về đối tượng chuyển động mà chúng ta cần thu nhận được, và có các vùng nhiễu thật sự nhưng chúng khá lớn lại không được loại bỏ sau khi lọc nhiễu. Phương pháp này dựa trên việc theo dõi các vùng nhiễu nhỏ hơn vùng đối tượng thật sự. Ban đầu một thuật toán xác định các thành phần liên thông sẽ tách các vùng chuyển động. Sau đó dựa vào diện tích của từng vùng, các vùng có diện tích nhỏ hơn một ngưỡng cho trước nào sẽ được xem như là vùng nhiễu. Ở đây có hai loại nhiễu: nhiễu trên nền (nhiễu trắng) và nhiễu trên vùng đối tượng chuyển động (nhiễu đen). Đối với loại nhiễu trên nền thì chúng ta sẽ thực hiện việc loại bỏ chúng khỏi nền, còn đối với loại nhiễu trên vùng đối tượng chuyển động thì chúng ta sẽ xem chúng là thuộc về đối tượng chuyển động đó. Sau bước này ta thu được kết quả như hình 4 – 6 (c) từ hình 4 – 6 (b). Sau bước này, chúng ta sử dụng một bộ lọc Blur với cửa sổ 3x3 để làm trơn mịn đường viền của vùng đối tượng và giảm thiểu tối đa ảnh hưởng đến cấu trúc chi tiết của vùng ảnh có chứa đối tượng chuyển động. Kết quả của bước này sẽ thu được như trong hình 4 – 6 (d). - 47 - (a) (b) (c) (d) Hình 4 - 6: Minh họa quá trình lọc nhiễu Hình 4 – 6 (a) là ảnh gốc, (b) là kết quả nhận được sau khi đối sánh ảnh, (c) là kết quả nhận được sau khi khử nhiễu trắng và nhiễu đen, (d) là kết quả thu nhận được sau khi áp dụng bộ lọc Blur. 4.2.6 - Khử bóng Trong nhiều ứng dụng thực tế, vùng bóng của đối tượng chuyển động sẽ xuất hiện trong vùng nền của cảnh. Mỗi khi đối tượng chuyển động thì bóng của nó sẽ di chuyển theo. Việc phân biệt đâu là vùng đối tượng và đâu là bóng của nó thực sự là một việc khó khăn. Trong luận văn này, tôi chỉ hạn chế ảnh hưởng của bóng đối tượng chuyển động đến kết quả thu nhận được do phải cân nhắc giữa hiệu quả của việc khử bóng và cái giá phải trả cho việc đó thông qua tốc độ của ứng dụng. Một phương pháp đơn giản và ít tốn kém hơn được ứng dụng trong luận văn để giảm bớt bóng của đối tượng chuyển động. Mô hình của phương pháp này được - 48 - trình bày trong hình 4 – 7. Ảnh đầu vào được áp dụng một bộ lọc gradient và sau đó được đưa qua thuật toán phát hiện đối tượng chuyển động đã được trình bày bên trên. Bộ lọc ảnh được áp dụng có công thức như sau: G = (I ⊕ B) – (I \ B) Trong đó I là ảnh đầu vào, G là ảnh kết quả, B là một ma trận 3x3 phần tử của bộ lọc. Giá trị của ma trận B trong bộ lọc gradient như sau: 0 0 0 0 -1 0 -1 0 1 0 0 0 0 0 0 0 1 0 Lý do mà bộ lọc này được chọn là dựa vào nhận xét trong điều kiện bình thường, vùng bóng của đối tượng có khuynh hướng giảm dần về độ sáng. Do đó vùng bóng của đối tượng sẽ bị loại bỏ đáng kể sau khi thực hiện bộ lọc này, bởi vì giá trị độ sáng vùng bóng của đối tượng thay đổi rất nhỏ, trong khi vùng biên của đối tượng lại có độ sai biệt độ sáng khá lớn. Có một lưu ý về bộ lọc này là sẽ có sai số về đường biên của đối tượng trên kết quả thu nhận được khi áp dụng bộ lọc này, phép toán trên công thức trên sẽ làm mở rộng vùng biên của đối tượng. Để khắc phục được điều này thì bước sau cùng của việc khử bóng là bước phục hồi đường biên của vùng đối tượng chuyển động. - 49 - Khung hình hiện thời Bộ lọc Gradient Bộ đệm khung hình Thuật toán phát hiện chuyển động Khung hình hiện thời Khung hình trước Phục hồi đường biên Vùng đối tượng chuyển động Hình 4 - 7: Mô hình phương pháp khử bóng Một số hạn chế của phương pháp khử bóng này: • Việc khử bóng đối tượng phụ thuộc vào độ mịn của bóng. • Nếu bóng của đối tượng nằm trên một vùng có độ tương phản cấu trúc cao thì hiệu quả sẽ không cao. • Bộ lọc loại bỏ một số thông tin hình ảnh gốc cho nên kết quả phát hiện chuyển động có thể bị suy giảm vì điều này. - 50 - (a) (b) (c) (d) Hình 4 - 8: Minh họa quá trình khử bóng Hình 4 – 8 (a) là ảnh gốc, (b) là kết quả nhận được sau khi đối sánh ảnh, (c) là kết quả nhận được sau khi áp dụng bộ lọc, (d) là kết quả thu nhận được sau khi khử bóng. 4.3 - Cấu trúc chương trình 4.3.1 - Cấu trúc chính Chương trình chính CameraSupervisor gồm có 3 phần: phần phát hiện chuyển động, phần trợ giúp điều khiển giao thông và phần mô phỏng nút giao thông. - 51 - Module phát hiện chuyển động Module trợ giúp điều khiển giao thông Module mô phỏng nút giao thông Dữ liệu vào từ Camera (Khung hình hiện thời) Khung hình nền Khung hình trước đó Vùng ảnh có đối tượng di chuyển Phát tín hiệu đèn giao thông Ước lượng các thành phần chuyển động trên làn đường Xác định thông tin về các vùng chứa thông tin giao thông của các làn đường, trạng thái Tín hiệu điều khiển giao thông Bộ suy diễn để đưa ra trợ giúp điều khiển giao thông Tổng hợp khung hình nền Phát hiện chuyển động Hình 4 - 9: Cấu trúc chính của chương trình - 52 - 4.3.2 - Phần phát hiện chuyển động Hệ thống được cài đặt theo phương pháp phát hiện đối tượng chuyển động kết hợp của phương pháp so sánh khác biệt đặc trưng giữa khung hình hiện thời với khung hình trước đó, giữa khung hình hiện thời với khung hình nền. Khung hình nền được tổng hợp tự động trong quá trình chạy. 4.3.3 - Phần mô phỏng nút giao thông. Nút giao thông được mô phỏng trong chương trình gồm một ngã tư của hai đường một chiều (hướng đi từ trên xuống và từ trái qua) và một hệ thống đèn giao thông gồm 2 cột đèn tín hiệu. Hệ thống trụ đèn giao thông gồm đầy đủ các tín hiệu đèn Xanh – Vàng – Đỏ. Hệ thống định nghĩa 4 vùng thông tin của làn đường, 2 vùng bên trên và bên trái sẽ mang nhiều thông tin quan trọng hơn cho việc điều khiển tín hiệu đèn giao thông từ các thông tin phân tích thu nhận được thông qua chức năng phát hiện đối tượng chuyển động của chương trình. Đèn tín hiệu giao thông có nguyên lý hoạt động như là một hệ thống đèn giao thông thật tại một ngã tư. Nó hoạt động theo thứ tự bình thường như sau: • Xanh – Đỏ • Vàng – Đỏ • Đỏ - Xanh • Đỏ - Vàng Vào các trường hợp đặc biệt thì tín hiệu đèn giao thông còn có các trạng thái như: • Tắt • Ngừng hoạt động (Vàng – Vàng) 4.3.4 - Phần trợ giúp điều khiển giao thông. Các thông tin về vùng thông tin trên làn đường giúp giới hạn các thông tin di chuyển thu nhận được qua phần phát hiện chuyển động. Hai vùng bên trên và bên - 53 - trái là hai vùng chứa thông tin quan trọng, bởi vì đó là hai vùng mà phương tiện giao thông sẽ đi qua và nguy cơ ùn tắc cao hơn so với hai vùng còn lại. Hệ thống sử dụng các thông tin từ phần mô phỏng nút giao thông như là trạng thái tín hiệu đèn giao thông, … kết hợp với các thông tin thu nhận được từ kết quả của phần phát hiện chuyển động và áp dụng các phương pháp suy luận đặc thù để đưa ra quyết định hỗ trợ điều khiển lại tín hiệu đèn giao thông trong phần mô phỏng. 4.3.5 - Chương trình mô phỏng nút giao thông. Ở chương trình trên (CameraSupervisor), khả năng cho thấy sự tương tác giữa các tín hiệu điều khiển giao thông và dòng xe cộ qua camera hoặc trong đoạn phim giao thông chưa rõ nét được vì chưa tích hợp được vào hệ thống điều khiển giao thông thực sự. Chương trình này (CRS – CrossRoadSimulator) được viết thêm để mô phỏng hoạt động giao thông tại một ngã tư. Nó minh họa rõ nét khả năng điều khiển giao thông, cho thấy được tác dụng của các tín hiệu đèn giao thông đối với các phương tiện tham gia giao thông như thế nào. Chương trình này cũng có các giới hạn như chương trình trên, đó là chỉ mô phỏng một ngã tư của 2 con đường một chiều Tây Æ Đông và Bắc Æ Nam. Các phương tiện giao thông tham gia bao gồm: Xe con, xe tải và xe gắn máy. 4.4 - Môi trường cài đặt • Hệ điều hành Windows XP. • Chương trình chính CameraSupervisor: Ngôn ngữ lập trình Visual C + + 6.0 / DirectX 9.0. • Chương trình mô phỏng nút giao thông CRS: Java. 4.5 - Cấu hình phần cứng • Pentium PIV, 3GHz. • 1GB RAM. • 1 Camera (Webcam). - 54 - 4.6 - Các giao diện chính và một số tính năng 4.6.1 - Chương trình CameraSupervisor Hình 4 - 10: Giao diện của chương trình thử nghiệm, phần phát hiện chuyển động - 55 - Hình 4 - 11: Thể hiện quá trình cập nhật hình nền - 56 - Hình 4 - 12: Mô phỏng nút giao thông Giao diện của chương trình đơn giản, thể hiện chức năng phát hiện đối tượng chuyển động và mô phỏng một nút giao thông là một ngã tư của 2 con đường 1 chiều. • Tham số Radius dùng để điều chỉnh kích thước của block. Kích thước đó được xác định theo công thức: Block size = Radius * 2 + 1 - 57 - Vị trí để xác định block là tâm của nó và có phạm vi là 1 ô vuông có bán kính là Radius. • Tham số Static Interval dùng để điều chỉnh khoảng thời gian Kt để cập nhật khung hình nền. • Tham số Thresold1 và Thresold2 dùng để điều chỉnh các ngưỡng để khoảng xác định khoảng sai biệt đặc trưng của các block khi phát hiện chuyển động. Vị trí các cột tín hiệu đèn giao thông cũng như tọa độ các góc của vùng tứ giác xác định thông tin của làn đường đều có thể thay đổi được bằng cách dùng chuột để di chuyển, và các thông tin đó được tự động lưu giữ lại trong file Thesis.cfg. Nếu file này chưa được tạo ra thì nó sẽ được chương trình tạo ra bằng các hằng số mặc định. Khả năng thay đổi này được cài đặt để đáp ứng nhu cầu áp dụng tại nhiều địa hình thử nghiệm khác nhau. Hình 4 - 13: Nút giao thông có khả năng được thay đổi tùy theo địa hình áp dụng - 58 - 4.6.2 - Chương trình CRS Hình 4 - 14: Giao diện chương trình CRS. Giao diện chính của chương trình này gồm có một mô hình giả lập một ngã tư hai con đường một chiều Tây Æ Đông và Bắc Æ Nam, và một bộ điều khiển lưu lượng trên 2 con đường đó. Ngoài ra chương trình còn hiển thị một đồng hồ đếm giờ ngược, nó thể hiện khoảng thời gian còn lại của tín hiệu đèn xanh hoặc vàng đang được bật. - 59 - Chương trình được thiết kế với một số tính năng sau: • Chương trình chạy với tốc độ 15 frames/giây. • Mỗi loại xe có một diện tích khác nhau và chúng được lập trình để chạy trên các làn đường dành riêng: o Xe con: chạy trên làn đường bên trái. Phần đường này chiếm 4/12 chiều rộng con đường. o Xe tải: chạy trên làn đường chính giữa. Phần đường này chiếm 5/12 chiều rộng con đường. o Xe gắn máy: chạy trên làn đường bên phải. Phần đường này chiếm 3/12 chiều rộng con đường. • Thời lượng đèn vàng là 3 giây, thời lượng đèn xanh tối đa là 60 giây. Tuy nhiên thời lượng đèn xanh sẽ được ước đoán trước dựa vào số phương tiện giao thông đang đợi đèn đỏ khi tín hiệu đèn xanh chuẩn bị được bật. Công thức để ước lượng thời gian đèn xanh là: Min(60, Số_phương_tiện_đang_đợi_đèn_đỏ * 3) giây. • Trong quá trình điều khiển lưu lượng trên một con đường, nếu như số lượng tối đa phương tiện giao thông được tham gia lớn hơn số lượng phương tiện giao thông đang hiện hữu trên con đường đó thì sẽ có thêm một số phương tiện nữa được bổ sung vào. Ngược lại nếu số này nhỏ hơn, thì khi các phương tiện đang tham gia trên con đường đó ra khỏi tầm nhìn của bộ mô phỏng, chúng sẽ không tham gia trở lại nữa nếu số phương tiện còn lại vẫn vượt quá con số mới được chọn này. • Khi một phương tiện đã vượt ra khỏi tầm nhìn của bộ mô phỏng, thì nó sẽ trở rời khỏi hệ thống và chỉ trở lại khi xác xuất hoạt động trở lại được đạt đến. Xác suất này là 90/00. • Trong quá trình chạy, nếu một làn đường có số phương tiện đang hoạt động ít hơn số tối đa, thì phương tiện mới sẽ phát sinh bổ sung ngẫu nhiên với xác suất như trên. Xác suất phát sinh ngẫu nhiên của từng loại phương tiện lần lượt là: Xe hơi – 45%, xe tải – 30% và xe máy 25%. - 60 - • Mỗi loại phương tiện có các hành động khởi động, chạy bình thường, tăng tốc, thắng. • Mỗi phuơng tiện giao thông có một xác suất tăng tốc nhằm làm cho giao thông đa dạng hơn. Xác suất này là 30/00. Nếu xác suất này xảy ra thì phương tiện đó sẽ tăng tốc để chạy nhanh hơn để vượt lên xe khác. • Trong quá trình chạy phương tiện giao thông sẽ tự ước đoán đoạn đường trước mặt, nếu có phương tiện khác cản đường thì nó sẽ tự giảm tốc hoặc dừng lại tránh. Nếu tín hiệu đèn vàng bật lên, phương tiện giao thông sẽ tự ước đoán xem nó có bị đi lố vạch sơn dừng hay chưa. Nếu sẽ bị lố thì nó sẽ tiếp tục chạy qua ngã tư, ngược lại nó sẽ tự dừng lại đợi đèn đỏ ở trước vạch sơn dừng hoặc sau đuôi một phương tiện khác ở trước mặt. • Hiện hệ mô phỏng này chỉ mới xây dựng cho các loại phương tiện khác nhau chạy trên các làn đường quy định, và chúng xuất phát ở vị trí nào của làn đường thì sẽ vẫn giữ nguyên vị trí đó chứ chưa hoàn thiện chức năng tránh né hoặc lạng lách. Chức năng này sẽ được hoàn thiện trong giai đoạn phát triển sau này của chương trình. • Người sử dụng có thể can thiệp vào quá trình điều khiển đèn bằng cách bấm nút phải chuột để cưỡng chế chuyển trạng thái đèn. Chương trình có 4 trạng thái đèn tuần tự như sau: o Xanh – Đỏ: Tây Æ Đông: Xanh; Bắc Æ Nam: Đỏ. o Vàng – Đỏ: Tây Æ Đông: Vàng; Bắc Æ Nam: Đỏ. o Đỏ - Xanh: Tây Æ Đông: Đỏ; Bắc Æ Nam: Xanh. o Đỏ - Vàng: Tây Æ Đông: Đỏ; Bắc Æ Nam: Vàng.

Các file đính kèm theo tài liệu này:

  • pdf7.pdf
  • pdf0_2.pdf
  • pdf1_2.pdf
  • pdf2_2.pdf
  • pdf3.pdf
  • pdf4.pdf
  • pdf5_2.pdf
  • pdf6_4.pdf
  • pdf8.pdf
  • pdf9.pdf
  • pdf10_3.pdf
  • pdf11.pdf
  • pdf12.pdf
Tài liệu liên quan