Lập trình cánh tay robot - 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 về cách lập trình cơ bản cho động cơ cánh tay của V5 Clawbot.
-
Học cách lập trình Động cơ cánh tay cho phép học sinh kiểm soát chính xác các chuyển động cánh tay của V5 Clawbot. Để biết thêm thông tin về các hướng dẫn được sử dụng trong chương trình văn bản, hãy truy cập thông tin trợ giúp
V5 Clawbot đã sẵn sàng để sử dụng!
Khám phá này sẽ cung cấp cho bạn các công cụ để có thể bắt đầu tạo ra một số dự án thú vị sử dụng cánh tay V5 Clawbot.
- Hướng dẫn VEXcode V5 sẽ được sử dụng trong quá trình khám phá này:
- ArmMotor.spinFor(hướng về phía trước, 90, độ);
- ArmMotor.setPosition(0, độ);
- chờ (2, giây);
-
Để tìm hiểu thêm thông tin về hướng dẫn, hãy chọn Trợ giúp rồi chọn biểu tượng dấu chấm hỏi bên cạnh lệnh để xem thêm thông tin.

- Hãy đảm bảo rằng bạn đã tải xuống và sẵn sàng phần cứng cần thiết, sổ tay kỹ thuật và VEXcode V5.
| Số lượng | Vật liệu cần thiết |
|---|---|
| 1 |
Bộ khởi động lớp học VEX V5 (có phần mềm cập nhật) |
| 1 |
Mã VEXcode V5 |
| 1 |
Sổ tay kỹ thuật |
| 1 |
Dự án ví dụ về Clawbot và Advanced TrainingBot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển) |
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 những vật dụng này chưa? Kiểm tra từng mục sau:
-
Động cơ có được cắm vào đúng cổng khô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?
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 2: Bắt đầu một dự án mới
Trước khi bắt đầu dự án, hãy chọn đúng mẫu dự án. Dự án ví dụ về Clawbot và Advanced TrainingBot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển) chứa cấu hình động cơ của Clawbot. Nếu không sử dụng mẫu, robot của bạn sẽ không chạy dự án đúng cách.
Hoàn thành các bước sau:
- Mở menu Tệp.
- ChọnMởVí dụ.
- Chọn và mở dự án ví dụ Clawbot và Advanced TrainingBot (Hệ thống truyền động 2 động cơ, Không có con quay hồi chuyển).
- Vì chúng ta sẽ lập trình để điều khiển cánh tay, hãy đổi tên dự án của bạnArmControl.
- Lưudự án của bạn.
- Kiểm tra để đảm bảo tên dự án ArmControl hiện nằm trong cửa sổ ở giữa thanh công cụ.

