Session 345 minutes

Buổi 3: Cấu trúc Rẽ nhánh (If - Then - Else) & Cảm ứng Va chạm

Learning objective: Giúp robot đưa ra quyết định thông minh: Nếu chạm vào tường thì lùi lại, nếu chạm vào năng lượng thì tăng điểm.

Theory & practice

🧠 Bài 3: Tư duy Logic — Nếu, Thì và Không thì

🎯 Mục tiêu bài học

Sau bài học này, bạn có thể:

  • Hiểu điều kiện đúng và sai trong lập trình.
  • Phân biệt khối Nếu ... thì và Nếu ... thì ... không thì.
  • Dùng cảm biến để nhân vật hoặc robot đưa ra quyết định.
  • Kết hợp điều kiện với vòng lặp để tạo chương trình thông minh.

1. Robot thông minh biết ra quyết định

Một robot thông minh không chỉ di chuyển theo một hướng. Nó cần quan sát môi trường và lựa chọn hành động phù hợp.

Ví dụ:

  • Nếu phía trước có vật cản, thì robot dừng lại.
  • Nếu trời tối, thì bật đèn.
  • Nếu nhấn phím mũi tên phải, thì nhân vật di chuyển sang phải.
  • Nếu không có vật cản, robot tiếp tục tiến về phía trước.

Cách suy nghĩ này được gọi là tư duy điều kiện.

Nếu điều kiện đúng → thực hiện hành động.

2. Điều kiện đúng và sai

Một điều kiện chỉ có hai kết quả:

Kết quảÝ nghĩa
ĐúngThực hiện các lệnh bên trong
SaiBỏ qua hoặc thực hiện nhánh Không thì

Một số điều kiện thường gặp trong PictoBlox:

text
Đang chạm vào [Tường]?
Phím [mũi tên phải] được nhấn?
Khoảng cách nhỏ hơn 15 cm?
Điểm_số lớn hơn 10?
Màu đỏ đang chạm màu xanh?

Các khối điều kiện thường có dạng hình lục giác và được đặt vào vị trí kiểm tra của khối Nếu.

3. Khối Nếu ... thì

Khối này chỉ thực hiện hành động khi điều kiện đúng.

text
Nếu <Đang chạm vào [Tường]?> thì
    Phát âm thanh [Cảnh báo]
    Đi lùi 10 bước

Nếu nhân vật chưa chạm vào tường, các lệnh bên trong sẽ không được thực hiện.

Mục Trọng Tâm

Ví dụ: Điều khiển bằng bàn phím

text
Khi bấm vào cờ xanh
Liên tục
    Nếu <Phím [mũi tên phải] được nhấn?> thì
        Thay đổi x một lượng 5

Vòng lặp Liên tục giúp chương trình kiểm tra bàn phím nhiều lần trong mỗi giây.

4. Khối Nếu ... thì ... không thì

Khối này giúp chương trình lựa chọn một trong hai hành động.

text
Nếu <Đang chạm vào [Tường]?> thì
    Phát âm thanh [Cảnh báo]
    Đi lùi 10 bước
    Xoay phải 90 độ
Không thì
    Di chuyển 5 bước

Chương trình hoạt động như sau:

  1. 1Kiểm tra nhân vật có chạm vào tường không.
  2. 2Nếu có, nhân vật cảnh báo, lùi lại và đổi hướng.
  3. 3Nếu không, nhân vật tiếp tục tiến về phía trước.
Điều kiệnHành động
Chạm tườngCảnh báo, lùi và quay
Không chạm tườngTiếp tục tiến

5. Kết hợp điều kiện với cảm biến

Robot có thể dùng cảm biến siêu âm để đo khoảng cách đến vật cản.

text
Khi bấm vào cờ xanh
Liên tục
    Đặt [Khoảng_cách] thành [Giá trị cảm biến siêu âm]

    Nếu <Khoảng_cách nhỏ hơn 15> thì
        Dừng động cơ
        Phát âm thanh [Cảnh báo]
        Lùi trong 1 giây
        Quay phải 90 độ
    Không thì
        Chạy thẳng với tốc độ 5

Trong chương trình này:

  • Khoảng_cách < 15 là điều kiện.
  • Khi vật cản ở gần hơn 15 cm, robot tránh vật cản.
  • Khi đường phía trước an toàn, robot tiếp tục di chuyển.
