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

Trong xu thế phát triển của cuộc Cách mạng Công nghiệp 4.0, các công nghệ tự động hóa và trí tuệ nhân tạo ngày càng được ứng dụng sâu rộng vào các dây chuyền sản xuất cũng như đời sống xã hội. Trong cấu trúc của các dây chuyền sản xuất tự động, cánh tay robot đóng vai trò là cơ cấu chấp hành then chốt, thực hiện các thao tác thay thế hoặc hỗ trợ con người trong các môi trường làm việc độc hại, nguy hiểm hoặc đòi hỏi tính lặp lại cao. Nhóm nghiên cứu sinh viên thuộc ngành Kỹ thuật công nghệ điện – điện tử, Học viện Công nghệ Bưu chính Viễn thông (Cơ sở tại TP. Hồ Chí Minh) đã thực hiện đề tài "Chế tạo và điều khiển cánh tay robot bậc 3" (Mã số đề tài: 03-SV-2024-ĐT2) nhằm nghiên cứu, làm chủ công nghệ thiết kế cơ khí và thuật toán điều khiển nhúng trên quy mô mô hình thực nghiệm.

Theo trình bày của nhóm tác giả, lý do lựa chọn đề tài xuất phát từ bốn khía cạnh thực tiễn:

  1. Tính ứng dụng cao: Cánh tay robot có khả năng thực hiện các tác vụ thao tác không gian ba chiều trong công nghiệp và đời sống, góp phần tăng năng suất lao động và hạn chế rủi ro cho người vận hành.
  2. Nhu cầu phát triển công nghệ tự động hóa: Nghiên cứu đóng góp vào việc hoàn thiện, cải tiến các giải pháp điều khiển tự động phục vụ nhu cầu của các ngành công nghiệp hiện đại.
  3. Nâng cao kỹ năng chuyên môn: Quá trình thực hiện đề tài đòi hỏi sự tích hợp kiến thức liên ngành bao gồm cơ khí chính xác, thiết kế mạch điện tử và lập trình điều khiển tự động.
  4. Tiềm năng phát triển: Mô hình cơ bản là bước đệm kỹ thuật để tiếp tục mở rộng, nâng cấp lên các hệ thống robot có bậc tự do cao hơn và độ phức tạp lớn hơn trong tương lai.

Mục tiêu nghiên cứu: Đề tài hướng tới việc thiết kế và chế tạo một mô hình cánh tay robot có các đặc tính kỹ thuật:

  • Hoạt động linh hoạt trong không gian ba chiều (3D) với khả năng thực hiện các tác vụ gắp, đặt và di chuyển vật thể.
  • Đảm bảo độ chính xác vị trí trong quá trình thao tác chuyển động.
  • Duy trì tính ổn định và độ bền cơ - điện trong điều kiện hoạt động liên tục.
  • Tạo nền tảng mở cho các cải tiến giải thuật điều khiển và tích hợp cảm biến về sau.

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

  • Đối tượng nghiên cứu: Cơ cấu cơ khí cánh tay robot 3 bậc tự do (bổ sung 1 bậc chuyển động cho khâu kẹp cuối - end-effector), mạch điều khiển trung tâm sử dụng vi điều khiển và các module điều chế độ rộng xung (PWM), giao tiếp ngoại vi hiển thị và lưu trữ dữ liệu.
  • Phạm vi không gian: Nghiên cứu, lắp ráp, lập trình và thử nghiệm tại phòng thí nghiệm chuyên ngành thuộc Khoa Điện – Điện tử, Học viện Công nghệ Bưu chính Viễn thông Cơ sở tại TP. Hồ Chí Minh.
  • Phạm vi thời gian: Đề tài được triển khai và hoàn thành nghiệm thu vào tháng 10 năm 2024 (thuộc niên khóa nghiên cứu khoa học sinh viên 2021–2026).

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

Khung lý thuyết và mô hình toán học

