Skip to main content

Thêm nút thứ hai vào màn hình não - Dựa trên khối

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

Bây giờ, khi học sinh đã có kinh nghiệm coi màn hình não như một nút bấm lớn, các em có thể biến màn hình thành hai nút bấm. Hoạt động này sẽ giới thiệu cho học sinh cách sử dụng các khối [If then else] lồng nhau để quản lý tốt hơn các câu lệnh có điều kiện và logic cơ bản khi thực hiện như vậy. Đầu tiên, học sinh được hướng dẫn xây dựng dự án để nhấn màn hình để điều khiển robot rẽ trái hoặc phải. Nhưng sau đó, họ được yêu cầu chuyển đổi các nút sao cho nút nào khiến robot rẽ trái thì lại rẽ phải, và ngược lại.

Để biết thêm thông tin về các khối [Nếu thì][Nếu thì khác] hoặc các khối 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 nhấp vàoở đây.

Sau đây là phác thảo những gì học sinh của bạn sẽ làm trong hoạt động này:

  • Xem lại dự ánStopOrDrivevà bố cục màn hình não tính bằng pixel.

  • Xây dựng một dự ánLeftOrRightmới trong khi được hướng dẫn về lý luận lập trình.

  • Sửa đổi dự án để các nút trên màn hình hoạt động ngược nhau.

  • Mở rộng khả năng học tập của bạn: Chia màn hình thành hai nút, khi nhấn vào sẽ khiến robot rẽ trái hoặc phải.

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

1

VEXcode V5 (phiên bản mới nhất, Windows, macOS, Chromebook)

1

Sổ tay kỹ thuật

1

Dự án StopOrDrive từ trang Phát trước đó

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)

Màn hình não có thể có nhiều hơn một nút.

Hoạt động này sẽ cho phép bạn lập trình cho rô-bốt tiến về phía trước và rẽ trái hoặc phải tùy thuộc vào bên nào trên màn hình não được nhấn.

Ba loại khối bổ sung mà bạn sẽ cần trong hoạt động này là:

VEXcode V5 Blocks từ hộp công cụ - một khối Turn được đặt sang phải; một ít hơn toán tử; và một vị trí màn hình được đặt thành x.

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

Thanh công cụ VEXcode V5 với mũi tên màu đỏ chỉ vào biểu tượng Hướng dẫn. Các Hướng dẫn ở phía bên phải sau logo V5, biểu tượng quả địa cầu và FIle.

 

Bước 1: Hãy bắt đầu bằng cách xem lại dự án StopOrDrive.

Dự án StopOrDrive đã khiến Clawbot dừng lại nếu màn hình được nhấn, nếu không thì nó sẽ di chuyển về phía trước.
Toàn bộ màn hình là một nút lớn nhưng trong dự án tiếp theo này, chúng tôi muốn một nửa màn hình là một nút và nửa còn lại là nút còn lại.

Dừng hoặc thúc đẩy dự án từ bài học trước. Dự án bắt đầu với một khối khi bắt đầu với một khối Forever đính kèm. Bên trong khối Forever là khối if then else đọc nếu nhấn màn hình thì dừng lái xe; chờ cho đến khi không nhấn màn hình. Khác, lái xe về phía trước.

Để chia màn hình thành hai nút, chúng ta cần hiểu thêm về 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.

  • Lưu ý rằng các cột tăng số lượng từ trái sang phải. Số cột là 48 và màn hình rộng 480 pixel.
  • Ghi vào sổ ghi chép kỹ thuật của bạn rằng giá trị x trên màn hình bằng với số pixel được đo từ trái sang phải.
  • Giá trị x của tâm màn hình là bao nhiêu? Đối với hoạt động này, bạn có thể chỉ tập trung vào trục x vì bạn chỉ cần một nút trái và phải.

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

