Robot thoát mê cung trong Scratch: cảm biến màu, lệnh điều kiện và thuật toán bám tường

Dự án Scratch robot thoát mê cung cho học sinh lớp 4–6: chấm cảm biến màu, vòng lặp đến khi, phép không, thuật toán bám tường phải, mô phỏng đường đi và trường hợp đi vòng mãi.

Robot hút bụi, xe tự lái hay robot trong kho hàng đều phải tự tìm đường. Chúng "nhìn" bằng cảm biến rồi quyết định bằng các câu lệnh điều kiện. Dự án này cho học sinh lớp 4–6 làm một robot thoát mê cung trong Scratch: robot dùng một chấm cảm biến màu để biết phía trước có tường hay không, và đi theo quy tắc bám tường phải. Qua dự án, trẻ luyện vòng lặp "lặp lại đến khi", phép "không", khối cảm biến màu và cách nghĩ ra một thuật toán.

1. Ý tưởng: cảm biến màu thay cho mắt robot

Robot thật có cảm biến khoảng cách hoặc cảm biến dò vạch. Trong Scratch, có thể giả lập cảm biến bằng màu sắc:

  • tường của mê cung tô màu đen, ô đích tô màu xanh lá;
  • robot có một chấm nhỏ màu đỏ ở phía trước;
  • khối "màu đỏ chạm màu đen?" trả lời đúng hoặc sai: đúng nghĩa là ô phía trước là tường.

Tên khối trong bài dịch theo nghĩa tiếng Việt; chữ trên giao diện Scratch có thể khác đôi chút giữa các phiên bản.

2. Chuẩn bị sân khấu và nhân vật

Mê cung 9 nhân 7 ô với tường màu đen, ô đích màu xanh lá ở góc trên bên phải, robot ở góc dưới bên trái có chấm cảm biến đỏ phía trước; ô ghi chú: mỗi ô rộng 40 bước, chấm đỏ cách tâm robot khoảng 3/4 ô, xuất phát x bằng -120, y bằng -80, hướng lên
Hình minh họa: tường đen, đích xanh lá, chấm đỏ ở mũi robot.
  1. Phông nền: chọn sân khấu, mở thẻ Phông nền, dùng công cụ hình chữ nhật tô kín màu đen để vẽ tường. Mỗi ô của mê cung rộng 40 bước (sân khấu Scratch rộng 480, cao 360 bước). Mê cung trong hình có 9 x 7 ô. Tô ô đích màu xanh lá.
  2. Nhân vật robot: vẽ một hình nhỏ hơn ô (khoảng 30 bước) để robot không chạm tường khi đứng giữa ô. Thêm một chấm tròn nhỏ màu đỏ cách tâm robot khoảng 30 bước, ở bên phải hình robot. Scratch coi hình vẽ trong trình vẽ là đang nhìn về hướng 90 độ (sang phải), nên khi robot quay về hướng 0 độ (lên trên), chấm đỏ sẽ nằm phía trước.
  3. Đặt tâm trang phục đúng giữa thân robot, để robot quay tại chỗ.

Chấm đỏ cách tâm 30 bước, còn mép tường của ô bên cạnh chỉ cách tâm 20 bước. Vì vậy khi ô phía trước là tường, chấm đỏ nằm hẳn trong vùng màu đen; khi ô phía trước trống, chấm đỏ nằm trên nền trắng.

3. Chương trình bám tường phải

Chương trình vẽ bằng khối lệnh: khi bấm lá cờ xanh, đi tới x -120 y -80, hướng về 0 độ, lặp lại đến khi chạm màu xanh lá gồm: xoay phải 90 độ, lặp lại đến khi không màu đỏ chạm màu đen thì xoay trái 90 độ, di chuyển 40 bước, đợi 0.3 giây; sau vòng lặp nói Thoát rồi trong 2 giây
Hình minh họa: khối lệnh vẽ theo kiểu riêng.

