Bối cảnh và vấn đề nghiên cứu

Trong xu hướng phát triển của lĩnh vực trí tuệ nhân tạo và tự động hóa, bài toán tương tác giữa con người và máy móc (Human-Computer Interaction - HCI) ngày càng đòi hỏi các phương thức điều khiển tự nhiên, linh hoạt thay thế cho các thiết bị ngoại vi truyền thống như bàn phím, chuột hay cần điều khiển cơ học. Nhận dạng cử chỉ bàn tay thông qua thị giác máy tính là một trong những hướng tiếp cận quan trọng, cho phép truyền tải mệnh lệnh điều khiển trực tiếp tới các hệ thống cơ điện tử và robot di động.

Tuy nhiên, việc nhận dạng bàn tay người trong thực tế đối mặt với nhiều thách thức kỹ thuật. Cấu trúc giải phẫu của bàn tay người phức tạp với nhiều khớp nối và số bậc tự do lớn. Sự biến đổi về hình dáng, màu sắc da dưới các điều kiện chiếu sáng khác nhau, cùng với sự tương đồng màu sắc giữa bàn tay, khuôn mặt và nền ảnh phức tạp tạo ra độ nhiễu đáng kể trong quá trình tách biên và phân đoạn ảnh. Đề tài khóa luận tốt nghiệp "Ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động" của tác giả Nguyễn Văn Đạt (chuyên ngành Tự động hóa, Khoa Công nghệ Điện – Điện tử, Trường Đại học Công nghiệp Thực phẩm TP. Hồ Chí Minh, năm 2020) được thực hiện nhằm giải quyết bài toán điều khiển chuyển động của robot thông qua thị giác máy tính nhúng.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Xây dựng chương trình nhận dạng cử chỉ bàn tay tương ứng với các trạng thái điều khiển robot di động:
    • Trạng thái không có bàn tay (No hand): Robot dừng lại, không di chuyển.
    • Cử chỉ 1 ngón tay (Up): Robot di chuyển tiến về phía trước.
    • Cử chỉ 2 ngón tay (Down): Robot di chuyển lùi về phía sau.
    • Cử chỉ 3 ngón tay (Left): Robot chuyển hướng rẽ sang trái.
    • Cử chỉ 4 ngón tay (Right): Robot chuyển hướng rẽ sang phải.
  2. Cài đặt hệ điều hành Raspbian và thư viện thị giác máy tính OpenCV cho máy tính nhúng Raspberry Pi 3.
  3. Nghiên cứu cơ sở lý thuyết lập trình Python và ứng dụng thư viện OpenCV trong xử lý ảnh thời gian thực.
  4. Nghiên cứu các phương pháp và thuật toán xử lý ảnh số cơ bản và nâng cao.
  5. Thiết kế và hiện thực hóa giải thuật nhận dạng cử chỉ bàn tay đạt độ ổn định, khả năng đáp ứng tốt và giảm thiểu ảnh hưởng của nhiễu môi trường.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Cử chỉ bàn tay người thu nhận qua camera; các giải thuật tiền xử lý, phân đoạn, trích xuất đặc trưng hình học trong xử lý ảnh; hệ thống phần cứng điều khiển nhúng và cơ cấu chấp hành của robot di động 2 bánh.
  • Phạm vi không gian: Mô hình thực nghiệm được triển khai trong không gian phòng thí nghiệm với khu vực nhận diện bàn tay (vùng quan tâm ROI) được định vị trước khung camera.
  • Phạm vi công nghệ: Hệ thống xử lý trung tâm sử dụng máy tính nhúng Raspberry Pi 3 Model B kết hợp Camera Module 5MP, truyền thông không dây với kit vi điều khiển WeMos D1 (ESP8266) để điều khiển động cơ DC qua mạch cầu H L298.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng hệ thống dựa trên nền tảng lý thuyết xử lý ảnh số, lý thuyết truyền thông mạng và kỹ thuật điều khiển truyền động điện:

