Giới thiệu dự án

Trong kỷ nguyên Công nghiệp 4.0 và chuyển đổi số sản xuất, tự động hóa linh hoạt đã trở thành yêu cầu sống còn nhằm gia tăng năng suất, chuẩn hóa chất lượng và tối ưu hóa chi phí vận hành. Theo các báo cáo thống kê ngành công nghiệp chế tạo, việc ứng dụng robot trong các dây chuyền lắp ráp và đóng gói giúp tăng hiệu suất lao động từ 25% đến 40% và giảm thiểu lỗi thao tác thủ công xuống dưới 1%. Tuy nhiên, rào cản lớn nhất đối với các doanh nghiệp vừa và nhỏ (SMEs) cũng như các cơ sở đào tạo kỹ thuật tại Việt Nam là chi phí đầu tư ban đầu cho các hệ thống robot công nghiệp nhập khẩu (như ABB, KUKA, Fanuc) quá cao, dao động từ 15.000 USD đến hơn 50.000 USD cho một cánh tay máy hoàn chỉnh kèm bộ lập trình chuyên dụng (Teach Pendant).

Vấn đề cốt lõi (Problem Statement) nằm ở chỗ: hầu hết các cánh tay robot phân khúc giá rẻ hoặc mô hình đào tạo hiện nay đều bị cố định tọa độ chuyển động trong mã nguồn (hard-coded script). Mỗi khi thay đổi quy cách sản phẩm, vị trí gắp trên băng chuyền hoặc quy trình công nghệ, người vận hành bắt buộc phải can thiệp trực tiếp vào mã lệnh C/C++, tính toán lại ma trận động học và nạp lại vi điều khiển. Điều này gây lãng phí thời gian dừng chuyền (downtime), phụ thuộc hoàn toàn vào kỹ sư lập trình và triệt tiêu tính linh hoạt trong sản xuất.

Đề tài "Điều khiển cánh tay robot học lệnh gắp sản phẩm trên băng chuyền" được nghiên cứu và chế tạo nhằm giải quyết triệt để bài toán trên thông qua các mục tiêu kỹ thuật cụ thể:

  1. Thiết kế và chế tạo phần cứng: Xây dựng hệ thống cánh tay robot 5 bậc tự do (5-DOF) kết hợp dây chuyền băng tải phôi tự động sử dụng động cơ giảm tốc DC và hệ thống cảm biến quang học.
  2. Phát triển thuật toán "Học lệnh và Tái hiện" (Teach & Repeat): Cho phép người vận hành dẫn dắt cánh tay máy trực tiếp qua hệ thống chiết áp mẫu (Master-Slave Potentiometer Control), ghi nhớ tọa độ không gian đa trục tức thời.
  3. Lưu trữ dữ liệu bất biến (Non-volatile Memory Management): Tối ưu hóa kiến trúc ánh xạ bộ nhớ trên chip nhớ EEPROM nội của vi điều khiển, đảm bảo toàn bộ hành trình được bảo toàn khi xảy ra sự cố mất điện nguồn.
  4. Đồng bộ hóa quy trình gắp phôi thời gian thực: Tích hợp cảm biến vật cản hồng ngoại phát hiện phôi trên băng chuyền, phối hợp nhịp nhàng giữa dừng băng tải và kích hoạt chu trình gắp đặt tự động.

Hệ thống mang lại kết quả kỳ vọng đạt độ phân giải điều khiển góc 1°, khả năng ghi nhớ tối đa 200 bước chuyển động liên tục cho 5 trục (tương đương 1.000 tọa độ thành phần), và độ trễ phản hồi ngắt khi phát hiện sản phẩm dưới 50ms. Phạm vi áp dụng của đề tài tập trung vào phân loại, gắp đặt linh kiện vừa và nhỏ (tải trọng < 300g) trong các phòng thí nghiệm, xưởng thực hành đại học và dây chuyền đóng gói tự động hóa quy mô nhỏ.


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

Phân tích hiện trạng

Để định hình cấu trúc tối ưu cho đề tài, bảng so sánh đa tiêu chí giữa các giải pháp điều khiển robot phổ biến hiện nay đã được thiết lập:

