→ Thùng: ↺ Đặt lại + Thêm lệnh ⏭ Bước ⏸ Tạm dừng ▶ Chạy ▶ Tiếp tục ♾️ Vòng lặp không dừng. Thêm điều kiện thoát vòng lặp! ⚠️ Không tìm được hướng đi tối ưu ⚡ Pin ⚡ Pin hết – thoát vòng lặp ⛔ Robot dừng nhưng nhiệm vụ chưa xong: cần phân loại hết rác đúng thùng và tới đích. ⛔ Robot dừng theo lệnh ⛔ Robot dừng theo lệnh nhưng chưa hoàn thành nhiệm vụ. ❌ Không có vật để nhặt tại đây ❌ Robot đang cầm vật rồi – không thể nhặt thêm ❌ Robot không cầm vật gì để thả ❓ Chương trình kết thúc mà không hoàn thành nhiệm vụ. 🎉 Hoàn thành xuất sắc! Robot đã thực hiện đúng nhiệm vụ. 🎯 Nhiệm vụ cấp 🏁 Đã tới đích – thoát vòng lặp 🏁 Robot đã tới đích! 🏆 Đã phân loại hết rác và hoàn thành nhiệm vụ! 🏆 Kết quả 🐍 Mã Python 🐍 Mẫu lệnh Python 🐍 Python 💡 Khái niệm học 💥 Robot va chạm và phải dừng. Kiểm tra lại đường đi! 📊 Trạng thái 📋 Chưa hoàn thành: robot phải phân loại hết rác đúng thùng rồi mới tới đích. 📋 Chương trình kết thúc nhưng robot chưa đến đích. 📋 Kết thúc chương trình 📋 Nhật ký hành động 📌 Bài học rút ra 📡 Cảm biến 📦 Đang cầm 🔄 Chưa tới đích – tiếp tục lặp 🗑️ Chưa phân loại 🗑️ Xóa hết 🤖 Robot Logic Lab 🤖 Robot sẵn sàng 🧩 Khối lệnh 🪫 Robot hết pin. Hãy tối ưu số bước di chuyển. 🛠️ Phân tích lỗi 1 sao: Hoàn thành! 2 sao: Tốt! 3 sao: Xuất sắc! Bạn có thể lặp lại chuỗi: nếu có tường → rẽ; không thì đi thẳng. Bắc ↑ Bộ lập trình Robot Bùn hao pin bùn lầy Bùn lầy bùn lầy làm hao thêm 10 pin Cảm biến + logic → robot hành động thông minh như AI nhận diện trong PY-03. Cảm biến + Phân loại Cảm biến giúp robot biết môi trường xung quanh. Logic lập trình chọn hành động đúng. Cần 2 lần Đi thẳng → Nhặt → 3 lần Đi thẳng → Thả → Dừng. Cần hoàn thành cấp trước khi mở cấp Cẩn thận với vòng lặp vô tận! Nếu robot không bao giờ tới đích, vòng lặp sẽ không dừng. Cấp Cấp độ Chai nhựa Chạy toàn bộ chương trình (R) Chạy từng bước (S) Chọn lệnh để thêm Chưa chạy Chương trình trống CÓ ✓ Có 4 loại rác: chai nhựa, giấy → tái chế; pin → nguy hại; thức ăn → hữu cơ. Có tờ giấy ở ô (2,3). Khi robot đứng trên ô đó, hãy dùng lệnh Nhặt vật. Dẫn robot đến đích dù có tường chắn giữa đường. Dùng if/else để robot tự né tường. Dầu trượt Di chuyển tối ưu Dùng "Đọc cảm biến" rồi dùng if/else để kiểm tra loại vật trước khi bỏ thùng. Dùng "nếu phía trước có tường" để kiểm tra trước khi đi. Dùng cảm biến và các lệnh phân loại để đưa chai/giấy vào tái chế, pin vào nguy hại, thức ăn vào hữu cơ. Dùng if phía trước có tường/vật cản để né đường bị chặn trước khi đi thẳng. Dùng vòng lặp cho các đoạn hành lang lặp lại, nhưng nhớ có điều kiện dừng. Dừng lại Đặt lại (Esc) Đi thẳng đích Đích Điều khiển cơ bản Điều khiển robot đến đích bằng chuỗi lệnh tuần tự. Nhặt tờ giấy trên đường đi. Điều kiện If / Else Đọc cảm biến Đọc môi trường & phân loại Đông → Đưa robot qua hành lang dài. Dùng vòng lặp thay vì viết 10 lệnh riêng. Đừng quên "Quay lại vòng lặp" ở cuối. elif robot.at_goal(): elif robot.front_sensor == "item": elif robot.front_sensor == "wall": else: Giấy Gợi ý đã dùng Hành lang dài 10 ô. Nếu viết 10 lần "Đi thẳng" sẽ rất dài! Hãy thêm lệnh cho robot trước. Hoàn thành cấp để mở cấp Hoàn thành nhiệm vụ tổng hợp: né tường/thùng chắn, tránh bùn/dầu, phân loại rác đúng thùng và tới đích. Hướng Hữu cơ Hữu cơ 🌿 if robot.at_goal(): if robot.carried_item == "pin": if robot.carried_item == "thuc_an": if robot.carried_item in ["chai_nhua", "giay"]: if robot.front_sensor == "item": if robot.front_sensor == "wall": If/else giúp robot đưa ra quyết định khác nhau tùy tình huống thay đổi. If/else giúp robot phản ứng đúng khi môi trường thay đổi. Kết thúc if Kết thúc khối if/else Kết thúc khối kiểm tra phân loại Hết đoạn lặp: quay lại kiểm tra điều kiện lặp Kết thúc phân loại Quay lại vòng lặp Khi gặp tường: quay phải, đi 1 ô, quay trái, đi qua, quay trái, đi lên, quay phải. KHÔNG ✗ Không có Kiểm tra vật có phải chai nhựa hoặc giấy không? Kiểm tra vật có phải thức ăn thừa (hữu cơ) không? Kiểm tra vật robot đang cầm hoặc đứng cạnh có phải pin không? Kiểm tra: ô phía trước có phải tường/vật cản không? Kiểm tra: ô phía trước có vật cần nhặt không? Kiểm tra: robot đang đứng tại ô đích không? Lặp có điều kiện Lặp đến khi tới đích Lặp khi còn pin Lặp lại Lặp lại khối lệnh cho đến khi robot tới đích Lặp lại khối lệnh chừng nào pin còn > 0 Lặp lại khối lệnh N lần lần Lập trình robot không chỉ là đi tới đích: thuật toán tốt phải biết quan sát, rẽ nhánh, lặp hợp lý và né vùng nguy hiểm. Lên lệnh Mã Python Màn cuối cần kết hợp tuần tự lệnh, if/else, vòng lặp, cảm biến và phân loại để robot vừa an toàn vừa tiết kiệm pin. Màn này có tường, thùng chắn, bùn lầy và vũng dầu. Bùn làm hao pin; dầu làm robot trượt thêm 1 ô. Mẫu else if / elif Mẫu lệnh Python Nam ↓ Nếu đã tới đích Nếu không thì Nếu không thì nếu có tường Nếu không thì nếu có vật Nếu không thì nếu tới đích Nếu phía trước có tường Nếu phía trước có vật Nếu vật là chai / giấy Nếu vật là pin Nếu vật là thức ăn ngoài sa bàn Nguy hại Nguy hại ⚠️ Nhánh thực thi khi điều kiện if phía trên sai Nhặt vật Nhặt vật tại ô robot đang đứng Nhặt vật, kiểm tra loại, điều hướng robot đến đúng thùng rồi Thả vật. Nhấn "+ Thêm lệnh" để bắt đầu Nhấn Run để bắt đầu mô phỏng… Ô trống PY-04 · Python & Basic AI Quét cảm biến xung quanh: trước, trái, phải Rẽ nhánh logic Rẽ phải Rẽ trái Robot bắt đầu hướng Đông (→). Hãy dùng lệnh Đi thẳng để tiến về phía đích. Robot chỉ làm đúng những gì bạn viết và theo đúng thứ tự bạn xếp lệnh. Robot chưa nhặt vật nào. Hãy dùng lệnh Nhặt vật trước. Robot chưa nhặt vật vì không có vật tại vị trí này. Hãy di chuyển đến đúng vị trí. Robot dừng, kết thúc chương trình Robot đang cầm vật rồi. Hãy dùng lệnh Thả vật trước. Robot đang lặp quá nhiều lần. Hãy thêm điều kiện dừng để thoát vòng lặp. Robot đâm vào vật cản vì bạn ra lệnh đi thẳng khi phía trước không đi được. Hãy dùng if/else hoặc cảm biến để kiểm tra trước. Robot hết pin vì đường đi quá dài hoặc đi qua vùng làm hao pin. Hãy tối ưu số bước và né vật cản mềm. Robot không tự hiểu ý bạn. Robot chỉ làm đúng theo thứ tự lệnh được viết. Robot phân loại 4 loại rác vào đúng thùng. Dùng cảm biến nhận diện, if/else để quyết định. Robot tiến 1 ô về phía đang nhìn Robot tự chọn hướng tốt nhất để tiến đến đích (nếu có đường) Robot xoay 90° sang phải Robot xoay 90° sang trái robot.choose_shortest_safe_move() robot.drop() robot.move_forward() robot.pick() robot.stop() robot.turn_left() robot.turn_right() Sa bàn robot Sa bàn Robot – Cấp Sau khi phân loại xong, còn phải tới ô đích (6,8). Đường ngắn nhất chưa chắc tiết kiệm pin nếu đi qua bùn/dầu. sensor = robot.read_sensor() Số bước Sửa được · đồng bộ khối lệnh Tái chế Tái chế ♻️ Tạm dừng (Space) Tây ← Thả vật Thả vật đang cầm vào ô / thùng hiện tại tham số Thêm nhánh else rồi kiểm tra điều kiện tiếp theo Thời gian Thuật toán tối ưu Thùng chắn thùng rác Thùng tái chế ở góc trên trái (1,1). Thùng hữu cơ ở góc trên phải (1,7). Thùng nguy hại ở (6,1). Thử dùng "Lặp đến khi tới đích" rồi bên trong đặt "Đi thẳng". Thử thách tối ưu Thức ăn thừa Tiếp tục (Space) Tốc độ Tốc độ robot Tới đích xong, hãy dùng lệnh Thả vật rồi Dừng lại. trống Tuần tự lệnh Tường Tường chặn thẳng đường. Robot cần né qua dưới hoặc trên tường. Va chạm vật vật cản vật cần nhặt Vật cần nhặt Vị trí Vòng lặp Vòng lặp giúp robot làm việc lặp lại, nhưng phải có điều kiện dừng. Vòng lặp giúp robot thực hiện nhiều lần mà không cần viết lại lệnh. Nhưng phải có điều kiện dừng! vũng dầu Vũng dầu vũng dầu làm robot trượt thêm 1 ô Vũng dầu làm robot trượt. Cần né đường dầu hoặc kiểm tra hướng đi trước khi tiến. while not robot.at_goal(): while robot.battery > 0: Xem gợi ý Xóa Xóa toàn bộ lệnh? Xuống