Khung lý thuyết xử lý ảnh số

  • Mô hình ảnh và không gian màu: Ảnh số được định nghĩa là tập hợp các điểm ảnh (Pixel) phân bố trên tọa độ hai chiều $(x, y)$ với mức xám hoặc giá trị màu nhất định. Tác giả phân tích hai không gian màu chính:
    • Không gian RGB: Biểu diễn màu qua 3 kênh Đỏ (Red), Lục (Green), Lam (Blue) với 24-bit độ sâu màu ($2^{24} \approx 16{,}7$ triệu màu).
    • Không gian HSV: Mô tả màu sắc dựa trên 3 thành phần tự nhiên gồm Sắc độ (Hue - $H$), Độ bão hòa (Saturation - $S$) và Độ sáng (Value/Brightness - $V$).
    • Chuyển đổi mức xám (Grayscale): Chuyển ảnh RGB 24-bit về ảnh mức xám 8-bit (256 cấp độ sáng từ 0 đến 255) theo phương trình tuyến tính: $$X = 0{,}2125 \times R + 0{,}7145 \times G + 0{,}0721 \times B$$
  • Nâng cao chất lượng và tiền xử lý ảnh: Áp dụng các bộ lọc không gian để khử nhiễu tần số cao và làm mịn ảnh, tiêu biểu là lọc tuyến tính (lọc trung bình, thông thấp) và lọc phi tuyến (lọc trung vị, lọc làm mờ Gaussian Blur).
  • Phân đoạn ảnh và trích xuất đặc trưng:
    • Kỹ thuật phân vùng ảnh bằng phương pháp tách ngưỡng nhị phân (Thresholding), đưa ảnh về hai mức giá trị 0 và 1.
    • Phân tích biên và đường bao (Boundary/Contour).
    • Biến đổi khoảng cách (Distance Transform) nhằm xác định tâm hình học và bán kính vùng bàn tay.
    • Thuật toán tìm bao lồi (Convex Hull) và khuyết tật lồi (Convexity Defects) để phát hiện các đỉnh ngón tay và khe hở giữa các ngón tay.

Khảo cứu các phương pháp nhận dạng bàn tay liên quan

Văn bản tổng hợp 4 hướng tiếp cận nhận dạng cử chỉ bàn tay trong các nghiên cứu tiền nhiệm:

  1. Nhận dạng theo màu sắc và hình dáng: Sử dụng đặc trưng màu da để định vị, kết hợp thuật toán tự tổ chức thích nghi cấu trúc (SASOM - Structure Adaptive Self-Organizing Map) của Wu et al. nhằm theo vết đối tượng trong điều kiện màu sắc không ổn định.
  2. Nhận dạng dựa vào ngưỡng trên mỗi kênh màu: Trích xuất đặc trưng đầu ngón tay hoặc biên bàn tay để phục hồi hình dạng cử chỉ.
  3. Phương pháp dòng quang học (Optical Flow): Phân tích vector chuyển động của bàn tay kết hợp bộ lọc thời gian sử dụng thuật toán Viterbi để theo dõi quỹ đạo.
  4. Phương pháp trừ nền (Background Subtraction): Tách bàn tay khỏi phông nền tĩnh sử dụng mô hình Codebook trong OpenCV, sau đó dùng thuật toán Convex Hull 2 và Convexity Defects để đếm số ngón tay.

Phương pháp nghiên cứu thực nghiệm và thiết kế kỹ thuật

Tác giả áp dụng phương pháp thiết kế kỹ thuật kết hợp thực nghiệm từng phần:

  • Xây dựng sơ đồ khối phần cứng, tính toán nguồn năng lượng và phối ghép giao tiếp giữa các module.
  • Lập trình thuật toán thị giác máy tính trên ngôn ngữ Python (phiên bản OpenCV 2) thực thi trên hệ điều hành Raspbian của Raspberry Pi.
  • Thiết lập giao thức truyền thông không dây UDP/IP (User Datagram Protocol) giữa máy tính nhúng và vi điều khiển WeMos D1 nhằm tối ưu hóa thời gian thực và giảm thiểu độ trễ truyền gói tin.
  • Thử nghiệm điều khiển mạch công suất cầu H L298 và 2 động cơ DC giảm tốc GA25 trên mô hình khung gầm robot 2 bánh xe.

Thiết kế và triển khai hệ thống

Kiến trúc phần cứng

Hệ thống phần cứng của mô hình robot di động bao gồm 6 khối chức năng chính được phối ghép đồng bộ:

