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

Trong bối cảnh cuộc Cách mạng Công nghiệp lần thứ tư, các công nghệ điều khiển tự động và hệ thống thông minh ngày càng được ứng dụng sâu rộng vào sản xuất công nghiệp nhằm tối ưu hóa việc sử dụng năng lượng, nguyên vật liệu và nhân lực. Trong ngành sản xuất Dược phẩm, một trong những tiêu chuẩn khắt khe hàng đầu là duy trì môi trường vô trùng tuyệt đối, đòi hỏi phải giảm thiểu sự hiện diện và can thiệp trực tiếp của con người trong các công đoạn của dây chuyền.

Ở khâu hoàn thiện sản phẩm sau khi ép vỉ, quy trình đóng gói thường phát sinh các sự cố kỹ thuật dẫn đến việc vỉ thuốc bị thiếu viên hoặc không đạt chuẩn quy cách. Việc sử dụng nhân công thủ công để kiểm tra từng vỉ thuốc vừa tốn kém thời gian, chi phí, vừa tiềm ẩn nguy cơ mất an toàn vệ sinh trong khu vực vô trùng. Do đó, việc ứng dụng công nghệ xử lý ảnh số trên nền tảng hệ thống nhúng để tự động kiểm tra, đếm số lượng viên thuốc và loại bỏ các vỉ thuốc lỗi là một giải pháp kỹ thuật cần thiết và có tính thực tiễn cao.

Mục tiêu tổng quát của đề tài là xây dựng một hệ thống nhúng tự động đếm chính xác số lượng viên thuốc có trong vỉ thuốc và thực hiện phân loại, gạt bỏ vỉ thuốc lỗi ra khỏi băng chuyền bằng cách sử dụng bo mạch Raspberry Pi 3 kết hợp vi điều khiển Arduino và thuật toán thị giác máy tính.

Các mục tiêu và nhiệm vụ nghiên cứu cụ thể được xác định bao gồm:

  1. Thiết kế và thi công mô hình băng chuyền mini vận chuyển vỉ thuốc.
  2. Thiết kế buồng sáng tích hợp đèn chiếu sáng nhân tạo nhằm ổn định chất lượng hình ảnh thu nhận từ camera.
  3. Thiết kế giao thức truyền thông dữ liệu nối tiếp giữa máy tính nhúng Raspberry Pi và vi điều khiển Arduino Uno R3.
  4. Thiết kế và lắp đặt cơ cấu cần gạt sử dụng động cơ servo để tự động loại bỏ các vỉ thuốc không đủ số lượng.

Nội dung nghiên cứu tập trung vào: thiết kế và chế tạo phần cứng hệ thống (băng chuyền, buồng sáng, cụm chấp hành); lắp ráp các khối điều khiển và cảm biến; lập trình giải thuật xử lý ảnh trên Python/OpenCV; lập trình điều khiển ngoại vi trên Arduino; chạy thử nghiệm thực tế; hiệu chỉnh các thông số và lập báo cáo kỹ thuật.

Phạm vi và giới hạn của đề tài:

  • Hệ thống phần cứng bao gồm: băng chuyền kích thước 100 cm x 10 cm, camera USB Logitech C270, hai cảm biến khoảng cách siêu âm, cơ cấu gạt servo SG90, màn hình hiển thị LCD và khối vi xử lý trung tâm.
  • Quá trình thu nhận ảnh được thực hiện trong môi trường buồng sáng có cường độ chiếu sáng cố định và phụ thuộc vào vận tốc di chuyển của băng chuyền.
  • Khả năng nhận diện giới hạn trong phạm vi từ 2 đến 4 loại thuốc nhất định (cụ thể khảo sát trên mẫu thuốc viên nang/con nhộng và thuốc viên tròn màu cam/gạch).
  • Hệ thống xử lý đếm tuần tự từng loại thuốc trong một khoảng thời gian thiết lập trước khi chuyển sang phân loại mẫu thuốc tiếp theo.

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

Đề tài áp dụng phương pháp thiết kế kỹ thuật kết hợp thực nghiệm hệ thống nhúng, xây dựng giải thuật xử lý ảnh số dựa trên nền tảng lý thuyết thị giác máy tính và điều khiển tự động.

