Trung cấp 75-90 phút practiceMiễn phí

Robot biết nhìn là gì

Bài 2 trong khóa Robot Thế hệ 3 — Thị giác máy tính và nhận diện vật thể

Robot biết nhìn là gì

G3 01 - Robot biết nhìn là gì

Linh kiện cần chuẩn bị

  • 1 ESP32-S3 DevKit.
  • 1 LED trạng thái và điện trở 220 ohm nếu không dùng LED có sẵn.
  • 1 buzzer chủ động.
  • 3 thẻ hoặc vật thể màu rõ: đỏ, xanh lá, xanh dương.
  • 1 tờ giấy trắng và 1 tờ giấy tối màu để so sánh nền.
  • Máy tính có Arduino IDE hoặc Arduino CLI, cáp USB data, Serial Monitor.
  • Bảng quan sát gồm: vật thể, nền, ánh sáng, điều robot nên làm, ghi chú rủi ro.

Code bài này chỉ dùng ESP32-S3, LED, buzzer và Serial Monitor. Chưa dùng camera module, motor, WiFi hoặc cảm biến khoảng cách trong bài này.

Bài này giúp bạn làm được gì?

Robot “biết nhìn” không có nghĩa là robot hiểu mọi thứ như con người. Với robot học tập, biết nhìn nghĩa là robot lấy dữ liệu ảnh, rút ra đặc điểm đơn giản và biến đặc điểm đó thành quyết định có kiểm chứng.

Kết quả cuối bài:

  • Học viên mô tả được pipeline thị giác máy tính cơ bản.
  • Robot in log các bước: CAPTURE, FEATURE, DECIDE, ACT.
  • LED/buzzer phản hồi theo quyết định mẫu.
  • Nhóm lập bảng rủi ro: ánh sáng, nền, góc camera, vật thể bị che.

Pipeline nhìn của robot

Camera hoặc dữ liệu ảnh
  -> frame
  -> pixel
  -> feature: màu, vùng sáng, cạnh, kích thước
  -> decision: thấy/không thấy, trái/phải, gần/xa
  -> action: log, LED, buzzer, motor

Bài này chưa chụp ảnh thật. Ta học trước cách suy nghĩ theo pipeline để khi gắn camera ở G3 03, học viên biết debug từng tầng thay vì đoán mò.

Thực hành từng bước

Bước 1: Quan sát bằng mắt như robot

Đặt thẻ đỏ trên giấy trắng, rồi trên giấy tối. Trả lời:

  • Màu đỏ có dễ tách khỏi nền không?
  • Nếu đèn phòng yếu hơn, vật thể còn rõ không?
  • Nếu vật thể nằm sát mép ảnh, robot có nên tin kết quả không?

Bước 2: Upload sketch pipeline

Upload code của bài, mở Serial Monitor 115200 baud. Gửi một trong các lệnh:

RED
GREEN
BLUE
UNKNOWN

Robot sẽ in pipeline và phản hồi bằng LED/buzzer.

Bước 3: Ghi bảng quyết định

LệnhFeature giả địnhQuyết địnhLED/buzzerNhận xét
REDmàu mục tiêutarget_foundLED sáng
GREENmàu khácwatchLED nháy
BLUEmàu khácwatchLED nháy
UNKNOWNkhông chắcno_targetbuzzer ngắn

Code mẫu hoàn chỉnh

Code đầy đủ nằm trong file:

code/g3-01-robot-biet-nhin-la-gi/g3-01-robot-biet-nhin-la-gi.ino

Đoạn quyết định mẫu:

if (command == "RED") {
  decision = "target_found";
} else if (command == "UNKNOWN") {
  decision = "no_target";
} else {
  decision = "watch";
}

Kiểm thử robot thật

TestThao tácKết quả mong đợiPass?
1Gửi REDSerial có đủ 4 bước pipeline, LED sáng
2Gửi GREENDecision là watch, LED nháy
3Gửi UNKNOWNBuzzer kêu ngắn, robot không kết luận bừa
4Trình bày thẻ màu thậtNhóm nêu được rủi ro nền/ánh sáng

Lỗi thường gặp và cách sửa

LỗiNguyên nhânCách sửa
Không thấy SerialSai baudChọn 115200 baud
LED không sángSai chân hoặc thiếu điện trởKiểm GPIO2 và GND
Học viên nói robot “hiểu ảnh” quá rộngChưa tách feature/decisionQuay lại pipeline
Nhầm bài này đã dùng cameraChưa, đây là bài định hướngCamera bắt đầu ở G3 03

Checklist hoàn thành

  • Giải thích được frame, pixel, feature, decision, action.
  • Chạy được sketch pipeline.
  • Có bảng rủi ro ánh sáng/nền/góc nhìn.
  • Không kết luận vượt quá dữ liệu.
  • Sẵn sàng học pixel ở G3 02.

Bài tiếp theo

G3 02 sẽ đi vào pixel: ảnh số được tạo bởi các điểm ảnh, mỗi điểm có độ sáng hoặc màu. Đây là nền để nhận diện màu ở các bài sau.


Điều hướng bài học

Bài tiếp theo: G3 02 - Camera, ảnh số và pixel