Khối chức năng Linh kiện / Thiết bị sử dụng Thông số kỹ thuật chính Vai trò trong hệ thống
Xử lý trung tâm Kit máy tính nhúng Raspberry Pi 3 Model B CPU Broadcom BCM2837 1.2 GHz 64-bit Quad-Core ARM Cortex-A53, 1GB RAM, 40 chân GPIO, 4 cổng USB 2.0, cổng CSI, Ethernet Thu nhận ảnh từ camera, xử lý giải thuật OpenCV, phân tích cử chỉ tay và gửi lệnh điều khiển qua UDP
Thu nhận ảnh Raspberry Pi Camera Module V1 Cảm biến OV5647 5MP, độ phân giải ảnh $2592 \times 1944$, hỗ trợ video 1080p30 / 720p60 / VGA 640x480p60, cáp dẹt 15-pin nối cổng CSI Thu nhận luồng video liên tục từ môi trường thực tế để chuyển về dữ liệu số cho Raspberry Pi
Điều khiển trung gian Board UNO WiFi (WeMos D1) Vi điều khiển ESP8266MOD Tensilica Xtensa LX106 32-bit RISC 80 MHz, Wi-Fi 802.11 b/g/n 2.4 GHz, 16 chân GPIO, 1 ADC 10-bit Phát mạng Wi-Fi nội bộ, nhận gói tin UDP từ Raspberry Pi, giải mã lệnh và xuất tín hiệu điều khiển động cơ
Công suất động cơ Module điều khiển động cơ L298 IC tích hợp 2 mạch cầu H, chuẩn logic TTL, điện áp tải tối đa 46V, dòng tải liên tục 4A, tích hợp bảo vệ quá nhiệt Đóng ngắt và đảo chiều dòng điện cấp cho động cơ DC theo tín hiệu điều khiển logic từ ESP8266
Chấp hành & Chuyển động 2 Động cơ giảm tốc GA25 kết hợp 2 bánh xe cao su Điện áp hoạt động 6–18V DC, tốc độ sau hộp số 280 rpm, dòng không tải 50mA; bánh xe đường kính 65mm, rộng 27mm, khớp lục giác 12mm Tạo lực kéo vi sai giúp robot thực hiện các chuyển động tiến, lùi, quay trái, quay phải và dừng
Khối nguồn Bộ nguồn cấp Adapter 5V/2.5A cho mạch số và nguồn 12V cho động cơ Dòng tiêu thụ Raspberry Pi 500–1000mA, Camera 250mA, HDMI 50mA, phím/chuột 100–1000mA (tổng ~2300mA); nguồn động cơ 12V Cung cấp năng lượng ổn định, cách ly nguồn điều khiển nhạy cảm với nguồn công suất động cơ

Nguyên lý điều khiển động cơ qua mạch cầu H (L298)

Mạch cầu H gồm 4 phần tử khóa bán dẫn (Transistor) điều khiển chiều dòng điện chạy qua cuộn dây động cơ DC. Trạng thái hoạt động của từng nhánh động cơ phụ thuộc vào tổ hợp logic mức tín hiệu tại 2 cực điều khiển A và B (mức HIGH tương ứng 12V, mức LOW tương ứng 0V):

Mức cực A Mức cực B Trạng thái Transistor phía A Trạng thái Transistor phía B Dòng điện qua động cơ Chiều quay động cơ
LOW (0V) HIGH (12V) $Q_1$ mở, $Q_3$ đóng $Q_2$ đóng, $Q_4$ mở Nguồn 12V $\rightarrow Q_1 \rightarrow$ Động cơ $\rightarrow Q_4 \rightarrow$ GND Quay theo chiều thuận (Tiến)
HIGH (12V) LOW (0V) $Q_1$ đóng, $Q_3$ mở $Q_2$ mở, $Q_4$ đóng Nguồn 12V $\rightarrow Q_2 \rightarrow$ Động cơ $\rightarrow Q_3 \rightarrow$ GND Quay theo chiều ngược (Lùi)
LOW (0V) LOW (0V) $Q_1, Q_2$ mở $Q_3, Q_4$ đóng Mạch hở, không có dòng về GND Dừng tự do
HIGH (12V) HIGH (12V) $Q_1, Q_2$ đóng $Q_3, Q_4$ mở Đẳng thế 12V ở hai cực, không có dòng Dừng hãm

Quy trình giải thuật nhận dạng cử chỉ bàn tay