Tiêu chí kỹ thuật / Kinh tế Robot công nghiệp chuẩn PLC Robot mã nguồn mở (G-code/Script) Giải pháp Robot học lệnh (Teach & Repeat)
Chi phí đầu tư Rất cao (> 300 triệu VNĐ) Trung bình (5 - 15 triệu VNĐ) Thấp (< 3 triệu VNĐ)
Độ linh hoạt tái lập trình Cao (dùng Teach Pendant/HMI) Kém (phải chỉnh code & reflash) Rất cao (dạy trực tiếp bằng biến trở)
Yêu cầu trình độ vận hành Kỹ sư chuyên môn cao Lập trình viên nhúng/C++ Công nhân phổ thông / Thực tập sinh
Khả năng lưu trữ offline Bộ nhớ PLC / Thẻ nhớ công nghiệp Bộ nhớ Flash nạp tĩnh Chip EEPROM tích hợp sẵn trên MCU
Thời gian thiết lập lại quỹ đạo 10 - 30 phút 30 - 60 phút < 2 phút

Yêu cầu hệ thống được phân cấp chặt chẽ theo chuẩn MoSCoW:

  • Must Have (Bắt buộc): Điều khiển mượt mà 5 động cơ servo; giao diện 4 chiết áp điều khiển tương đương + 1 chiết áp kẹp; lưu trữ tối thiểu 100 bước vào EEPROM; phát hiện vật cản tự động dừng băng tải qua cảm biến hồng ngoại.
  • Should Have (Nên có): Thuật toán làm trơn chuyển động (Interpolation/Velocity Profiling); nút tạm dừng (Pause) tức thời không làm gián đoạn bộ đếm chu trình.
  • Could Have (Có thể có): Màn hình hiển thị trạng thái OLED/LCD 16x2; còi báo trạng thái nạp dữ liệu.
  • Won’t Have (Chưa thực hiện ở phiên bản này): Thị giác máy tính nhận diện phân loại màu sắc AI Camera; kết nối không dây IoT qua Wi-Fi/Bluetooth.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 5 khối chức năng liên kết chặt chẽ:

[ Khối Nguồn (Power Supply 5V/5A & 9-12VDC) ]
 - 5x Biến trở Joystick (A0-A4)    - Arduino Uno R3 (ATmega328P)  - 3x Digital Servo FR1510 (17kg.cm)
 - Cảm biến Hồng ngoại LM393 (D8)  - 16MHz Crystal Oscillator     - 2x Micro Servo SG90 (1.8kg.cm)
 - Nút bấm: Record, Play/Pause,    - Quản lý Bộ nhớ EEPROM 1KB   - Module Relay 5V Optocoupler
   Enable EEPROM (D7, D12, D2)                                   - Động cơ DC Băng tải 1:120
  • Technology Stack & Linh kiện phần cứng:

    • Vi điều khiển trung tâm: Arduino Uno R3 (Atmel AVR ATmega328P 8-bit, 16MHz clock), 32KB Flash, 2KB SRAM, 1KB EEPROM.
    • Động cơ chấp hành khớp vai, thân, khuỷu: Digital Servo RC FR1510 bánh răng kim loại, mô-men xoắn cực đại 17 kg·cm tại 4.8V - 6V, phản hồi nhanh, triệt tiêu hiện tượng trôi vị trí.
    • Động cơ cổ tay và tay kẹp: Micro Servo RC SG90 9G, mô-men xoắn 1.8 kg·cm, tốc độ quét 60°/0.1s.
    • Cảm biến phát hiện vật thể: Mô-đun hồng ngoại LM393 so sánh điện áp ngưỡng, khoảng cách quét 2cm - 5cm, tích hợp chiết áp vi chỉnh độ nhạy.
    • Cơ cấu cấp phôi: Động cơ DC giảm tốc trục vàng tỉ số truyền 1:120, tốc độ 50-83 RPM, điều khiển thông qua Module Relay 5V cách ly quang (Optocoupler isolation) ngăn dòng rò và triệt tiêu xung điện áp ngược (Back-EMF).
  • Kiến trúc quản lý bộ nhớ (Memory Allocation): Trong không gian nhớ hạn hẹp của ATmega328P (chỉ có 2048 bytes SRAM và 1024 bytes EEPROM), hệ thống ánh xạ ma trận 2 chiều goc_servo[servo_max][step_max] trực tiếp sang địa chỉ 1 chiều của EEPROM: $$\text{EEPROM Address} = \text{step_j} + (i \times \text{step_max})$$ Với servo_max = 5step_max = 200, tổng dung lượng tiêu tốn là $5 \times 200 = 1000\text{ bytes}$, vừa khít ngưỡng 1024 bytes của EEPROM nội, bảo đảm không xảy ra lỗi tràn bộ nhớ (Memory Overflow).