Quy tắc bám tường phải rất dễ nói thành lời: "Mỗi khi tới một ô mới, thử rẽ phải trước. Không được thì đi thẳng. Không được nữa thì rẽ trái. Đường cụt thì quay đầu." Chương trình viết quy tắc đó bằng một mẹo gọn:

  • "xoay phải 90 độ": luôn thử hướng bên phải trước.
  • "lặp lại đến khi < không < màu đỏ chạm màu đen? > >: xoay trái 90 độ": nếu phía trước là tường thì xoay trái, thử tiếp. Lần xoay trái thứ nhất đưa robot về hướng thẳng, lần thứ hai về bên trái, lần thứ ba về phía sau. Robot ngừng xoay khi phía trước trống.
  • "di chuyển 40 bước": đi đúng một ô. "đợi 0.3 giây" để mắt người kịp theo dõi.
  • Vòng lặp ngoài cùng dừng khi robot chạm màu xanh lá, tức đã tới đích.

4. Robot đi như thế nào?

Mê cung với đường đi nét đứt màu xanh của robot, các số ghi bước thứ mấy robot tới mỗi ô; robot vào ngõ cụt ở hàng dưới rồi quay ra, đi lên cột bên trái, qua giữa và tới ô xanh lá sau 30 bước
Hình mô phỏng: tính bằng đúng chương trình ở mục 3.

Với mê cung trong hình, robot đi 30 ô thì tới đích. Ngay bước đầu, robot rẽ phải vào một ngõ cụt, xoay trái ba lần rồi quay đầu đi ra. Thoạt nhìn có vẻ "dại", nhưng đó chính là cách robot không bao giờ bỏ sót đường: tay phải của nó luôn sờ vào tường.

Cho trẻ dùng bút chì tô theo đường đi của robot trên một bản in mê cung, rồi so với lúc chạy chương trình.

5. Khi nào cách bám tường không thoát được?

Hai mê cung chạy cùng chương trình: bên trái đích nối với tường ngoài nên robot thoát được; bên phải ô đích nằm giữa một đảo tường không nối với tường ngoài, đường đi màu đỏ của robot vòng quanh mê cung mãi mà không vào được
Hình mô phỏng: cùng một chương trình trên hai mê cung.

Bám tường chỉ chắc chắn tới đích khi đích nằm sát phần tường nối liền với chỗ xuất phát. Ở mê cung bên phải, tường bao quanh đích là một "hòn đảo" tách rời. Lối vào đảo nằm bên trái đường đi, mà robot bám tường phải thì không bao giờ rẽ trái khi còn đường khác, nên cứ đi vòng ngoài mãi.

Đây là bài học quý: một thuật toán đúng ở trường hợp này có thể sai ở trường hợp khác. Lập trình viên luôn phải thử nhiều trường hợp.

6. Thử thách mở rộng

  • Bám tường trái: đổi "xoay phải" thành "xoay trái" và ngược lại. Với mê cung ở mục 2, đường nào ngắn hơn?
  • Đếm bước: tạo biến "số bước", tăng 1 sau mỗi lần di chuyển. Quá 200 bước thì robot nói "Cần cách khác!" và dừng.
  • Bẫy màu vàng: vẽ vài ô màu vàng. Nếu robot chạm màu vàng thì quay về chỗ xuất phát.
  • Tự vẽ mê cung: mỗi bạn vẽ một mê cung cho bạn khác thử. Ai vẽ được mê cung làm robot đi vòng mãi?

7. Gợi ý cho phụ huynh và giáo viên

  • Chơi không máy trước: kẻ mê cung bằng băng dính trên sàn. Một bạn bịt mắt làm robot, tay phải luôn chạm "tường" (bạn khác cầm thước làm tường), một bạn đọc lệnh. Trẻ sẽ tự phát hiện ra quy tắc bám tường.
  • Kiến thức: vòng lặp có điều kiện dừng, phép "không", cảm biến và quyết định, kiểm thử với nhiều trường hợp.
  • Độ tuổi: lớp 4–6, đã làm quen với Scratch. Học sinh nhỏ hơn có thể dùng mê cung có sẵn, chỉ ghép chương trình.
  • Thời lượng: 2 buổi 45 phút: buổi 1 vẽ sân khấu, nhân vật và chạy chương trình; buổi 2 phân tích đường đi và làm thử thách.

8. Xem thêm


Tin tức liên quan