Để giải quyết bài toán động học và điều khiển chuyển động của cánh tay robot, nhóm tác giả đã vận dụng các cơ sở lý thuyết chuyên ngành về robot học:

  • Ma trận biến đổi không gian thuần nhất (Homogeneous Transformation Matrix): Mô hình hóa vị trí và hướng của các khâu khớp thông qua ma trận chuyển đổi kích thước $4 \times 4$ dạng $T = \begin{bmatrix} R & d \ 0 & 1 \end{bmatrix}$, trong đó $R$ là ma trận xoay $3 \times 3$ và $d$ là vector tịnh tiến mô tả độ dịch chuyển vị trí giữa các hệ tọa độ.
  • Tham số Denavit - Hartenberg (DH): Thiết lập quan hệ hình học giữa hai trục khớp kế tiếp nhau thông qua góc quay khớp $\theta_i$, khoảng cách dọc trục $d$ và chiều cao khâu $h$. Ma trận chuyển tiếp được xác định theo công thức: $$T = \begin{bmatrix} \cos\theta & \sin\theta & 0 & d \ \sin\theta & \cos\theta & 0 & 0 \ 0 & 0 & 1 & h \ 0 & 0 & 0 & 1 \end{bmatrix}$$
  • Bài toán động học thuận và động học ngược (Forward & Inverse Kinematics): Tọa độ tổng thể của khâu tác động cuối ($T_{total}$) được xác định bằng tích chuỗi các ma trận chuyển đổi từng khớp: $T_{total} = T_1 \cdot T_2 \dots T_n$. Nhóm tác giả trình bày việc xác định vector mục tiêu $P_{target} = [x, y, z, 1]^T$ và giải hệ phương trình phi tuyến để tìm các góc quay khớp $\theta_i$ thông qua các giải thuật giải số (như phương pháp Newton-Raphson, giải tích hoặc thuật toán di truyền - Genetic Algorithm).
  • Lý thuyết điều khiển động cơ và điều chế độ rộng xung (PWM): Điều chỉnh điện áp hiệu dụng cấp cho động cơ servo thông qua tỷ lệ chu kỳ nhiệm vụ (duty cycle) của xung vuông, điều khiển chính xác vị trí góc quay từ 0° đến 180°.
  • Giao thức truyền thông nối tiếp $I^2C$ (Inter-Integrated Circuit): Ứng dụng đường truyền 2 dây gồm SDA (dây truyền dữ liệu nối tiếp) và SCL (dây xung đồng hồ nhịp) với các điện trở kéo lên nguồn ($4.7\text{ k}\Omega$) nhằm đồng bộ giao tiếp giữa vi điều khiển chủ với vi mạch điều khiển xung PCA9685 và module hiển thị LCD.
  • Kỹ thuật quản trị bộ nhớ bất biến EEPROM: Khai thác các phương thức ghi/đọc ô nhớ trực tiếp (read, write, update, get, put), cơ chế cập nhật chọn lọc dữ liệu nhằm kéo dài tuổi thọ ô nhớ (giới hạn 100.000 chu kỳ ghi) và thuật toán kiểm tra tính toàn vẹn dữ liệu bằng mã kiểm tra dư tuần hoàn (CRC - Cyclic Redundancy Check) với bảng tra 16 giá trị băm (crc_table[16]).

Phương pháp nghiên cứu thực tế

  • Phương pháp phân tích - tổng hợp tài liệu: Thu thập và đối sánh các nghiên cứu tiêu chuẩn trong nước và quốc tế về robot công nghiệp, kết cấu tay máy và kỹ thuật vi điều khiển.
  • Phương pháp thiết kế mô hình hóa và tích hợp phần cứng: Lựa chọn, phối ghép các linh kiện điện tử, cơ cấu truyền động servo, module mở rộng xung và mạch vi điều khiển.
  • Phương pháp lập trình và thuật toán nhúng: Xây dựng phần mềm điều khiển trên nền tảng ngôn ngữ C/C++ (Arduino IDE), tổ chức lưu đồ thuật toán phân nhánh menu, điều khiển vòng lặp servo và xử lý lưu/phát lại quỹ đạo thao tác.
  • Phương pháp thực nghiệm kiểm chứng: Đo đạc các thông số điện áp, chu kỳ xung PWM, kiểm tra tầm với và tính ổn định khi chạy lặp lại các chu trình gắp - đặt.

Nguồn dữ liệu

Dữ liệu nghiên cứu bao gồm:

  • Thông số kỹ thuật đo lường thực tế và từ bảng dữ liệu (datasheet) của các linh kiện: Vi điều khiển ATmega328P, động cơ servo SG90, IC mở rộng PCA9685, màn hình LCD 2004, IC mở rộng I/O PCF8574.
  • Chuỗi dữ liệu góc quay servo và địa chỉ bộ nhớ được trích xuất trực tiếp trong quá trình vận hành vi điều khiển.
  • 8 nguồn tài liệu tham khảo chuyên ngành tiêu chuẩn từ các nhà xuất bản uy tín (Bruno Siciliano et al., 2009; John J. Craig, 1986; Richard P. Paul; Nguyễn Tiến Đôn & Nguyễn Hữu Lộc, 2003; Lê Văn Uyển, 2001; PGS.TS Nguyễn Trường Thịnh, 2017; Trần Trọng Tín & Hồ Tấn Thanh, 2017; Nguyễn Mạnh Tiến, 2019).