Giá trị x ở giữa màn hình bằng một nửa chiều rộng của màn hình tính bằng pixel. Vì vậy, giá trị x của điểm trung tâm là 240. Học sinh sẽ cần số này để lập trình điều kiện cho việc màn hình được nhấn sang trái hay phải. Vì vậy, hãy chắc chắn kiểm tra xem tất cả chúng đều có giá trị chính xác.

Nhìn về phía trước, Thử thách Giao diện người dùng trong phần Suy nghĩ lại sẽ yêu cầu học sinh áp dụng những gì đã học để tạo ra bốn nút trên màn hình. Vì vậy, để làm được điều đó, họ sẽ cần cả giá trị x và y.

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

Các hướng dẫn sẽ hướng dẫn học viên đến phần Hướng dẫn trong VEXcode V5 khi cần thiết. Để được hỗ trợ thêm, hãy xem Thư việnđể biết các bài viết trợ giúp bổ sung.

Bước 2: Lập trình cho hai nút

  • LưuStopOrDrivelàm dự ánLeftOrRight.
  • Hãy nhớ rằng, nếu bạn cần trợ giúp mở, đặt tên hoặc lưu dự án, hãy xem Hướng dẫn trong VEXcode V5.

Hộp thoại tên dự án trong Thanh công cụ VEXcode V5 đọc Trái hoặc Phải. Khe 3 được chọn ở bên trái và Thanh công cụ đọc Đã lưu ở bên phải.

  • Xây dựng dự án dưới đây. Clawbot sẽ rẽ trái hoặc phải khi màn hình được nhấn, tùy thuộc vào phía nó được nhấn.

Một dự án VEXcode V5 bắt đầu với một khối khi bắt đầu với một khối vĩnh cửu được đính kèm, Bên trong vòng lặp vĩnh cửu được lồng vào nhau nếu sau đó các khối khác. Nhánh If của khối if else đầu tiên sẽ đọc If screen pressed (Nếu màn hình được nhấn). Khối if else được lồng bên trong nhánh If đọc Nếu màn hình x vị trí nhỏ hơn 240 thì rẽ trái và đợi cho đến khi màn hình không được nhấn; nếu không thì rẽ phải và đợi cho đến khi màn hình không được nhấn. Nhánh else bên ngoài chứa các khối truyền động về phía trước.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Tại sao lại lồng các khối If Then Else?

Bộ khung của dự án (chỉ các khối điều khiển) bao gồm các khối lồng nhau: và khối [Nếu thì khác] bên trong khối [Nếu thì khác] bên trong vòng lặp [Mãi mãi]. Điều này có vẻ phức tạp hơn mức cần thiết vì thay vào đó bạn có thể sử dụng các khối [Nếu thì] tuần tự. Tuy nhiên, sử dụng các khối [Nếu thì] tuần tự không phải là phương pháp lập trình tốt.

Ba cấu trúc mã hóa được hiển thị từ trái sang phải. Cấu trúc bên trái có dấu x màu đỏ ở trên, cho biết vấn đề với một loạt các khối if then lồng nhau. Ở giữa là cấu trúc các khối C rỗng hiển thị các khối if then else lồng nhau. Bên phải, cấu trúc được điền vào để cho thấy rằng các hành vi tương tự có thể được hoàn thành ở dạng đơn giản hơn.

Dự án bị từ chối ở bên trái là phiên bản có điều kiện tuần tự của dự án LeftOrRight của chúng ta. Nếu nhấn vào màn hình và nếu giá trị x nhỏ hơn 240, Clawbot sẽ rẽ trái. Nếu nhấn vào màn hình và nếu giá trị x lớn hơn 240, Clawbot sẽ rẽ phải. Vấn đề với dự án này là nó có nguy cơ xảy ra tình trạng cả hai điều kiện đều đúng. Bất cứ khi nào bạn sử dụng các khối [Nếu thì] tuần tự, bạn có nguy cơ tạo ra lỗi trong một dự án vì có thể có nhiều hơn một câu lệnh điều kiện đúng. Lỗi dẫn đến sự không thể đoán trước.

