Skip to main content

Lập trình truyền động tiến và lùi - 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 - Phác thảo hoạt động

Khám phá này sẽ giới thiệu cho sinh viên những hành vi lập trình cơ bản về tiến, lùi và chờ. Những kỹ năng cơ bản này sẽ giúp các em thành công trong Thử thách Y tế tự động vào cuối Phòng thí nghiệm STEM này, khi các em sẽ di chuyển trong bệnh viện bằng cách sử dụng Speedbot.

Sử dụng dự án mẫu V5 Speedbot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển) cho phép học sinh lập trình để Speedbot di chuyển về phía trước chỉ bằng một hướng dẫn.

Speedbot đã sẵn sàng để di chuyển!

Khám phá này sẽ cung cấp cho bạn các công cụ để có thể lập trình Speedbot của bạn cho các chuyển động đơn giản. Khi kết thúc hoạt động này, bạn sẽ tham gia vào Thử thách khoan bóng rổ bằng cách sử dụng các hành vi tiến, lùi và chờ đợi.

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

Sau đây là tổng quan về Giao diện người dùng của VEXcode V5. Học sinh sẽ được giới thiệu về các tab/nút này trong các hoạt động tại Phòng thí nghiệm STEM Medbot. Các liên kết cũng được cung cấp trong Phòng thí nghiệm STEM để cung cấp thêm thông tin về các tab/nút này.

Ảnh chụp màn hình hiển thị giao diện VEXcode V5. Thanh công cụ nằm ở phía trên cùng của màn hình, với menu kéo và thả bên dưới bên trái và cửa sổ lập trình C++ bên dưới bên phải. Bên dưới cửa sổ lập trình có cửa sổ 'Lỗi'.

  • Hướng dẫn VEXcode V5 sẽ được sử dụng trong thăm dò này:
    • Drivetrain.driveFor(chuyển tiếp, 200, mm);
    • chờ(1, giây);
  • Để tìm hiểu thêm thông tin về hướng dẫn, hãy chọn Trợ giúp và sau đó chọn biểu tượng dấu hỏi bên cạnh lệnh để xem thêm thông tin.

    Menu Trợ giúp VEXcode cho lệnh Drive For. Biểu tượng Trợ giúp ở góc trên bên phải được tô sáng, minh họa những gì cần chọn để mở Menu Trợ giúp.

     

  • Đảm bảo bạn đã tải xuống phần cứng cần thiết, sổ ghi chép kỹ thuật và VEXcode V5 và sẵn sàng.

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

Nếu đây là lần đầu tiên học viên sử dụng VEXcode V5, họ có thể tham khảo Hướng dẫn bất kỳ lúc nào trong quá trình khám phá này. Phần Hướng dẫn nằm trên thanh công cụ.

Thanh công cụ VEXcode V5 với nút Hướng dẫn được hiển thị trong hộp màu đỏ, bên phải menu Tệp.

Vật liệu cần thiết:
Số lượng Vật liệu cần thiết
1

Robot Speedbot

1

Pin Robot đã sạc

1

VEXcode V5

1

Cáp USB (nếu sử dụng máy tính)

1

Sổ tay kỹ thuật

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

Làm mẫu từng bước khắc phục sự cố cho học sinh.

Bước 1: Chuẩn bị cho cuộc khám phá

Trước khi bắt đầu hoạt động, bạn đã chuẩn bị sẵn từng mục này chưa? Kiểm tra từng điều sau đây:

Bước 2: Bắt đầu một dự án mới

Hoàn thành các bước sau để bắt đầu dự án:

  • Mở menu Tệp và chọn Mở Ví dụ.

    Thanh công cụ VEXcode V5 với menu Tệp mở và Mở Ví dụ được đánh dấu trong hộp màu đỏ. Open Examples là mục menu thứ tư bên dưới New Blocks Project, New Text Project và Open.

     

  • Chọn và mở dự án mẫu Speedbot (Drivetrain 2-motor, No Gyro). Dự án mẫu chứa cấu hình động cơcủa Speedbot. Nếu mẫu không được sử dụng, robot của bạn sẽ không chạy dự án một cách chính xác.

    Menu 'Dự án mẫu' đang mở, với danh mục 'Mẫu' được chọn. Dự án Speedbot (Drivetrain 2-motor, No Gyro) được đánh dấu bằng một ô màu đỏ, cho biết dự án nào cần chọn và mở.

     

  • Vì bạn sẽ phải di chuyển Speedbot về phía trước và phía sau nên bạn sẽ đặt tên cho dự án của mìnhDrive.  Nhấp vào Tên dự án, nhập Drive và chọn Lưu.

 