Thiết kế và triển khai

Hệ thống điều khiển cánh tay robot được thiết kế theo cấu trúc module hóa phần cứng, phân tách giữa khối xử lý logic trung tâm, khối giao tiếp người - máy (HMI), khối phát xung công suất điều khiển chuyển động và khối cơ cấu chấp hành.

+-----------------------------------------------------------------------------------+
|                            VI ĐIỀU KHIỂN ARDUINO UNO R3                           |
|                               (MCU ATmega328P)                                    |
+-------------------+---------------------------------------+-----------------------+
                    | Bus I2C (SDA - A4, SCL - A5)          | Tín hiệu số / Tương tự
                    v                                       v
+---------------------------------------+   +---------------------------------------+
|            MODULE PCA9685             |   |            GIAO DIỆN HMI              |
|   (16 Kênh PWM 12-bit, Địa chỉ 0x40)  |   | - Màn hình LCD 2004 + Module PCF8574  |
+-------------------+-------------------+   |   (Địa chỉ I2C 0x27)                  |
                    | 4 Kênh PWM            | - 2 Cụm Joystick (A0, A1, A2, A3)     |
                    v                       | - Nút điều hướng (Chân số 3, 4, 5, 8) |
+---------------------------------------+   +---------------------------------------+
|          CƠ CẤU CHẤP HÀNH             |
|   - Servo Kênh 0: Trục X (Gốc quay)   |
|   - Servo Kênh 1: Trục Y (Vai)        |
|   - Servo Kênh 2: Trục Z (Khuỷu)      |
|   - Servo Kênh 3: Kẹp (End-effector)  |
+---------------------------------------+

Kiến trúc phần cứng và bảng thông số linh kiện

Chi phí và thông số các linh kiện được nhóm tác giả tổng hợp trong bảng sau:

STT Tên linh kiện / Module Thông số kỹ thuật chính từ văn bản Chi phí (VNĐ)
1 Bo mạch Arduino Uno R3 DIP Vi điều khiển ATmega328P 8-bit, 16 MHz; Điện áp hoạt động khuyên dùng 5V–12V (giới hạn 19V DC); 14 chân Digital I/O (6 chân PWM), 6 chân Analog (độ phân giải 10-bit); Bộ nhớ Flash 32KB (0.5KB dùng cho Bootloader), 2KB SRAM, 1KB EEPROM; Khối lượng 25g. 239.000
2 Mô hình khung cánh tay robot Khung cơ khí chuyển động; 3 bậc tự do cho các khớp chính xoay/di chuyển và 1 bậc cho đầu gắp; Tầm với tối đa 30 cm – 100 cm; Phạm vi góc quay: Khớp 1 (Base) -180° đến 180°, Khớp 2 (Shoulder) -90° đến 90°, Khớp 3 (Elbow) -90° đến 90°, Khớp 4 (Wrist) -180° đến 180°; Độ chính xác vị trí ±0.1 mm đến ±1 mm; Tốc độ khớp 100–500°/s; Tốc độ đầu gắp 200–1000 mm/s. 102.000
3 Động cơ Servo SG90 Khối lượng 9g; Kích thước 22.8 mm x 31 mm; Góc quay 0° – 180°; Điện áp hoạt động 4.8V – 6V; Tốc độ đáp ứng 0.09s/60° tại 6V; Momen xoắn tối đa 1.8 kg·cm (tại 4.8V) đến 2.2 kg·cm (tại 6V). 108.000
4 Module Driver PWM PCA9685 IC chính PCA9685; 16 kênh PWM độc lập; Độ phân giải 12-bit (4096 mức); Tần số điều khiển 40 ~ 1000 Hz; Giao tiếp $I^2C$ chấp nhận logic TTL 3 ~ 5V DC; Kích thước mạch 62.4 mm x 25.3 mm. (Chưa ghi giá)
5 Màn hình LCD 2004 Hiển thị 20 ký tự x 4 hàng (tổng 80 ký tự); Điện áp hoạt động 4.5V – 5.5V DC; Dòng tiêu thụ 2 mA (không đèn nền), 25 mA (có đèn nền); Kích thước tổng thể 98 mm x 60 mm x 12 mm; Vùng hiển thị 76 mm x 25 mm; Đèn nền LED xanh chữ trắng. 110.000
6 Module chuyển đổi $I^2C$ LCD IC chính PCF8574 mở rộng I/O; Tốc độ truyền $I^2C$ lên đến 100 kHz; Địa chỉ $I^2C$ mặc định 0x27 hoặc 0x3F (cấu hình qua jumper); Tích hợp biến trở chỉnh độ tương phản; Giảm từ 16 chân giao tiếp song song xuống còn 2 chân ($I^2C$). 30.000

