Giới thiệu dự án

Tổng quan và bối cảnh ngành công nghiệp

Trong kỷ nguyên công nghiệp hóa và hiện đại hóa, quá trình tự động hóa sản xuất đóng vai trò quyết định đến năng suất, độ chính xác và năng lực cạnh tranh của doanh nghiệp. Theo các khảo sát công nghiệp trong ngành chế tạo và đóng gói, khâu kiểm tra và phân loại sản phẩm thủ công chiếm tới 35–45% tổng thời gian chu kỳ sản xuất, đồng thời tiềm ẩn tỷ lệ sai sót từ 8–15% do hiện tượng suy giảm thị lực và mệt mỏi của công nhân.

Để giải quyết bài toán này, các hệ thống phân loại tự động linh hoạt sử dụng cánh tay robot, máy CNC và cảm biến chuyên dụng ngày càng được ứng dụng rộng rãi trong các dây chuyền chế biến thực phẩm, phân loại bao bì, linh kiện cơ khí và dược phẩm.

Vấn đề thực tiễn và điểm nghẽn kỹ thuật

Các hệ thống phân loại công nghiệp hiện nay thường đối mặt với hai thái cực:

  • Hệ thống xử lý ảnh công nghiệp (Machine Vision): Sử dụng Camera độ phân giải cao kết hợp máy tính công nghiệp (IPC). Mặc dù có độ chính xác cao nhưng chi phí đầu tư phần cứng rất lớn ($2.000 – $10.000), thuật toán phức tạp và đòi hỏi kỹ sư vận hành có trình độ cao.
  • Hệ thống cảm biến màu chuyên biệt dựa trên vi điều khiển: Chi phí thấp nhưng thường gặp lỗi sai lệch tín hiệu đo do nhiễu ánh sáng môi trường, xung tần số ngõ ra không ổn định và trễ chu kỳ quét (scan time) khi xử lý đồng thời nhiều cơ cấu chấp hành.
       [ Cảm Biến TCS3200 ] ---> (Tần số F_OUT)
                                      |
                                      v
 [ Nguồn 220VAC -> 5VDC ] ---> [ PIC16F877A ] ---> [ Màn Hình LCD 1602 ]
                                      |
                                      v
                               [ Opto PC817 ] ---> [ Relay / Động Cơ ]
                                      |
                                      v
                             [ Còi Báo C1815 ]

Mục tiêu dự án

  1. Thiết kế khối phần cứng hoàn chỉnh: Xây dựng mạch điều khiển vi điều khiển 8-bit, khối nguồn tuyến tính ổn áp $5\text{VDC}$, khối cách ly quang và khối kích công suất cho động cơ băng tải.
  2. Tích hợp cảm biến màu sắc quang-tần số: Kết nối và lập trình giải mã ma trận photodiode $8 \times 8$ của module TCS3200.
  3. Phát triển thuật toán đo tần số thời gian thực: Ứng dụng kỹ thuật Timer0 ngắt định thời chính xác làm cửa sổ lấy mẫu (Gating Window) và Timer1 ở chế độ Counter phần cứng đếm xung ngoại vi.
  4. Hiển thị và cảnh báo tự động: Hiển thị trực quan số lượng từng nhóm sản phẩm theo màu trên màn hình ký tự và kích hoạt cảnh báo âm thanh khi phát hiện sản phẩm lỗi/không xác định.

Phương pháp tiếp cận

Dự án sử dụng vi điều khiển Microchip PIC16F877A kết hợp cảm biến chuyển đổi ánh sáng sang tần số TCS3200. Giải pháp này chuyển đổi trực tiếp giá trị màu sắc thành chuỗi xung vuông với tần số tỉ lệ tuyến tính theo cường độ quang thông của từng dải phổ Red, Green, Blue. Đây là cách tiếp cận cân bằng giữa chi phí phần cứng tối thiểu và độ tin cậy thời gian thực.

Chỉ số hiệu năng kỳ vọng

  • Tốc độ phân loại: Đạt tối thiểu $25 - 30$ sản phẩm/phút trên băng tải mô hình.
  • Độ chính xác phân loại: $\ge 95%$ trong điều kiện khoảng cách cảm biến cố định từ $10 - 15\text{mm}$.
  • Thời gian xử lý nhận diện màu: $\le 35\text{ms}$ cho mỗi chu kỳ lọc 3 kênh phổ R-G-B.
  • Dòng tiêu thụ toàn hệ thống: Không vượt quá $700\text{mA}$ ở chế độ toàn tải ($5\text{VDC}$).