Chương trình thị giác máy tính chạy trên Python/OpenCV thực hiện tuần tự các bước xử lý dữ liệu ảnh:

  1. Thu nhận khung hình: Camera ghi nhận ảnh đầu vào từ môi trường.
  2. Cắt vùng quan tâm (ROI): Cắt một góc khung hình chữ nhật xác định bởi các tọa độ (top, bottom, left, right) chứa vùng cử chỉ bàn tay và hiển thị khung viền màu trên màn hình.
  3. Chuyển đổi ảnh mức xám: Biến đổi khung hình ROI từ không gian màu BGR sang Grayscale 8-bit.
  4. Khử nhiễu: Áp dụng bộ lọc GaussianBlur để làm mịn ảnh và loại bỏ các nhiễu tần số cao.
  5. Phân đoạn nhị phân: Áp dụng kỹ thuật lấy ngưỡng (Thresholding) để tách bạch đối tượng bàn tay (màu trắng) khỏi nền (màu đen).
  6. Đóng khung và tìm đường viền: Đóng khung chữ nhật vùng bàn tay và sử dụng hàm cv2.findContours để trích xuất đường viền liên tục của bàn tay.
  7. Xác định tâm và đặc trưng hình học:
    • Sử dụng biến đổi khoảng cách (Distance Transform) để xác định tọa độ tâm $C$ của lòng bàn tay và vẽ đường tròn nội tiếp.
    • Tìm các đoạn cắt nhau bằng hàm cv2.line / cv2.circle.
    • Xác định bao lồi (cv2.convexHull) bao quanh bàn tay và tìm các điểm khuyết tật lồi (cv2.convexityDefects).
  8. Đếm số ngón tay và ra quyết định: Dựa trên các điều kiện hình học về độ sâu khuyết tật lồi và góc tạo bởi các khe ngón tay để tính toán chính xác số lượng ngón tay đang mở, sau đó đóng gói dữ liệu chuỗi ký tự tương ứng gửi qua socket UDP.

Nội dung chính theo từng chương

Chương 1: Tổng quan về đề tài

Chương 1 trình bày tính cấp thiết của việc nghiên cứu bài toán tương tác người - máy bằng cử chỉ bàn tay trong bối cảnh robot tự hành ngày càng phổ biến. Tác giả xác định rõ mục tiêu chế tạo mô hình robot di động điều khiển bằng 5 cử chỉ cơ bản, đặt trong phạm vi kiến thức chuyên ngành tự động hóa và kỹ thuật máy tính. Chương này cũng tiến hành tổng quan sâu rộng 4 phương pháp nhận dạng bàn tay phổ biến trong y văn (nhận dạng theo màu da/hình dáng SASOM, ngưỡng kênh màu, Optical Flow kết hợp thuật toán Viterbi, và trừ nền Codebook kết hợp Convex Hull). Cuối cùng, tác giả nêu rõ ý nghĩa khoa học trong việc làm chủ kỹ thuật thị giác máy tính nhúng và ý nghĩa thực tiễn khi ứng dụng vào phương tiện tự hành.

Chương 2: Cơ sở lý thuyết

Chương 2 cung cấp cơ sở toán học và lý thuyết xử lý ảnh số, bao gồm định nghĩa điểm ảnh, độ phân giải, các thang mức xám (16, 32, 64, 128, 256 mức tương ứng 8-bit), không gian màu HSV, RGB và công thức chuyển đổi Grayscale. Tác giả phân tích chi tiết các kỹ thuật tăng cường ảnh (lọc tuyến tính, lọc phi tuyến trung vị), kỹ thuật phân vùng và khái niệm biên ảnh. Đồng thời, chương 2 thuyết minh toàn bộ phần cứng và công cụ phần mềm: cấu hình Raspberry Pi 3 Model B, màn hình LCD 3.5 inch, Camera Module 5MP OV5647, ngôn ngữ Python, cấu trúc thư viện OpenCV (phiên bản 2), vi điều khiển ESP8266 trên board WeMos D1, cấu trúc sketch trong Arduino IDE (setup và loop), giao thức truyền thông UDP/IP, thông số IC cầu H L298 kèm bảng trạng thái hoạt động của 4 Transistor, thông số động cơ giảm tốc GA25 (12V, 280 rpm) và bánh xe cao su 65mm.

Chương 3: Cơ sở thực hiện