Giải pháp ghép nối truyền thông và ánh xạ địa chỉ

  • Mạch điều khiển trung tâm Arduino Uno R3 đóng vai trò làm Master trên bus $I^2C$, kết nối với hai thiết bị Slave: Module chuyển đổi hiển thị LCD tại địa chỉ 0x27 và Module PCA9685 tại địa chỉ 0x40.
  • Tần số làm việc của bộ điều khiển PWM PCA9685 được cấu hình ở mức 60 Hz thông qua lệnh pwm.setPWMFreq(60). Dải độ rộng xung điều khiển servo SG90 được xác lập từ giá trị tối thiểu SERVOMIN = 150 đến giá trị tối đa SERVOMAX = 600.
  • Chân tín hiệu điều khiển chuyển động:
    • 4 kênh servo trên PCA9685: Kênh 0 (servo_x), Kênh 1 (servo_y), Kênh 2 (servo_z), Kênh 3 (servo_clamp).
    • Giao diện điều khiển thủ công: 2 bộ Joystick analog đọc tọa độ qua các chân A0, A1, A2, A3; cụm nút nhấn điều hướng và xác nhận lệnh kết nối vào các chân số 3 (xuong), 4 (len), 5 (enter), 8 (nutnhan).

Cấu trúc dữ liệu và giải thuật điều khiển nhúng

Chương trình điều khiển được thiết kế theo mô hình máy trạng thái hữu hạn (Finite State Machine), kết hợp cấu trúc phân nhánh hiển thị Menu trên màn hình LCD:

  • Tổ chức bộ nhớ EEPROM:
    • Ô nhớ địa chỉ 1: Ghi cờ trạng thái kiểm tra có lệnh đã lưu hay không (1 là đã có dữ liệu).
    • Ô nhớ địa chỉ 2: Lưu trữ giá trị địa chỉ kết thúc của chuỗi thao tác (diachi_cuoi).
    • Dải ô nhớ từ địa chỉ 10 trở đi: Lưu trữ chuỗi các điểm vị trí (Waypoints). Mỗi điểm bao gồm 4 byte liên tiếp đại diện cho góc quay của 4 động cơ: doc_A (Trục X), doc_B (Trục Y), doc_Z (Trục Z), doc_kep (Khâu kẹp). Sau mỗi lần lưu một trạng thái vị trí mới, con trỏ địa chỉ tự động tăng thêm 4 đơn vị (diachi_x += 4, diachi_y += 4, diachi_z += 4, diachi_clamp += 4).
  • Các chế độ vận hành:
    1. Menu chính: Điều hướng lựa chọn giữa các chức năng Thêm lệnh mới, Xóa lệnh và Chạy lệnh.
    2. Thêm lệnh (Dạy điểm - Teach): Người dùng sử dụng Joystick/nút nhấn để đưa cánh tay robot đến vị trí mong muốn; ấn phím xác nhận để ghi các góc quay hiện tại vào EEPROM thông qua hàm luu_lenh().
    3. Chạy lệnh (Tái lập quỹ đạo - Playback): Hàm chay_lenh() đọc tuần tự từng khối 4 byte từ địa chỉ bắt đầu (batdau = 10) cho đến ketthuc, phát xung điều khiển các servo di chuyển đồng bộ với chu kỳ định thời trễ 500 ms giữa các bước.
    4. Xóa lệnh: Đặt lại toàn bộ dữ liệu chỉ mục về trạng thái ban đầu bằng thao tác xóa ô nhớ EEPROM.

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

CHƯƠNG 1: TỔNG QUAN MÔ HÌNH CÁNH TAY ROBOT BẬC 3