Hệ thống xử lý ảnh tuân theo chuỗi quy trình 5 bước cơ bản:

  1. Thu nhận ảnh (Image Acquisition): Chuyển đổi tín hiệu quang học từ thế giới thực thành tín hiệu số hai chiều thông qua cảm biến của camera số.
  2. Tiền xử lý ảnh (Image Processing): Lọc nhiễu và tăng cường độ tương phản nhằm làm nổi bật vùng ảnh mục tiêu.
  3. Phân đoạn ảnh (Image Segmentation): Tách biệt các đối tượng viên thuốc ra khỏi nền vỉ thuốc dựa trên đặc trưng màu sắc.
  4. Biểu diễn và trích chọn đặc trưng (Image Representation / Feature Selection): Xác định các thuộc tính định lượng và ranh giới hình học của từng viên thuốc.
  5. Nhận dạng và nội suy ảnh (Image Recognition & Interpolation): So sánh các thông số tính toán được với mẫu chuẩn đã lưu trữ để đưa ra kết luận về số lượng viên thuốc.

Về mô hình màu sắc, nghiên cứu phân tích hai không gian màu chính:

  • Không gian màu RGB (Red - Green - Blue): Hệ màu cộng 24-bit (8-bit cho mỗi kênh R, G, B), tạo ra khoảng 16,7 triệu mức màu. Do các kênh RGB phụ thuộc nhiều vào cường độ sáng của môi trường bên ngoài, việc tách ngưỡng trực tiếp trên RGB dễ phát sinh sai số.
  • Không gian màu HSV (Hue - Saturation - Value): Biểu diễn màu sắc thông qua ba thành phần độc lập gồm Sắc độ ($H$), Độ bão hòa màu ($S$) và Cường độ sáng ($V$). Quá trình chuyển đổi từ RGB sang HSV được thực hiện thông qua các công thức chuẩn hóa:
    • Chuẩn hóa giá trị: $R' = R/255$, $G' = G/255$, $B' = B/255$.
    • Tính các giá trị cực trị: $C_{max} = \max(R', G', B')$, $C_{min} = \min(R', G', B')$, độ lệch $\Delta = C_{max} - C_{min}$.
    • Xác định cường độ sáng: $V = C_{max}$.
    • Xác định độ bão hòa $S$ và sắc độ $H$ dựa trên tỷ lệ giữa $\Delta$ và $C_{max}$. Việc chuyển đổi sang HSV cho phép thuật toán lọc màu hiệu quả bằng cách cô lập dải màu sắc của viên thuốc mà ít bị ảnh hưởng bởi biến động ánh sáng.

Phương pháp xử lý hình thái học toán học (Mathematical Morphology) được áp dụng trong giai đoạn nhị phân hóa và tinh chỉnh biên đối tượng:

  • Phép giãn nở (Dilation): Ký hiệu $A \oplus B = {c \mid c = a + b, a \in A, b \in B}$, giúp mở rộng diện tích đối tượng, lấp đầy các lỗ rỗng nhỏ bên trong viên thuốc.
  • Phép co (Erosion): Ký hiệu $A \ominus B = {c \mid (B)_c \subseteq A}$, thu hẹp kích thước biên đối tượng, loại bỏ các đốm nhiễu nhỏ và tách rời các đối tượng dính nhau.
  • Phép mở (Opening): Thực hiện co trước, giãn sau ($A \circ B = (A \ominus B) \oplus B$), giúp làm trơn đường bao và loại bỏ các phần gai lồi lõm bên ngoài biên.
  • Phép đóng (Closing): Thực hiện giãn trước, co sau ($A \bullet B = (A \oplus B) \ominus B$), có tác dụng hàn gắn các khe nứt nhỏ và làm liền mạch đường bao.
  • Thuật toán tìm đường viền (Contours): Trích xuất các tập hợp điểm biên liên tục có cùng mức xám/màu sắc (tìm đối tượng màu trắng trên nền đen trong ảnh nhị phân của OpenCV) để tiến hành đếm số lượng đối tượng độc lập.

Công cụ phát triển phần mềm:

  • Hệ điều hành Raspbian (nền tảng Linux chuyên dụng do Raspberry Pi Foundation phát triển) cài đặt trên thẻ nhớ MicroSD 32GB (tốc độ đọc 30 MB/s).
  • Ngôn ngữ lập trình Python phiên bản 3.7.
  • Thư viện thị giác máy tính mã nguồn mở OpenCV (Open Source Computer Vision Library).
  • Môi trường phát triển tích hợp Arduino IDE dùng để biên dịch và nạp mã điều khiển cho vi điều khiển ngoại vi.

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