Menu thả xuống đổi tên được mở từ nút Tên dự án trên thanh công cụ VEXcode V5. Dự án đang được đổi tên thành 'Drive'.

 

 

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

  • Tên dự án có thể có khoảng cách giữa hoặc sau các từ.

    Thanh công cụ VEXcode V5 với nút Tên dự án được đánh dấu bằng hộp màu đỏ. Tên dự án được đặt thành 'Drive Forward'.

  • Bạn có thể yêu cầu học sinh thêm chữ cái đầu hoặc tên nhóm của mình vào tên dự án. Điều này sẽ giúp phân biệt các dự án nếu bạn yêu cầu học sinh nộp chúng.
  • Vì đây là hoạt động lập trình đầu tiên mà học sinh của bạn có thể thử, bạn nên làm mẫu các bước, sau đó yêu cầu học sinh thực hiện các hành động tương tự. Sau đó, giáo viên nên theo dõi học sinh để đảm bảo rằng các em đang thực hiện đúng các bước.
  • Đảm bảo rằng học sinh đã chọn Mở ví dụ từ menu Tệp.
  • Đảm bảo rằng học sinh đã chọn dự án mẫu Speedbot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển).
  • Bạn có thể chỉ cho học sinh biết rằng có một số lựa chọn để chọn trên trang Ví dụ. Khi xây dựng và sử dụng các robot khác, trẻ sẽ có cơ hội sử dụng các mẫu khác nhau.
  • Kiểm tra để đảm bảo tên dự ánDrivehiện nằm trong cửa sổ ở giữa thanh công cụ.

    Thanh công cụ VEXcode V5 hiển thị tên dự án 'Drive'.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Lưu dự án

  • Chỉ ra rằng khi họ mở VEXcode V5 lần đầu, cửa sổ được gắn nhãn là VEXcode Project. VEXcode Project là tên dự án mặc định khi VEXcode V5 được mở lần đầu tiên. Sau khi dự án được đổi tên thành Drive và lưu, màn hình sẽ được cập nhật để hiển thị tên dự án mới. Sử dụng cửa sổ này trên thanh công cụ, bạn có thể dễ dàng kiểm tra xem học sinh có đang sử dụng đúng dự án hay không.

  • Nói với học sinh rằng bây giờ các em đã sẵn sàng bắt đầu dự án đầu tiên của mình. Giải thích cho học sinh rằng chỉ cần làm theo một vài bước đơn giản, các em sẽ có thể tạo và chạy một dự án giúp Speedbot phát triển.

  • Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. PhầnC++từ Thư viện VEX giải thích các phương pháp lưu trong VEXcode V5.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Dừng lại và thảo luận

Đây là thời điểm thích hợp để dừng lại và yêu cầu học sinh xem lại các bước vừa hoàn thành khi bắt đầu một dự án mới trong VEXcode V5 theo cá nhân hoặc theo nhóm. Yêu cầu học sinh suy nghĩ riêng trước khi chia sẻ trong nhóm hoặc trước cả lớp.

Bước 3: Tiến về phía trước

Bây giờ bạn đã sẵn sàng để bắt đầu lập trình robot để tiến về phía trước!

  • Trước khi bắt đầu lập trình, chúng ta cần hiểu hướng dẫn là gì. Có ba phần trong một hướng dẫn. Để biết thêm thông tin về hướng dẫn, hãy xem bài viết, "Quy tắc và hướng dẫncú pháp - VEXcode V5."

    Một ổ C++ cho lệnh với các thành phần của lệnh được gắn nhãn. Hệ thống truyền động được gắn nhãn là thiết bị; truyền động for được gắn nhãn là lệnh; và chuyển tiếp, 100 và mm được gắn nhãn là thông số.

  • Thêm hướng dẫn vào dự án để dự án của bạn trông như thế này: 

    int main() {
      // Khởi tạo cấu hình robot. KHÔNG ĐƯỢC GỠ BỎ!
      vexcodeInit();
        // Bắt đầu mã dự
    
        ánDrivetrain.driveFor (forward, 100, mm);
    
    }

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

