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

Camera, ảnh số và pixel

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

Camera, ảnh số và pixel

G3 02 - Camera, ảnh số và pixel

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ẻ mẫu pixel 8x8 in trên giấy: nền tối, vùng sáng ở giữa, vùng sáng lệch trái/phải.
  • Máy tính có Arduino IDE hoặc Arduino CLI, cáp USB data, Serial Monitor.
  • Bảng đo gồm: mẫu ảnh, mean brightness, bright pixel count, vị trí vùng sáng, quyết định.

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

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

Ảnh số là một bảng pixel. Mỗi pixel có giá trị sáng hoặc màu. Nếu học viên hiểu pixel trước, việc nhận diện màu/vật thể sau này sẽ bớt bí ẩn.

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

  • Học viên đọc được ma trận ảnh 8x8.
  • Code tính độ sáng trung bình và số pixel sáng.
  • Code tìm vùng sáng lệch trái, giữa hoặc phải.
  • LED/buzzer phản hồi khi vùng sáng đủ rõ.

Khái niệm chính

TừCách hiểu
PixelMột điểm ảnh
FrameMột ảnh tại một thời điểm
BrightnessĐộ sáng của pixel, ví dụ 0-255
ThresholdNgưỡng để quyết định pixel sáng/tối
CentroidTâm tương đối của vùng sáng

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

Bước 1: Đọc ma trận bằng mắt

Nhìn thẻ 8x8. Ô sáng là pixel có brightness cao. Hỏi:

  • Vùng sáng nằm bên trái, giữa hay phải?
  • Nếu tăng ngưỡng, số pixel sáng tăng hay giảm?
  • Nếu nền quá sáng, threshold có còn tốt không?

Bước 2: Upload code

Mở Serial Monitor và gửi:

CENTER
LEFT
RIGHT
DARK

Robot sẽ in bản đồ pixel dạng ký tự, mean brightness, bright count và centroid.

Bước 3: Ghi bảng

MẫuMeanBright countCentroidQuyết định
CENTER
LEFT
RIGHT
DARK

Code mẫu hoàn chỉnh

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

code/g3-02-camera-anh-so-va-pixel/g3-02-camera-anh-so-va-pixel.ino

Đoạn tính centroid:

if (image[y][x] >= THRESHOLD) {
  brightCount++;
  xTotal += x;
}

Kiểm thử robot thật

TestThao tácKết quả mong đợiPass?
1Gửi CENTERCentroid gần giữa
2Gửi LEFTCentroid nhỏ hơn giữa
3Gửi RIGHTCentroid lớn hơn giữa
4Gửi DARKBright count thấp, buzzer kêu ngắn

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

LỗiNguyên nhânCách sửa
Centroid saiNhầm trục x/yIn bản đồ pixel để nhìn
Bright count quá caoThreshold quá thấpTăng THRESHOLD
Không thấy khác biệt LEFT/RIGHTMẫu ảnh quá giống nhauSửa ma trận mẫu
Nghĩ pixel là vật lý cameraPixel là dữ liệu ảnhCamera thật sẽ học ở G3 03

Checklist hoàn thành

  • Giải thích được pixel và frame.
  • Tính được mean brightness.
  • Tính được bright count và centroid.
  • Chạy được 4 lệnh mẫu.
  • Sẵn sàng kết nối camera thật ở G3 03.

Bài tiếp theo

G3 03 sẽ dùng ESP32-CAM và OV2640 để chụp frame đầu tiên. Khi đó các khái niệm pixel/frame trong bài này sẽ xuất hiện từ camera thật.


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

Bài tiếp theo: G3 03 - Kết nối camera và xem ảnh đầu tiên

Bài trước: G3 01 - Robot biết nhìn là gì