Hệ thống được thiết kế theo cấu trúc module hóa phân tầng, bao gồm 6 khối chức năng chính hoạt động đồng bộ:

+-------------------------------------------------------------------------+
|                          KHỐI NGUỒN TỔNG                                |
|        (Nguồn 5V/3A cấp cho hệ thống nhúng; Nguồn 12VDC cấp công suất)  |
+------------------------------------+------------------------------------+
                                     |
                                     v
+------------------------------------+------------------------------------+
|                      KHỐI XỬ LÝ TRUNG TÂM                               |
|                  (Bo mạch Raspberry Pi 3 Model B)                       |
|   - Nhận diện & đếm viên thuốc qua thuật toán OpenCV/Python             |
|   - Giao tiếp dữ liệu UART qua cổng USB với Arduino Uno R3              |
+------------------^---------------------------------+--------------------+
                   |                                 |
                   | (Hình ảnh số USB 2.0)           | (Truyền số lượng thuốc)
                   |                                 v
+------------------+-----------------+  +------------+--------------------+
|   KHỐI THU TÍN HIỆU HÌNH ẢNH       |  |   KHỐI ĐIỀU KHIỂN & CÔNG SUẤT   |
| (Camera Logitech C270 + Buồng sáng)|  | (Arduino Uno R3 + Driver L298)  |
| - Độ phân giải 720p, góc 60°       |  | - Điều khiển Step Motor băng tải|
| - Dải LED trắng 12V/1W             |  | - Điều khiển Servo SG90 gạt lỗi |
+------------------------------------+  +------------+--------------------+
                                                     |
                                                     v
+------------------------------------+  +------------+--------------------+
|           KHỐI CẢM BIẾN            |  |         KHỐI HIỂN THỊ           |
| (2 Cảm biến siêu âm HY-SRF04)      |  |     (Màn hình LCD 16x2)         |
| - Cảm biến 1: Kích hoạt đếm UART   |  | - Kết nối 4-bit dữ liệu         |
| - Cảm biến 2: Kích hoạt Servo gạt  |  | - Hiển thị trạng thái & kết quả |
+------------------------------------+  +---------------------------------+

Chi tiết thông số kỹ thuật và phương thức kết nối các khối phần cứng:

  1. Khối xử lý trung tâm: Bo mạch Raspberry Pi 3 Model B trang bị vi xử lý Broadcom BCM2835 (lõi tứ ARM Cortex-A53 64-bit, tốc độ 1.2 GHz), RAM 1 GB, 4 cổng USB 2.0, 40 chân GPIO, cổng giao tiếp CSI và cổng xuất hình ảnh HDMI. Khối này thực hiện xử lý toàn bộ thuật toán hình ảnh và truyền dữ liệu điều khiển qua cổng USB sang Arduino.
  2. Khối thu tín hiệu hình ảnh: Camera USB Logitech C270 (độ phân giải HD 720p, tốc độ 30 fps, tiêu cự cố định, góc nhìn 60°) kết nối qua cổng USB 2.0 với Raspberry Pi. Buồng sáng bao quanh sử dụng một dải đèn LED trắng công suất 1W, điện áp hoạt động 12V để loại bỏ ảnh hưởng của ánh sáng nhiễu môi trường.
  3. Khối điều khiển ngoại vi và công suất: Vi điều khiển Arduino Uno R3 (vi điều khiển ATmega328P 8-bit, 32 KB Flash, 2 KB SRAM, 14 chân Digital I/O, điện áp hoạt động 5V) kết nối với mạch cầu H L298 (dòng định mức 2A, dải áp 5–30V, công suất tối đa 25W/cầu) để kéo động cơ bước (Step Motor 12VDC) vận hành băng chuyền kích thước 100 cm x 10 cm. Cơ cấu gạt lỗi sử dụng động cơ RC Servo SG90 (trọng lượng 9g, điều khiển góc quay bằng xung PWM).
  4. Khối cảm biến: Hai cảm biến siêu âm HY-SRF04/SRF05 (khoảng cách phát hiện từ 2 cm đến 450 cm, góc quét dưới 15°, độ chính xác xấp xỉ 0,5 cm, điện áp 5VDC):
    • Cảm biến vị trí 1: Nhận biết vỉ thuốc đi vào vùng chụp của buồng sáng để kích hoạt tín hiệu truyền thông UART đếm số lượng từ Raspberry Pi.
    • Cảm biến vị trí 2: Nhận biết vỉ thuốc đến vị trí cần gạt; nếu dữ liệu số thuốc nhận được nhỏ hơn 10 (và lớn hơn 0), Arduino điều khiển servo quay một góc 45° để gạt vỉ lỗi sang đường trượt riêng, sau đó quay về vị trí ban đầu. Nếu đủ 10 viên, servo giữ nguyên vị trí để vỉ thuốc đi thẳng.
  5. Khối hiển thị: Màn hình LCD 16x2 kết nối theo chuẩn 4 dây dữ liệu (RS nối chân 13, E nối chân 12, D4–D7 lần lượt nối chân 7, 6, 5, 4 của Arduino Uno R3; chân RW nối mức 0V; biến trở 10 kΩ điều chỉnh độ tương phản) để hiển thị số lượng viên thuốc và thông tin kiểm tra.
  6. Khối nguồn và tính toán công suất: Nhóm nghiên cứu đã thực hiện khảo sát và lập bảng thống kê dòng tiêu thụ toàn hệ thống:
