Skip to main content

Bài 2: Tóm tắt sau dự án

Khối [Nếu thì khác] được sử dụng để Robot VR có thể đưa ra quyết định. Nếu điều kiện Boolean là ĐÚNG, thì các khối bên trong nhánh 'Nếu Thì' sẽ chạy. Nếu Điều kiện Boolean là SAI, thì các khối bên trong nhánh 'Else' sẽ chạy.

Sơ đồ biểu thị luồng dự án của khối if then else trong vòng lặp forever. Khi dự án bắt đầu, tình trạng của Cảm biến khoảng cách sẽ được kiểm tra. Nếu tìm thấy một đối tượng, điều kiện đó là đúng, thì khối Drive forward sẽ được thực thi. Nếu không tìm thấy đối tượng nào, điều kiện đó sẽ báo cáo là sai, nếu không thì khối rẽ phải sẽ được thực thi. Tất cả những điều này được lặp lại liên tục trong vòng lặp Forever.

Trong dự án này, Robot VR sẽ di chuyển về phía một tòa nhà khi Cảm biến khoảng cách phát hiện ra một vật thể và khối <Distance found object> được báo cáo là ĐÚNG. Lệnh này sẽ hướng dẫn nhánh 'Nếu thì' của dự án chạy. Nhánh này bao gồm khối [Ổ đĩa]. Sau đó, VR Robot sẽ bỏ qua nhánh 'Khác' của dự án.

Dự án nằm ở bên trái với điểm nổi bật màu xanh lá cây cho thấy luồng dự án của nhánh if then đang thực thi. Phía bên phải là góc nhìn từ trên xuống của Sân chơi, với mũi tên và hộp màu đỏ làm nổi bật lâu đài hoặc vật thể được Cảm biến khoảng cách phát hiện trong trường hợp này.

Vì khối [Nếu thì else] được đặt bên trong khối [Mãi mãi], nên dự án sẽ lặp lại đến đầu khối [Mãi mãi] để kiểm tra tình trạng của khối [Nếu thì else]. Vòng lặp này sẽ tiếp tục mãi mãi, hướng dẫn Robot VR liên tục kiểm tra điều kiện [Nếu thì khác] hàng trăm lần mỗi giây.

Lưu ý rằng các khối [Lái xe] và [Quay] bên trong khối [Nếu thì khác] là các khối không chờ. Các khối không chờ sẽ không dừng luồng của một dự án trong khi chúng đang chạy.  Hành vi không chờ đợi được thực hiện trong khối [If then else] (chẳng hạn như tiến về phía trước nếu phát hiện thấy đối tượng) sẽ tiếp tục trong khi điều kiện được kiểm tra và chỉ thay đổi khi điều kiện thay đổi.

Cùng một dự án VEXcode VR với các mũi tên di chuyển từ dưới cùng của khối Forever lên trên cùng để chỉ ra luồng dự án quay trở lại đầu vòng lặp Forever để lặp lại tất cả các lệnh bên trong nó.

Nếu khối <Distance found object> báo cáo là SAI, nhánh 'Else' của dự án sẽ được thực thi. Nhánh 'Else' bao gồm khối [Turn].

Dự án nằm ở bên trái với phần tô sáng màu đỏ cho thấy luồng dự án của nhánh else đang thực thi. Phía bên phải là góc nhìn từ trên xuống của Sân chơi, với các mũi tên cong xung quanh Robot VR cho biết đang quay để phát hiện vật thể, vì không có vật thể nào ở ngay trước Cảm biến khoảng cách.

Để bạn biết

Các khối [Nếu thì khác] được sử dụng để đảm bảo rằng chỉ có một nhánh trong dự án được chạy khi điều kiện được kiểm tra. Chỉ có một trường hợp hoặc điều kiện có thể đúng tại một thời điểm. Điều này làm cho dự án hiệu quả hơn.

Sơ đồ biểu thị luồng dự án của khối if then else trong vòng lặp forever. Khi dự án bắt đầu, tình trạng của Cảm biến khoảng cách sẽ được kiểm tra. Nếu tìm thấy một đối tượng, điều kiện đó là đúng, thì khối Drive forward sẽ được thực thi. Nếu không tìm thấy đối tượng nào, điều kiện đó sẽ báo cáo là sai, nếu không thì khối rẽ phải sẽ được thực thi. Tất cả những điều này được lặp lại liên tục trong vòng lặp Forever.

So sánh dự án hiện tại với dự án được tạo ở Đơn vị 7.  Dự án Unit 7 sử dụng bốn khối [Nếu thì].

Sơ đồ luồng dự án của một dự án mẫu từ Đơn vị 7 với bốn khối Nếu thì theo trình tự. Trong mỗi trường hợp, tham số If sử dụng Cảm biến mắt trước để phát hiện màu cụ thể và thực hiện hành vi dựa trên màu được phát hiện. Nếu màu được phát hiện, thì If then là đúng và khối bên trong nó sẽ chạy, và điều này sẽ xảy ra lặp lại cho từng phần của mã.

Khi chạy qua một dự án có nhiều khối [Nếu thì], có khả năng nhiều điều kiện sẽ báo cáo là ĐÚNG và dự án chạy qua các lệnh trong khối [Mãi mãi]. Trong dự án này, cả hai điều kiện đều có thể báo cáo là ĐÚNG trong cùng một vòng lặp [Mãi mãi]. Những xung đột như thế này có thể khiến dự án ngừng hoạt động hoặc chạy chậm hơn.

Sơ đồ luồng dự án gồm hai khối If then tuần tự trong một vòng lặp mãi mãi. Khi bắt đầu, dự án sẽ kiểm tra điều kiện 1, tham số của khối if then đầu tiên. Nếu đúng như vậy thì rẽ phải vào dãy nhà thứ 90 sẽ chạy. Nếu điều kiện đó sai, dự án sẽ chuyển sang khối if then tiếp theo để kiểm tra điều kiện 2. Nếu điều kiện 2 đúng, lệnh truyền động về phía trước cho khối 200mm bên trong sẽ chạy. Nếu sai, dự án sẽ quay lại đầu vòng lặp mãi mãi để lặp lại quy trình một lần nữa.

Sử dụng khối [If then else] sẽ tránh được các lỗi như thế này vì chỉ có một điều kiện có thể là ĐÚNG tại một thời điểm nhất định với khối này.

Sơ đồ luồng dự án sử dụng khối if then else trong vòng lặp mãi mãi. Khi bắt đầu, điều kiện của nhánh if then sẽ được kiểm tra. Nếu đúng và ổ đĩa đang chuyển động, thì khối trong nhánh Nếu sẽ chạy và robot sẽ rẽ trái 90 độ; nếu không, robot sẽ tiến về phía trước 200mm. Quyết định kiểm tra một điều kiện này sẽ được thực hiện liên tục vì dự án nằm trong vòng lặp vô tận.

Câu hỏi

Vui lòng chọn liên kết bên dưới để truy cập bài kiểm tra bài học.

Google Doc / .docx / .pdf