Lập trình với câu lệnh điều kiện - Python
Hộp công cụ giáo viên
-
Mục đích của hoạt động này
Hoạt động này sẽ giới thiệu cho học sinh cách sử dụng các câu lệnh while và if để điều khiển robot tiến về phía trước trừ khi nhấn vào màn hình.
- Hoạt động này sẽ giới thiệu cho học sinh về các điều kiện và hướng dẫn để robot tiến về phía trước trừ khi nhấn vào màn hình.
- Để biết thêm thông tin về các câu lệnh if và if-else hoặc các câu lệnh khác được sử dụng trong hoạt động này, hãy truy cập thông tin trợ giúp trong VEXcode V5. Để biết thêm thông tin về công cụ trợ giúp tích hợp này, hãy xem bài viết về trợ giúp trong Python .
Hộp công cụ giáo viên
Để có gợi ý về các chiến lược giảng dạy cho phần này, hãy xem lại cột Triển khai của Hướng dẫn tiến độ Nên làm hay Không nên làm! (Google Doc / .docx / .pdf)
Clawbot đã sẵn sàng để đưa ra quyết định!
Khám phá này sẽ cung cấp cho bạn các công cụ để có thể bắt đầu tạo một số dự án thú vị sử dụng câu lệnhif-else
- Các lệnh Python VEXcode V5 sẽ được sử dụng trong quá trình khám phá này:
- drivetrain.drive_for(CHUYỂN TIẾP)
- brain.screen.pressing()
- drivetrain.stop()
- nếu điều kiện:
- else:
- trong khi Đúng:
- chờ(5, GIÂY)
Bạn có thể sử dụng thông tin Trợ giúp bên trong VEXcode V5 để tìm hiểu về các lệnh Python.