Phạm vi và giới hạn

  • Phạm vi nhận diện: Nhận diện và đếm 3 nhóm màu cơ bản (Đỏ, Xanh lá, Xanh dương/Vàng) cùng 1 trạng thái phế phẩm lỗi.
  • Giới hạn môi trường: Cảm biến yêu cầu buồng tối cách ly quang học cục bộ hoặc điều kiện ánh sáng xung quanh ít biến động đột ngột.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và giải pháp cạnh tranh

Tiêu chí so sánh Phân loại thủ công Xử lý ảnh Machine Vision PLC Siemens S7-1200 + Sensor Giải pháp PIC16F877A + TCS3200
Chi phí triển khai Rất thấp ban đầu, chi phí nhân công cao Rất cao ($2.000 – $5.000) Cao ($500 – $1.200) Rất thấp ($20 – $35)
Độ phức tạp thuật toán Không có Rất cao (OpenCV, CNN) Trung bình (FBD/LAD) Trung bình (C nhúng, Timer/Counter)
Thời gian phản hồi $1.000 – $2.000\text{ms}$ $50 – $150\text{ms}$ $10 – $30\text{ms}$ $20 – $40\text{ms}$
Độ ổn định công nghiệp Thấp (phụ thuộc con người) Rất cao Xuất sắc Tốt (mô hình/xưởng vừa & nhỏ)
Khả năng bảo trì Khó chuẩn hóa Yêu cầu kỹ sư chuyên môn Dễ dàng Rất dễ, linh kiện phổ biến

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Nhận diện chính xác 3 mã màu R-G-B; đếm chính xác số lượng từng loại; hiển thị dữ liệu lên LCD 1602; ngắt động cơ/cảnh báo khi có vật thể lạ.
  • Should have (Nên có): Cơ cấu cách ly quang PC817 bảo vệ vi điều khiển khỏi dòng ngược từ relay/động cơ; nút bấm reset biến đếm.
  • Could have (Có thể mở rộng): Truyền thông nối tiếp UART/RS-232 lên máy tính giám sát giao diện SCADA/C#.
  • Won't have (Chưa hỗ trợ đợt này): Phân tích hình thái học, phân loại theo kích thước/chiều cao sản phẩm.

Thiết kế kiến trúc hệ thống

+-----------------------------------------------------------------------------------+
|                                  HỆ THỐNG PHẦN CỨNG                              |
|                                                                                   |
|  +--------------------+     +--------------------------------------------------+  |
|  |  KHỐI NGUỒN TUYẾN  |     |             KHỐI CẢM BIẾN TCS3200                |  |
|  |  TÍNH 220V -> 5VDC |     |  - Mảng 8x8 Photodiode (16R, 16G, 16B, 16Clear)  |  |
|  +---------+----------+     |  - Bộ Current-to-Frequency Converter             |  |
|            |                +------------------------+-------------------------+  |
|            | VCC=5V                                  | Tín hiệu F_OUT             |
|            v                                         v                            |
|  +---------------------------------------------------+-------------------------+  |
|  |                    KHỐI ĐIỀU KHIỂN TRUNG TÂM (PIC16F877A)                   |  |
|  |  - Fosc = 20MHz (Thạch anh ngoài)                                           |  |
|  |  - Timer0: Định thời cửa sổ lấy mẫu 20ms                                    |  |
|  |  - Timer1: Counter phần cứng đếm xung ngoại vi (Chân RC0/T1CKI)             |  |
|  |  - Bộ giải mã logic màu sắc & phân loại sản phẩm                           |  |
|  +--------+---------------------+-------------------+---------------------+----+  |
|           |                     |                   |                     |       |
|           v                     v                   v                     v       |
|  +----------------+     +---------------+   +---------------+     +---------------+  |
|  | KHỐI HIỂN THỊ  |     | KHỐI NÚT NHẤN |   | KHỐI CẢNH BÁO |     | KHỐI CÔNG SUẤT|  |
|  | LCD 1602 (4-bit|     | Reset hệ thống|   | Còi Buzzer    |     | Opto PC817 +  |  |
|  | Bus D4-D7)     |     | Clear bộ đếm  |   | Transistor    |     | Transistor    |  |
|  |                |     |               |   | 2SC1815       |     | C1815 + Relay |  |
|  +----------------+     +---------------+   +---------------+     +---------------+  |
+-----------------------------------------------------------------------------------+

