Lập trình truyền động tiến và lùi - C++
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.
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.

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

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

| 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 |
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:
- Động cơ có được cắm vào đúng cổngkhông?
- Cáp thông minhđược lắp hoàn toàn vào tất cả các động cơ?
- Nãocó bậtkhông?
- Pin đã được sạchay?
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ụ.
-
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.

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

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

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

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

-
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); }
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++.

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

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

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

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

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!

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.

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

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

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

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

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.

-
Chọn biểu tượng Slot để chọn một slot mới. Chọn vị trí 3.
-
Tải xuống (C++) dự án.

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

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

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ổ!

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.
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);
}
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?