Lập trình hai nút
Hộp công cụ dành cho giáo viên
-
Mục đích của hoạt động này
Ở trang trước, học sinh đã lập trình cánh tay để xoay lên bằng cách sử dụng nút Brain Up. Trang này sẽ xây dựng dựa trên dự án trước đó để lập trình cánh tay quay xuống bằng cách sử dụng nút Brain Down.

Hoạt động này sẽ giới thiệu cho học sinh cách lập trình với các khối [If else] cũng như sử dụng các khối cảm biến và khối điều khiển để robot kiểm tra xem các nút Brain Up hay Down được nhấn. Nếu nhấn nút Brain Up, cánh tay của Clawbot sẽ giơ lên. Nếu nhấn nút Brain Down, cánh tay của Clawbot sẽ hạ xuống. Điều này được xây dựng dựa trên hoạt động trước đó và cũng sẽ đặt nền móng cho Thử thách giao diện người dùng trong phần Suy nghĩ lại.
Đối với Thử thách giao diện người dùng, học sinh sẽ cần lập trình cho Clawbot của mình để nâng cánh tay, hạ cánh tay, mở móng vuốt và đóng móng vuốt bằng cách sử dụng các nút trên IQ Robot Brain.
Để biết thêm thông tin về các khối [If then], [If else]>, <Brain hoặc [Spin], hãy truy cập thông tin trợ giúp trong VEXcode IQ. Để biết thêm thông tin về công cụ trợ giúp tích hợp này, hãy nhấp vào đây.
Sau đây là sơ lược về những điều học viên của anh chị em sẽ làm trong sinh hoạt này:
- Sử dụng ArmUp2 hiện có để xây dựng dự án ArmUpDown được cung cấp và dự đoán những gì dự án sẽ làm.
- Xem lưu đồ để giúp giải thích dòng chảy của các khối trong dự án.
- Tinh chỉnh lời giải thích của họ về những gì dự án ArmUpDown thực hiện.
- Xem video hướng dẫn If Then Else Blocks.
- Chỉnh sửa dự án của họ bằng cách sử dụng các khối [If else].
- Dừng lại và thảo luận: Học sinh sẽ suy ngẫm về dự đoán của họ về những gì dự án sẽ có Clawbot làm so với quan sát thực tế của họ.
- Lập trình móng vuốt bằng cách sử dụng cùng một phác thảo dự án từ việc lập trình cánh tay.
| Số lượng | Vật liệu cần thiết |
|---|---|
| 1 |
Bộ siêu công cụ IQ VEX |
| 1 |
VEXcode IQ |
| 1 |
Sổ tay kỹ thuật |
| 1 |
Mẫu Clawbot (Drivetrain) |
Cánh tay Clawbot đã sẵn sàng để di chuyển lên xuống! Hoạt động
này sẽ cung cấp cho bạn các công cụ để lập trình robot của bạn với các hành vi có điều kiện.
Khối [If else] là trọng tâm chính trong hoạt động nhưng các khối Sensing, Control và Operator khác cũng được sử dụng.

Bạn có thể sử dụng thông tin Trợ giúp bên trong VEXcode IQ để tìm hiểu về các khối. Để được hướng dẫn sử dụng tính năng Trợ giúp, hãy xem hướng dẫn Sử dụng Trợ giúp.

Bước 1: Lập trình di chuyển cánh tay xuống.
Ở trang trước, bạn đã lập trình cho cánh tay của Clawbot quay lên khi nhấn nút Brain Up. Nhưng, còn việc hạ thấp cánh tay thì sao? Trước tiên chúng ta hãy xem lại dự án ArmUp2 trước đó.

Có thể sử dụng cùng một khối [Nếu sau đó] để xoay cánh tay lên cũng như xoay cánh tay xuống không? Hãy thử xem! Xây dựng dự án bên dưới bằng cách chỉnh sửa dự án ArmUp2 đã tồn tại của bạn.

-
Lưu dự án dưới dạng ArmUpDown. Nếu học viên cần trợ giúp lưu dự án, hãy tham khảo hướng dẫn Đặt tên và Lưu.