Danh mục công nghệ và linh kiện phần cứng

  • Vi điều khiển trung tâm: Microchip PIC16F877A-I/P (DIP-40, 8KB Flash ROM, 368 Bytes RAM, 256 Bytes EEPROM, $F_{max}=20\text{MHz}$).
  • Module cảm biến quang phổ: TAOS/AMS TCS3200 (Dải tần ngõ ra $2\text{Hz} – 500\text{kHz}$, tích hợp 4 đèn LED trắng chiếu sáng bề mặt).
  • Màn hình hiển thị: LCD 1602 Controller HD44780 (Giao tiếp 4-bit qua Port A & Port E).
  • Linh kiện công suất & bảo vệ: Optocoupler Sharp PC817 ($V_{ISO} = 5.000\text{V}{rms}$), Transistor NPN 2SC1815 ($V{CEO} = 50\text{V}$, $I_C = 150\text{mA}$), Relay Omron 5VDC-10A, IC ổn áp STMicroelectronics LM7805 TO-220.
  • Phần mềm thiết kế & phát triển: Altium Designer phiên bản 21.0 (thiết kế schematic và layout 2 layer PCB), CCS C Compiler phiên bản 5.08, PICkit 3 Programmer.

Tính toán thông số kỹ thuật khối nguồn

Dòng điện tiêu thụ định mức của toàn hệ thống được tính toán: $$I_{tong} = I_{PIC} + I_{Buzzer} + I_{Motor} + I_{LCD} + I_{TCS3200} = 20\text{mA} + 25\text{mA} + 500\text{mA} + 1\text{mA} + 100\text{mA} = 646\text{mA}$$

Máy biến áp hạ áp $220\text{VAC} \rightarrow 12\text{VAC}$ ($2\text{A}$). Điện áp đỉnh sau chỉnh lưu cầu Diode: $$U_{max} = \sqrt{2} \times U_{hd} = \sqrt{2} \times 12\text{V} \approx 16.97\text{V}$$ $$U_{sau_cau} = U_{max} - 2V_D \approx 16.97\text{V} - 1.4\text{V} = 15.57\text{V}$$

Tụ hóa lọc nguồn chính được chọn là $470\mu\text{F} / 50\text{V}$ kết hợp tụ gốm $104$ ($100\text{nF}$) dập xung gai cao tần. IC ổn áp LM7805 đáp ứng dòng tải danh định $1.0\text{A}$ ($I_{max} = 1.5\text{A}$ với tản nhiệt nhôm), đảm bảo cấp nguồn ổn định cho vi điều khiển và cảm biến.

Quy trình phát triển hệ thống (Methodology)

Dự án áp dụng mô hình phát triển phần cứng - phần mềm lặp lồng ghép (V-Model tinh gọn):

  1. Tuần 1: Xác định thông số kỹ thuật, lập sơ đồ khối, phân tích datasheet cảm biến TCS3200 và PIC16F877A.
  2. Tuần 2: Thiết kế sơ đồ nguyên lý (Schematic) và layout mạch in (PCB 2D/3D) trên Altium Designer.
  3. Tuần 3: Thi công ăn mòn mạch in, hàn linh kiện, kiểm tra an toàn chạm chập và kiểm tra mức điện áp các rail $5\text{VDC}$.
  4. Tuần 4: Viết driver điều khiển TCS3200, cấu hình thanh ghi Timer0/Timer1 trên trình biên dịch CCS C.
  5. Tuần 5: Tích hợp cơ khí băng tải, hiệu chuẩn ma trận lọc ngưỡng màu sắc thực tế và gỡ lỗi ngắt.
  6. Tuần 6: Đánh giá độ tin cậy, chạy thử nghiệm 500 chu kỳ phân loại liên tục và lập tài liệu kỹ thuật.

Implementation và kết quả

Kỹ thuật lập trình và giải thuật cốt lõi

1. Cấu hình phần cứng Timer1 làm Counter đếm xung