Tên thiết bị Dòng tiêu thụ thực tế Ghi chú vận hành
Máy tính nhúng Raspberry Pi 3 500 – 1000 mA Khi hoạt động độc lập
Cổng xuất hình HDMI 50 mA Kết nối màn hình kiểm tra
Module Camera Logitech C270 250 mA Thu nhận luồng video USB
Thiết bị ngoại vi (Bàn phím, chuột) 100 – 1000 mA Nhập liệu và điều khiển
Vi điều khiển Arduino Uno R3 30 mA Hoạt động độc lập
Cảm biến siêu âm HY-SRF04 (x2) 26 mA (13 mA x 2) Phát hiện vị trí vỉ thuốc
Động cơ Servo SG90 15 mA Dòng điều khiển gạt
Màn hình LCD 16x2 2 – 5 mA Hiển thị thông số
Mạch cầu H L298 36 mA Dòng tín hiệu logic
Động cơ bước (Step Motor) 350 mA Kéo tải băng chuyền
Tổng dòng tiêu thụ toàn hệ thống 1359 – 2762 mA Chọn nguồn Adapter 5V / 3A

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

Chương 1: Tổng quan

Chương này phân tích lý do chọn đề tài xuất phát từ nhu cầu tự động hóa trong cuộc Cách mạng Công nghiệp 4.0 và yêu cầu nghiêm ngặt về môi trường vô trùng trong các nhà máy sản xuất Dược phẩm. Tác giả xác định mục tiêu tổng quát, 4 nhiệm vụ kỹ thuật cụ thể, nội dung nghiên cứu thực hiện, các giới hạn vận hành của mô hình (tốc độ, ánh sáng, chủng loại thuốc) và tóm tắt cấu trúc bố cục 6 chương của đồ án tốt nghiệp.

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

Nội dung chương trình bày chi tiết các nguyên lý cốt lõi của xử lý ảnh số, cấu trúc mô hình không gian màu RGB và HSV, các công thức toán học chuyển đổi hệ màu và 4 phép toán hình thái học (Dilation, Erosion, Opening, Closing). Đồng thời, chương giới thiệu môi trường phần mềm (ngôn ngữ Python 3.7, thư viện OpenCV, hệ điều hành Raspbian) và thông số kỹ thuật phần cứng (Raspberry Pi 3 Model B, Arduino Uno R3, chuẩn truyền thông nối tiếp UART, module điều khiển động cơ L298, cảm biến siêu âm SRF04, camera Logitech C270, servo SG90 và LCD 16x2).

Chương 3: Tính toán và thiết kế

Chương 3 trình bày việc xây dựng sơ đồ khối tổng thể của hệ thống và tính toán chi tiết cho từng khối chức năng: khối thu nhận hình ảnh, khối cảm biến khoảng cách, khối hiển thị LCD, khối công suất điều khiển động cơ bước và servo, và khối xử lý trung tâm Raspberry Pi 3. Tác giả lập bảng thống kê dòng tiêu thụ của toàn bộ linh kiện ngoại vi (1359 mA – 2762 mA), từ đó tính toán chọn bộ nguồn 5V/3A nhằm đảm bảo hệ thống vận hành ổn định. Chương này cũng cung cấp sơ đồ nguyên lý kết nối chi tiết giữa toàn bộ các linh kiện phần cứng.