- Kiểm tra để đảm bảo tên dự án ArmUpDown hiện đang ở cửa sổ ở giữa thanh công cụ.
- Dự đoán dự án sẽ có Clawbot làm gì trong sổ ghi chép kỹ thuật của bạn. Giải thích cả hành vi của người dùng và Clawbot.
- Kiểm tra xem dự đoán của bạn về những gì dự án có Clawbot làm là chính xác hay không.
- Tải dự án xuống Slot 3 trên Clawbot, sau đó chạy nó.
- Để được trợ giúp tải xuống và chạy một dự án, hãy xem hướng dẫn trong VEXcode IQ giải thích cách tải xuống và chạy một dự án.

- Kiểm tra phần giải thích của bạn về dự án và thêm ghi chú để sửa chúng khi cần thiết.
Lời khuyên của giáo viên
Nếu đây là lần đầu tiên học sinh sử dụng VEXcode IQ, các em cũng có thể xem các Hướng dẫn trong thanh công cụ để học các kỹ năng cơ bản khác.

Hộp công cụ dành cho giáo viên
Dự án mà các em học sinh xây dựng ở trên sẽ thành công. Khi nhấn nút Brain Up, cánh tay sẽ quay lên và khi nhấn nút Brain Down, cánh tay sẽ quay xuống. Mặc dù dự án hoạt động như hiện tại, nhưng nó không được viết một cách tối ưu. Có thể có một trường hợp trong đó cả hai điều kiện có thể đúng cùng một lúc. Ngoài ra, hãy lưu ý rằng vì tình trạng của nút Brain Up bắt đầu được nhấn trước, nếu nhấn giữ nút Brain Up và sau đó nhấn Brain Down, cánh tay sẽ tiếp tục quay lên. Hành động đó sẽ không dừng lại cho đến khi nút Brain Up được nhả ra. Do đó, dự án sẽ được viết lại trong bước tiếp theo để bao gồm một khối [If then else] để tránh những vấn đề tiềm ẩn này.
Hộp công cụ dành cho giáo viên
-
Dừng lại và thảo luận
Bây giờ các sinh viên đã kiểm tra dự án, hãy hỏi họ dự đoán của họ như thế nào so với quan sát của họ. Tạo điều kiện thuận lợi cho cuộc thảo luận bằng cách đặt ra những câu hỏi sau:
-
Dự đoán của bạn có giống với quan sát của bạn không?
-
Điều gì dường như đang xảy ra trong dự án?
-
Các điều kiện của nút Lên và Xuống chỉ được kiểm tra một lần?
-
Bạn có nghĩ rằng dự án có thể được tổ chức lại để chạy hiệu quả hơn?
Bước 2: Tìm hiểu quy trình dự án.
Trong bước trước, dự án đã nâng và hạ cánh tay. Tuy nhiên, vì tình trạng của nút Brain Up bắt đầu được nhấn là đầu tiên, nếu nút Brain Up được giữ xuống và sau đó nhấn Brain Down, cánh tay sẽ tiếp tục quay lên vì hành động đó sẽ không dừng lại cho đến khi nút Brain Up được nhả ra. Xem lưu đồ sau để giải thích quy trình dự án.

Do đó, dự án có thể thay thế các khối [If then] bằng các khối [If then else] để chỉ có một phiên bản có thể đúng bất cứ lúc nào.
Xem video hướng dẫn sau đây về các khối [If else]:
Bắt đầu bằng cách xem video Hướng dẫn If-Then-Else trong VEXcode IQ.

Sử dụng các khối [If else] cũng sẽ loại bỏ sự cần thiết của các khối [Wait until] vì cánh tay sẽ tiếp tục quay cho đến khi nút Brain Up được nhả ra. Điều này xảy ra bởi vì phần "else" của [If then else] không bao giờ đạt được cho đến khi điều kiện nút Brain Up là sai (được giải phóng).
Khối [Forever] cho phép kiểm tra liên tục điều kiện đầu tiên.