Chương 1 phác thảo lịch sử phát triển của kỹ thuật robot thế giới và giới thiệu chi tiết về đề tài nghiên cứu:

  • Lược sử công nghệ robot: Điểm lại các cột mốc quan trọng từ vở kịch của Karel Čapek năm 1922 đưa ra khái niệm "robot"; phòng thí nghiệm Argonne phát triển tay máy chủ - tớ năm 1948; tay máy tích hợp động cơ servo phản hồi lực năm 1954; robot Shakey của Đại học Stanford nhận dạng hình ảnh năm 1969; robot tự hành Lunokhod thám hiểm Mặt Trăng năm 1970. Từ đó làm nổi bật sự dịch chuyển từ các hệ thống cồng kềnh sang các tay máy nhiều bậc tự do, kích thước nhỏ gọn và linh hoạt.
  • Giới thiệu đề tài, lý do, mục tiêu và ý nghĩa: Xác định mô hình cánh tay robot 3 bậc tự do là cơ cấu kinh điển, phù hợp cho việc nghiên cứu và ứng dụng trong các tác vụ công nghiệp như gắp, nhả và định vị vật phẩm trong không gian 3 chiều.
  • Lựa chọn và khảo sát phần cứng: Trình bày chi tiết thông số kỹ thuật, đặc tính điện, kích thước hình học và giá thành của từng linh kiện cấu thành hệ thống (Arduino Uno R3, bộ khung cánh tay robot, động cơ servo SG90, module PCA9685, màn hình LCD 2004, module chuyển đổi $I^2C$).

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG

Chương 2 là phần trọng tâm kỹ thuật của báo cáo, mô tả các giải pháp công nghệ, thuật toán và chương trình điều khiển:

  • Sơ đồ khối và phân tích thuật toán: Mô tả nguyên lý hoạt động của hệ thống với Arduino Uno là trung tâm điều phối, nhận tín hiệu từ các cảm biến/nút bấm, xuất lệnh hiển thị qua LCD và truyền dữ liệu điều khiển servo qua giao thức $I^2C$. Biểu đồ thuật toán phân kỳ rõ hai chu trình lặp: Vòng lặp thuận (điều khiển servo 1 từ 330 đến 250, servo 2 từ 150 đến 380, servo 3 từ 300 đến 380, servo 4 từ 410 đến 510) và Vòng lặp ngược đưa các servo trở lại vị trí thiết lập ban đầu.
  • Giao thức truyền thông $I^2C$ và Thư viện Wire.h: Phân tích nguyên lý hoạt động của chuẩn giao tiếp 2 dây SDA/SCL, cách thức đấu nối mạch phần cứng sử dụng điện trở kéo lên $4.7\text{ k}\Omega$, cách gán chân trên Arduino Uno (A4 - SDA, A5 - SCL) và cú pháp gửi/nhận byte điều khiển.
  • Module PCA9685 và Thư viện Adafruit_PWMServoDriver: Giải thích nguyên lý điều chế xung 12-bit (4096 mức phân giải) cho 16 kênh độc lập. Phân tích chi tiết các hàm cấu hình như setPWMFreq(), setPWM(num, on, off), các chế độ đầu ra (Totem-pole hoặc Open-drain), mối liên hệ giữa tần số (50 Hz / 60 Hz), chu kỳ xung (20 ms) và độ rộng xung tích cực để xác lập góc quay.
  • Quản lý bộ nhớ EEPROM toàn diện: Trình bày chi tiết 8 phương thức xử lý EEPROM trên vi điều khiển:
    1. EEPROM CLEAR: Duyệt qua toàn bộ độ dài bộ nhớ bằng hàm EEPROM.length() và gán giá trị 0.
    2. CRC (Cyclic Redundancy Check): Thuật toán kiểm tra tính toàn vẹn dữ liệu sử dụng bảng tra crc_table[16] kết hợp các phép toán dịch bit và logic XOR.
    3. EEPROM GET: Đọc các biến dữ liệu cơ bản (như float) hoặc các kiểu cấu trúc tùy chỉnh phức tạp (struct).
    4. EEPROM ITERATION: Kỹ thuật duyệt qua không gian bộ nhớ bằng các vòng lặp for, while hoặc do-while.
    5. EEPROM PUT: Ghi cấu trúc dữ liệu tùy chỉnh kết hợp cơ chế kiểm tra sự thay đổi giá trị trước khi ghi.
    6. EEPROM READ: Đọc giá trị từng byte theo địa chỉ vật lý.
    7. EEPROM UPDATE: Ghi có điều kiện (chỉ ghi khi dữ liệu mới khác dữ liệu cũ) nhằm tiết kiệm 3.3 ms thời gian thực thi và bảo toàn giới hạn 100.000 chu kỳ ghi.
    8. EEPROM WRITE: Lưu trữ trực tiếp giá trị đọc được từ cổng analog vào ô nhớ.
  • Cơ sở toán học ma trận không gian: Thiết lập ma trận biến đổi thuần nhất $4 \times 4$ dựa trên thông số Denavit - Hartenberg (DH) để tính toán vị trí của khâu tác động cuối $T_{total}$ và nguyên lý giải bài toán động học ngược (Inverse Kinematics).
  • Mã nguồn chương trình điều khiển: Trình bày đoạn mã C/C++ hoàn chỉnh tích hợp các thư viện Wire.h, Adafruit_PWMServoDriver.h, LiquidCrystal_I2C.h, xây dựng các hàm chức năng man_hinh(), KT_co_lenh(), Them_lenh(), luu_lenh(), chay_lenh(), xoa_lenh() để hiện thực hóa giao diện tương tác người dùng qua nút bấm và màn hình LCD.

CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương 3 tổng kết toàn bộ kết quả thực hiện, nêu rõ các mặt đạt được cũng như tồn tại của đề tài:

  • Kết quả đạt được: Chế tạo thành công cánh tay robot 3 bậc tự do hoàn chỉnh; ứng dụng nguyên lý động học ngược và điều khiển PID; tích hợp thành công hệ thống điều khiển nhúng Arduino kết hợp module ngoại vi; tối ưu hóa kết cấu cơ học và vượt qua các bài kiểm thử thực nghiệm.
  • Đánh giá ưu điểm và nhược điểm: Đối chiếu toàn diện giữa tính năng điều khiển chính xác, khả năng tùy biến module với các trở ngại về chi phí nghiên cứu, độ ổn định cơ cấu trong môi trường công nghiệp và yêu cầu bảo dưỡng kỹ thuật.
  • Hướng phát triển: Đề xuất 4 hướng mở rộng bao gồm tối ưu hóa năng lượng, tích hợp trí tuệ nhân tạo, nghiên cứu ứng dụng phẫu thuật y tế và tăng cường an toàn tương tác người - máy.

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

Kết quả chính đạt được

  • Chế tạo và lắp ráp thành công mô hình vật lý cánh tay robot 3 bậc tự do (bổ sung 1 bậc chuyển động kẹp) hoạt động ổn định trong không gian 3 chiều.
  • Xây dựng hoàn chỉnh mạch điện tử điều khiển sử dụng vi điều khiển ATmega328P kết hợp module PCA9685, mở rộng thành công khả năng phát 16 kênh xung PWM 12-bit thông qua bus $I^2C$ chỉ với 2 chân tín hiệu của Arduino.
  • Hiện thực hóa hệ thống giao tiếp HMI trực quan với màn hình LCD 2004 hiển thị trạng thái và chuỗi menu điều hướng tương tác qua 4 phím bấm.
  • Xây dựng thành công thuật toán "dạy và phát lại" (Teach and Playback): Lưu trữ tọa độ góc quay của các khớp vào bộ nhớ EEPROM không bay màu dữ liệu và thực thi lại quỹ đạo với chu kỳ lặp trễ định thời 500 ms.

Bảng tổng hợp ưu điểm và nhược điểm của hệ thống theo văn bản

Tiêu chí Ưu điểm được ghi nhận Nhược điểm được chỉ ra
Độ chính xác và Độ ổn định Độ chính xác cao trong việc điều khiển góc quay các bậc tự do, đáp ứng yêu cầu các tác vụ lắp ráp, gắp đặt. Độ ổn định hệ thống cần cải thiện; cơ cấu có thể chưa đạt yêu cầu cao nhất khi hoạt động trong môi trường công nghiệp khắc nghiệt.
Tính linh hoạt và Cấu trúc Khả năng tùy chỉnh cao nhờ thiết kế dạng module linh hoạt, cho phép tinh chỉnh theo yêu cầu cụ thể của từng tác vụ. Khó khăn trong công tác lắp đặt và bảo trì kết cấu cơ - điện, đòi hỏi người vận hành phải có kiến thức kỹ thuật chuyên môn.
Hiệu quả ứng dụng và Chi phí Tiềm năng ứng dụng đa dạng (công nghiệp, nghiên cứu, y tế, dịch vụ); giảm thiểu nhu cầu lao động thủ công trong dây chuyền. Chi phí đầu tư cho nghiên cứu, phát triển và mua sắm linh kiện chính xác có thể tăng cao nếu mở rộng quy mô.
Khả năng nâng cấp Nền tảng phần mềm mở, cho phép tích hợp thêm các thuật toán điều khiển hiện đại và hệ thống cảm biến ngoài. Lĩnh vực công nghệ robot phát triển nhanh chóng, đòi hỏi hệ thống phải liên tục được nghiên cứu, cập nhật để duy trì hiệu suất.

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