Bạn có thể nhận thấy chức năng tự động hoàn thành khi bạn bắt đầu nhập hướng dẫn. Sử dụng phím “Lên” và “Xuống” để chọn tên bạn muốn, sau đó nhấn “Tab” hoặc (Enter/Return) trên bàn phím để thực hiện lựa chọn. Để biết thêm thông tin về tính năng này, hãy xem bài viếtC++.

Người dùng đang gõ lệnh C++ và sau khi bắt đầu gõ Drivetrain.d, chương trình sẽ mở một menu thả xuống gợi ý các tùy chọn tự động hoàn thành.

  • Chọn biểu tượng Slot để chọn một trong tám vị trí có sẵn trên Robot Brain và chọn vị trí 1.

    Thanh công cụ VEXcode V5 với menu Slot mở ở bên trái của tên dự án. Menu thả xuống liệt kê tất cả các vị trí có sẵn, từ 1 đến 8. Khe đầu tiên được đánh dấu bằng một ô màu đỏ.

     

  • Kết nối Robot Brain V5 với máy tính bằng cáp micro USB và cấp nguồn cho Robot Brain V5. Biểu tượng Não trên thanh công cụchuyển sang màu xanh lákhi kết nối thành công.

    Thanh công cụ VEXcode V5 với một hộp màu đỏ xung quanh biểu tượng Brain màu xanh lá cây, ở bên phải nút Bộ điều khiển.

     

  • ChọnTải xuốngđể tải dự án xuống Brain.

    Thanh công cụ VEXcode V5 với một hộp màu đỏ xung quanh biểu tượng tải xuống, ở giữa các nút Brain và Run.

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

  • Nhắc nhở học sinh ngắt kết nối cáp USB khỏi Robot Brain. Việc kết nối robot với máy tính trong khi chạy một dự án có thể khiến robot kéo cáp kết nối.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Dừng lại và thảo luận

Yêu cầu học sinh dự đoán những gì các em nghĩ sẽ xảy ra khi dự án này được tải xuống và chạy trên Speedbot. Yêu cầu học sinh ghi lại dự đoán của mình vào sổ tay kỹ thuật. Nếu thời gian cho phép, hãy yêu cầu mỗi nhóm chia sẻ dự đoán của họ

  • Kiểm tra để đảm bảo dự án của bạn đã tải xuống (C++) bằng cách nhìn vào màn hình Robot Brain. Tên dự án Drive nên được liệt kê trong Khe 1.

    V5 Brain Home Screen hiển thị chương trình Drive ở khe 1 ở góc dưới bên trái ngay bên dưới biểu tượng Drive.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Mô hình đầu tiên

  • Làm mẫu chạy dự án trước lớp trước khi cho tất cả học sinh thử cùng một lúc. Tập hợp học sinh vào một khu vực và chừa đủ không gian để Speedbot có thể di chuyển nếu nó được đặt trên sàn.

  • Nói với học sinh rằng bây giờ đến lượt các em thực hiện dự án của mình. Hãy đảm bảo rằng chúng có đường đi thông thoáng và không có Speedbot nào đâm vào nhau.

  • Chạy (C++) dự án trên robot bằng cách đảm bảo dự án được chọn và sau đó nhấn nútChạytrên Robot Brain. Chúc mừng bạn đã tạo dự án đầu tiên!

    Màn hình V5 Brain với chương trình Drive mở và một hộp màu đỏ xung quanh nút Run ở phía xa bên trái. Ở bên phải của Run là các nút cho Timed Run, Match và Wiring.

Bước 4: Lái xe lùi

