Kết nối cạnh tranh: Bước ngoặt - C++
Khả năng của Robot
Trò chơi Turning Point của Cuộc thi Robot VEX năm 2018 - 2019 yêu cầu người chơi phải chuyển đổi cờ giữa các yếu tố khác của trò chơi. Tổng cộng có chín lá cờ: ba lá cờ ở dưới cùng có thể được robot bật lên và sáu lá cờ ở trên cùng chỉ có thể bật lên bằng cách đập chúng bằng các mảnh bóng thi đấu. Các đội thi đấu cần tìm ra cách đánh vào những lá cờ cao hơn bằng cách sử dụng máy phóng bóng. Nếu bạn có thể tưởng tượng, việc lập trình robot đánh cờ bằng các mảnh bóng bằng cách đo lường có thể không phải lúc nào cũng chính xác. Nếu robot rẽ sai một lần trong thời gian tự động, có khả năng không có lá cờ nào bị đánh trúng vì các phép tính sẽ bị sai. Tương tự như vậy, đối với thử thách Kỹ năng lái xe, các đội có thể gặp khó khăn trong việc căn chỉnh robot theo cách thủ công để có thể phóng bóng đúng cách. Vì vậy, các nhóm có tay nghề cao sẽ lập trình cho robot sử dụng Cảm biến thị giác để phát hiện cờ và sau đó căn chỉnh robot đúng cách để thực hiện các cú đánh chính xác.
Mở rộng việc học của bạn
Để mở rộng hoạt động này, hãy yêu cầu học sinh thiết kế và phác thảo một dự án trong đó robot sẽ di chuyển về phía các vật thể màu vàng được phát hiện mà các em có thể sử dụng cho trò chơi thi đấu này!
Yêu cầu học sinh thực hiện các bước sau:
-
Mở dự án ví dụ Clawbot (Hệ thống truyền động, 2 động cơ, Không có con quay hồi chuyển).

- Sử dụng dự án ví dụ Phát hiện đối tượng (Tầm nhìn) làm tài liệu tham khảo khi lập trình Cảm biến tầm nhìn (Google Doc / .v5cpp).
-
Thêm Cảm biến thị giác vào cấu hình Clawbot (Hệ thống truyền động, 2 động cơ, Không có con quay hồi chuyển) rồi cấu hình Cảm biến thị giác để phát hiện các vật thể màu đỏ và xanh lam. Nhấp vàoở đâyđể biết thêm thông tin.

- Lập trình Clawbot di chuyển về phía vật thể được phát hiện. Clawbot thậm chí có thể được lập trình để giơ cánh tay lên như thể nó đang lật một lá cờ!
- Tải xuống và chạy (trongC++) dự án để quan sát xem Cảm biến thị giác có thể phát hiện các vật thể màu vàng như những quả bóng màu vàng trong trò chơi VRC Turning Point hay không. Nếu Cảm biến thị giác có thể phát hiện vật thể, liệu robot có di chuyển dựa trên những vật thể được phát hiện đó không? Để được trợ giúp, hãy xem video hướng dẫn Tải xuống và Chạy dự án.
- Nếu có thời gian, hãy thiết lập một sân chơi tương tự như sân Turning Point. Thực hành sử dụng Cảm biến thị giác để cho phép robot di chuyển và ghi điểm!
Xem giải pháp mẫu bên dưới:
// Bao gồm Thư viện V5
#include "vex.h"
// Cho phép sử dụng Thư viện VEX dễ dàng hơn
bằng cách sử dụng không gian tên vex;
sự kiện checkRed = event();
sự kiện checkBlue = event();
void hasRedCallback() {
Brain.Screen.setFont(mono40);
Brain.Screen.clearLine(1);
Brain.Screen.setCursor(1, 1);
Vision5.takeSnapshot(Vision5__REDBOX);
if (Vision5.objectCount > 0) {
ArmMotor.spinFor(hướng tới, 300, độ);
ClawMotor.spinFor(hướng tới, 100, độ);
Drivetrain.driveFor(hướng tới, 12, inch);
ArmMotor.spinFor(hướng ngược, 300, độ);
ClawMotor.spinFor(đảo ngược, 100, độ);
}
else {
Brain.Screen.print("Không có đối tượng màu đỏ")
}
}
void hasBlueCallback() {
Brain.Screen.setFont(mono40);
Brain.Screen.clearLine(3);
Brain.Screen.setCursor(3, 1);
Vision5.takeSnapshot(Vision5__BLUEBOX);
if (Vision5.objectCount > 0) {
ArmMotor.spinFor(tiến, 90, độ);
ClawMotor.spinFor(tiến, 90, độ);
Drivetrain.driveFor(tiến, 12, inch);
ArmMotor.spinFor(đảo ngược, 90, độ);
ClawMotor.spinFor(đảo ngược, 90, độ);
}
else {
Brain.Screen.print("Không có đối tượng màu xanh")
}
}
int main() {
// Khởi tạo cấu hình robot. KHÔNG ĐƯỢC THÁO RA!
vexcodeInit();
// đăng ký trình xử lý sự kiện
checkRed(hasRedCallback);
checkBlue(hasBlueCallback);
// liên tục chạy để kiểm tra dữ liệu cảm biến mới
while (true) {
checkRed.broadcastAndWait();
checkBlue.broadcastAndWait();
wait(0.2, seconds);
}
}