Động cơ flycam không chổi than, ESC và cánh quạt: KV là gì, lực đẩy, DShot và cách chọn
Động cơ flycam không chổi than, ESC và cánh quạt: KV là gì, lực đẩy, DShot và cách chọn

Động cơ không chổi than của flycam: cấu tạo, KV là gì, ESC tạo dòng ba pha bằng MOSFET, tín hiệu PWM, OneShot, DShot, ký hiệu cánh quạt và cách chọn động cơ, cánh theo khối lượng.

Kiểm tra lỗi truyền dữ liệu: bit chẵn lẻ, checksum và CRC-16 của Modbus
Kiểm tra lỗi truyền dữ liệu: bit chẵn lẻ, checksum và CRC-16 của Modbus

So sánh bốn cách phát hiện lỗi truyền dữ liệu: bit chẵn lẻ, tổng kiểm tra, XOR và CRC. Giải thích từng bước thuật toán CRC-16 của Modbus và chương trình ESP32 cho thấy mã nào phát hiện được lỗi nào.

Gia công xốp chống sốc cho đồ chơi mô hình RC, tay điều khiển và bộ sạc
Gia công xốp chống sốc cho đồ chơi mô hình RC, tay điều khiển và bộ sạc

Gia công xốp chống sốc cho đồ chơi mô hình đắt tiền: mẫu vali đựng tay điều khiển xe RC, bộ sạc và túi pin với năm lớp xốp cắt theo ba độ sâu, kèm lưu ý về pin và cách đặt làm.

CAN bus (phần 2): bộ lọc nhận, tốc độ bit và xử lý lỗi bus-off trên ESP32
CAN bus (phần 2): bộ lọc nhận, tốc độ bit và xử lý lỗi bus-off trên ESP32

Phần 2 về CAN bus với ESP32: đặt bộ lọc nhận theo mã lọc và mặt nạ, chọn tốc độ bit theo chiều dài dây, hiểu ba trạng thái lỗi của nút và viết chương trình theo dõi bộ đếm lỗi, tự hồi phục sau bus-off.

Sửa lỗi và nâng cấp máy CNC, máy laser tự chế: mã lỗi GRBL, mất bước, nhiễu, laser yếu
Sửa lỗi và nâng cấp máy CNC, máy laser tự chế: mã lỗi GRBL, mất bước, nhiễu, laser yếu

Cách chẩn đoán lỗi máy CNC, máy laser tự chế theo lưu đồ; mã ALARM, error của GRBL; bảng lỗi chuyển động, điện, laser, phay; tìm cặp dây động cơ bước; thứ tự nâng cấp và bảo dưỡng.

Tự lắp máy khắc laser diode mini: khung nhôm, dây đai, tiêu cự và cài GRBL
Tự lắp máy khắc laser diode mini: khung nhôm, dây đai, tiêu cự và cài GRBL

Các bước tự lắp máy khắc laser diode khung hở vùng khắc 400 × 400 mm: tính thanh nhôm, vật tư, lắp khung và hai trục, luồn đai GT2, đi dây, tìm tiêu cự, cài GRBL, chạy thử.

Chọn cỡ vali theo thiết bị: đo kích thước lọt lòng, độ sâu nắp và đáy
Chọn cỡ vali theo thiết bị: đo kích thước lọt lòng, độ sâu nắp và đáy

Hướng dẫn đo thiết bị, tính phần xốp và xếp nhiều món để chọn đúng cỡ vali; kèm bảng tra kích thước lọt lòng, độ sâu nắp và đáy của các dòng vali PYWORLD và ba ví dụ chọn cỡ.

Độ không đảm bảo đo theo GUM: sáu bước tính, loại A, loại B và ví dụ ngân sách hiệu chuẩn áp kế
Độ không đảm bảo đo theo GUM: sáu bước tính, loại A, loại B và ví dụ ngân sách hiệu chuẩn áp kế

Cách tính độ không đảm bảo đo theo GUM: sáu bước, đánh giá loại A và loại B, phân bố chuẩn, chữ nhật, tam giác, ví dụ ngân sách hiệu chuẩn áp kế, cách làm tròn và lỗi hay gặp.


Bình luận
Đã thêm vào giỏ hàng