Chương 4: Thi công hệ thống

Chương này mô tả quá trình gia công, lắp ráp và đóng gói mô hình vật lý. Vỏ hộp điều khiển chứa Raspberry Pi 3, Arduino Uno R3, module L298 và LCD 16x2 được gia công từ tấm xốp cứng. Mô hình cơ khí bao gồm khung băng chuyền mini, buồng sáng gắn đèn LED trắng 12V/1W, giá gắn camera, vị trí bố trí cảm biến siêu âm và cơ cấu khay trượt phân loại thuốc lỗi. Đồng thời, chương trình bày các lưu đồ giải thuật điều khiển trên Raspberry Pi, lưu đồ chương trình trên Arduino, lưu đồ giải thuật đo khoảng cách siêu âm và lưu đồ định thời của Timer 2.

Chương 5: Kết quả, nhận xét và đánh giá

Chương 5 công bố kết quả thi công mô hình thực tế và số liệu thực nghiệm nhận diện số lượng viên thuốc trên hai mẫu thử nghiệm chính (thuốc con nhộng và thuốc tròn màu cam/gạch). Tác giả phân tích các trường hợp đếm chính xác (đủ chuẩn 2 viên, 4 viên, 6 viên, 8 viên, 9 viên, và trường hợp vỉ trống 0 viên) cũng như phân tích các trường hợp phát sinh sai số nhận diện (trường hợp thuốc nhộng 3 viên và thuốc gạch 8 viên), từ đó đưa ra nhận xét, đánh giá toàn diện về khả năng đáp ứng của hệ thống.

Chương 6: Kết luận và hướng phát triển

Chương tổng kết mức độ hoàn thành của đồ án so với các mục tiêu đề ra ban đầu, đánh giá tính ổn định trong quá trình vận hành của mô hình nhúng và đề xuất các định hướng nghiên cứu mở rộng nhằm nâng cao tốc độ xử lý, khả năng nhận diện đa dạng mẫu thuốc và tối ưu hóa hệ thống cho dây chuyền công nghiệp.

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

Nghiên cứu đã hoàn thiện mô hình thực nghiệm và kiểm tra khả năng nhận diện, phân loại thực tế trên các vỉ thuốc tân dược mẫu. Kết quả đếm số lượng được ghi nhận qua các trường hợp cụ thể:

Mẫu thuốc thử nghiệm Trạng thái số lượng trên vỉ Kết quả nhận diện của hệ thống Đánh giá phân loại cơ cấu gạt
Thuốc con nhộng Chuẩn 2 viên Đếm chính xác (2 viên) Gạt phân loại vỉ thiếu (< 10 viên)
Thuốc con nhộng Chuẩn 8 viên Đếm chính xác (8 viên) Gạt phân loại vỉ thiếu (< 10 viên)
Thuốc con nhộng Mẫu lỗi 3 viên Xuất hiện sai số đếm Gạt phân loại vỉ lỗi
Thuốc tròn màu cam/gạch Mẫu 0 viên (vỉ trống) Đếm chính xác (0 viên) Nhận diện đúng trường hợp không có thuốc
Thuốc tròn màu cam/gạch Mẫu 4 viên Đếm chính xác (4 viên) Gạt phân loại vỉ thiếu (< 10 viên)
Thuốc tròn màu cam/gạch Mẫu 6 viên Đếm chính xác (6 viên) Gạt phân loại vỉ thiếu (< 10 viên)
Thuốc tròn màu cam/gạch Mẫu 9 viên Đếm chính xác (9 viên) Gạt phân loại vỉ thiếu (< 10 viên)
Thuốc tròn màu cam/gạch Mẫu lỗi 8 viên Xuất hiện sai số đếm Gạt phân loại vỉ lỗi