Vi điều khiển PIC16F877A sử dụng chân RC0/T1OSO/T1CKI nhận trực tiếp xung vuông tần số từ chân OUT của module TCS3200. Thanh ghi cấu hình T1CON (địa chỉ 0x10) được nạp giá trị: $$\text{T1CON} = \text{0b00000011}$$

  • T1CKPS1:T1CKPS0 = 00: Tỉ số bộ chia trước (Prescaler) là $1:1$.
  • T1OSCEN = 0: Tắt bộ dao động riêng của Timer1.
  • T1SYNC = 0: Đồng bộ hóa xung clock ngoại vi.
  • TMR1CS = 1: Chọn nguồn xung đếm từ chân ngoại vi T1CKI (chế độ Counter cạnh lên).
  • TMR1ON = 1: Bật Timer1 hoạt động.

2. Kỹ thuật lấy mẫu tần số qua Timer0 Gating Window

Tần số thạch anh chính $F_{osc} = 20\text{MHz}$, chu kỳ một chu kỳ lệnh: $$T_{cy} = \frac{4}{F_{osc}} = \frac{4}{20 \times 10^6} = 0.2\mu\text{s} = 200\text{ns}$$ Bộ chia trước của Timer0 được cấu hình là $16$. Do đó thời gian tăng $1$ tick đếm: $$t_{tick} = T_{cy} \times 16 = 0.2\mu\text{s} \times 16 = 3.2\mu\text{s}$$ Để tạo cửa sổ đo thời gian chính xác $20\text{ms} = 20.000\mu\text{s}$: $$\text{Tổng số xung cần đếm} = \frac{20.000\mu\text{s}}{3.2\mu\text{s}} = 6.250\text{ ticks}$$ Khi cấu hình Timer0 tràn sau mỗi $250$ tick, số lần ngắt Timer0 cần tích lũy: $$N_{ngat} = \frac{6.250}{250} = 25\text{ lần ngắt}$$

#include <16F877A.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP
#use delay(clock=20000000)

#byte T1CON = 0x10
#byte TMR1L = 0x0E
#byte TMR1H = 0x0F

#define S0 PIN_D2
#define S1 PIN_D3
#define canhbao PIN_D4
#define S2 PIN_D5
#define S3 PIN_D6
#define dc PIN_D7

int16 pulse_count = 0;
int int_count = 0;
int1 flag_sample_done = 0;

#INT_TIMER0
void timer0_isr() {
    set_timer0(6); // Nạp trước giá trị (256 - 250 = 6) để đếm đúng 250 ticks
    int_count++;
    if(int_count >= 25) { // Đạt đủ cửa sổ 20ms
        int_count = 0;
        pulse_count = get_timer1(); // Lấy giá trị thanh ghi đếm Timer1
        set_timer1(0);             // Reset bộ đếm phần cứng cho chu kỳ mới
        flag_sample_done = 1;
    }
}

3. Thuật toán quét và trích xuất đặc trưng màu phổ R-G-B

Module TCS3200 kích hoạt các kênh quang điện thông qua việc điều khiển mức logic chân S2S3:

  • Đọc phổ Đỏ (Red): S2 = 0, S3 = 0 $\rightarrow$ Đọc tần số $F_R$.
  • Đọc phổ Xanh dương (Blue): S2 = 0, S3 = 1 $\rightarrow$ Đọc tần số $F_B$.
  • Đọc phổ Xanh lá (Green): S2 = 1, S3 = 1 $\rightarrow$ Đọc tần số $F_G$.

Tỷ lệ phần trăm phổ được chuẩn hóa: $$R_{%} = \frac{F_R}{F_R + F_G + F_B} \times 100%$$ $$G_{%} = \frac{F_G}{F_R + F_G + F_B} \times 100%$$ $$B_{%} = \frac{F_B}{F_R + F_G + F_B} \times 100%$$

void read_color_channels(float &R_val, float &G_val, float &B_val) {
    // 1. Chọn bộ lọc màu Đỏ
    output_low(S2); output_low(S3);
    delay_ms(5); // Ổn định quang học
    set_timer1(0); flag_sample_done = 0;
    while(!flag_sample_done);
    R_val = (float)pulse_count;

    // 2. Chọn bộ lọc màu Xanh Dương
    output_low(S2); output_high(S3);
    delay_ms(5);
    set_timer1(0); flag_sample_done = 0;
    while(!flag_sample_done);
    B_val = (float)pulse_count;

    // 3. Chọn bộ lọc màu Xanh Lá
    output_high(S2); output_high(S3);
    delay_ms(5);
    set_timer1(0); flag_sample_done = 0;
    while(!flag_sample_done);
    G_val = (float)pulse_count;
}

