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 hoạt động tiếp theo và trong Thử thách Strike vào cuối Phòng thí nghiệm STEM này, khi các em sẽ thi đấu bowling 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 Momentum Alley. 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.

Hình ảnh của Không gian làm việc VEXcode V5 với Ghi chú trợ giúp mở cho lệnh truyền động Drivetrain

  • Hướng dẫn VEXcode V5 sẽ được sử dụng trong thăm dò này:
    • Drivetrain.driveFor(1, inch);
    • 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.

    Hình ảnh của VEXcode V5 Workspace với các ghi chú trợ giúp mở cho lệnh Drivetrain Drive For

     

  • Đả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.

Thanh công cụ VEXcode V5 có phần Hướng dẫn được đánh dấu trong hộp màu đỏ. Thanh công cụ hiển thị, từ trái sang phải, logo V5, biểu tượng quả địa cầu, Tệp và Hướng dẫn. Bên phải phần Hướng dẫn là các biểu tượng và chức năng bổ sung.

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.

    Hình ảnh hiển thị các dự án Ví dụ với một hộp màu đỏ xung quanh Dự án Mẫu Speedbot (Drivetrain 2 động cơ, Không có con quay hồi chuyển)

     

  • 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. Chọn Tên dự án, nhập 'Ổ đĩa'rồi chọn 'Lưu'.

 

Hình ảnh cho thấy tên dự án đang được thay đổi để lái xe

 

 

 

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ụ.

    Tên dự án đã thay đổi thành ổ đĩa trong Thanh công 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 - 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 từ 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. Các phần C++ 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 là gì, xem bài viết này.

    Một lệnh C++ được chia thành các thành phần của nó. Hệ thống truyền động được gắn nhãn là thiết bị; Drive for được gắn nhãn là các lệnh; và forward, 100 và mm được gắn nhãn chung là các tham 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ết C++.

VEXcode V5 với phần Drivetrain của lệnh được nhập ở bên trái và bên phải, danh sách có thể cuộn được các tùy chọn tự động hoàn thành cho lệnh đó sẽ được hiển thị.

  • 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ụ trong VEXcode V5 có hộp màu đỏ xung quanh biểu tượng Brain màu xanh lá cây, nằm giữa biểu tượng Bộ điều khiển và Tải xuống.

     

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

    Thanh công cụ trong VEXCODE EXP với một hộp màu đỏ xung quanh biểu tượng tải xuống, nằm giữa biểu tượng não tham lam và nút Chạy và Dừng.

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ọ

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 mã dự
      ánDrivetrain.driveFor (forward, 100, mm);
    
    }
  • Chọn Tên dự án để thay đổi từDrivethànhReverse.

    Tên dự án trên Thanh công cụ đọc Đảo ngược và vị trí 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 (trongC++) dự án.

    Thanh công cụ VEXcode V5 với nút Tải xuống được đánh dấu bằng một hộp màu đỏ ở bên phải. Nút Tải xuống nằm ở bên phải của biểu tượng Brain 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 đã được tải xuống (trongC++) bằng cách nhìn vào màn hình Robot Brain. Tên dự ánReversephải được liệt kê ở 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 (trongC++) 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. Thư viện VEX có các phần dành cho C++ 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.

    Tên dự án đã thay đổi thành Chờ đảo ngược trong Thanh công cụ và 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 khe trong VEXcode V5 với một ô màu đỏ xung quanh Khe 3/8.

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

    Nút tải xuống trong Thanh công cụ VEXcode V5 được đánh dấu bằng một hộp màu đỏ xung quanh nó, giữa biểu tượng Brain màu xanh lá cây và các nút Chạy và Dừng.

  • Kiểm tra để đảm bảo dự án của bạn đã được tải xuống (trongC++) 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 (trongC++) 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. Thư viện VEX có các phần dành cho C++ 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ẽ lái xe về phía trước đến vạch thứ ba với khoảng cách 40 cm, chờ 1 giây, và cuối cùng trở về vạch xuất phát để hoàn thành thử thách.

Trước khi lập trình robot, hãy lên kế hoạch cho đường đi và hành vi của robot trong sổ ghi chép 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.
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 - 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?

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

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);

}