Chương 3 chi tiết hóa giải pháp thiết kế hệ thống phần cứng và phần mềm:

  • Xây dựng sơ đồ khối và sơ đồ kết nối thực tế giữa Raspberry Pi 3, Camera CSI, WeMos D1, L298 và khối động cơ.
  • Tính toán phụ tải nguồn điện: dòng tiêu thụ hệ thống Raspberry Pi cùng ngoại vi đạt khoảng 2300mA, từ đó lựa chọn nguồn Adapter 5V/2.5A kết hợp nguồn động cơ 12V độc lập; tính toán dung lượng thẻ nhớ MicroSD 16GB (tốc độ đọc 48MB/s) để chứa hệ điều hành Raspbian (chiếm 4GB dung lượng nền).
  • Trình bày quy trình truy cập và lập trình từ xa trên Raspberry Pi thông qua giao thức SSH (sử dụng PuTTY) và giao diện đồ họa Remote Desktop Connection qua mạng Wi-Fi hoặc cáp Ethernet.
  • Xây dựng lưu đồ giải thuật chi tiết cho hai khối chính: giải thuật nhận dạng cử chỉ bàn tay trên Python (từ bước lấy khung hình ROI, lọc Gaussian, tách ngưỡng, tìm đường viền, bao lồi, khuyết tật lồi đến đếm ngón tay) và giải thuật điều khiển nhận gói UDP, xuất chân GPIO trên Arduino ESP8266.
  • Cung cấp bản vẽ kết cấu cơ khí của khung xe robot di động.

Chương 4: Kết quả thực nghiệm

Chương 4 công bố kết quả lắp ráp hoàn thiện mô hình thực tế của robot di động và kiểm chứng khả năng nhận dạng 5 cử chỉ bàn tay tương ứng với 5 trạng thái vận hành:

  • Cử chỉ không có bàn tay (No hand): Robot nhận diện trạng thái stop và giữ nguyên vị trí.
  • Cử chỉ giơ 1 ngón tay: Hệ thống nhận diện trạng thái up, robot chuyển động tiến thẳng.
  • Cử chỉ giơ 2 ngón tay: Hệ thống nhận diện trạng thái down, robot chuyển động lùi thẳng.
  • Cử chỉ giơ 3 ngón tay: Hệ thống nhận diện trạng thái left, robot chuyển hướng rẽ trái.
  • Cử chỉ giơ 4 ngón tay: Hệ thống nhận diện trạng thái right, robot chuyển hướng rẽ phải.

Chương 5: Kết luận và định hướng đề tài

Chương 5 đúc kết các kết quả đạt được về mặt chế tạo phần cứng, hoàn thiện giải thuật xử lý ảnh trên máy tính nhúng và điều khiển chuyển động thời gian thực qua sóng Wi-Fi. Đồng thời, tác giả đề xuất các hướng phát triển tiếp theo của đề tài. Phần phụ lục của chương cung cấp toàn văn mã nguồn chương trình Python xử lý ảnh (cv2), mã nguồn Arduino C++ nạp cho WeMos D1 điều khiển chân L298 và hướng dẫn cài đặt môi trường Arduino IDE.


Kết quả và đóng góp

Kết quả thực nghiệm

Khóa luận đã hoàn thành việc chế tạo mô hình robot di động 2 bánh và thực nghiệm thành công hệ thống nhận dạng cử chỉ tay kết hợp điều khiển không dây. Bảng tổng hợp mối quan hệ giữa cử chỉ bàn tay, trạng thái nhận diện và hoạt động cơ cấu chấp hành được ghi nhận như sau:

Số lượng ngón tay xòe Cử chỉ nhận diện Chuỗi lệnh UDP truyền đi Trạng thái điều khiển động cơ L298 Hành vi chuyển động của Robot
0 ngón (No hand) Dừng (Stop) stop Ngắt toàn bộ transistor hoặc đẳng thế ở hai cực điều khiển Robot đứng yên tại chỗ
1 ngón Tiến (Up) up Cực A mức LOW, cực B mức HIGH ở cả hai động cơ Robot di chuyển tiến thẳng về phía trước
2 ngón Lùi (Down) down Cực A mức HIGH, cực B mức LOW ở cả hai động cơ Robot di chuyển lùi thẳng về phía sau
3 ngón Rẽ trái (Left) left Động cơ trái dừng/quay nghịch, động cơ phải quay thuận Robot chuyển hướng xoay sang trái
4 ngón Rẽ phải (Right) right Động cơ phải dừng/quay nghịch, động cơ trái quay thuận Robot chuyển hướng xoay sang phải