Bây giờ bạn đã lập trình robot của mình để lái xe về phía trước, chúng ta hãy lập trình nó để bây giờ lái xe ngược lại.

  • Thay đổi tham số trong hướng dẫn điều khiển để đảo ngược, để dự án của bạn trông như thế này:

    int main() {
      // Khởi tạo cấu hình robot. KHÔNG ĐƯỢC GỠ BỎ!
      vexcodeInit();
        // Bă ́ t đâ ̀ u ma ̃ dư ̣ a
    
        ́ n Drivetrain.driveFor (đa ̉ o ngươ ̣ c, 100, mm);
    
    }
  • Chọn Tên Dự án để thay đổi nó từ Drive sang Reverse.

    Hộp thoại tên dự án trong VEXcode V5 đọc Đảo ngược và hiển thị rằng Khe 1 được chọn.

     

  • Chọn biểu tượng Slot để chọn một slot mới. Chọn vị trí 2.

    Lựa chọn khe trong VEXcode V5 mở với khe 2 được chọn và đánh dấu bằng một hộp màu đỏ.

     

  • Tải xuống (C++) dự án.

    Nút tải xuống trong Thanh công cụ của VEXcode V5 được đánh dấu bằng một hộp màu đỏ ở bên trái của biểu tượng não màu xanh lá cây và ở bên phải của nút Chạy và Dừng.

  • Kiểm tra để đảm bảo dự án của bạn đã tải xuống (C++) bằng cách nhìn vào màn hình Robot Brain. Tên dự án Đảo ngược nên được liệt kê trong Khe 2.

    V5 Brain Home Screen hiển thị dự án Reverse ở Khe 2, biểu tượng thứ hai từ bên trái ở hàng dưới cùng, bên cạnh dự án Drive ở Khe 1.

  • Chạy (C++) dự án trên robot bằng cách đảm bảo dự án được chọn và sau đó nhấn nútChạytrên Robot Brain.

    Màn hình não V5 với dự án Đảo ngược đang mở và nút Chạy được đánh dấu trong một hộp màu đỏ ở phía xa bên trái. Ở bên phải của Run là các nút cho Timed Run, Match và Wiring.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Hoàn thành Bước 4

  • Để thay đổi lệnhdriveFortừforwardthànhreverse, chỉ cần thay đổi tham số đầu tiên thành -100. Điều này sẽ khiến các động cơ trong hệ thống truyền động di chuyển theo hướng ngược lại.

  • Số mm có thể thay đổi, nhưng trong ví dụ này chúng ta sẽ giữ nguyên ở mức 100 mm như đã thiết lập ở bước trước.

  • Nhắc nhở họ ngắt kết nối cáp USB khỏi Robot Brain trước khi chạy dự án.

  • Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. PhầnC++từ Thư viện VEX giải thích các phương pháp lưu trong VEXcode V5.

Bước 5: Chờ rồi lái xe lùi

Bây giờ chúng ta đã lập trình robot để lái xe về phía trước và sau đó ngược lại, bây giờ chúng ta có thể thêm một hướng dẫn chờ đợi để robot chờ một khoảng thời gian nhất định trước khi lái xe ngược lại.

  • Thêm lệnh Chờ trước khi ra lệnh cho Drive. Đảm bảo chế độ Chờ được thụt lề để khớp với lệnh trên Bộ điều khiển động cơ và tất cả các lệnh đều nằm trong dấu ngoặc nhọn. Điều này yêu cầu robot đợi ba giây trước khi lái xe ngược chiều.

        chờ(3, giây);
    
        Drivetrain.driveFor(chuyển tiếp, 100, mm);
  • Chọn Tên Dự án để thay đổi nó từ Đảo ngược thành WaitReverse.

    Hộp thoại tên dự án trong VEXcode V5 đọc Chờ đảo ngược và hiển thị vị trí 2 được chọn.

  • Chọn biểu tượng Slot để chọn một slot mới. Chọn vị trí 3.

    Lựa chọn vị trí trong Thanh công cụ VEXcode V5 hiển thị vị trí 3 được chọn và đánh dấu bằng một hộp màu đỏ.

  • Tải xuống (C++) dự án.

    Nút tải xuống trong Thanh công cụ VEXcode V5 được đánh dấu trong hộp màu đỏ ở bên phải của biểu tượng não màu xanh lá cây và ở bên trái của nút Chạy và Dừng.

  • Kiểm tra để đảm bảo dự án của bạn đã tải xuống (C++) bằng cách nhìn vào màn hình Robot Brain. Tên dự án WaitReverse nên được liệt kê trong Vùng 3.

    Màn hình chờ V5 Brain Home hiển thị dự án Wait Reverse ở khe 3, biểu tượng thứ ba ở hàng dưới cùng.

  • Chạy (C++) dự án trên robot bằng cách đảm bảo dự án được chọn và sau đó nhấn nútChạy.

    Màn hình V5 Brain với dự án Wait Reverse mở và nút Run được đánh dấu trong một hộp màu đỏ ở phía xa bên trái. Ở bên phải của Run là các nút cho Timed Run, Match và Wiring.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Hoàn thành Bước 5

  • Sử dụng lệnh wait sẽ không kết thúc dự án, nó chỉ tạm dừng chuyển động của robot.

  • Nếu học sinh sử dụng máy tính, hãy nhắc các em ngắt kết nối cáp USB khỏi Robot Brain trước khi chạy dự án.

  • Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. PhầnC++từ Thư viện VEX giải thích các phương pháp lưu trong VEXcode V5.

