Skip to main content

Lập trình với câu lệnh điều kiện - Python

Biểu tượng Hộp công cụ của giáo viên 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 whileif để đ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 ifif-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 .

Biểu tượng Hộp công cụ của giáo viên 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.

VEXcode V5 với ổ đĩa cho lệnh được nhập trong không gian làm việc ở bên trái và thông tin Trợ giúp mở ở bên phải. Trợ giúp hiển thị định nghĩa về lệnh và thông tin về cách sử dụng lệnh.

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.

Vật liệu cần thiết:
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)

Biểu tượng Mẹo của Giáo viê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ụ.

Thanh công cụ VEXcode V5 có phần Hướng dẫn được đánh dấu trong hộp màu đỏ. Thanh công cụ hiển thị, từ trái sang phải, logo V5, biểu tượng quả địa cầu, Tệp và Hướng dẫn. Bên phải phần Hướng dẫn là các biểu tượng và chức năng bổ sung.

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).
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
Để 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).

Ảnh chụp màn hình của bài viết được liên kết có tiêu đề Sử dụng Booleans trong VEXcode V5 Python.

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

    Các dự án mẫu trong VEXcode V5 với bộ lọc Mẫu và động cơ Clawbot Drivetrain 2 không có biểu tượng con quay hồi chuyển được đánh dấu bằng một hộp màu đỏ cho biết dự án nào sẽ mở.

     

  • 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.
    Hộp thoại tên dự án trong Thanh công cụ VEXcode V5 đọc Tạo nút dừng và hiển thị Khe 1 được chọ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.

Biểu tượng Hộp công cụ của giáo viên 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.Chức năng của các lệnh trong dự án Dừng hoặc Lái được dán nhãn. Câu lệnh if được gắn nhãn là Kiểm tra xem điều kiện có Đúng hay không - kiểm tra xem màn hình có được nhấn hay không. Các khối thụt lề bên dưới được dán nhãn Nếu điều kiện là Đúng, chạy khối mã. Lệnh nhấn màn hình não trong khi được dán nhãn để kiểm soát tốc độ xử lý.

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ệnhwhilewait().

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 whilewait 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ệnhwhilewaitlà 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.Hộp thoại Project name trên VEXcode V5 Toolbar đọc Stop or Drive và cho biết slot 1 được chọn.
  • 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ửa sổ lựa chọn Slot đang mở trên Thanh công cụ VEXcode V5 và slot 2 được chọn và đánh dấu bằng một ô màu đỏ.

  • Để đượ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

Biểu tượng Hộp công cụ của giáo viê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 CreatingAStopButtondự á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.

Biểu tượng Mở rộng việc học của bạn 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:Lưới điểm ảnh của màn hình V5 Brain hiển thị 12 hàng được đánh số dọc theo phía bên trái, với hàng trên cùng được gắn nhãn là Hàng 1 và hàng dưới cùng được gắn nhãn là Hàng 12. Phía trên cùng là 48 cột được đánh số, với Cột 1 được đánh số ở phía bên trái và Cột 48 được đánh số ở phía bên phải. Tổng số pixel là rộng 480px và cao 240px.

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