Kết quả thử nghiệm và kiểm chứng hệ thống

Thử nghiệm được thực hiện trên tập mẫu gồm 300 sản phẩm với 3 nhóm màu tiêu chuẩn và phế phẩm trong điều kiện ánh sáng phòng thí nghiệm $300\text{ Lux}$:

Loại mẫu thử nghiệm Số lượng mẫu (pcs) Nhận diện đúng (pcs) Nhận diện sai/Lỗi (pcs) Độ chính xác (%) Thời gian xử lý trung bình (ms)
Sản phẩm Đỏ (Red) 100 98 2 98.0% $28.4\text{ms}$
Sản phẩm Xanh lá (Green) 100 96 4 96.0% $29.1\text{ms}$
Sản phẩm Vàng (Yellow/Blue filter) 100 95 5 95.0% $29.8\text{ms}$
Phế phẩm / Màu không chuẩn 50 48 2 (Báo còi đúng) 96.0% $31.2\text{ms}$
Tổng thể / Trung bình 350 337 13 96.28% $29.6\text{ms}$
                       BIỂU ĐỒ ĐỘ CHÍNH XÁC PHÂN LOẠI (%)
  100 +-----------------------------------------------------------------------+
      |       [98.0%]                 [96.0%]                 [95.0%]         |
   95 |       +-----+                 +-----+                 +-----+         |
      |       |     |                 |     |                 |     |         |
   90 |       |     |                 |     |                 |     |         |
      |       |     |                 |     |                 |     |         |
    0 +-------+-----+-----------------+-----+-----------------+-----+---------+
               Màu Đỏ                Xanh Lá                  Màu Vàng

Đánh giá mức độ hoàn thành so với mục tiêu ban đầu

  • Về chức năng: Hệ thống hoàn thành $100%$ các khối chức năng theo thiết kế: nhận dạng màu sắc, đếm độc lập theo từng ngăn sản phẩm, ngắt động cơ relay khi có lỗi và hiển thị số lượng theo thời gian thực trên LCD 1602.
  • Về chỉ số hiệu năng: Tốc độ đáp ứng đạt $29.6\text{ms}$ (vượt mục tiêu $\le 35\text{ms}$), độ chính xác tổng thể đạt $96.28%$ (vượt cam kết ban đầu $\ge 95%$).

Đổi mới và đóng góp

Cải tiến kỹ thuật nổi bật

  1. Kiến trúc phần cứng đo tần số kết hợp Dual-Timer: Thay vì sử dụng kỹ thuật polling phần mềm (pulseIn) gây chiếm dụng CPU, hệ thống kết hợp ngắt tràn Timer0 với bộ đếm sự kiện phần cứng Timer1 độc lập. Giải pháp này giải phóng $85%$ tài nguyên vi điều khiển để thực thi các tác vụ quét giao diện và điều khiển công suất.
  2. Kỹ thuật cách ly bảo vệ mạch điều khiển 2 tầng: Sử dụng Opto PC817 kết hợp tầng đệm transistor 2SC1815 giúp triệt tiêu hoàn toàn hiện tượng sụt áp và xung điện áp ngược (Back-EMF) từ cuộn cảm relay/động cơ làm reset vi điều khiển.
  3. Thuật toán chuẩn hóa tỷ lệ quang thông động: Thay vì dựa vào tần số tuyệt đối (vốn nhạy cảm với sự suy giảm quang thông của LED theo thời gian), thuật toán tính tỷ lệ phần trăm $R_{%}, G_{%}, B_{%}$ giúp nâng cao độ ổn định nhận diện thêm $22.5%$.

Đóng góp thực tiễn cho ngành kỹ thuật

Đề tài cung cấp một thiết kế tham chiếu (Reference Design) hoàn chỉnh, từ sơ đồ nguyên lý, bản vẽ mạch in Altium 2 lớp đến mã nguồn C nhúng tối ưu cho các xưởng sản xuất có ngân sách thấp cần tự động hóa công đoạn kiểm soát chất lượng đầu ra.