Hãy khám phá việc thay đổi dự án bằng cách thêm các khối [If else]. Động cơ cánh tay bây giờ sẽ tiếp tục quay cho đến khi nút Brain Up không còn được nhấn (nhả). Do khối [Mãi mãi], tình trạng này sẽ tiếp tục được kiểm tra cho đến khi nó sai.
Khi tình trạng của nút Brain Up là sai, dự án sẽ tiếp tục đến khối tiếp theo, đó là kiểm tra tình trạng nếu nút Brain Down được nhấn. Nếu tình trạng của nút Brain Down được nhấn là đúng, thì cánh tay sẽ quay lên. Một lần nữa, do khối [Mãi mãi], tình trạng này sẽ tiếp tục được kiểm tra cho đến khi nó sai.
Khi điều kiện của nút Brain Up là sai, dự án sẽ tiếp tục đến khối tiếp theo, đó là khối [Stop motor]. Do đó, Động cơ tay kẹp sẽ chỉ dừng lại khi cả hai điều kiện đều sai (không nhấn nút nào).

Thúc đẩy thảo luận
H: Tiến trình của luồng dự án là gì nếu điều kiện của nút Brain Up đang được nhấn là SAI (được giải phóng)?
A: Nếu điều kiện là sai, luồng dự án sẽ tiếp tục kiểm tra tình trạng của nút Brain Down đang được nhấn.
Hỏi: Mục đích của các khối [Nếu sau đó] trong dự án trên là gì?
Đ: Sử dụng các khối [If else] chỉ cho phép một phiên bản là đúng tại một thời điểm. Do đó, nút Brain Up và nút Brain Down không thể đúng cùng một lúc bằng cách sử dụng các khối [If then else], vì điều kiện thứ hai của nút Brain Down được nhấn thậm chí sẽ không phải là một lựa chọn trừ khi điều kiện đầu tiên của nút Brain Up được nhấn là sai. Mục đích khác là nâng cao hiệu quả lập trình.
H: Tiến độ của luồng dự án là gì nếu cả hai điều kiện của nút Lên và Xuống được nhấn là sai?
Đ: Nếu cả hai điều kiện đều sai, luồng dự án sẽ tiếp tục đến khối [Stop motor] trước khi quay trở lại đầu ngăn xếp lặp lại mãi mãi.
Bước 3: Lập trình với các khối [If else].
Hãy sử dụng các khối [Nếu có]:
-
Thêm các khối [If then else] vào dự án ArmUpDown của bạn để dự án của bạn trông như sau:

-
Lưu dự án dưới dạng ArmUpDown2. Nếu học viên cần trợ giúp lưu dự án, hãy tham khảo hướng dẫn Đặt tên và Lưu.

- Tải dự án xuống Slot 4 trên Clawbot, sau đó chạy nó.
- Để được trợ giúp tải xuống và chạy một dự án, hãy xem hướng dẫn trong VEXcode IQ giải thích cách tải xuống và chạy một dự án.