Theo tự đánh giá của nhóm tác giả, đề tài mang lại những đóng góp cụ thể:

  1. Hiện thực hóa mô hình nghiên cứu - giảng dạy chi phí thấp: Đưa ra phương án chế tạo cánh tay robot với tổng chi phí linh kiện cơ bản chỉ dưới 600.000 VNĐ, phù hợp cho việc học tập, thực hành của sinh viên chuyên ngành điện tử - tự động hóa.
  2. Làm chủ giải pháp tích hợp phần cứng và tối ưu tài nguyên: Giải quyết triệt để bài toán hạn chế chân I/O trên vi điều khiển 8-bit thông qua việc ứng dụng triệt để giao thức $I^2C$ cho cả mạch phát xung công suất (PCA9685) và màn hình hiển thị (PCF8574).
  3. Ứng dụng hiệu quả kỹ thuật quản lý bộ nhớ EEPROM: Xây dựng quy trình ghi đọc theo nhóm địa chỉ (khối 4 byte) và ứng dụng các phương thức EEPROM.update() nhằm kéo dài tuổi thọ ô nhớ của vi điều khiển.

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

Hạn chế kỹ thuật

Dựa trên các phân tích đánh giá của tác giả trong văn bản, mô hình còn tồn tại các giới hạn sau:

  • Cơ cấu chấp hành sử dụng các động cơ servo cỡ nhỏ SG90 bánh răng nhựa, dẫn đến mô-men xoắn chịu tải hạn chế (tối đa 1.8 – 2.2 kg·cm), khả năng chịu rung lắc và độ cứng vững cơ khí chưa cao khi vươn tầm tối đa.
  • Hệ thống hoạt động theo điều khiển vòng hở (open-loop), chưa tích hợp các cảm biến hồi tiếp góc quay thực tế (encoder quang học) hoặc cảm biến lực tại đầu gắp, khiến hệ thống chưa có khả năng tự hiệu chỉnh khi xảy ra trượt bước hoặc va chạm cơ học.
  • Độ ổn định hoạt động của toàn bộ kết cấu phần cứng chưa được kiểm chứng trong môi trường công nghiệp có rung chấn lớn, bụi bẩn hoặc nhiễu điện từ.

Hướng phát triển tiếp theo

Nhóm tác giả đề xuất 4 định hướng mở rộng nghiên cứu trong tương lai:

  1. Tối ưu hóa năng lượng: Nghiên cứu các phương pháp quản lý dòng tải, giảm tiêu thụ công suất điện và nâng cao hiệu suất làm việc tổng thể của các cơ cấu chấp hành.
  2. Nâng cao trí tuệ nhân tạo: Tích hợp các thuật toán AI và học máy (Machine Learning) kết hợp xử lý ảnh để tăng cường khả năng tự học nhận dạng vật thể và tự động định vị quỹ đạo gắp đặt.
  3. Mở rộng ứng dụng y tế: Nghiên cứu thu nhỏ kích thước cơ khí, gia công các phiên bản cánh tay robot có độ nhạy và độ chính xác cao nhằm định hướng hỗ trợ phẫu thuật và chăm sóc y tế.
  4. Tăng cường tính an toàn tương tác: Nghiên cứu bổ sung các cảm biến tiệm cận và giải pháp kiểm soát lực nhằm đảm bảo an toàn tuyệt đối khi robot hoạt động cộng tác với con người (Cobot).

Giá trị tham khảo

Báo cáo tổng kết đề tài là tài liệu kỹ thuật có giá trị tham khảo thiết thực cho:

  • Đối tượng người đọc: Sinh viên các ngành Kỹ thuật Điện - Điện tử, Cơ điện tử, Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Robot hoặc các kỹ sư đang làm quen với thiết kế hệ thống nhúng điều khiển cơ cấu chấp hành.
  • Nội dung tham khảo giá trị:
    • Mục 1.6 và 2.6: Tài liệu hướng dẫn chi tiết cách thức cấu hình, tính toán chu kỳ xung và lập trình module điều khiển PWM 16 kênh PCA9685 qua giao thức $I^2C$ với thư viện Adafruit_PWMServoDriver.
    • Mục 2.7: Cẩm nang tra cứu và ứng dụng toàn diện 8 phương thức thao tác với bộ nhớ bất biến EEPROM trên vi điều khiển AVR (kèm thuật toán tính toán mã CRC kiểm tra lỗi).
    • Mục 2.10: Khung chương trình C/C++ mẫu về việc tổ chức máy trạng thái menu hiển thị trên LCD và thuật toán dạy - phát lại chuyển động (Teach & Playback) cho hệ thống cơ điện tử nhiều trục.

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