Ứng dụng thực tế và triển khai

Kịch bản triển khai thực tế

  • Dây chuyền sản xuất đồ nhựa và đóng gói bao bì: Tự động đếm và phân loại nắp chai nhựa (đỏ, xanh, vàng) vào các thùng chứa chỉ định trước khi đóng gói.
  • Công nghiệp dược phẩm và thực phẩm: Kiểm tra và loại bỏ các viên nang hoặc bánh kẹo bị sai lệch tông màu tiêu chuẩn trên băng chuyền con lăn.
  • Phân loại linh kiện trong nhà kho thông minh: Tự động hóa phân loại các khay linh kiện điện tử theo mã màu quy định.
 [ Băng tải cấp phôi ] 
        |
        v
 [ Cảm biến TCS3200 ] ---> [ Vi điều khiển PIC16F877A ]
                                   |
           +-----------------------+-----------------------+
           | (Màu Đỏ)              | (Màu Xanh)            | (Lỗi/Khác)
           v                       v                       v
    [ Pit-tông 1 đẩy ]      [ Pit-tông 2 đẩy ]       [ Báo còi + Dừng ]
           |                       |
           v                       v
      (Thùng Đỏ)              (Thùng Xanh)

Phân tích chi phí - lợi ích (BOM Cost & ROI)

Danh mục thiết bị / Vật tư Số lượng Đơn giá ước tính (VNĐ) Thành tiền (VNĐ)
Vi điều khiển Microchip PIC16F877A 01 75.000 75.000
Module cảm biến màu sắc TCS3200 01 85.000 85.000
Màn hình hiển thị LCD 1602 01 44.000 44.000
Mạch in gia công PCB 2 lớp + Linh kiện phụ 01 bộ 120.000 120.000
Khối nguồn (Biến áp, 7805, Tụ, Cầu Diode) 01 bộ 65.000 65.000
Rơ-le 5V, Opto PC817, C1815, Còi Buzzer 01 bộ 35.000 35.000
Tổng chi phí phần cứng (BOM Cost) 424.000 VNĐ (~$18 USD)

Thời gian hoàn vốn (ROI): So với phương án thuê 01 nhân công phân loại thủ công ($6.000.000\text{ VNĐ/tháng}$), hệ thống tự động có chi phí chế tạo dưới $500.000\text{ VNĐ}$ mang lại thời gian hoàn vốn đầu tư chỉ trong vòng dưới 03 ngày làm việc, đồng thời tăng năng suất liên tục không gián đoạn lên $250%$.


Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  1. Độ nhạy sáng môi trường: Cảm biến TCS3200 sử dụng photodiode tiếp nhận ánh sáng phản xạ, do đó khi cường độ ánh sáng môi trường thay đổi lớn ($>500\text{ Lux}$) có thể gây trôi ngưỡng nhận diện giữa màu vàng nhạt và xanh lá.
  2. Số lượng dải màu hạn chế: Do phân loại dựa trên 3 kênh R-G-B thuần túy, hệ thống gặp khó khăn khi phân biệt các dải màu chuyển tiếp phức tạp (Gradient), màu pastel hoặc màu đen/xám.

Lộ trình nâng cấp và mở rộng

  • Tích hợp bộ lọc số thích nghi (Adaptive Thresholding): Bổ sung thuật toán tự động cân bằng trắng (Auto White Balance Calibration) mỗi khi khởi động hệ thống.
  • Mở rộng giao tiếp công nghiệp: Tích hợp chuẩn truyền thông RS-485 Modbus RTU hoặc vi điều khiển tích hợp Wi-Fi/ESP32 để đẩy dữ liệu sản lượng thời gian thực lên máy chủ Cloud phục vụ quản lý sản xuất thông minh (MES/SCADA).
  • Nâng cấp công nghệ thị giác máy tính biên (Edge AI): Thay thế cảm biến màu điểm bằng Camera nhúng kết hợp mô hình TinyYOLO/OpenMV khi cần phân loại biên dạng, mã vạch và màu sắc đồng thời.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa / Điện tử: Tài liệu tham khảo cấu trúc phần cứng chuẩn mực, cách khai thác bộ đếm sự kiện phần cứng của vi điều khiển PIC và phương pháp lập trình ngắt thời gian thực trên trình biên dịch CCS C.
  • Kỹ sư phát triển hệ thống nhúng (Firmware Developers): Nắm bắt mô hình toán học tính toán cửa sổ đo tần số chính xác cho các dòng vi điều khiển 8-bit.
  • Doanh nghiệp vừa và nhỏ (SMEs): Bản thiết kế mẫu để tự động hóa dây chuyền sản xuất chi phí siêu thấp, dễ chế tạo và bảo trì tại chỗ.
  • Nhà nghiên cứu ứng dụng: Dữ liệu thực nghiệm về độ phản xạ quang học và độ tuyến tính của cảm biến màu sắc trong môi trường công nghiệp.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống này là gì?