Đóng góp của đề tài

  • Đóng góp học thuật: Tổng hợp hệ thống lý thuyết về xử lý ảnh số và thị giác máy tính ứng dụng cho hệ thống nhúng; phân tích và cụ thể hóa thuật toán trích xuất bao lồi (Convex Hull) và khuyết tật lồi (Convexity Defects) để nhận dạng số lượng ngón tay người theo thời gian thực.
  • Đóng góp kỹ thuật - thực tiễn:
    • Tích hợp thành công cấu trúc điều khiển phân tán gồm máy tính nhúng Linux (Raspberry Pi 3) chuyên trách xử lý ảnh nặng và vi điều khiển Wi-Fi (WeMos D1 ESP8266) chuyên trách điều khiển phần cứng công suất.
    • Ứng dụng thành công giao thức UDP không trạng thái cho bài toán điều khiển thời gian thực, giúp giảm thiểu độ trễ đóng gói tín hiệu.
    • Xây dựng tài liệu kỹ thuật hoàn chỉnh gồm sơ đồ nguyên lý mạch, bản vẽ cơ khí và toàn bộ mã nguồn chương trình phục vụ đào tạo, nghiên cứu tiếp nối tại khoa.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

Dựa trên phạm vi và kết quả thực nghiệm trong văn bản, đề tài còn tồn tại một số điểm giới hạn:

  • Quá trình phân đoạn ảnh phụ thuộc vào việc đặt bàn tay trong vùng ROI định trước và sử dụng ngưỡng nhị phân cố định, do đó hệ thống có độ nhạy cảm cao với sự biến thiên của cường độ ánh sáng môi trường và phông nền phía sau.
  • Cấu hình phần cứng Raspberry Pi 3 có xung nhịp CPU và bộ nhớ RAM giới hạn, đòi hỏi giải thuật phải tối giản để đảm bảo tốc độ khung hình xử lý.
  • Tập cử chỉ điều khiển mới dừng lại ở 5 trạng thái cơ bản (từ 0 đến 4 ngón tay theo phương pháp đếm khuyết tật lồi), chưa hỗ trợ các cử chỉ động phức tạp hay nhận dạng hướng nghiêng bàn tay.

Hướng nghiên cứu tiếp

  • Nghiên cứu các giải thuật phân đoạn ảnh thích nghi theo điều kiện ánh sáng hoặc ứng dụng các mô hình học máy, mạng nơ-ron nhân tạo để nhận dạng bàn tay tự động trên toàn khung hình mà không cần giới hạn trong vùng ROI cố định.
  • Mở rộng tập lệnh điều khiển, tích hợp thêm thuật toán điều khiển vận tốc tự động (như bộ điều khiển PID) để robot di chuyển mượt mà hơn.
  • Lắp đặt thêm các cảm biến khoảng cách (siêu âm, laser) trên khung xe để kết hợp khả năng tự hành tránh vật cản trong quá trình nhận lệnh cử chỉ từ xa.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các nhóm đối tượng học thuật và kỹ thuật:

  • Sinh viên ngành Kỹ thuật Điện – Điện tử, Tự động hóa, Cơ điện tử: Tham khảo phương pháp phối ghép phần cứng giữa máy tính nhúng Linux (Raspberry Pi) và board vi điều khiển Wi-Fi (ESP8266), phương pháp tính toán tải nguồn cấp, cũng như nguyên lý điều khiển mạch cầu H L298 và động cơ DC giảm tốc GA25.
  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật máy tính, Trí tuệ nhân tạo: Tham khảo quy trình hiện thực hóa các giải thuật xử lý ảnh cơ bản (chuyển đổi thang xám, lọc Gaussian, tách ngưỡng, tìm đường viền, Convex Hull, Convexity Defects) bằng thư viện OpenCV trên môi trường Python nhúng.
  • Người nghiên cứu các đề tài tương tự: Có thể kế thừa trực tiếp cấu trúc truyền thông dữ liệu điều khiển qua socket UDP giữa Python và Arduino IDE, bản vẽ cơ khí khung xe và mã nguồn hoàn chỉnh đính kèm ở phần phụ lục.

Câu hỏi thường gặp