- Kiểm tra xem cánh tay bây giờ có quay lên không khi nhấn nút Brain Up và quay xuống khi nhấn nút Brain Down.
- Xác minh rằng khi các nút Brain Up và Down không được nhấn (nhả) thì Arm Motor sẽ dừng lại.
- Viết quan sát của bạn về cách Clawbot hoạt động trước và sau khi thêm các khối if then else vào dự án của bạn trong sổ ghi chép kỹ thuật của bạn.
Hộp công cụ dành cho giáo viên
-
Dừng lại và thảo luận
Sau khi học sinh đã kiểm tra dự án trước và sau khi thêm khối [If then else], hãy thảo luận với học sinh về cách điều này cho phép cánh tay tiếp tục quay cho đến khi nút Brain Up được nhả ra. Yêu cầu học viên chia sẻ những quan sát của các em từ sổ ghi chép kỹ thuật của các em. Tạo điều kiện thuận lợi cho một cuộc thảo luận bằng cách hỏi những câu hỏi sau:
-
Bạn có thấy Clawbot hoạt động khác nhau giữa việc sử dụng các khối [If then] so với chỉ các khối [If then] không?
-
Tại sao bạn nghĩ rằng hiệu quả của chương trình là quan trọng?
-
Có phải điều kiện nút Brain Up chỉ được kiểm tra một lần trong dự án?
Sổ ghi chép kỹ thuật của học sinh có thể được duy trì và chấm điểm riêng lẻ (Google / .docx / .pdf) hoặc theo nhóm (Google / .docx / .pdf). Các liên kết trước cung cấp một phiếu tự đánh giá khác nhau cho mỗi cách tiếp cận. Bất cứ khi nào một phiếu tự đánh giá được đưa vào kế hoạch giáo dục, thực hành tốt là giải thích phiếu tự đánh giá hoặc ít nhất là đưa bản sao cho học sinh trước khi hoạt động bắt đầu.
Hộp công cụ dành cho giáo viên
Học sinh có thể không thấy nhiều sự khác biệt trong cách Clawbot của họ hoạt động giữa việc sử dụng các khối [If then] so với các khối [If then]. Nếu sinh viên không thể nhìn thấy nhiều sự khác biệt về thể chất, hãy tạo điều kiện cho một cuộc thảo luận về hiệu quả lập trình và cách đơn giản hóa một dự án có thể dẫn đến việc sử dụng ít khối hơn. Sử dụng ít khối hơn trong một dự án có thể làm giảm số lượng lỗi tiềm ẩn.
Bước 4: Lập trình Claw.
Trong bước trước, dự án đã được tối ưu hóa để chạy hiệu quả hơn bằng cách sử dụng các khối [If else]. Trong ví dụ trước, cánh tay được thao tác bằng cách sử dụng các nút Brain Up và Down.
Sử dụng cùng một phác thảo dự án chính xác, Claw cũng có thể được thao tác.
-
Xem lại dự án ArmUpDown2 và thay đổi các khối [Quay] thành ClawMotor thay vì ArmMotor bằng cách sử dụng menu thả xuống.
Đảm bảo rằng nút Brain Up quay Móng vuốt "mở" và nút Brain Down quay Móng vuốt "đóng" bằng cách sử dụng các menu thả xuống.
-
Lưu dự án dưới dạng ClawUpDown. Nếu học viên cần trợ giúp lưu dự án, hãy tham khảo hướng dẫn Đặt tên và Lưu.

- Tải dự án xuống Slot 1 trên Clawbot, sau đó chạy nó.
- Để được trợ giúp tải xuống và chạy một dự án, hãy xem hướng dẫn trong VEXcode IQ giải thích cách tải xuống và chạy một dự án.

- Kiểm tra xem bây giờ Claw có quay mở không khi nhấn nút Brain Up và quay đóng khi nhấn nút Brain Down.
- Xác minh rằng khi các nút Brain Up và Down không được nhấn (nhả) thì Claw Motor sẽ dừng lại.
- Viết quan sát của bạn về cách Clawbot hoạt động trước và sau khi thêm các khối if then else vào dự án của bạn trong sổ ghi chép kỹ thuật của bạn.
Hộp công cụ dành cho giáo viên
Bây giờ học sinh đã có các kỹ năng để điều khiển cánh tay và móng vuốt bằng cách sử dụng các nút, yêu cầu học sinh suy nghĩ về cách các em có thể thực hiện tất cả bốn hành động trong cùng một dự án (giơ tay lên, hạ tay xuống, mở móng vuốt và đóng móng vuốt).
Học sinh sẽ sử dụng một khối [nếu sau đó] khác trong phần suy nghĩ lại để cho phép robot của họ thực hiện tất cả bốn hành động.
Mở rộng việc học của bạn
-
Đặt khối dừng động cơ
Nếu học sinh lập trình robot của mình để nâng và hạ cánh tay, trọng lượng của Móng vuốt có thể khiến cánh tay bị trôi xuống.
Trong trường hợp này, khối [Đặt động cơ dừng] có thể được sử dụng để cánh tay không bị rơi do trọng lực và trọng lượng của móng vuốt. Khối này có thể được sử dụng khi bắt đầu dự án và sẽ được áp dụng cho tất cả các khối động cơ trong tương lai cho phần còn lại của dự án.

Khối dừng động cơ đã đặt có ba cài đặt:
- Phanh làm cho động cơ dừng ngay lập tức.
- Coast cho phép Motor quay dần đến điểm dừng.
- Giữ làm cho Động cơ dừng ngay lập tức và đưa nó trở lại vị trí dừng nếu di chuyển.