Mẹo dành cho giáo viên
-
Vì đây là hoạt động bắt đầu với lập trình nên giáo viê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 Clawbot (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 trangVí 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.
-
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.
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à MyProject1. MyProject1 là tên dự án mặc định khi VEXcode V5 được mở lần đầu. 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 có thể nâng và hạ cánh tay của Clawbot.
-
Nhắc nhở học sinh lưu dự án của mình khi đang làm bài. Bài viết nàytừ Cơ sở kiến thức về Robot 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 để tạm dừng và yêu cầu các nhóm 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.
Bước 3: Di chuyển cánh tay lên
Bây giờ chúng ta sẽ bắt đầu bằng cách lập trình cho cánh tay nâng lên!
int main() {
// Khởi tạo cấu hình Robot. KHÔNG ĐƯỢC THÁO RA!
vexcodeInit();
ArmMotor.setPosition(0, độ);
}- Viết lệnh ArmMotor.setPosition(); như được hiển thị ở trên trong vùng lập trình để thiết lập vị trí bắt đầu cho cánh tay.
ArmMotor.setPosition(0, độ);
ArmMotor.spinFor(hướng về phía trước, 90, độ);- Thêm lệnh ArmMotor.spinFor(); bên dưới lệnh ArmMotor.setPosition() như hiển thị ở trên để di chuyển cánh tay lên. Hãy đảm bảo rằng lệnh Spin For được thụt vào để khớp với lệnh Set Position và tất cả các lệnh đều nằm trong dấu ngoặc nhọn.
- Nhấp vào biểu tượng Slot. Bạn có thể tải dự án của mình xuống một trong các vị trí có sẵn trong Robot Brain. Nhấp vào ô 1.
- Kết nối robot với máy tính hoặc máy tính bảng của bạn. Biểu tượng Não trên thanh công cụchuyển sang màu xanh lásau khi kết nối thành công.
- Nhấp vào nútTải xuốngtrên thanh công cụ để tải dự án Drive xuống Robot Brain.
Hộp công cụ giáo viên
-
Trợ giúp với văn bản
-
Nếu học sinh đang sử dụng máy tính, hãy yêu cầu các em 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.

- Kiểm tra xem dự án ArmControl đã được tải xuống bộ nhớ trong khe bạn chọn chưa.
Hộp công cụ giáo viên
-
Tùy chọn để làm mẫu trước
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 để Clawbot có thể di chuyển cánh tay. Trình bày cách kết thúc dự án và đưa cánh tay của Clawbot trở lại vị trí nghỉ ngơi.
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. Đảm bảo rằng có đủ không gian để Clawbot có thể nâng cánh tay lên một cách an toàn.
- Chạydự án trên Clawbot bằng cách đảm bảo dự án được chọn, sau đó nhấn nút Chạy. Xin chúc mừng vì bạn đã tạo ra dự án Claw Arm đầu tiên của mình!
Bước 4: Hãy thử điều này: Lập trình cánh tay xuống
Bây giờ bạn đã lập trình cho cánh tay di chuyển lên, bạn sẽ lập trình cho cánh tay hạ xuống hoặc di chuyển xuống.

- Thêm lệnh ArmMotor.spinFor(); thứ hai vào dự án ArmControl của bạn để cánh tay nâng lên góc 90 độ, đợi 2 giây rồi hạ xuống.
- Gợi ý:Bạn sẽ cần phải thay đổi hướng trong hướng dẫn.
- Lưu ý rằng cánh tay giữ nguyên vị trí trong khi lệnhwaitđang chạy. Động cơ lấy năng lượng từ pin để giữ cho cánh tay chống lại lực hấp dẫn. Bởi vì cài đặt mặc định để dừng động cơ là cài đặtgiữ. Có hai cài đặt khác để dừng -phanhvàbờ. Bạn sẽ tìm hiểu về những điều đó trong phòng thí nghiệm khác.
Hộp công cụ giáo viên
-
Giải pháp
Giải pháp cho thách thức này nằm ở bên dưới. Để hạ cánh tay xuống, học sinh cần thay đổi tham số “tiến” thành “đảo ngược” trong lệnh ArmMotor.spinFor(); đã được thêm vào.
// Bắt đầu mã dự án
int main() {
// Khởi tạo cấu hình Robot. KHÔNG ĐƯỢC THÁO RA!
vexcodeInit();
ArmMotor.setPosition(0, độ);
ArmMotor.spinFor(tiến, 90, độ);
chờ(2, giây);
ArmMotor.spinFor(ngược, 90, độ);
}
Bước 5: Hoàn thành Thử thách Kiểm soát viên không lưu

Trong Thử thách kiểm soát viên không lưu, Clawbot phải di chuyển cánh tay lên xuống một lần trong 90 độ, đợi 3 giây, di chuyển cánh tay lên xuống hai lần trong 45 độ, đợi 5 giây, sau đó di chuyển cánh tay lên xuống ba lần trong 90 độ.
Sau đây là danh sách các hành vi của Clawbot:
- Di chuyển cánh tay lên rồi xuống 90 độ.
- Chờ 3 giây.
- Di chuyển cánh tay lên rồi xuống 45 độ.
- Di chuyển cánh tay lên rồi xuống 45 độ.
- Chờ 5 giây.
- Di chuyển cánh tay lên rồi xuống 90 độ.
- Di chuyển cánh tay lên rồi xuống 90 độ.
- Di chuyển cánh tay lên rồi xuống 90 độ.
Hộp công cụ giáo viên
-
Giải pháp
Hầu hết các hướng dẫn trong thử thách này là ArmMotor.spinFor();. Sau khi thêm hướng dẫn di chuyển cánh tay lên trên và hướng dẫn di chuyển cánh tay xuống dưới, bạn có thể đánh dấu hai hướng dẫn, nhấp chuột phải, sau đó chọn sao chép và dán chúng nhiều lần nếu cần. Sau đó, các tham số có thể được thay đổi để đáp ứng thử thách và lệnh wait() có thể được thêm vào giữa.
- Giải pháp cho thử thách của kiểm soát viên không lưu:
// Bắt đầu mã dự án
int main() {
// Khởi tạo cấu hình Robot. KHÔNG ĐƯỢC THÁO RA!
vexcodeInit();
ArmMotor.setPosition(0, độ);
ArmMotor.spinFor(hướng tới, 90, độ);
ArmMotor.spinFor(hướng ngược, 90, độ);
wait(3, giây)
ArmMotor.spinFor(hướng tới, 45, độ);
ArmMotor.spinFor(hướng ngược, 45, độ);
ArmMotor.spinFor(hướng tới, 45, độ);
ArmMotor.spinFor(hướng ngược, 45, độ);
wait(5, giây)
ArmMotor.spinFor(hướng tới, 90, độ);
ArmMotor.spinFor(hướng ngược, 90, độ);
ArmMotor.spinFor(hướng tới, 90, độ);
ArmMotor.spinFor(hướng ngược, 90, độ);
ArmMotor.spinFor(tiến, 90, độ);
ArmMotor.spinFor(ngược, 90, độ);
}- Tiêu chí lập trình (Google Doc / .docx / .pdf)