1. Hệ thống xử lý ảnh nhận dạng cử chỉ bàn tay bằng giải thuật nào trong OpenCV?
Hệ thống sử dụng luồng xử lý ảnh tuần tự gồm: trích xuất vùng quan tâm (ROI), chuyển đổi sang ảnh mức xám theo công thức $X = 0{,}2125 \times R + 0{,}7145 \times G + 0{,}0721 \times B$, làm mịn ảnh bằng bộ lọc GaussianBlur, tách ngưỡng nhị phân (Thresholding), tìm đường viền (cv2.findContours), xác định tâm bàn tay bằng biến đổi khoảng cách (Distance Transform), và sử dụng thuật toán tìm bao lồi (cv2.convexHull) kết hợp khuyết tật lồi (cv2.convexityDefects) để đếm số ngón tay xòe ra.

2. Giao thức truyền thông nào được sử dụng để kết nối giữa Raspberry Pi 3 và mạch điều khiển WeMos D1?
Hệ thống sử dụng giao thức UDP/IP (User Datagram Protocol) qua mạng Wi-Fi không dây được phát bởi board WeMos D1 (ESP8266). Giao thức UDP được lựa chọn do đặc tính truyền gói tin datagram ngắn, không duy trì kết nối phức tạp, mang lại tốc độ truyền nhận nhanh và đáp ứng yêu cầu khắt khe về thời gian thực khi điều khiển robot.

3. Khối xử lý trung tâm Raspberry Pi 3 và Camera sử dụng thông số kỹ thuật ra sao?
Hệ thống sử dụng máy tính nhúng Raspberry Pi 3 Model B (vi xử lý Broadcom BCM2837 1.2 GHz 64-bit Quad-Core ARM Cortex-A53, RAM 1GB, hệ điều hành Raspbian chạy trên thẻ nhớ MicroSD 16GB tốc độ đọc 48MB/s) kết hợp với Raspberry Pi Camera Module V1 5MP (cảm biến OV5647, kết nối qua cổng CSI 15 chân, hỗ trợ quay phim từ VGA 640x480p60 đến HD 1080p30).

4. Dòng điện tiêu thụ của hệ thống Raspberry Pi được tính toán như thế nào để chọn nguồn?
Tác giả tính toán tổng dòng tiêu thụ cực đại của hệ thống điều khiển trung tâm khoảng 2300mA, bao gồm: thân mạch Raspberry Pi (500–1000mA), Camera module (250mA), cổng HDMI gắn màn hình (50mA), cùng bàn phím và chuột USB (100–1000mA). Từ đó, hệ thống được trang bị bộ nguồn Adapter 5V – 2.5A riêng biệt cho khối xử lý và nguồn 12V cho khối động cơ.

5. Mạch cầu H L298 điều khiển động cơ quay thuận và quay ngược theo nguyên lý mức logic nào?
Mạch L298 điều khiển 2 cực của động cơ thông qua các mức tín hiệu logic: khi cực A ở mức LOW (0V) và cực B ở mức HIGH (12V), transistor $Q_1$ mở và $Q_4$ mở, động cơ quay theo chiều thuận; khi cực A ở mức HIGH (12V) và cực B ở mức LOW (0V), transistor $Q_2$ mở và $Q_3$ mở, động cơ quay theo chiều ngược; khi hai cực có cùng mức điện áp (cùng LOW hoặc cùng HIGH), dòng điện không chạy qua động cơ và động cơ dừng hoạt động.


Kết luận

Khóa luận tốt nghiệp của tác giả Nguyễn Văn Đạt đã hoàn thành trọn vẹn mục tiêu nghiên cứu và chế tạo mô hình robot di động điều khiển bằng cử chỉ bàn tay thông qua kỹ thuật xử lý ảnh. Bằng việc kết hợp hiệu quả giữa máy tính nhúng Raspberry Pi 3, thư viện OpenCV/Python và vi điều khiển WeMos D1 ESP8266 qua giao thức UDP, hệ thống đảm bảo nhận diện chính xác 5 trạng thái cử chỉ cơ bản để điều khiển linh hoạt hướng di chuyển của robot. Công trình là tài liệu tham khảo có giá trị cao về mặt thiết kế hệ thống nhúng tích hợp thị giác máy tính và cơ điện tử dành cho sinh viên ngành Tự động hóa và các ngành kỹ thuật liên quan.