Lập trình cánh tay robot - Python
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 dự án Python, hãy truy cập thông tin trợ giúp cho VEXcode V5 Python.
Mẹo dành cho giáo viên
-
Sử dụng tính năng Tự động hoàn thành
Tự động hoàn thành là một tính năng trong VEXcode V5 giúp dự đoán phần còn lại của lệnh bạn đang nhập. Khi học sinh làm việc với VEXcode V5, hãy khuyến khích các em sử dụng tính năng Tự động hoàn thành để hỗ trợ cú pháp Python. 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 Python. 
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 Python VEXcode V5 sẽ được sử dụng trong quá trình khám phá này:
- arm_motor.spin_for(TIẾN VỀ PHÍA TRƯỚC, 90, ĐỘ)
- arm_motor.set_position(0, ĐỘ)
- chờ (2, GIÂY)
-
Để tìm hiểu thêm thông tin về hướng dẫn, hãy 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 mới 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 ví dụ Clawbot và Advanced TrainingBot (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.
- 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à VEXcode Project. VEXcode Project là tên dự án mặc định khi VEXcode V5 được mở lần đầu tiên. Sau khi đổi tên và lưu dự án, 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. Các bài viết trong phần Python của 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 để 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!
# Thư viện nhập
từ vex import *
# Bắt đầu mã dự án
arm_motor.set_position(0, DEGREES)- Viết lệnh arm_motor.set_position()như 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.
arm_motor.set_position(0, ĐỘ)
arm_motor.spin_for(TIẾN VỀ PHÍA TRƯỚC, 90, ĐỘ)- Thêm lệnh arm_motor.spin_for()bên dưới lệnh arm_motor.set_position() như hiển thị ở trên để di chuyển cánh tay lên.
- Chọn biểu tượng Khe cắm. 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. Chọn ô 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 ArmControl xuống Robot Brain.
Hộp công cụ giáo viê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
-
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 để 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 họ có đủ không gian để có thể nâng cánh tay của Clawbot lên một cách an toàn.
- Chạy dự á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 arm_motor.spin_for()thứ hai vào dự án ArmControl của bạn để cánh tay nâng lên 90 độ, đợi 2 giây rồi hạ xuống.
- Gợi ý:Bạn sẽ cần phải thay đổi hướng trong lệnh.
- 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ố “FORWARD” thành “REVERSE” trong lệnh arm_motor.spin_for()đã được thêm vào.
# Bắt đầu mã dự án
arm_motor.set_position(0, DEGREES)
arm_motor.spin_for(FORWARD, 90, DEGREES)
wait(2, SECONDS)
arm_motor.spin_for(REVERSE, 90, DEGREES)
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 lệnh trong thử thách này là arm_motor.spin_for(). Sau khi thêm lệnh di chuyển cánh tay lên trên và lệnh di chuyển cánh tay xuống dưới, bạn có thể đánh dấu hai lệnh, nhấp chuột phải, sau đó chọn sao chép và dán chúng nhiều lần tùy theo nhu cầu. Sau đó, các tham số có thể được thay đổi để đáp ứng thử thách và các lệnh waitcó thể được thêm vào giữa.
- Xem ví dụ về giải pháp Thử thách kiểm soát không lưu tại đây:
# Bắt đầu mã dự án
arm_motor.set_position(0, DEGREES)
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)
wait(3, SECONDS)
arm_motor.spin_for(FORWARD, 45, DEGREES)
arm_motor.spin_for(REVERSE, 45, DEGREES)
arm_motor.spin_for(FORWARD, 45, DEGREES)
arm_motor.spin_for(REVERSE, 45, DEGREES)
wait(5, SECONDS)
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)
arm_motor.spin_for(TIẾN, 90, ĐỘ)
arm_motor.spin_for(ĐIỀU, 90, ĐỘ)
arm_motor.spin_for(TIẾN, 90, ĐỘ)
arm_motor.spin_for(ĐIỀU, 90, ĐỘ)Học sinh giỏi hơn có thể sử dụng vòng lặp để đơn giản hóa giải pháp.
# Bắt đầu mã dự án
arm_motor.set_position(0, DEGREES)
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)
wait(3, SECONDS)
for repeat_count in range(2):
arm_motor.spin_for(FORWARD, 45, DEGREES)
arm_motor.spin_for(REVERSE, 45, DEGREES)
wait(5, SECONDS)
for repeat_count in range(3):
arm_motor.spin_for(FORWARD, 90, DEGREES)
arm_motor.spin_for(REVERSE, 90, DEGREES)- Tiêu chí lập trình(Google Doc / .docx / .pdf)