Hãy chắc chắn rằng bạn có sẵn phần cứng cần thiết, máy tính xách tay kỹ thuật và VEXcode V5.
| Số lượng | Vật liệu cần thiết |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (với firmware cập nhật) |
| 1 |
VEXcode V5 (phiên bản mới nhất, Windows, macOS) |
| 1 |
Sổ tay kỹ thuật |
| 1 |
Mẫu Clawbot (Drivetrain 2 động cơ, Không có con quay hồi chuyể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. Phần Hướng dẫn nằm trên thanh công cụ.

Bước 1: Chúng ta hãy bắt đầu bằng việc tìm hiểu các câu lệnh có điều kiện
Trước khi bắt đầu lập trình bằng câu lệnh điều kiện, hãy đọc bài viết giải thích về câu lệnhif-else. Bạn có thể tìm thấy bài viết tại đây (Google Doc / .docx / .pdf).
Để biết danh sách các toán tử được sử dụng trong các câu lệnh if-else, hãy đọc bài viết giải thích về Boolean. Bạn có thể tìm thấy bài viết này tại đây (Google Doc/.docx/.pdf).
Bước 2: Chúng ta hãy bắt đầu lập trình bằng các câu lệnh điều kiện.
-
Mở dự án mẫu Clawbot (Drivetrain 2 động cơ, Không có con quay hồi chuyển).

- Xây dựng dự án dưới đây.
# Bắt đầu mã dự án
trong khi
Đúng: drivetrain.drive (CHUYỂN TIẾP)
nếu brain.screen.pressing (
): drivetrain.stop ()
trong khi brain.screen.pressing ():
wait(5, MSEC)
wait(5, MSEC)Làm như sau trong sổ ghi chép kỹ thuật của bạn:
- Giải thích những gì dự án có Clawbot làm. Bạn sẽ cần phải giải thích nhiều hơn thực tế là nó tạo ra một nút dừng. Giải thích hướng dẫn nào khiến Clawbot làm gì.
- Viết một bản tóm tắt một câu để nắm bắt những gì dự án làm.
- 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 tên cho dự ánCreatingAStopButton. Tải xuống và chạy dự án trên Clawbot.
- 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.
Hộp công cụ giáo viên
-
Câu trả lời
Dự án này cho phép robot liên tục di chuyển về phía trước nhưng dừng lại khi nhấn vào màn hình. Nó thực hiện điều này bằng cách sử dụng câu lệnh "mãi mãi" (while True)để điều khiển và kiểm tra liên tục. Nếu màn hình đang được nhấn (Đúng), thì Clawbot sẽ dừng lái.
Học sinh không được yêu cầu hiểu lý do tại sao các lệnh while brain.screen.pressing():and wait(5, MSEC) được sử dụng. Giải thích rằng những lệnh này là cần thiết vì tốc độ xử lý chương trình của robot. Nếu không có nó, động cơ của Clawbot sẽ hoạt động như thể người dùng đang nhấn màn hình nhiều lần khi nó lặp lại dự án. Thay vào đó, các hướng dẫn này dừng luồng chương trình và không bắt đầu lại vòng lặp cho đến khi người dùng ngừng nhấn vào màn hình.
Dòng mã giả có thể đơn giản như sau: Di chuyển về phía trước cho đến khi màn hình được nhấn.
Sổ tay kỹ thuật của sinh viên có thể được lưu giữ và chấm điểm riêng lẻ (Google Doc / .docx / .pdf) hoặc theo nhóm (Google Doc / .docx / .pdf). Các liên kết trước cung cấp tiêu chí đánh giá khác nhau cho từng cách tiếp cận. Bất cứ khi nào một tiêu chí đánh giá được đưa vào kế hoạch giáo dục, tốt nhất là nên giải thích tiêu chí đánh giá hoặc ít nhất là cung cấp bản sao cho học sinh trước khi hoạt động bắt đầu.
Bước 3: Hiểu các câu lệnhwhilevàwait().
Lưu ý rằng nếu màn hình Brain được nhấn, luồng của dự án sẽ di chuyển nhanh chóng và dự án sẽ chuyển sang lệnh tiếp theo, đó là lệnh drivetrain.stop().
Do đó, dự án cần các lệnh while và wait yêu cầu robot dừng lại cho đến khi màn hình của Brain được nhả ra. Nếu không, câu lệnh foreversẽ khiến dự án phải bắt đầu lại.
while brain.screen.pressing():
chờ(5, MSEC)Các lệnhwhile và waitlà cần thiết vì tốc độ tiến độ của dự án. Nếu họ không có ở đó, dự án sẽ chuyển sang hướng dẫn tiếp theo trước khi robot có thời gian phản hồi.
Bước 4: Thay đổi dự án.
Bước tiếp theo của chúng ta là thay đổi câu lệnhifthành câu lệnhif-else
- Bắt đầu bằng cách lưuCreatingAStopButtonlàm dự án mới,StopOrDrive.
- Nếu bạn cần trợ giúp để lưu dự án, xem các bài viết này.
- Sau đó xây dựng dự ánStopOrDrivenhư hiển thị bên dưới.
# Bắt đầu mã dự án
trong khi Đúng:
if brain.screen.pressing (
): drivetrain.stop ()
trong khi brain.screen.pressing ():
wait(5, MSEC)
else
: drivetrain.drive (FORWARD)
wait(5, MSEC)- Tải xuốngStopOrDrivevào Khe 2 trên Clawbot của bạn.
- Để được trợ giúp về việc tải xuống và chạy một dự án, xem bài viết này.
- Kiểm traCreatingAStopButton(Khe 1) rồi kiểm traStopOrDrive(Khe 2) và so sánh chúng để xem có sự khác biệt nào trong hành vi của robot không. Lưu ý bất kỳ sự khác biệt nào trong sổ ghi chép kỹ thuật của bạn
Hộp công cụ giáo viên
-
Trả lời
Về hành vi của robot,được có sự khác biệtgiữadự án CreatingAStopButtonvàdự án StopOrDrive.
Nếu học sinh cần thêm trợ giúp để hiểu các câu lệnhif-else, hãy xem bài viết này (Google Doc / .docx / .pdf).
Hai dự án có Clawbot hoạt động theo cùng một cách. Sự khác biệt duy nhất là việc sử dụng câu lệnh if-else trong dự án StopOrDrive
Sử dụng câu lệnh if-else sẽ cho phép bạn thêm các nút bổ sung vào màn hình trong các hoạt động sắp tới.
Mở rộng việc học của bạn
Khi Phòng thí nghiệm STEM này tiến hành, học sinh sẽ phát triển các dự án cho phép màn hình của Clawbot hoạt động như một giao diện người dùng. Để chuẩn bị cho điều đó, hãy thử thách học sinh tìm cách vẽ một hình chữ nhật màu trên màn hình có chức năng như một nút bấm. Vì hiện tại điều kiện là nhấn vào bất kỳ vị trí nào trên màn hình nên nút đó phải chiếm toàn bộ màn hình. Học sinh phải phát sóng dự án một sự kiện để vẽ nút khi bắt đầu.
Đầu tiên, hãy hướng dẫn học sinh tìm hiểu cách màn hình não được tổ chức thành hệ thống tọa độ. Họ sẽ cần hiểu điều này để thiết lập các tham số trong các lệnh họ sẽ sử dụng. Tọa độ được sử dụng tương ứng với số pixel chứ không phải số cột hoặc số hàng. Sau đây là bố cục của màn hình:
Sinh viên nên lập kế hoạch, thử nghiệm và tinh chỉnh những thay đổi này cho dự án trong khi ghi chép lại trong sổ tay kỹ thuật của mình. Để biết tiêu chí chấm điểm sổ tay kỹ thuật cá nhân, hãy nhấp vào một trong các liên kết sau (Google Doc / .docx / .pdf) hoặc nhấp vào một trong các liên kết sau để biết sổ tay nhóm (Google Doc / .docx / .pdf).
Sau đây là một giải pháp ví dụ:
# Bắt đầu mã dự án
draw = Event()
def draw_button():
brain.screen.set_fill_color(Color.RED)
brain.screen.draw_rectangle(0, 0, 480, 240)
wait(1, SECONDS)
draw(draw_button)
while True:
draw.broadcast()
drivetrain.drive(FORWARD)
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
else:
drivetrain.drive(FORWARD)
wait(5, MSEC)Như bạn có thể thấy, nút được vẽ để chiếm toàn bộ màn hình bắt đầu từ gốc (0, 0) và lấp đầy tất cả 480 pixel theo chiều ngang (trục x) và 240 pixel theo chiều dọc (trục y).
