Skip to main content

Độ phức tạp của lập trình

Robot có thể được thiết kế để thực hiện nhiều nhiệm vụ khác nhau. Một số nhiệm vụ này rất đơn giản, như mở một cánh cửa tự động. Những thứ khác có thể phức tạp hơn nhiều, chẳng hạn như một chiếc ô tô tự hành điều hướng trong môi trường đô thị. Nhiệm vụ dù phức tạp đến đâu cũng có thể được chia thành các nhiệm vụ đơn giản hơn. Những nhiệm vụ này được gọi là hành vi và là nền tảng của lập trình robot.

Hành vi là cách rô-bốt hành động và có thể có mức độ phức tạp tùy thuộc vào cách chế tạo hoặc lập trình rô-bốt. Một robot di động đơn giản như VEX V5 Speedbot chỉ có hai động cơ, trong khi Clawbot có bốn động cơ, trong đó có thêm hai động cơ dành cho Arm và Claw. Hành vi của cả hai robot sẽ liên quan đến việc quay các động cơ đó để hoàn thành các mục tiêu đã đặt ra. Với nhiều thiết kế và lập trình hơn, bạn có thể bắt đầu từ hành vi đơn giản này và thực hiện các hành vi phức tạp hơn.

Dưới đây là danh sách các hành vi của robot tăng dần từ đơn giản đến phức tạp cho cả Speedbot và Clawbot. Trong dấu ngoặc đơn, bạn có thể thấy các hành vi đơn giản hơn cấu thành từng hành vi đó.

  • Xoay một động cơ được gán cho một cổng nhất định

  • Lái xe về phía trước (xoay cả động cơ trái và phải bằng Hệ thống truyền động)

  • Đi được 5 mét (lái xe về phía trước rồi dừng lại)

  • Lấy một vật ở xa (di chuyển 2 mét, xoay động cơ vuốt để lấy nó)

  • Lấy một đồ vật và đặt lên kệ cao (lấy đồ vật ở xa, quay lại, di chuyển 2m, dùng động cơ cánh tay và móng vuốt để nâng và thả đồ vật)

Bạn có thể thấy cách bạn có thể chuyển đổi bất kỳ hành vi phức tạp nào thành hành vi đơn giản hơn. Chúng trở thành khối xây dựng của bất kỳ nhiệm vụ phức tạp nào.

biểu tượng Lời khuyên của Giáo viên Lời khuyên của giáo viên

  • Hướng dẫn học sinh chia các hành vi phức tạp của robot thành các bước đơn giản, nhỏ hơn. Quá trình này được gọi là phân hủy.

  • Giải thích cho học sinh rằng việc phân tách (chia nhỏ) các hành vi phức tạp thành các nhiệm vụ đơn giản hơn là một phần quan trọng của việc lập kế hoạch và lập trình.

  • Cho phép học sinh thực hiện các dự án tự chủ của mình nếu có đủ thời gian trên lớp.

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

Để kết nối hoạt động này với tư duy tính toán và phân tích, hãy yêu cầu học sinh vạch ra hoặc liệt kê các bước hành vi mà robot sẽ thực hiện để hoàn thành các hoạt động dưới đây:

  • Hoạt động 1: Đi được 1m và quay lại điểm xuất phát.

  • Hoạt động thứ hai: Lật một chiếc hộp nằm cách robot 60 cm.

  • Hoạt động 3: Nhặt một vật, lắc nó, di chuyển 30 cm, đặt vật xuống đất và quay lại điểm xuất phát.

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

Học sinh nên chia sẻ các bước hành vi mà các em đã liệt kê cho các hoạt động trong phần Mở rộng việc học tập của bạn ở trên. Mỗi câu hỏi sau đây có thể được hỏi sau bất kỳ hoặc tất cả các hoạt động.

Q: Mỗi nhóm đã liệt kê những bước hoặc hành vi nào để hoàn thành thành công hoạt động này?
A: Học sinh sẽ cần xem xét chiều dài robot phải di chuyển cũng như chuyển động và tốc độ của cánh tay, ngoài việc liệt kê các hành vi đơn giản của robot cần thiết để hoàn thành hoạt động hoặc nhiệm vụ (lái xe tiến, lùi, rẽ trái hoặc đúng). Học sinh nên tạo danh sách các hành vi của mình để mỗi bước được thể hiện.

Q: Điểm giống và khác nhau giữa các giải pháp (danh sách các bước) cho hoạt động này là gì?
A: Học sinh sẽ so sánh dựa trên cách giải quyết của mình. Sơ đồ Venn có thể là một cách hay để sắp xếp các bước mà học sinh chia sẻ. Nếu đa số học sinh nêu tên một bước cụ thể, hãy thêm bước đó vào giữa nơi các vòng tròn chồng lên nhau. Nếu chỉ có một hoặc một vài học sinh nêu tên một bước cụ thể, hãy thêm bước đó vào vòng tròn này hoặc vòng tròn khác. Khi hoàn thành, các bước ở giữa phải đơn giản và không thể chia nhỏ thêm trong khi các bước được liệt kê chỉ trong một trong các vòng tròn có thể không đơn giản như mong muốn. Tuy nhiên, mô hình này có thể bị đảo ngược tùy thuộc vào kinh nghiệm của lớp trong việc chia nhỏ các hành vi phức tạp thành các bước đơn giản nhất.

Q: Có điểm tương đồng nào với các giải pháp thành công không? Nếu vậy, là những gì họ?
A: Các giải pháp thành công nhất là những giải pháp có tính chi tiết và cụ thể nhất. Robot được lập trình bằng ngôn ngữ với các hành vi rất cụ thể được chia thành các thành phần nhỏ nhất. Ví dụ: người ta thường nói robot "đi được 1 mét và quay trở lại vị trí xuất phát" nhưng mô tả cấp cao đó không dễ dịch khi lập trình. Bạn phải chia nhỏ hơn nữa: lái xe về phía trước 1 mét, quay 180 độ và lái xe về phía trước 1 mét. Nhưng ngay cả điều đó cũng có thể không đủ chính xác và bạn cần mức độ chi tiết này để sẵn sàng lập trình: đặt tốc độ truyền động và quay vòng thành 40%, lái xe về phía trước 1 mét, đợi 3 giây, rẽ trái 180 độ, đợi 1 giây , và lái về phía trước 1 mét. Chúng ta càng chia nhỏ các hành vi phức tạp để biến chúng thành các hành vi sẵn sàng lập trình cho robot thì chúng ta càng chuẩn bị tốt hơn để hoàn thành một dự án.