Ở giữa là khung của dự án LeftOrRight và bên phải là dự án được hiển thị với một số câu lệnh điều kiện và khối Drivetrain được chèn vào. Logic trong phiên bản này của dự án có đôi chút khác biệt. Nếu/khi màn hình được nhấn, giá trị x sẽ nhỏ hơn 240 (rẽ trái) hoặc không nhỏ hơn 240 (rẽ phải). Chúng ta không cần thêm câu lệnh điều kiện nào nữa ở đây. Khi nhấn vào màn hình, nhiệt độ sẽ nhỏ hơn 240 hoặc không. Chúng ta chỉ có hai nút cần quan tâm. Lưu ý, dự án bên phải vẫn chưa hoàn thành.

Học sinh cần hiểu được sự khác biệt giữa hai cách tiếp cận dự án này. Hiểu được sự khác biệt trong logic cơ bản sẽ mang lại lợi ích rất lớn cho các lập trình viên đang phát triển.

Dự án Trái hoặc Phải được chia nhỏ với chức năng của các khối trong dự án được gắn nhãn. Nhánh vĩnh viễn và bên ngoài nếu màn hình được nhấn được dán nhãn Giữ kiểm tra xem màn hình có được nhấn hay không. Bên trong nếu nhánh được dán nhãn khi nhấn màn hình, hãy kiểm tra xem ở bên trái hay bên phải. Khối rẽ trái tiếp theo được gắn nhãn Nếu nhấn ở bên trái (dưới 240), rẽ trái. Chờ cho đến khi khối được gắn nhãn chờ cho đến khi màn hình không còn được nhấn nữa trước khi tiếp tục. Khối rẽ phải được dán nhãn nếu nhấn không ở bên trái (dưới 240), rẽ phải. Tiếp theo chờ cho đến khi khối được gắn nhãn chờ cho đến khi màn hình không còn được nhấn nữa trước khi tiếp tục. Nhánh khác bên ngoài có khối truyền động về phía trước được gắn nhãn Nếu màn hình không được nhấn, hãy truyền động về phía trước.

  • Chúng ta hãy cùng xem lại dự án này thực hiện những gì.

    Nó liên tục kiểm tra xem màn hình có được nhấn hay không. Nếu màn hình không được nhấn, nó sẽ di chuyển về phía trước nhưng nếu được nhấn, nó sẽ kiểm tra vị trí màn hình được nhấn.

    Nếu nhấn ở phía bên trái (nhỏ hơn 240), nó sẽ rẽ sang trái. Nếu không, nó sẽ rẽ phải. Chúng ta không cần một điều kiện khác khi giá trị x lớn hơn 240 vì nếu nó không nhỏ hơn 240 (rẽ trái), nó phải lớn hơn (rẽ phải). Chúng ta chỉ cần lo lắng về hai nút.

    chờ cho đến khiKhối điều khiển sau mỗi lượt yêu cầu dự án chờ cho đến khi màn hình không còn bị nhấn nữa trước khi tiếp tục.

Thanh công cụ trong VEXcode V5 với một hộp màu đỏ xung quanh nút tải xuống. Các biểu tượng đọc, từ trái sang phải, Bộ điều khiển, Bộ não, Tải xuống, Chạy, Dừng và Chia sẻ.

  • Bây giờ dự án đã hoàn thành, hãy tải xuống và chạy nó để kiểm tra cách thức hoạt động của nó.
  • Để được trợ giúp, hãy xem video hướng dẫn Tải xuống và chạy Dự án trong VEXcode V5.
  • Ghi chú trong sổ ghi chép kỹ thuật của bạn về cách các nút điều khiển chuyển động của Clawbot.

Biểu tượng Mẹo của Giáo viên Mẹo dành cho giáo viên

Trong khi thử nghiệm, học sinh cần nhận ra rằng Giao diện người dùng khi được sử dụng từ phía sau Clawbot dường như hoạt động ngược lại. Theo góc nhìn của người dùng, Clawbot sẽ quay đi khỏi phía mà người dùng đang nhấn. Đó không phải là trải nghiệm người dùng tối ưu.