1. Hệ thống giải quyết việc thiếu chân PWM trên Arduino Uno như thế nào khi cần điều khiển đồng thời nhiều động cơ servo?
Thay vì kết nối trực tiếp các chân servo vào chân digital PWM hạn chế của Arduino Uno (chỉ có 6 chân), hệ thống sử dụng module mở rộng PCA9685. Module này giao tiếp với vi điều khiển chỉ qua 2 dây của bus $I^2C$ (SDA và SCL), đồng thời cung cấp tới 16 kênh phát xung PWM độc lập với độ phân giải 12-bit (4096 mức), giúp giải phóng tài nguyên chân phần cứng của vi điều khiển.

2. Cơ chế lưu trữ và chạy lại (Teach and Playback) quỹ đạo cánh tay robot được hiện thực như thế nào trong chương trình?
Chương trình sử dụng bộ nhớ nội EEPROM của Arduino. Khi người dùng điều khiển cánh tay tới vị trí mong muốn và nhấn nút lưu, hàm luu_lenh() sẽ ghi góc quay của 4 động cơ vào 4 byte liên tiếp trong EEPROM (bắt đầu từ địa chỉ 10, tăng dần mỗi lần 4 đơn vị). Khi chọn chế độ chạy lệnh, hàm chay_lenh() sẽ đọc tuần tự các cụm 4 byte này từ ô nhớ đầu tiên cho đến ô nhớ cuối cùng (ketthuc), xuất góc quay tương ứng ra các servo và tạo khoảng dừng trễ 500 ms giữa các bước.

3. Khung ma trận Denavit - Hartenberg (DH) được nhóm tác giả xây dựng với những tham số hình học nào?
Nhóm tác giả thiết lập ma trận chuyển đổi thuần nhất $4 \times 4$ dựa trên các tham số: góc quay của khớp thứ $i$ ($\theta$), khoảng cách dịch chuyển dọc trục z từ khớp $i-1$ đến khớp $i$ ($d$), và chiều cao từ khớp $i-1$ đến khớp $i$ ($h$). Tọa độ không gian của khâu kẹp cuối được tính bằng tích của các ma trận chuyển tiếp thành phần $T_{total} = T_1 \cdot T_2 \dots T_n$.

4. Tổng chi phí mua sắm các linh kiện phần cứng chính của mô hình được liệt kê là bao nhiêu?
Theo bảng kê khai chi tiết của nhóm tác giả, tổng chi phí các linh kiện có ghi giá là 589.000 VNĐ, bao gồm: Bo mạch Arduino Uno R3 DIP (239.000 VNĐ), Khung mô hình cánh tay robot (102.000 VNĐ), Động cơ servo SG90 (108.000 VNĐ), Màn hình LCD 2004 (110.000 VNĐ) và Module chuyển đổi $I^2C$ cho LCD (30.000 VNĐ) (chưa bao gồm module PCA9685 do báo cáo không ghi giá tiền).

5. Vì sao tác giả phân tích chi tiết phương thức EEPROM.update() thay vì chỉ dùng EEPROM.write() thông thường?
Trong báo cáo, tác giả nhấn mạnh mỗi thao tác ghi EEPROM tiêu tốn khoảng 3.3 ms thời gian xử lý và mỗi ô nhớ chỉ chịu được tối đa khoảng 100.000 chu kỳ ghi/xóa. Hàm EEPROM.update() kiểm tra dữ liệu chuẩn bị ghi, nếu trùng khớp với dữ liệu đã có thì sẽ bỏ qua thao tác ghi, qua đó vừa tiết kiệm thời gian xử lý chu trình của vi điều khiển, vừa kéo dài tuổi thọ vật lý cho bộ nhớ EEPROM.


Kết luận

Báo cáo nghiên cứu khoa học "Chế tạo và điều khiển cánh tay robot bậc 3" của nhóm sinh viên Học viện Công nghệ Bưu chính Viễn thông Cơ sở TP. Hồ Chí Minh đã hoàn thành việc thiết kế, chế tạo và thử nghiệm thành công một mô hình tay máy thực nghiệm chi phí thấp. Đề tài thể hiện sự kết hợp chặt chẽ giữa cơ sở lý thuyết động học robot (ma trận biến đổi thuần nhất DH) và kỹ thuật điều khiển nhúng trên vi điều khiển AVR. Hệ thống phần cứng hoạt động linh hoạt thông qua việc tối ưu bus truyền thông $I^2C$, bộ điều khiển xung 12-bit PCA9685 và thuật toán lưu trữ quỹ đạo chuyển động trong EEPROM. Đây là tài liệu thực nghiệm tham khảo hữu ích cho sinh viên và người nghiên cứu trong lĩnh vực kỹ thuật cơ điện tử và điều khiển tự động.