Bước 6: Hoàn thành thử thách bài tập bóng rổ!

Thiết lập cho cuộc tập trận bóng rổ cho thấy bốn đường được đặt cách nhau với một đường bắt đầu ở bên trái và các đường cách nhau 10cm, 20cm và 40cm. Một Robot V5 đã sẵn sàng để bắt đầu với bánh trước của nó trên vạch xuất phát.

Bố trí Cuộc tập trận Bóng rổ Thách thức

Trong Thử thách khoan bóng rổ, robot phải có khả năng điều hướng một loạt các đường ở các khoảng cách khác nhau. Robot sẽ di chuyển về phía trước đến vạch đầu tiên cách vị trí bắt đầu 10 cm, chờ 1 giây và sau đó di chuyển ngược trở lại cùng vạch đó. Sau đó, robot sẽ lặp lại hành động bằng cách lái xe về phía trước 20 cm đến vạch thứ hai, chờ 1 giây và sau đó lái xe lùi về vạch xuất phát ban đầu. Robot sẽ tiến về vạch thứ ba với khoảng cách 40 cm, đợi 1 giây rồi cuối cùng quay trở lại vạch xuất phát để hoàn thành thử thách.

Trước khi lập trình robot, hãy lập kế hoạch đường đi và hành vi của robot trong sổ tay kỹ thuật của bạn.

Sau khi hoàn thành Thử thách bóng rổ, bạn sẽ có thể kết hợp các chuyển động tiến và lùi với các hành vi bổ sung của robot để hoàn thành các thử thách nâng cao hơn nữa.
Hãy nhớ rằng khi lập trình 1 cm = 10 mm.

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

Xem giải pháp mẫu bên dưới:

int main() {
  // Khởi tạo cấu hình Robot. KHÔNG ĐƯỢC THÁO RA!
  vexcodeInit();
    // Bắt đầu mã dự án

    // Tiến về phía trước 10cm
    Drivetrain.driveFor(forward, 100, mm);
    // Đợi 1 giây
    wait(1, seconds);
    // Lái xe trở lại vạch xuất phát
    Drivetrain.driveFor(reverse, 100, mm);

    // Tiến về phía trước 20cm
    Drivetrain.driveFor(forward, 200, mm);
    // Đợi 1 giây
    wait(1, seconds);
    // Lái xe trở lại vạch xuất phát
    Drivetrain.driveFor(reverse, 200, mm);

    // Tiến về phía trước 40cm
    Drivetrain.driveFor(forward, 400, mm);
    // Đợi 1 giây
    wait(1, seconds);
    // Lái xe trở lại vạch xuất phát
    Drivetrain.driveFor(reverse, 400, mm);

}

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Dừng lại và thảo luận

Yêu cầu học sinh chia sẻ giải pháp của mình theo cặp trước khi thảo luận chung với cả lớp. Thúc đẩy cuộc thảo luận bằng cách hỏi:

  • Bạn có gặp khó khăn gì khi lập trình thử thách này không?

  • Robot của bạn có hoạt động như bạn mong đợi dựa trên dự án của bạn không? Tại sao nên hoặc không nên?

  • Nếu bạn có thể thực hiện lại thử thách, có điều gì bạn muốn làm khác đi không?