Cơ chế điều khiển phân loại tự động hoạt động chính xác theo thuật toán thiết kế: khi vỉ thuốc đi qua cảm biến siêu âm thứ hai, nếu số lượng viên thuốc đếm được nhỏ hơn tiêu chuẩn (nhỏ hơn 10 và lớn hơn 0 đối với vỉ 10 viên), Arduino Uno R3 điều khiển động cơ servo SG90 quay góc 45° để đẩy vỉ thuốc lỗi xuống đường trượt riêng; nếu vỉ thuốc đạt chuẩn đủ 10 viên, hệ thống cho phép vỉ tiếp tục lưu thông trên băng chuyền.

Đóng góp kỹ thuật của đồ án:

  • Thiết kế và chế tạo thành công một mô hình nhúng tích hợp hoàn chỉnh, kết hợp máy tính nhúng Raspberry Pi 3 và vi điều khiển Arduino Uno R3 để giải quyết bài toán kiểm tra chất lượng sản phẩm trong sản xuất Dược phẩm với chi phí thấp.
  • Xây dựng giải pháp chiếu sáng ổn định bằng buồng sáng nhân tạo và áp dụng thuật toán lọc màu trong không gian HSV kết hợp các phép toán hình thái học (Morphology) trên OpenCV, giúp nhận diện và đếm số lượng viên thuốc trực tiếp trên hệ thống nhúng mà không cần máy tính để bàn cấu hình cao.

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

Hạn chế của đề tài được tác giả ghi nhận trong văn bản:

  • Năng lực tính toán của máy tính nhúng Raspberry Pi 3 còn hạn chế so với máy tính cá nhân hoặc máy tính công nghiệp chuyên dụng, dẫn đến tốc độ xử lý khung hình và trích xuất dữ liệu vẫn còn độ trễ nhất định.
  • Quá trình nhận diện hình ảnh phụ thuộc chặt chẽ vào điều kiện chiếu sáng cố định bên trong buồng sáng và vận tốc di chuyển của băng chuyền.
  • Hệ thống chỉ mới thực nghiệm nhận diện thành công trên tập mẫu hẹp từ 2 đến 4 loại thuốc cố định (thuốc con nhộng và thuốc tròn màu cam); chưa xử lý được đồng thời nhiều loại thuốc chạy hỗn hợp trên cùng một chu trình băng tải.