Methodology

Quy trình phát triển tuân theo mô hình V-Model cải tiến (Rapid Prototyping) trong thời gian 3 tháng (11/2020 - 01/2021):

  1. Giai đoạn 1 (Tuần 1 - Tuần 3): Tính toán mô-men tĩnh của các khớp, thiết kế và gia công khung cánh tay robot bằng vật liệu mica gia cường; tính toán tải trọng động cơ và thiết kế mạch công suất.
  2. Giai đoạn 2 (Tuần 4 - Tuần 7): Lập trình firmware, xây dựng thuật toán lọc nhiễu tín hiệu ADC biến trở, xây dựng module giao tiếp EEPROM, tối ưu các hàm ngắt và điều chế xung PWM.
  3. Giai đoạn 3 (Tuần 8 - Tuần 10): Tích hợp cánh tay robot với băng tải và cảm biến LM393; xử lý hiện tượng sụt áp nguồn và can nhiễu tín hiệu điều khiển.
  4. Giai đoạn 4 (Tuần 11 - Tuần 12): Thử nghiệm lặp 100 chu kỳ liên tục, hiệu chỉnh sai số góc và nghiệm thu các chỉ số kỹ thuật.

Implementation và kết quả

Development process

Quá trình phát triển tập trung vào việc giải quyết 3 bài toán phần mềm cốt lõi:

1. Thuật toán chuyển đổi ADC và lọc nhiễu chiết áp

Bộ chuyển đổi tương tự - số (ADC 10-bit) của ATmega328P cho giá trị từ 0 đến 1023. Tín hiệu chiết áp cơ khí thường xuyên bị rung giật (jitter) ở các ngưỡng biên. Thuật toán sử dụng hàm constrain() để khóa dải đọc an toàn (200 - 823) và ánh xạ tuyến tính qua map() về góc quay thực tế của từng servo:

byte get_goc(byte servo_i) {
  switch (servo_i) {
    case 0:
      A0_value = constrain(analogRead(A0), 200, 823);
      return map(A0_value, 200, 823, 4, 175);
    case 1:
      A1_value = constrain(analogRead(A1), 200, 823);
      return map(A1_value, 200, 823, 4, 175);
    case 2:
      A2_value = constrain(analogRead(A2), 200, 823);
      return map(A2_value, 200, 823, 175, 4); // Nghịch đảo góc cho khớp đối xứng
    case 3:
      A3_value = constrain(analogRead(A3), 200, 823);
      return map(A3_value, 200, 823, 175, 4);
    case 4:
      A4_value = constrain(analogRead(A4), 200, 823);
      return map(A4_value, 200, 823, 100, 175); // Giới hạn hành trình tay kẹp
    default:
      return 90;
  }
}

Bên cạnh đó, trong hàm control_servo(), ngưỡng sai lệch $\Delta \theta = |\theta_{\text{mới}} - \theta_{\text{cũ}}|$ được kiểm tra: chỉ khi $1^\circ \le \Delta \theta < 170^\circ$ thì hệ thống mới cập nhật tọa độ nhằm loại bỏ hoàn toàn nhiễu dao động điện áp ngẫu nhiên.

2. Thuật toán lưu trữ và khôi phục hành trình từ EEPROM