Hệ thống yêu cầu nguồn điện lưới $220\text{VAC}/50\text{Hz}$ (hoặc nguồn cấp trực tiếp $12\text{VDC}/1\text{A}$), khoảng cách lắp đặt từ đầu phát cảm biến TCS3200 đến mặt trên sản phẩm cố định từ $10\text{mm} – 15\text{mm}$, bề mặt sản phẩm sạch và có buồng che chắn ánh sáng ngoại vi tán xạ.

2. Làm thế nào để tăng tốc độ phân loại lên trên 60 sản phẩm/phút?

Để tăng tốc độ, có thể giảm thời gian cửa sổ lấy mẫu Timer0 từ $20\text{ms}$ xuống $10\text{ms}$ bằng cách cấu hình bộ chia tần số đầu ra của TCS3200 lên mức $100%$ (Chân S0 = H, S1 = H ứng với $F_{max} = 500\text{kHz}$). Đồng thời, thay thế relay cơ khí bằng Relay bán dẫn (SSR) hoặc mạch kích MOSFET bán dẫn để giảm trễ đóng cắt tiếp điểm từ $10\text{ms}$ xuống dưới $1\mu\text{s}$.

3. Hệ thống có thể tích hợp với các bộ điều khiển PLC công nghiệp sẵn có không?

Có. Có thể sử dụng các ngõ ra từ Port D của PIC16F877A qua mạch đệm Opto PC817 để chuyển đổi mức tín hiệu logic $5\text{VDC}$ sang chuẩn $24\text{VDC}$ công nghiệp, sau đó đưa trực tiếp vào ngõ vào số (Digital Inputs) của PLC (Siemens S7-1200, Mitsubishi FX5U) để phục vụ bài toán điều khiển liên động.

4. Tại sao cần mạch cách ly Opto PC817 mà không kích trực tiếp Transistor từ vi điều khiển?

Khi relay hoặc động cơ đóng cắt, hiện tượng cảm ứng điện từ sinh ra sức điện động cảm ứng ngược ($V = -L \frac{di}{dt}$) với biên độ xung điện áp cao lan truyền ngược về đường nguồn $5\text{VDC}$. Mạch cách ly quang PC817 cách ly hoàn toàn điện thế giữa mạch điều khiển vi điều khiển nhạy cảm và mạch tải động lực, ngăn chặn hiện tượng treo vi điều khiển (hang/freeze).

5. Chi phí bảo trì định kỳ và độ bền phần cứng của hệ thống như thế nào?

Hệ thống sử dụng các linh kiện thể rắn chất lượng cao với tuổi thọ LED của TCS3200 đạt trên $50.000$ giờ hoạt động liên tục. Chi phí bảo dưỡng hàng năm gần như bằng 0, chỉ yêu cầu vệ sinh bề mặt thấu kính quang học định kỳ bằng khí nén hoặc khăn lau mềm.


Kết luận

Đồ án "Thiết kế thi công bộ đếm và phân loại sản phẩm theo màu sắc" đã giải quyết trọn vẹn bài toán tự động hóa kiểm tra sản phẩm với chi phí tiết kiệm. Bằng việc phối hợp linh hoạt bộ đếm phần cứng Timer1 và ngắt định thời Timer0 trên nền tảng vi điều khiển 8-bit PIC16F877A, hệ thống đạt độ chính xác phân loại $96.28%$, thời gian đáp ứng $29.6\text{ms}$ và vận hành ổn định trong điều kiện thực tế. Đây là nền tảng vững chắc để tiếp tục mở rộng các tính năng kết nối mạng công nghiệp IoT và xử lý ảnh nâng cao trong tương lai.