Khi nhấn các nút của màn hình từ phía sau Clawbot khi nó di chuyển về phía trước, bạn nhấn vào phía bên phải của màn hình để rẽ trái và ở phía bên trái của màn hình để rẽ phải. Đó không phải là một Trải nghiệm người dùng tốt. Trải nghiệm người dùng là mức độ người dùng có thể tương tác với Giao diện người dùng để điều khiển hệ thống máy tính. Có thêm thông tin về Giao diện người dùng trong phần Áp dụng của phòng thí nghiệm này.

Trong trường hợp này, chúng ta cần cải thiện Giao diện người dùng để cải thiện Trải nghiệm người dùng.

Dự án VEXcode V5 trái hoặc phải. Một dự án VEXcode V5 bắt đầu với một khối khi bắt đầu với một khối vĩnh cửu được đính kèm, Bên trong vòng lặp vĩnh cửu được lồng vào nhau nếu sau đó các khối khác. Nhánh If của khối if else đầu tiên sẽ đọc If screen pressed (Nếu màn hình được nhấn). Khối if else được lồng bên trong nhánh If đọc Nếu màn hình x vị trí nhỏ hơn 240 thì rẽ trái và đợi cho đến khi màn hình không được nhấn; nếu không thì rẽ phải và đợi cho đến khi màn hình không được nhấn. Nhánh else bên ngoài chứa các khối truyền động về phía trước.

  • Xem lại dự án LeftOrRight và sửa lại để khi người dùng nhấn các nút từ phía sau Clawbot, robot sẽ rẽ phải khi người dùng nhấn phía bên trái màn hình. Nếu không, Clawbot sẽ rẽ trái.
  • Lập kế hoạch, kiểm tra và lặp lại dự án này trong sổ ghi chép kỹ thuật của bạn để dự án làm cho Clawbot quay về phía bên của màn hình mà người dùng đang nhấn từ phía sau Clawbot.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên

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). Hãy nhớ giải thích cách chấm điểm cho học sinh trước khi các em bắt đầu làm bài.

Biểu tượng Hộp công cụ của giáo viên Hộp công cụ giáo viên - Giải pháp

Có hai cách có thể giải quyết vấn đề nêu trên. Cách đầu tiên là cách được ghi trong hướng dẫn: Xem lại dự án LeftOrRight và sửa đổi sao cho khi người dùng nhấn các nút từ phía sau Clawbot, robot sẽ rẽ phải khi người dùng nhấn vào phía bên trái của màn hình. Nếu không, Clawbot sẽ rẽ trái.

Giải pháp mẫu VEXcode V5 bắt đầu bằng khối Khi bắt đầu có khối vĩnh viễn được đính kèm. Bên trong khối forever có các khối If then else lồng nhau. Khối if then else bên ngoài đọc nếu màn hình được nhấn; else sẽ chuyển tiếp. Trong nhánh If, khối if then else sẽ đọc nếu vị trí màn hình x nhỏ hơn 240 thì rẽ phải, else thì rẽ trái.

Giải pháp khác là chuyển đổi khối Toán tử sao cho khi giá trị x lớn hơn 240, Clawbot sẽ rẽ trái.

Giải pháp mẫu VEXcode V5 bắt đầu bằng khối Khi bắt đầu có khối vĩnh viễn được đính kèm. Bên trong khối forever có các khối If then else lồng nhau. Khối if then else bên ngoài đọc nếu màn hình được nhấn; else sẽ chuyển tiếp. Trong nhánh If, khối if then else đọc nếu vị trí x trên màn hình lớn hơn 240 thì rẽ trái, else thì rẽ phải.

Biểu tượng thảo luận thúc đẩy Thúc đẩy thảo luận

