Skip to main content

Biểu tượng Hộp công cụ dành cho giáo viên Hộp công cụ dành cho 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 then để robot lái 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 các câu điều kiện và hướng dẫn để robot lái 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 then  if then 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 các bài viết này về trợ giúp trong C++ .

Biểu tượng Hộp công cụ dành cho giáo viên Hộp công cụ dành cho giáo viên

Để biết các đề xuất về chiến lược giảng dạy cho phần này, hãy xem lại cột Giao hàng của Hướng dẫn về việc thực hiện hoặc không thực hiện nhịp độ! (Google Doc / .docx / .pdf)

Clawbot đã sẵn sàng để đưa ra quyết định!

Cuộc thăm dò 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ệnh if else.

  • Các lệnh VEXcode V5 C++ sẽ được sử dụng trong thăm dò này: 
    • Drivetrain.drive(chuyển tiếp);
    • Brain.Screen.pressing()
    • Drivetrain.stop();
    • if (điều kiện){}
    • waitUntil();
    • while (condition){}  
    • chờ(1, 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ề hướng dẫn C++.

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 dành cho giáo viên 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 V5, các em có thể tham khảo Hướng dẫn bất cứ lúc nào trong quá trình khám phá này. Các Hướng dẫn được đặt trên thanh công cụ.

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

Bước 1: Hãy bắt đầu với sự hiểu biết về các câu lệnh điều kiện 

Trước khi bạn bắt đầu lập trình với các câu điều kiện, hãy đọc Điều khoản Thư viện VEX giải thích các câu lệnh If Then Else. Bài viết có thể được tìm thấy ở đây.

Ảnh chụp màn hình từ Thư viện VEX, hiển thị một bài viết có tiêu đề Sử dụng các câu lệnh if-else trong VEXcode V5.Để biết danh sách các toán tử được sử dụng trong các câu lệnh If Then Else, hãy đọc Điều khoản Thư viện VEX giải thích Booleans. Bạn có thể tìm thấy bài viết này tại đây.Ảnh chụp màn hình từ Thư viện VEX, hiển thị một bài viết có tiêu đề Sử dụng Booleans trong VEXcode V5.

Bước 2: Hãy bắt đầu lập trình với 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).

    Ví dụ về lựa chọn dự án trong VEXcode V5 với một hộp màu đỏ xung quanh bộ lọc Mẫu ở trên cùng và động cơ Clawbot drivetrain 2 không có dự án con quay hồi chuyển, cho biết mẫu nào sẽ mở.

     

  • Xây dựng dự án dưới đây.
// Bắt đầu mã dự án
int main() {
  // Khởi tạo cấu hình robot. KHÔNG ĐƯỢC GỠ BỎ!
  vexcodeInit();

  while (true) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    }    
  }  
}  

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.

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ị vị trí 1 được chọn.

  • Lưu và tải dự án dưới dạng CreatingAStopButton vào Slot 1 trên Clawbot, sau đó chạy nó.
  • Để được trợ giúp tải xuống một dự án, hãy xem hướng dẫn trong VEXcode V5 giải thích cách tải xuống và chạy một dự án (C++).
  • 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ụ dành cho giáo viên Hộp công cụ dành cho giáo viên - Câu trả lời

Dự án này có robot liên tục lái về phía trước nhưng dừng lại nếu 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 Forever để lái xe và kiểm tra liên tục. Nếu màn hình đang được nhấn (TRUE), thì Clawbot sẽ ngừng lái xe.Dự án Tạo nút dừng được hiển thị với các lệnh được gắn nhãn với mục đích của chúng. Lệnh if được khoanh tròn màu đỏ và được dán nhãn Kiểm tra nếu điều kiện là Đúng - màn hình được nhấn. Lệnh Drivetrain dot stop được gắn nhãn Runs the block (Chạy khối) nếu đúng. Chờ cho đến khi lệnh được gắn nhãn kiểm soát tốc độ xử lý.

Học sinh không cần phải hiểu lý do tại sao hướng dẫn waitUntil () được sử dụng. Giải thích rằng hướng dẫn waitUntil () là cần thiết vì tốc độ của luồng chương trình của robot. Nếu nó không có ở đó, các động cơ của Clawbot sẽ hoạt động như thể người dùng đang nhấn vào màn hình nhiều lần khi nó lặp qua dự án. Thay vào đó,  hướng dẫn waitUntil () dừng luồng chương trình và không yêu cầu dự án bắt đầu lại vòng lặp forever cho đến khi người dùng ngừng nhấn màn hình.