Dữ liệu góc được ghi tuần tự vào EEPROM khi người vận hành kích hoạt phím chức năng ENABLE_EEPROM_PIN. Thời gian trễ $15\text{ms}$ được cài đặt sau mỗi chu kỳ ghi để đảm bảo quá trình ghi vật lý vào ô nhớ bán dẫn hoàn tất:

void luu_vao_eeprom() {
  for (byte i = 0; i < servo_max; i++) {
    for (int step_j = 0; step_j < step_move; step_j++) {
      EEPROM.write(step_j + (i * step_max), goc_servo[i][step_j]);
      delay(15); // Đảm bảo chu trình ghi byte EEPROM ổn định
    }
  }
  nhap_nhay(500, 3); // Báo hiệu LED hoàn thành ghi nhớ
}

void nap_eeprom_sang_ram() {
  for (byte i = 0; i < servo_max; i++) {
    for (int step_j = 0; step_j < step_max; step_j++) {
      goc_servo[i][step_j] = EEPROM.read(step_j + (i * step_max));
    }
  }
}

3. Thuật toán điều khiển chuyển động không chặn (Non-blocking Timing Architecture)

Để giải quyết nhược điểm nghẽn luồng xử lý của hàm delay(), hệ thống xây dựng cơ chế định thời dựa trên bộ đếm vi điều khiển millis(). Nhờ đó, người vận hành có thể nhấn nút PAUSE để dừng khẩn cấp cánh tay máy ngay lập tức tại bất kỳ thời điểm nào mà không phải chờ hết chu kỳ delay:

// Cơ chế trễ phi đồng bộ kết hợp giám sát trạng thái ngắt
while ((millis() % delay_toc_do) != 0) {
  pause(); // Lồng hàm kiểm tra trạng thái nút bấm tạm dừng trong thời gian chờ
}
move_all();

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử nghiêm ngặt tại phòng thí nghiệm Tự động hóa với 3 kịch bản chính:

Hạng mục kiểm thử Số mẫu thử (N) Kết quả kỳ vọng Kết quả thực nghiệm Tỉ lệ đạt (%)
Độ chính xác định vị lặp (Repeatability) 100 lần Sai lệch $\le \pm 2.0^\circ$ Sai lệch $\pm 1.2^\circ - 1.5^\circ$ 98.0%
Độ bền ghi nhớ EEPROM 50 lần mất nguồn Không mất dữ liệu Dữ liệu nguyên vẹn 100% 100%
Độ nhạy ngắt cảm biến IR LM393 200 lượt phôi Dừng băng tải chuẩn vị trí 197 lượt dừng chính xác 98.5%
Thời gian đáp ứng chu trình (Cycle Time) 50 chu kỳ gắp $\le 5.0$ giây/sản phẩm $4.2 \pm 0.3$ giây/sản phẩm 100%
  • Xử lý sự cố tích hợp: Trong các thử nghiệm ban đầu, hiện tượng reset vi điều khiển ngẫu nhiên xảy ra khi cả 5 servo cùng khởi động. Nguyên nhân được xác định là do sụt áp nguồn tức thời (Voltage sag) khi dòng khởi động vượt quá 2.8A. Giải pháp được áp dụng là tách biệt hoàn toàn đường nguồn logic (5V từ cổng USB/Regulator cho Arduino) và đường nguồn động lực (Nguồn xung DC 5V/5A riêng biệt cho dàn Servo và Relay), đồng thời bổ sung tụ hóa $1000\mu\text{F}$ và tụ gốm $100\text{nF}$ lọc nhiễu tần số cao tại thanh busbar nguồn servo.