Hướng nghiên cứu và phát triển tiếp theo:

  • Nâng cấp phần cứng vi xử lý trung tâm lên các dòng máy tính nhúng hoặc kit xử lý ảnh chuyên dụng có hiệu năng cao hơn nhằm tăng tốc độ nhận dạng thời gian thực.
  • Cải tiến và tối ưu hóa giải thuật thị giác máy tính để có thể mở rộng nhận diện đa dạng các loại viên thuốc với hình dạng, kích thước, màu sắc và chất liệu màng ép vỉ khác nhau.
  • Hoàn thiện cơ cấu cơ khí và nâng cao tốc độ đồng bộ của băng chuyền để tiệm cận với tiêu chuẩn vận hành của dây chuyền đóng gói công nghiệp thực tế.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo chuyên môn cho:

  • Sinh viên và học viên chuyên ngành Công nghệ Kỹ thuật Điện tử Truyền thông, Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử và Kỹ thuật Máy tính đang thực hiện các đề tài về thị giác máy tính nhúng và tự động hóa công nghiệp.
  • Các kỹ sư và nhà nghiên cứu quan tâm đến giải pháp kết hợp giữa máy tính nhúng Linux (Raspberry Pi) và vi điều khiển thời gian thực (Arduino) qua chuẩn truyền thông nối tiếp UART.
  • Phần nội dung đáng tham khảo nhất bao gồm: phương pháp chuyển đổi và lọc màu trên không gian HSV kết hợp giải thuật hình thái học trong OpenCV; quy trình tính toán phân bổ công suất, dòng tiêu thụ toàn hệ thống phần cứng (Bảng 3.1) và thiết kế sơ đồ phối ghép ngoại vi giữa các khối chức năng.

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

  1. Trong hệ thống, bo mạch nào đảm nhiệm vai trò xử lý ảnh và vi điều khiển nào điều khiển cơ cấu chấp hành?
    Bo mạch máy tính nhúng Raspberry Pi 3 Model B (chạy hệ điều hành Raspbian) đóng vai trò xử lý trung tâm, tiếp nhận luồng hình ảnh từ camera Logitech C270 qua cổng USB 2.0 và thực thi thuật toán OpenCV/Python để đếm số lượng viên thuốc. Vi điều khiển Arduino Uno R3 đóng vai trò khối điều khiển ngoại vi và công suất, nhận kết quả đếm từ Raspberry Pi qua giao tiếp nối tiếp để điều khiển động cơ bước (kéo băng chuyền qua mạch L298), động cơ servo SG90 (gạt thuốc lỗi) và xuất thông tin lên màn hình LCD 16x2.

  2. Vì sao hệ thống sử dụng không gian màu HSV thay vì không gian màu RGB để phân đoạn ảnh viên thuốc?
    Không gian màu RGB phụ thuộc nhiều vào cường độ chiếu sáng của môi trường bên ngoài nên dễ gây sai lệch khi tách ngưỡng. Không gian màu HSV phân tách màu sắc thành ba kênh độc lập gồm Sắc độ ($H$), Độ bão hòa ($S$) và Cường độ sáng ($V$), cho phép thuật toán cô lập và lọc dải màu sắc đặc trưng của viên thuốc một cách ổn định, giảm thiểu tối đa tác động của sự biến thiên ánh sáng.

  3. Tổng dòng điện tiêu thụ của toàn hệ thống được tính toán là bao nhiêu và nhóm tác giả đã chọn giải pháp cấp nguồn như thế nào?
    Theo bảng tính toán của đồ án, tổng dòng tiêu thụ của toàn bộ các thiết bị (Raspberry Pi 3, HDMI, Camera, bàn phím/chuột, Arduino Uno R3, 2 cảm biến siêu âm, servo SG90, LCD 16x2, driver L298 và Step Motor) dao động trong khoảng từ 1359 mA đến 2762 mA. Do đó, nhóm nghiên cứu đã chọn bộ nguồn Adapter 5V / 3A để cấp nguồn ổn định cho hệ thống điều khiển nhúng, kết hợp nguồn 12VDC cấp cho khối công suất động cơ và dải LED buồng sáng.

  4. Cơ cấu phân loại và cần gạt thuốc lỗi vận hành theo quy tắc cụ thể nào?
    Khi camera nhận diện xong, số lượng viên thuốc được truyền từ Raspberry Pi sang Arduino. Khi vỉ thuốc chạm đến vị trí cảm biến siêu âm thứ hai, nếu giá trị đếm nhận được nhỏ hơn 10 và lớn hơn 0 (vỉ thiếu viên), Arduino sẽ xuất tín hiệu PWM điều khiển servo SG90 quay một góc 45° để gạt vỉ lỗi sang khay trượt riêng, sau đó servo trở về vị trí ban đầu. Nếu số lượng đếm được bằng 10 (vỉ đủ chuẩn), servo đứng yên để vỉ thuốc tiếp tục di chuyển trên băng chuyền.

  5. Vai trò cụ thể của hai cảm biến siêu âm HY-SRF04 trên mô hình băng chuyền là gì?
    Cảm biến siêu âm thứ nhất được lắp đặt tại khu vực buồng sáng để nhận biết thời điểm vỉ thuốc đi vào vị trí chụp ảnh, từ đó kích hoạt quá trình chụp, xử lý ảnh và gửi dữ liệu số lượng viên thuốc qua chuẩn UART. Cảm biến siêu âm thứ hai được lắp đặt tại vị trí trước cần gạt servo để phát hiện vỉ thuốc đã đến khu vực phân loại, qua đó kích hoạt cơ chế gạt hoặc cho phép vỉ thuốc đi tiếp tùy thuộc vào dữ liệu số thuốc đã nhận từ trước.

Kết luận

Đồ án tốt nghiệp "Đếm số lượng viên thuốc có trong vỉ thuốc" của sinh viên Võ Danh Quân và Nguyễn Minh Hảo đã thiết kế và chế tạo thành công mô hình hệ thống nhúng tự động hóa kiểm tra sản phẩm trong ngành Dược. Hệ thống kết hợp hiệu quả giữa máy tính nhúng Raspberry Pi 3 xử lý ảnh số qua thư viện OpenCV/Python và vi điều khiển Arduino Uno R3 điều khiển băng tải cùng cơ cấu gạt phân loại servo. Các kết quả thực nghiệm trên các mẫu thuốc con nhộng và thuốc tròn màu cam đã minh chứng tính khả thi của giải pháp trong việc tự động loại bỏ vỉ thuốc lỗi sau công đoạn ép vỉ.