Giải thích chi tiết các lệnh tiếng Anh bằng tiếng Việt & Cách kết hợp khối lệnh
VEX VR là gì?
VEX VR (Virtual Robotics) là một nền tảng lập trình robot mô phỏng trên trình duyệt. Ngôn ngữ chính bạn sử dụng là VEXcode - một dạng ngôn ngữ lập trình kéo thả (Block-based) tương tự như Scratch. Tuy giao diện dùng tiếng Anh, nhưng logic của nó rất trực quan và mô phỏng chính xác các hoạt động vật lý của robot ngoài đời thực.
1. Nhóm lệnh DRIVETRAIN (Di chuyển - Màu Xanh Dương)
Đây là các lệnh cơ bản nhất để điều khiển bánh xe của robot.
drive forward / reverse: Bật động cơ cho robot đi thẳng tới trước (forward) hoặc lùi về sau (reverse) mãi mãi cho đến khi có lệnh dừng. Thường dùng chung với cảm biến (VD: đi thẳng cho đến khi đụng tường).
drive for 200 mm: Cho robot di chuyển một quãng đường chính xác (mặc định là 200 mm). Lệnh này sẽ tự động dừng robot sau khi đi đủ khoảng cách. Có thể đổi mm (mili-mét) thành inches. (1 ô vuông trên sân VR thường là 200mm).
turn for 90 degrees: Lệnh xoay robot tại chỗ một góc chính xác (ví dụ 90 độ là xoay vuông góc). Có thể chọn right (phải) hoặc left (trái).
set drive velocity to 50 %: Thiết lập tốc độ di chuyển của robot (từ 1% đến 100%). Mặc định robot chạy ở 50%. Nếu muốn chạy nhanh thì đặt lệnh này ở đầu chương trình và chỉnh lên 100%. Tương tự có set turn velocity để chỉnh tốc độ xoay.
2. Nhóm lệnh MAGNET (Nam châm - Màu Xám Đen)
Dùng trong các bản đồ có đĩa màu (như Disk Mover) để robot hút và mang đĩa đi nơi khác.
energize magnet to boost / drop: Bật điện cho nam châm dưới gầm robot.
- Chọn boost (hoặc pick up): Hút đĩa lên.
- Chọn drop: Ngắt điện để thả đĩa xuống.
3. Nhóm lệnh LOOKS (Hiển thị & Vẽ - Màu Tím)
Điều khiển cây bút (Pen) gắn trên robot để vẽ quỹ đạo di chuyển lên sàn (Dùng nhiều ở map Art Canvas).
move pen down / up:
- down (Hạ bút): Bắt đầu vẽ đường nét theo quỹ đạo di chuyển của robot.
- up (Nhấc bút): Ngừng vẽ.
set pen color to black: Chọn màu mực cho bút (Đen, Đỏ, Xanh lá, Xanh dương...).
4. Nhóm lệnh CONTROL (Điều khiển/Vòng lặp - Màu Cam)
Đây là xương sống của mọi chương trình, giúp tạo vòng lặp và ra quyết định (logic nhánh).
wait 1 seconds: Tạm dừng chương trình trong khoảng thời gian xác định (1 giây) trước khi chuyển sang lệnh tiếp theo.
repeat 10 (Vòng lặp hữu hạn): Các lệnh kẹp ở giữa "cái mồm" (chữ C) của lệnh này sẽ được thực hiện lặp đi lặp lại số lần được chỉ định.
forever (Vòng lặp vô hạn): Tương tự nhưng lặp lại mãi mãi không bao giờ dừng. Thường bọc ngoài cùng để liên tục kiểm tra cảm biến.
wait until [ Điều kiện ]: Lệnh cực kỳ quan trọng! Nó sẽ "treo" toàn bộ chương trình, không làm gì cả, cho đến khi điều kiện bên trong cái lỗ hình lục giác trở thành Đúng (True). VD: Kết hợp drive forward rồi đến lệnh wait until [bumper pressed] rồi đến stop driving -> Xe chạy tới đụng tường thì dừng.
if [ Điều kiện ] then (Lệnh Rẽ nhánh):
NẾU điều kiện trong ô lục giác là ĐÚNG (VD: Thấy màu đỏ), THÌ thực thi các lệnh được kẹp bên trong. Nếu SAI, bỏ qua và nhảy xuống lệnh tiếp theo bên dưới. *Lưu ý: Lệnh "if" kiểm tra cực kỳ nhanh (mất 1 phần ngàn giây), nếu muốn nó kiểm tra liên tục, bạn phải đặt nó vào bên trong lệnh forever.
5. Nhóm lệnh SENSING (Cảm biến - Màu Xanh Lơ)
Giúp robot "nhìn", "chạm" và cảm nhận môi trường xung quanh (mê cung, chướng ngại vật).
Bumper pressed? (Cảm biến va chạm): Khối hình lục giác này trả về Đúng/Sai. Khai báo "Đúng" khi công tắc trên râu (Bumper) bên trái/phải đè vào tường. Dùng nhét vào lệnh wait until hoặc if.
Distance found an object? (Cảm biến khoảng cách): Trả về Đúng nếu mắt la-ze phía trước phát hiện có một vật cản (như tường bức tường, đĩa màu).
Distance in mm (Khối báo giá trị): Khối oval (bo tròn hai đầu) không trả về Đúng/Sai mà trả về 1 con số. Lệnh này đo xem vật cản đang cách robot bao nhiêu mm. Bạn sẽ nhét khối oval này vào các ô tròn chứa số (như lệnh Operators).
Front / Down Eye detects red? (Cảm biến màu):
Robot có 2 mắt camera (Front = phía trước, Down = chĩa xuống sàn). Mắt này phân biệt được các màu Đỏ (red), Xanh lá (green), Xanh dương (blue)... Lệnh trả về Đúng khi phát hiện đúng màu.
HƯỚNG DẪN KẾT HỢP CÁC BLOCK (TƯ DUY LẬP TRÌNH)
Trong VEX VR (cũng như Scratch), các khối lệnh kết nối với nhau như trò chơi xếp hình LEGO. Có 3 nguyên tắc lắp ghép quan trọng nhất mà bạn cần ghi nhớ:
1. Ghép nối tuần tự (Trên xuống Dưới)
Mọi chương trình bắt đầu từ block When Started. Mã sẽ chạy lệnh trên cùng, đợi xong rồi mới chạy lệnh bên dưới. Nếu có lồi lõm (notch), chúng sẽ hít vào nhau.
Robot sẽ đi thẳng 200mm, dừng lại, sau đó xoay phải 90 độ.
2. Lồng ghép Hình học
Các lệnh Oval (Tròn) chứa số liệu chỉ nhét được vào các ô input màu trắng. Các lệnh Lục giác (Cảm biến) chỉ nhét được vào các ô lục giác của lệnh điều kiện.
Khối cảm biến được nhét vừa khít vào điều kiện của lệnh Wait Until.
🎯 PHẦN THỰC HÀNH: 10 NHIỆM VỤ TỪ DỄ ĐẾN KHÓ
Ba mẹ hãy cho bé mở VEX VR lên, chọn đúng bản đồ và thử kéo thả các khối lệnh giống hệt hình ảnh bên dưới nhé!
Bài 1: Lên đường bình an (Đi và Về)
🗺️ Sân chơi: Grid Map
Mục tiêu: Làm quen với việc xe chạy tới và lùi lại vị trí xuất phát.
👉 Giải thích: Lệnh đầu tiên cho xe chạy tới trước 400mm (bằng 2 ô vuông trên sân). Chạy xong tự động dừng lại. Lệnh thứ hai cho xe chạy lùi (reverse) đúng khoảng cách đó để về chỗ cũ.
Bài 2: Họa sĩ nhí (Vẽ hình vuông)
🎨 Sân chơi: Art Canvas
Mục tiêu: Dùng bút mực và vòng lặp để vẽ thành một hình vuông thay vì kéo 8 lệnh dài ngoằng.
👉 Giải thích:
- `move pen down`: Hạ bút chạm sàn để bắt đầu nhả mực.
- `repeat 4`: Bọc 2 lệnh đi thẳng và rẽ phải. Nghĩa là thay vì viết tay: Đi thẳng - rẽ phải - đi thẳng - rẽ phải - đi thẳng - rẽ phải - đi thẳng - rẽ phải, bé chỉ cần bắt máy lặp lại hành động đó 4 lần là ra hình vuông!
Bài 3: Dừng xe đèn đỏ (Cảm biến màu)
🚦 Sân chơi: Dynamic Wall Maze / Bất kỳ
Mục tiêu: Xe đang chạy nhanh, nhưng nếu thấy vạch màu đỏ thì phải tự động phanh gấp.
👉 Giải thích:
- Bật công tắc cho xe chạy thẳng MÃI MÃI (`drive forward`).
- `wait until`: Chương trình bị "đóng băng", cứ mặc kệ cho xe chạy. Mắt camera chĩa xuống đất (`Down Eye`) liên tục soi. Khi nào thấy màu đỏ (`red`), lệnh wait until mới mở khóa.
- Khi mở khóa, đọc ngay tới lệnh `stop driving` -> Xe tắt máy, phanh gấp!
Bài 4: Lấy hàng mang về (Dùng Nam châm)
🧲 Sân chơi: Disk Mover
Mục tiêu: Đi thẳng tới đĩa màu, dùng nam châm hút nó, lùi về nhà và thả xuống.
👉 Giải thích:
- Đi tới 800mm đè lên cái đĩa.
- boost: Bật điện nam châm, nghe tiếng "Ting!", đĩa bị hút chặt vào gầm xe.
- Đi lùi 800mm về lại tổ.
- drop: Ngắt điện, đĩa rơi ra. Nhiệm vụ hoàn thành!
Bài 5: Xe ủi đất (Robot dọn rác)
🏰 Sân chơi: Castle Crasher
Mục tiêu: Đi thẳng dọn chướng ngại vật. Cứ đụng tường là lùi lại chuyển hướng khác.
👉 Giải thích:
- Chỉnh tốc độ lên 100% để xe ủi khỏe nhất.
- Vòng lặp `forever`: Xe cứ đi thẳng hất văng mọi khối gạch. Nó chỉ bị chặn lại khi đụng bức tường bao quanh (Bumper bị đè). Khi đó nó sẽ rẽ một góc chéo 135 độ và lại tiếp tục đi thẳng càn quét vòng mới.
Bài 6: Vẽ cầu thang (Kết hợp xoay trái phải)
🎨 Sân chơi: Art Canvas
Mục tiêu: Luyện tập phương hướng Trái/Phải để vẽ thành những bậc thang đi lên.
👉 Giải thích:
- Muốn vẽ 1 bậc thang, xe phải đi thẳng (tạo mặt bậc) -> rẽ phải -> đi thẳng lên (tạo độ cao bậc) -> rẽ trái (để quay đầu hướng tới trước làm bậc tiếp theo).
- Dùng lệnh `repeat 5` bọc 4 hành động này lại, bé sẽ có một chiếc cầu thang 5 bậc hoàn hảo.
Bài 7: Robot nhát gan (Cảm biến khoảng cách)
📏 Sân chơi: Bất kỳ
Mục tiêu: Xe đi thẳng, nhưng hễ thấy vật cản từ xa (dưới 200mm) là tự động bỏ chạy (lùi lại).
👉 Giải thích:
- Ở bài này, bé phải lấy lệnh `Phép toán nhỏ hơn (<)` (Màu Xanh lá - Operators) ráp vào ô lục giác của `wait until`.
- Sau đó lấy khối oval báo khoảng cách `Distance in mm` (Màu Xanh lơ) nhét vào ô tròn đầu tiên. Gõ số 200 vào ô thứ hai.
- Câu lệnh sẽ là: "Chờ cho đến khi Khoảng cách đo được nhỏ hơn 200 thì... Dừng lại và đi lùi!".
Bài 8: Lựa chọn đường đi (Lệnh IF / ELSE)
🔀 Sân chơi: Dynamic Wall Maze
Mục tiêu: Đi thẳng liên tục, NẾU cách tường dưới 300mm THÌ quẹo phải, CÒN KHÔNG THÌ vẫn tiếp tục đi thẳng.
👉 Giải thích:
Đây là logic tự động (Auto-pilot) rất lợi hại!
- `if / else` nghĩa là "Nếu đúng thì làm cái trên, Sai thì làm cái dưới".
- Bộ não xe tính toán siêu nhanh bên trong `forever`: Nó kiểm tra mắt la-ze. Nếu đằng trước có tường (cách dưới 300mm), nó quẹo phải. Nếu đằng trước trống trơn (lớn hơn 300mm), nó rớt xuống nhánh `else` và cứ thế `drive forward` (đi thẳng).
Bài 9: Radar quét mục tiêu (Xoay tìm vật)
🎯 Sân chơi: Castle Crasher
Mục tiêu: Đứng tại chỗ xoay vòng tròn như Radar. Khi nào mắt la-ze quét trúng vật thể thì dừng xoay và lao thẳng tới ủi.
👉 Giải thích:
- `turn right`: Lệnh này khác `turn right 90 degrees` ở chỗ là nó không dừng. Xe sẽ tự xoay tròn liên tục mãi mãi.
- `wait until [Distance found an object?]`: Mắt la-ze lia xung quanh. Vừa quét trúng 1 vật cản, vòng chờ mở khóa!
- `stop driving`: Bấm phanh cho xe ngừng xoay (Lúc này đầu xe đang chỉa thẳng vào vật thể).
- `drive forward`: Bật số tiến lao thẳng vào mục tiêu!
Bài 10: Điệp vụ đổi màu (Theo dấu vạch màu)
🌈 Sân chơi: Disk Maze
Mục tiêu: Kết hợp vòng lặp và lệnh IF: Xe chạy thẳng liên tục, hễ mắt nhìn xuống đất thấy màu Xanh Dương thì quẹo trái, thấy Đỏ thì quẹo phải.
👉 Giải thích:
Bài toán phân loại màu sắc cực đỉnh!
- Bật động cơ cho xe chạy thẳng MÃI MÃI.
- `forever` ép xe phải kiểm tra màu dưới gầm xe liên tục hàng trăm lần mỗi giây.
- Nếu đè lên ô Xanh Dương: Cảm biến Xanh kêu "Tít!", xe quẹo Trái.
- Nếu đè lên ô Đỏ: Cảm biến Đỏ kêu "Tít!", xe quẹo Phải.
- Nếu đi trên sàn màu xám bình thường, cả 2 lệnh `IF` đều bị bỏ qua, xe vẫn tiếp tục chạy thẳng theo lệnh mở máy ở trên cùng.