⚠️ Khi thử với robot thật, hãy sử dụng tốc độ thấp và đặt robot trên mặt phẳng rộng.

6. Kết hợp nhiều điều kiện

Đôi khi robot cần kiểm tra nhiều thông tin cùng lúc.

Mục Trọng Tâm

Điều kiện Và

Cả hai điều kiện đều phải đúng.

text
Nếu <Khoảng_cách nhỏ hơn 15 và Tốc_độ lớn hơn 0> thì
    Dừng động cơ
Mục Trọng Tâm

Điều kiện Hoặc

Chỉ cần một trong hai điều kiện đúng.

text
Nếu <Chạm cạnh hoặc chạm màu đỏ> thì
    Quay lại
Mục Trọng Tâm

Điều kiện Không

Đảo ngược kết quả của điều kiện.

text
Nếu <Không chạm vào tường> thì
    Tiếp tục di chuyển

7. Thực hành: Nhân vật tìm đường

Mục Trọng Tâm

Yêu cầu

Lập trình cho nhân vật:

  1. 1Liên tục di chuyển về phía trước.
  2. 2Kiểm tra xem có chạm vào tường không.
  3. 3Nếu chạm tường, lùi lại và đổi hướng.
  4. 4Nếu không chạm tường, tiếp tục tiến.
Mục Trọng Tâm

Gợi ý chương trình

text
Khi bấm vào cờ xanh
Đặt [Tốc_độ] thành [5]

Liên tục
    Nếu <Đang chạm vào [Tường]?> thì
        Phát âm thanh [Cảnh báo]
        Di chuyển -10 bước
        Xoay phải 90 độ
        Chờ 0.2 giây
    Không thì
        Di chuyển [Tốc_độ] bước

Hãy thử thay đổi góc quay từ 90 độ thành 45 độ. Quan sát đường đi của nhân vật có gì khác.

8. Lỗi thường gặp

Mục Trọng Tâm

Quên đặt điều kiện trong vòng lặp

Nếu chỉ kiểm tra một lần, robot sẽ không tiếp tục quan sát môi trường.

Nên dùng:

text
Liên tục
    Nếu <Điều kiện> thì
        Thực hiện hành động
Mục Trọng Tâm

Nhầm dấu so sánh

text
Khoảng_cách nhỏ hơn 15

nghĩa là vật cản đang ở gần.

text
Khoảng_cách lớn hơn 15

nghĩa là phía trước còn khoảng trống.

Mục Trọng Tâm

Robot liên tục quay tại chỗ

Sau khi gặp vật cản, robot cần lùi ra xa trước khi quay:

text
Dừng động cơ
Lùi lại
Quay phải

🧩 Thử thách

Hãy tạo một robot có ba mức phản ứng:

text
Nếu <Khoảng_cách nhỏ hơn 10> thì
    Dừng và lùi lại
Không thì
    Nếu <Khoảng_cách nhỏ hơn 25> thì
        Giảm tốc độ
    Không thì
        Di chuyển bình thường

Robot sẽ:

  • Dừng khi vật cản quá gần.
  • Giảm tốc khi bắt đầu đến gần vật cản.
  • Chạy bình thường khi đường phía trước an toàn.

✅ Ghi nhớ

  • Điều kiện chỉ có kết quả Đúng hoặc Sai.
  • Nếu ... thì thực hiện hành động khi điều kiện đúng.
  • Nếu ... thì ... không thì giúp chọn giữa hai hành động.
  • Vòng lặp giúp robot kiểm tra điều kiện liên tục.
  • Cảm biến cung cấp thông tin để robot đưa ra quyết định.
  • Nên cho robot dừng hoặc lùi trước khi đổi hướng.
Mục Trọng Tâm

Câu hỏi nhanh

  1. 1Điều kiện trong lập trình có những kết quả nào?
  2. 2Nếu ... thì khác gì với Nếu ... thì ... không thì?
  3. 3Vì sao cần đặt lệnh kiểm tra cảm biến trong vòng lặp?
  4. 4Robot nên làm gì khi khoảng cách đến vật cản nhỏ hơn mức an toàn?

Sẵn sàng kiểm tra kiến thức?

Chuyển sang phòng thi riêng để làm bài, xem kết quả và giải thích.

Bài Đánh giá Năng lực Phần 1: Scratch Logic & Khối lệnh Căn bản →14 questions · 15 minutes