Bạn cần sử dụng tọa độ từ mặt phẳng tọa độ khi lập trình câu lệnh điều kiện khi giá trị x nhỏ hơn 240 (phía bên trái màn hình). Để màn hình của não vẽ các nút trực quan, bạn cũng cần sử dụng tọa độ.
Quay lại Bước 2, nơi bạn được hiển thị tọa độ cho màn hình của Não Robot V5.

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.

Q:Giá trị x ở cạnh phải màn hình là bao nhiêu?
A:Giá trị x tăng từ 0 ở cạnh trái đến 480 ở cạnh phải.

Q:Vậy phạm vi của giá trị x là 480 (từ 0 đến 480). Giá trị y có giá trị trong khoảng nào?
A:Giá trị y có giá trị trong khoảng 240 (từ 0 đến 240).

Q:Gốc tọa độ (0, 0) của mặt phẳng tọa độ này nằm ở đâu?
A:Gốc tọa độ nằm ở góc trên bên trái.

Q:Bạn đang ở đầu màn hình khi giá trị y bằng 0. Tại sao điều này lại bất thường?
A:Thông thường, giá trị y tăng khi bạn di chuyển lên trên nhưng trên màn hình V5, giá trị y tăng khi bạn di chuyển xuống dưới. Nhưng bạn có thể nghĩ về nó như giá trị y tăng dần khi bạn di chuyển ra xa gốc tọa độ (0, 0) ở góc trên bên trái của màn hình.

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

Trong Thử thách Giao diện người dùng của phần Tái thiết, học sinh sẽ được yêu cầu phát triển một dự án tạo ra bốn nút trên màn hình để điều khiển móng vuốt và cánh tay của Clawbot. Đối với thử thách đó, họ cũng được yêu cầu hiển thị bốn nút đó trên màn hình. Phần Mở rộng việc học này, giống như các trang trước, sẽ giúp học sinh chuẩn bị cho thử thách đó vì thử thách có bốn nút để lập trình nhưng phần này chỉ có hai.

Yêu cầu học sinh thêm một sự kiện vào chương trình để màn hình hiển thị hai nút có thể nhìn thấy khi dự án chạy. Đề xuất rằng học sinh sử dụng tính năng Trợ giúp trong VEXcode V5 để biết thông tin về các khối Sự kiện và Hình thức, đặc biệt là thông tin của khối [Vẽ hình chữ nhật]. Hướng dẫn học sinh xem lại cách màn hình não được tổ chức thành hệ tọa độ dựa trên số lượng điểm ảnh khi sử dụng trong khối [Vẽ hình chữ nhật]. Họ cần phải hiểu điều đó để có thể thiết lập các tham số trong khối đó. Ngoài ra, họ cần phải hiểu cách phát sóng sự kiện. Trong trường hợp này, sự kiện là vẽ các nút.

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

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

Giải pháp mẫu VEXcode V5 với hai chồng khối nằm cạnh nhau. Ngăn xếp bên trái bắt đầu bằng khối khi bắt đầu và hiển thị khối nút Phát sóng Vẽ được thêm vào đầu dự án Trái hoặc phải, giữa khối khi bắt đầu và vòng lặp mãi mãi. Ngăn xếp bên phải bắt đầu bằng khối sự kiện Khi tôi nhận được Nút vẽ theo sau là bốn khối Trông có nội dung Đặt màu tô thành màu xanh lá cây trên Brain; vẽ hình chữ nhật 0, 0, 240, 240; đặt màu tô thành màu tím trên Brain; và vẽ hình chữ nhật 240, 0, 480, 240 trên Brain.

Để có trải nghiệm thực tế chuyên nghiệp hơn, hãy yêu cầu học sinh hỏi ý kiến phản hồi của các bạn cùng lớp về hai lựa chọn màu sắc của mình.
Màu sắc được chọn có khiến bạn muốn sử dụng giao diện không, hay họ sẽ thích màu nào hơn với tư cách là người dùng?
Một phần của việc phát triển một Giao diện Người dùng tuyệt vời là thu thập dữ liệu về Trải nghiệm Người dùng, thậm chí cả sở thích thẩm mỹ.