Dòng mã giả có thể đơn giản như: Lái xe về phía trước cho đến khi màn hình được nhấ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 Doc / .docx / .pdf) hoặc theo nhóm (Google Doc / .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.

Bước 3: Hiểu câu lệnh chờ đến().

Lưu ý rằng nếu nhấn vào màn hình của Bộ não, luồng của dự án sẽ di chuyển nhanh chóng và dự án sẽ chuyển sang hướng dẫn tiếp theo, đó là  hướng dẫn Drivetrain.stop ().

Do đó, dự án cần một  lệnhwaitUntil () 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, tuyên bố Forever sẽ khiến dự án bắt đầu lại.

waitUntil(!Brain.Screen.pressing());

Hướng dẫnwaitUntil () là cần thiết vì tốc độ dòng chảy của dự án. Nếu 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ệnh if then thành câu lệnh if then else.

Hộp thoại tên dự án trong Thanh công cụ VEXcode V5 đọc Dừng hoặc ổ đĩa và hiển thị vị trí 1 được chọn.

  • Bắt đầu bằng cách lưu CreatingAStopButton làm dự án mới, StopOrDrive.
  • Nếu bạn cần trợ giúp lưu dự án, hãy nhấp vào đây để xem C++.
  • Sau đó xây dựng dự  án StopOrDrive được hiển thị bên dưới.
// Bắt đầu mã dự án
int main() {
  // Khởi tạo cấu hình robot. KHÔNG ĐƯỢC GỠ BỎ!
  vexcodeInit();

  while (true) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Drivetrain.drive(forward);
    }   
  }  
}  
  • Tải StopOrDrive xuống Khe 2 trên Clawbot của bạn.

Lựa chọn khe trong Thanh công cụ VEXcode V5 đang mở và khe 2 được chọn và đánh dấu bằng một hộp màu đỏ. Tên dự án là Dừng hoặc Lái xe.

  • Để được trợ giúp tải xuống một dự án, hãy xem hướng dẫn trong VEXcode V5 giải thích cách tải xuống và chạy một dự án (C++).
  • Kiểm tra CreatingAStopButton (Slot 1) và sau đó kiểm tra StopOrDrive (Slot 2) và so sánh chúng để xem liệu có bất kỳ sự khác biệt nào trong hành vi của robot hay 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ụ dành cho giáo viên Hộp công cụ dành cho giáo viên - Trả lời

Liên quan đến hành vi của robot, không nên có sự khác biệt giữa các dự án CreatingAStopButton và StopOrDrive.

Nếu học viên cần hỗ trợ thêm để hiểu Tuyên bố If-Else, hãy nhấp vào đây.

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 then 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 biểu tượng học tập 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, sinh viên 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ách thức học viên tìm ra 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. Bởi vì nhấn bất cứ nơi nào trên màn hình hiện là điều kiện, nút sẽ chiếm toàn bộ màn hình. Học sinh nên yêu cầu dự án phát sóng một sự kiện để vẽ nút khi bắt đầu.
Hướng dẫn học viên trước tiên tìm hiểu cách màn hình của não được tổ chức thành một hệ tọa độ. Họ sẽ cần phải hiểu điều này để thiết lập các thông số trong hướng dẫn mà 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 hàng. Dưới đây là bố cục của màn hình:

Lưới điểm ảnh của màn hình V5 Brain thể hiện 12 hàng được đánh số dọc theo phía bên trái, với hàng trên cùng được đánh dấu là Hàng 1 và hàng dưới cùng được đánh dấu là Hàng 12. Phía trên cùng là 48 cột được đánh số, với Cột 1 được đánh dấu ở ngoài cùng bên trái và Cột 48 được đánh dấu ở ngoài cùng bên phải. Tổng số phép đo pixel rộng 480px cao 240 px.

Học sinh nên lập kế hoạch, kiểm tra và tinh chỉnh những thay đổi này cho dự án trong khi ghi lại nó trong sổ ghi chép kỹ thuật của họ. Đối với phiếu tự đánh giá sổ ghi chép kỹ thuật riêng lẻ, 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 cho sổ ghi chép nhóm (Google Doc / .docx / .pdf).

Dưới đây là một giải pháp ví dụ:

// Bắt đầu
sự kiện mã dự án draw = event();

void drawButton ()
  {Brain.Screen.setFillColor (red)
  ; Brain.Screen.drawRectangle (0, 0, 480, 240);
  wait(1, seconds);
}

int main() {
  // Khởi tạo cấu hình Robot. KHÔNG ĐƯỢC GỠ BỎ!
  vexcodeInit();

  draw(drawButton);

  while (true) {
    draw.broadcast();
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Drivetrain.drive(forward);
    }   
  }  
}  

Như bạn có thể thấy, nút được vẽ để chiếm toàn bộ màn hình bắt đầu từ điểm gốc (0, 0) và lấp đầy tất cả 480 pixel ngang (trục x) và 240 pixel dọc (trục y).