Skip to main content

Thử thách Gói Dash - C++

Mẫu bố cục cho thử thách chạy nhanh trong gói hàng cho thấy bến xếp hàng ở góc dưới bên trái, ba khu vực để đặt lon và khu vực bắt đầu ở góc trên bên phải với Clawbot bên trong.

Sơ đồ lưới của sân thi đấu robot cho thấy một robot được định vị ở khu vực 'Bắt đầu' ở phía bên phải. Sân đấu bao gồm một khu vực 'Bến tàu' ở phía bên trái và ba khu vực nhỏ hơn, mỗi khu vực có hình ảnh một chiếc lon đặt trên một cuốn sách, phân bố khắp sân đấu. Các khu vực được sắp xếp để tạo ra một môi trường theo nhiệm vụ, trong đó robot có thể được yêu cầu tương tác với các vật thể trong các khu vực nhỏ hơn và vận chuyển chúng đến Bến xếp hàng.

Thử thách Dash gói

Trong thử thách này, bạn sẽ lập trình cho robot của mình để nhặt các gói hàng và mang chúng đến bến tàu nhanh nhất có thể!

Quy tắc thử thách:

  • Robot phải bắt đầu thử thách ở Khu vực bắt đầu.
  • Các gói hàng (lon nhôm) chỉ có thể tiếp xúc với sách, móng vuốt của Clawbot và Bến xếp hàng.
    • Nếu một gói hàng bị rơi xuống đất trong kho, bạn phải đặt lại trường và bắt đầu lại.
  • Thời gian cho mỗi lần chạy bắt đầu ngay khi robot di chuyển.
  • Thời gian sẽ dừng lại ngay khi gói hàng cuối cùng được thả xuống Bến xếp hàng.
  • Khi thiết lập lại trường, mọi thứ phải được trả về đúng vị trí ban đầu.
  • Chúc vui vẻ!

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

  • Tăng sự tương tác bằng cách tạo ra câu chuyện hoặc mục đích cho nhà kho! Đây là loại kho nào? Có những loại bao bì nào trong kho? Ai là chủ sở hữu nhà kho?

  • Cho phép học sinh tạo ra nhiều tuyến đường hoặc chiến lược khác nhau giúp vận chuyển lon hiệu quả hơn.

  • So sánh không chỉ thời gian hoàn thành để quyết định người chiến thắng trong thử thách này (nếu bạn tổ chức để cạnh tranh) mà còn cả các kỹ thuật điều hướng được sử dụng để học sinh có thể xem xét giải pháp của các đội khác.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Giải pháp

Có thể tìm thấy tiêu chí đánh giá học sinh theo chương trìnhtại đây.

Sau đây là một giải pháp khả thi cho thách thức này. Giải pháp có thể khác nhau tùy thuộc vào vị trí bắt đầu của robot và đường đi được chọn. Có nhiều cách để di chuyển tất cả các gói hàng.

int main() {
  // Khởi tạo cấu hình Robot. KHÔNG ĐƯỢC THÁO RA!
  vexcodeInit();

  // Chạy động cơ Claw một cách an toàn và nhấc gói hàng đầu tiên lên
  ClawMotor.setTimeout(2, seconds);
  Drivetrain.driveFor(forward, 900, mm);
  Drivetrain.turnFor(right, 90, degrees);
  ArmMotor.spinFor(forward, 315, degrees);
  ClawMotor.spinFor(reverse, 180, degrees);
  Drivetrain.driveFor(forward, 215, mm);
  ClawMotor.spinFor(forward, 120, degrees);

  // Lái xe đến Bến xếp hàng để thả gói hàng đầu tiên
  Drivetrain.driveFor(reverse, 110, mm);
  Drivetrain.turnFor(right, 90, degrees);
  Drivetrain.driveFor(forward, 920, mm);
  Drivetrain.turnFor(left, 90, degrees);
  Drivetrain.driveFor(tiến, 2300, mm);
  Drivetrain.turnFor(trái, 90, độ);
  Drivetrain.driveFor(tiến, 750, mm);
  ArmMotor.spinFor(đảo ngược, 315, độ);
  ClawMotor.spinFor(đảo ngược, 120, độ);

  // Nhặt gói thứ hai
  Drivetrain.driveFor(đảo ngược, 200, mm);
  Drivetrain.turnFor(trái, 170, độ);
  Drivetrain.driveFor(tiến, 900, mm);
  Drivetrain.turnFor(phải, 90, độ);
  Drivetrain.driveFor(tiến, 2300, mm);
  ArmMotor.spinFor(tiến, 315, độ);
  ClawMotor.spinFor(tiến, 120, độ);

  // Lái xe đến Bến xếp hàng để thả gói hàng thứ hai
  Drivetrain.driveFor(tiến, 900, mm);
  Drivetrain.turnFor(phải, 90, độ);
  Drivetrain.driveFor(tiến, 960, mm);
  ArmMotor.spinFor(đảo ngược, 315, độ);
  ClawMotor.spinFor(đảo ngược, 120, độ);

  // Nhấc gói hàng thứ ba
  Drivetrain.driveFor(đảo ngược, 150, mm);
  Drivetrain.turnFor(trái, 90, độ);
  ArmMotor.spinFor(tiến, 315, độ);
  Drivetrain.driveFor(tiến, 490, mm);
  ClawMotor.spinFor(tiến, 120, độ); 

  // Lái xe đến Bến xếp hàng để thả gói hàng thứ ba
  Drivetrain.driveFor(reverse, 490, mm);
  Drivetrain.turnFor(right, 90, degrees);
  Drivetrain.driveFor(forward, 150, mm);
  ArmMotor.spinFor(reverse, 315, degrees);
  ClawMotor.spinFor(reverse, 120, degrees);
  
}