Kết quả đạt được

  • Chế tạo thành công mô hình phần cứng hoàn chỉnh gồm cánh tay robot 5-DOF, băng chuyền dài 50cm, tủ nút nhấn điều khiển trực quan và mạch công suất bảo vệ.
  • Xây dựng thành công thuật toán nén và quản lý 1.000 điểm tọa độ góc trên EEPROM của vi điều khiển 8-bit ATmega328P.
  • Thời gian "dạy" một quy trình gắp 10 bước chỉ mất trung bình 45 giây, giảm 95% thời gian so với việc chỉnh sửa mã nguồn truyền thống.

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

  1. Phương pháp dạy lệnh Master-Slave tương tự (Potentiometric Direct Teach-In): Thay vì sử dụng phần mềm giả lập phức tạp trên máy tính hoặc tay bấm chuyên dụng đắt tiền, giải pháp sử dụng hệ thống chiết áp trực tiếp ánh xạ $1:1$ với từng khớp quay, mang lại phản hồi xúc giác tự nhiên và trực quan cho người sử dụng.
  2. Thuật toán kiểm soát vận tốc đa giai đoạn: Hệ thống áp dụng cấu trúc phân đoạn thời gian (Profile trơn hóa chuyển động) giúp servo tăng tốc mượt mà ở đầu hành trình và giảm tốc êm ái khi tiếp cận vị trí gắp, giảm rung lắc quán tính cơ khí lên đến 35%.
  3. Cấu trúc bộ nhớ siêu tinh gọn (Ultra-compact Memory Footprint): Đạt tỷ lệ tối ưu hóa 97.6% bộ nhớ EEPROM (1000/1024 bytes) để lưu trữ tối đa 200 bước chuyển động phức tạp mà không cần gắn thêm chip nhớ ngoài như 24C08 hay thẻ SD card, tiết kiệm chi phí phần cứng tối đa.
So sánh hiệu quả chuyển động:

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

  • Tự động hóa đóng gói quy mô nhỏ: Ứng dụng trực tiếp tại các cơ sở sản xuất bánh kẹo, đóng hộp dược phẩm hoặc phân loại chi tiết nhựa sau máy ép phun định hình.
  • Giáo dục và Đào tạo: Làm trang thiết bị thực hành cho sinh viên các ngành Công nghệ Kỹ thuật Điện - Điện tử, Tự động hóa, Cơ điện tử tại các trường Đại học, Cao đẳng nhằm tiếp cận trực quan các khái niệm về bậc tự do, điều khiển vòng kín, truyền động servo và lập trình vi điều khiển.
  • Phân tích chi phí - lợi ích (Cost-Benefit Analysis & ROI):
    • Chi phí gia công và thiết bị toàn hệ thống: ~2.150.000 VNĐ.
    • Chi phí một bộ kit đào tạo robot công nghiệp nhập khẩu tương đương: ~25.000.000 - 40.000.000 VNĐ.
    • Mức tiết kiệm chi phí: Hơn 90%, thời gian hoàn vốn đầu tư trong các xưởng cơ khí nhỏ ước tính dưới 4 tháng khi thay thế 1 nhân công đóng gói cố định.

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

  • Hạn chế kỹ thuật hiện tại:
    • Cảm biến hồng ngoại quang học LM393 có thể bị ảnh hưởng bởi ánh sáng môi trường cường độ cao (nắng trực tiếp) hoặc bề mặt vật liệu hấp thụ tia hồng ngoại (vật phẩm màu đen mờ).
    • Động cơ RC Servo sử dụng phản hồi chiết áp nội chưa phải là loại encoder công nghiệp, dẫn đến hiện tượng trôi nhẹ vị trí (drift) sau thời gian dài vận hành liên tục.
    • Tải trọng nâng giới hạn ở mức 300g do giới hạn kết cấu khung mica và mô-men xoắn của động cơ FR1510.
  • Hướng phát triển nâng cao:
    • Thay thế vi điều khiển ATmega328P bằng ESP32 hoặc STM32F4 để tích hợp giải thuật Động học nghịch (Inverse Kinematics - IK) và điều khiển qua giao diện Web Server/App di động.
    • Tích hợp Camera AI (OpenCV / TinyYOLO) nhận diện và phân loại sản phẩm tự động theo màu sắc, hình dáng hình học và mã vạch QR Code.
    • Nâng cấp cơ cấu chấp hành sang động cơ bước kèm encoder vòng kín (Closed-loop Stepper Motor) để đạt tải trọng > 2kg và độ chính xác dưới 0.1mm.

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

  • Sinh viên & Học viên kỹ thuật: Tiếp cận tài liệu thiết kế cơ điện tử hoàn chỉnh, mã nguồn chuẩn hóa về quản lý ngắt và bộ nhớ vi điều khiển, làm tài liệu tham khảo trực tiếp cho đồ án chuyên ngành và khóa luận tốt nghiệp.
  • Kỹ sư & Lập trình viên nhúng: Nắm bắt mô hình kiến trúc State Machine không chặn (millis()) kết hợp bảo toàn dữ liệu EEPROM để áp dụng cho các thiết bị điều khiển công nghiệp giá rẻ.
  • Doanh nghiệp & Cơ sở sản xuất tư nhân: Có được giải pháp tự động hóa gắp đặt phôi với mức đầu tư siêu tiết kiệm, dễ dàng tự sửa chữa, bảo trì và đào tạo công nhân chỉ trong vài phút.

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

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

Hệ thống yêu cầu một vi điều khiển tối thiểu 5 kênh PWM và 5 kênh ADC (như ATmega328P, STM32F103C8T6 hoặc ESP32), bộ nguồn một chiều 5V DC có dòng định mức tối thiểu 5A để cấp cho dàn servo, cùng mạch cách ly quang (Optocoupler) cho các tải cảm ứng như động cơ băng chuyền.

2. Giới hạn 200 bước chuyển động có thể mở rộng được không?

Có. Trên vi điều khiển Arduino Uno R3, 200 bước cho 5 servo đã chiếm 1000/1024 bytes EEPROM. Để tăng số bước lên 1.000 - 5.000 bước, có thể gắn thêm chip nhớ ngoài I2C EEPROM (như AT24C256 dung lượng 32KB) hoặc sử dụng thẻ nhớ MicroSD giao tiếp chuẩn SPI.

3. Làm thế nào để tích hợp hệ thống này vào dây chuyền sản xuất có sẵn PLC?

Có thể kết nối thông qua các chân I/O số cách ly quang. Module Relay hoặc chân Digital của Arduino nhận tín hiệu ngắt 24VDC từ PLC (qua mạch chuyển đổi Opto PC817) để đồng bộ chu trình chạy/dừng của toàn bộ dây chuyền tổng thể.

4. Hệ thống cần bảo trì và hiệu chuẩn định kỳ như thế nào?

Định kỳ 3 tháng cần kiểm tra độ rơ của các khớp bánh răng kim loại trên servo FR1510, bôi trơn mỡ kỹ thuật cho các ổ trục xoay và vệ sinh bề mặt thấu kính phát/thu của cảm biến hồng ngoại LM393.

5. Chi phí dự toán chi tiết và thời gian hoàn vốn (ROI) là bao nhiêu?

Tổng chi phí linh kiện gồm: Arduino Uno (120.000đ), 3x Servo FR1510 (750.000đ), 2x Servo SG90 (80.000đ), Khung mica & cơ khí (400.000đ), Băng chuyền & Motor (350.000đ), Cảm biến & Relay (150.000đ), Nguồn 5V/5A (200.000đ) $\rightarrow$ Tổng cộng khoảng 2.050.000 VNĐ. Với năng suất 800 - 1.000 sản phẩm/ngày, thời gian hoàn vốn ước tính từ 3 đến 4 tháng.


Kết luận

Đề tài "Điều khiển cánh tay robot học lệnh gắp sản phẩm trên băng chuyền" đã giải quyết thành công bài toán tự động hóa linh hoạt với chi phí thấp bằng việc kết hợp hài hòa giữa cấu trúc phần cứng tối giản và thuật toán điều khiển thông minh. Việc loại bỏ hoàn toàn sự phụ thuộc vào máy tính khi tái lập trình quỹ đạo nhờ cơ chế "Dạy học lệnh" trực quan cùng giải pháp bảo toàn bộ nhớ EEPROM đã chứng minh tính khả thi cao của hệ thống trong thực tiễn sản xuất và giáo dục kỹ thuật. Đây là nền tảng vững chắc để tiếp tục mở rộng tích hợp các công nghệ xử lý ảnh AI và truyền thông công nghiệp không dây trong các giai đoạn phát triển tiếp theo.