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

Trong hoạt động thương mại và dịch vụ hiện đại, nhu cầu thanh toán và giao dịch diễn ra với tần suất cao, đòi hỏi việc xuất hóa đơn phải nhanh chóng, chính xác và tiện lợi. Phương thức ghi chép và lập hóa đơn thủ công bằng tay bộc lộ nhiều nhược điểm như tốn thời gian, hao phí giấy mực và dễ phát sinh sai sót trong quá trình tính toán. Sự ra đời của máy in hóa đơn tự động đã giải quyết triệt để các hạn chế này tại các hệ thống bán lẻ, siêu thị, cây rút tiền tự động (ATM) và phương tiện vận tải công cộng.

Trong số các công nghệ in ấn chuyên dụng, máy in nhiệt chiếm ưu thế vượt trội so với máy in kim nhờ tốc độ in nhanh, vận hành êm ái, độ chính xác cao và đặc biệt không cần sử dụng băng mực (ribbon) do ứng dụng cơ chế đốt nhiệt trực tiếp lên bề mặt hóa chất của giấy cảm nhiệt. Nhằm làm chủ công nghệ điều khiển phần cứng và nguyên lý hoạt động của thiết bị in ấn nhúng, đề tài "Thiết kế và thi công máy in nhiệt" được thực hiện tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (chuyên ngành Công nghệ Kỹ thuật Điện tử Truyền thông).

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

  1. In dữ liệu văn bản nhận được thông qua giao tiếp UART từ máy tính.
  2. In hình ảnh biểu trưng (logo) cố định.
  3. Đo và hiển thị nhiệt độ hoạt động của đầu in nhiệt lên giao diện phần mềm máy tính viết bằng C#.

Để đạt được các mục tiêu trên, nhiệm vụ nghiên cứu được phân chia thành 5 nội dung chính:

  • Nội dung 1: Tìm hiểu cấu tạo, nguyên lý của module đầu in nhiệt, vi điều khiển Arduino Mega 2560, module công suất L298 và module giảm áp LM2596.
  • Nội dung 2: Khảo sát phương thức truyền dữ liệu và cấu trúc khung in của module đầu in nhiệt.
  • Nội dung 3: Thiết kế mạch phần cứng và lập trình phần mềm điều khiển đầu in.
  • Nội dung 4: Thi công hộp sản phẩm và lắp ráp hoàn thiện mô hình.
  • Nội dung 5: Đo đạc thông số, vận hành thử nghiệm và đánh giá kết quả.

Phạm vi nghiên cứu của đề tài tập trung vào việc thiết kế mô hình máy in nhiệt sử dụng giấy cảm nhiệt khổ nhỏ 57mm (đường kính cuộn 45mm, loại giấy OJI). Giới hạn chức năng của sản phẩm dừng lại ở việc in các ký tự chữ hoa, chữ thường, chữ số và hình ảnh logo trường định sẵn, phục vụ mục đích nghiên cứu học thuật và chế tạo mô hình thực nghiệm.

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

Đề tài xây dựng trên nền tảng lý thuyết truyền thông nối tiếp và kỹ thuật điều khiển nhúng:

  • Chuẩn truyền thông UART (Universal Asynchronous Receiver-Transmitter) bất đồng bộ: Sử dụng trong liên lạc giữa máy tính và vi điều khiển trung tâm. Cơ chế truyền nhận yêu cầu thống nhất tốc độ Baud (tốc độ truyền bit trong một giây) và cấu trúc khung truyền (Frame) bao gồm: 1 bit Start báo hiệu, chuỗi dữ liệu (Data) 8-bit, bit kiểm tra chẵn lẻ (Parity bit) tùy chọn và bit dừng (Stop bit) kết thúc gói tin.
  • Chuẩn truyền thông SPI (Serial Peripheral Interface): Là chuẩn truyền thông đồng bộ nối tiếp, song công toàn phần (Full-duplex) do Motorola phát triển. Giao diện SPI gồm 4 đường tín hiệu cơ bản: SCK (Serial Clock do vi điều khiển Master tạo xung nhịp), MOSI (Master Output Slave Input), MISO (Master Input Slave Output), và SS/LAT (Slave Select / Chốt dữ liệu). Chuẩn SPI hoạt động theo 4 chế độ phụ thuộc vào cực tính xung nhịp (CPOL) và pha xung nhịp (CPHS).
  • Nguyên lý in nhiệt điểm (Thermal Dot Printing): Dựa trên sự biến đổi màu sắc của lớp hóa chất phủ trên giấy cảm nhiệt khi tiếp xúc với nhiệt lượng sinh ra từ các phần tử điện trở nhiệt (Thermal Dots) được cấp xung kích hoạt.

Phương pháp nghiên cứu thực tế được triển khai theo quy trình thiết kế kỹ thuật phần cứng kết hợp lập trình hệ thống:

  • Phân tích và trích xuất thông số kỹ thuật từ Datasheet gốc của nhà sản xuất (Fujitsu, Atmel, STMicroelectronics).
  • So sánh, đánh giá các phương án kỹ thuật để lựa chọn linh kiện tối ưu về mặt chi phí, tài nguyên phần cứng và độ phức tạp của thuật toán.
  • Thiết kế sơ đồ nguyên lý, thiết kế mạch in PCB (Layout 2D/3D), thi công bo mạch thực tế và kiểm tra đo đạc thông số điện áp thực nghiệm.
  • Xây dựng lưu đồ thuật toán điều khiển nhúng (firmware) và thiết kế giao diện đồ họa người dùng (GUI) trên máy tính.

Nguồn dữ liệu phục vụ nghiên cứu bao gồm tài liệu kỹ thuật của module đầu in Fujitsu FTP-628MCL103, vi điều khiển ATmega 2560, IC điều khiển cầu H L298N, IC giảm áp DC-DC LM2596 và các tài liệu chuyên ngành vi xử lý, kỹ thuật điện tử.

Thiết kế và triển khai

Hệ thống máy in nhiệt được module hóa thành các khối chức năng liên kết chặt chẽ với nhau:

Khối chức năng Linh kiện / Thiết bị sử dụng Thông số kỹ thuật & Vai trò trong hệ thống
Khối xử lý trung tâm Module Arduino Mega 2560 Sử dụng vi điều khiển ATmega 2560, tần số 16 MHz, 54 chân Digital I/O (15 chân PWM), 16 chân Analog, 4 bộ UART, bộ nhớ Flash 256 KB. Đóng vai trò giải mã lệnh từ máy tính, điều phối xung SPI sang đầu in và phát xung kích bước cho motor.
Khối đầu in nhiệt Fujitsu FTP-628MCL103 Độ phân giải 384 điểm ảnh/dòng (48 byte/dòng), khổ giấy 58 mm, độ rộng in thực tế 48 mm, kích thước điểm ảnh 0.125 mm x 0.0625 mm, điện áp cấp nguồn nhiệt 4.5V - 8.5V. Tích hợp 6 khối đầu đốt (STB1 - STB6, mỗi khối quản lý 64 điểm ảnh), điện trở nhiệt cảm biến 30 kΩ (B:3950) và cáp FFC 30 chân.
Khối lái động cơ Module cầu H L298 L298N tích hợp 2 mạch cầu H, dòng tải cực đại 2A/cầu, điện áp điều khiển 5V - 12V, có gắn tản nhiệt nhôm. Điều khiển động cơ bước 2 pha lưỡng cực (bước 9 độ, trở kháng 10 Ω) tích hợp trong đầu in.
Khối nguồn Module hạ áp LM2596 Dải điện áp đầu vào 4V - 35V, đầu ra điều chỉnh 1V - 30V, dòng tải tối đa 3A. Tích hợp diode chống cắm ngược cực SS34 và tụ lọc ổn định nguồn.
Khối giao tiếp máy tính Cáp kết nối USB Giao tiếp UART nối tiếp (truyền TX, nhận RX, mass GND) và cấp nguồn logic 5V cho khối vi điều khiển.

Sơ đồ kết nối tín hiệu giữa vi điều khiển Arduino Mega 2560 và các khối phần cứng được thực hiện như sau:

  • Giao tiếp SPI với đầu in: Chân DO (chân 24 của đầu in) kết nối chân D50 (MOSI) của Arduino; chân DIN (chân 8) kết nối chân D51 (MISO); chân CLK (chân 9) kết nối chân D52 (SCK); chân LAT (chân 23) kết nối chân D53 (SS).
  • Điều khiển đốt nhiệt: 6 chân Digital từ D23, D25, D27, D29, D31 đến D33 của Arduino được nối lần lượt với 6 chân kích hoạt STB1, STB2, STB3, STB4, STB5, STB6 (chân 20, 19, 18, 14, 13, 12 của đầu in).
  • Đo nhiệt độ đầu in: Chân TM (chân 17 của đầu in) kết nối với ngõ vào tương tự A0 của Arduino để đọc tín hiệu điện áp biến thiên theo nhiệt độ từ điện trở nhiệt 30 kΩ.
  • Điều khiển động cơ bước: 4 ngõ ra OUT11, OUT12, OUT21, OUT22 của module L298 nối với 4 cực kích từ MTA+, MTA-, MTB+, MTB- (chân 27, 28, 29, 30 của đầu in). Động cơ vận hành theo trình tự 8 bước (Half-step). Cứ mỗi 4 bước quay, trục lăn kéo giấy di chuyển được 0.0625 mm (tương ứng độ cao của 1 hàng điểm ảnh).
  • Cấu hình nguồn điện: Điện áp nuôi đầu in nhiệt (chân VH: 6, 7, 25, 26) được hạ áp qua module LM2596 xuống mức 8.3V. Nhóm thiết kế bổ sung một tụ hóa phân cực có điện dung 47 µF mắc song song giữa đường nguồn VH và mass (GND) nhằm ổn định dòng điện tức thời trong quá trình phát nhiệt.

Quy trình phần mềm được tổ chức theo hai phân hệ:

  1. Phần mềm nhúng (Arduino C/C++): Tiếp nhận chuỗi ký tự qua cổng nối tiếp UART, tra cứu bảng mã ký tự ASCII hoặc bảng mã ma trận logo bitmap, chuyển đổi thành dữ liệu nhị phân (384 bit = 48 byte cho mỗi hàng). Dữ liệu được nạp vào thanh ghi dịch của đầu in qua SPI, sau đó kích hoạt tuần tự hoặc đồng thời các cổng STB để đốt nóng giấy in, kết hợp điều khiển module L298 bước động cơ nạp giấy. Đồng thời, vi điều khiển lấy mẫu ADC tại chân A0 và gửi ngược thông số nhiệt độ về máy tính.
  2. Phần mềm máy tính (C# trên nền tảng Microsoft Visual Studio): Thiết kế giao diện đồ họa gồm cửa sổ đăng nhập bảo mật tài khoản/mật khẩu, khung chọn cổng COM và Baud rate, khung soạn thảo văn bản cần in, các phím chức năng gửi lệnh in dữ liệu, in logo định sẵn và đồ thị/khung hiển thị giá trị nhiệt độ đầu in theo thời gian thực.

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

Chương 1. Tổng quan

Chương 1 thiết lập tính cấp thiết của đề tài thông qua việc phân tích nhu cầu tự động hóa trong khâu xuất hóa đơn thương mại. Đồ án chỉ rõ sự khác biệt giữa in kim và in nhiệt, nhấn mạnh ưu thế không dùng mực của công nghệ in nhiệt. Tác giả xác định 3 mục tiêu trọng tâm (in chuỗi qua UART, in logo, đo nhiệt độ đầu in), phân chia 5 nội dung nghiên cứu chi tiết và nêu rõ giới hạn đề tài ở mức chế tạo máy in ký tự cơ bản và logo trường trên khổ giấy 57mm.

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

Chương 2 trình bày chi tiết cơ sở khoa học của hai giao thức truyền thông UART và SPI. Chương này phân tích chi tiết giản đồ thời gian và 4 chế độ truyền dữ liệu SPI (Mode 0, 1, 2, 3). Đồng thời, chương 2 cung cấp toàn bộ thông số kỹ thuật, cấu tạo cơ khí và sơ đồ 30 chân tín hiệu của module đầu in Fujitsu FTP-628MCL103, đặc tính động cơ bước 2 pha lưỡng cực (bước 9 độ, 10 Ω), bảng trạng thái đóng ngắt 8 bước của mạch cầu H L298, kiến trúc vi điều khiển Arduino Mega 2560, sơ đồ nguyên lý mạch giảm áp LM2596, thông số cáp mềm FFC 30 chân (pitch 1mm, 50V, 0.5A) và đặc tính kỹ thuật của giấy in nhiệt OJI 57mm.

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 hệ thống phần cứng và phân tích lựa chọn linh kiện dựa trên các tiêu chí kỹ thuật:

  • Đánh giá lựa chọn module đầu in: Chọn FTP-628MCL103 của Fujitsu (giá khoảng 400.000 VNĐ) thay vì các module Seiko (LTP01-245, LTP02-245) nhờ tính phổ biến, chi phí hợp lý và tài liệu datasheet chi tiết.
  • So sánh vi điều khiển: Arduino Mega 2560 được chọn thay vì PIC 16F887 và STM32F3. STM32F3 có giá cao hơn (415.000 VNĐ so với 250.000 VNĐ của Arduino Mega) và đòi hỏi mạch nạp ngoài phức tạp; trong khi PIC 16F887 bị hạn chế về tài nguyên so với yêu cầu. Arduino Mega 2560 đáp ứng tốt về số lượng chân Digital (54 chân), hỗ trợ sẵn giao tiếp SPI/UART và thư viện lập trình C++ phong phú.
  • So sánh mạch lái động cơ: Module L298 được chọn thay cho driver A4988 vì động cơ bước của đầu in hoạt động ở dải áp thấp từ 4.5V (trong khi A4988 yêu cầu điện áp động cơ từ 8V - 35V), L298 có phiến tản nhiệt tốt và dễ điều khiển thông qua thư viện Stepper cơ bản.
  • Lựa chọn khối nguồn: Chọn module giảm áp LM2596 (giá khoảng 30.000 VNĐ, dòng cực đại 3A) tích hợp diode bảo vệ ngược cực SS34. Tính toán điện áp cấp cho đầu in nhiệt (VH) đạt mức tối ưu 8.3V kèm tụ lọc 47 µF để đảm bảo bản in đậm và sắc nét.

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

Chương 4 mô tả toàn bộ quy trình chế tạo thực tế bao gồm thiết kế mạch in PCB 2 mặt, xuất mô hình 3D, bố trí linh kiện, đi dây mạch in, đo đạc thông số nguồn và gia công hộp sản phẩm. Phần lập trình trình bày chi tiết lưu đồ thuật toán chương trình con in dữ liệu, lưu đồ truyền dữ liệu SPI, lưu đồ gán mã ký tự/logo, lưu đồ truyền thông UART và cấu trúc giao diện điều khiển viết trên Visual Studio C#. Cuối chương cung cấp tài liệu và quy trình hướng dẫn thao tác vận hành thiết bị.

Chương 5. Kết quả - Nhận xét - Đánh giá

Chương 5 công bố các kết quả thực nghiệm của sản phẩm hoàn thiện. Thiết bị in rõ nét các ký tự chữ cái theo bảng mã ASCII, in chính xác hình ảnh logo trường đại học và truyền dữ liệu nhiệt độ hiển thị trực quan trên phần mềm máy tính. Tác giả phân tích các yếu tố ảnh hưởng trực tiếp đến chất lượng in, bao gồm việc cân chỉnh độ rộng xung cấp nhiệt cho các cổng STB, việc duy trì điện áp VH ổn định ở 8.3V và sự đồng bộ nhịp nhàng giữa xung kích đốt nhiệt với tốc độ quay của động cơ bước kéo giấy.

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

Chương 6 tổng kết toàn diện mức độ hoàn thành nhiệm vụ theo đề cương, đánh giá sản phẩm đáp ứng đầy đủ các yêu cầu kỹ thuật ban đầu về mặt phần cứng lẫn phần mềm. Đồng thời, chương này đề xuất các định hướng nâng cấp hệ thống trong tương lai.

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

Đồ án ghi nhận các kết quả thực nghiệm cụ thể sau:

  • Chế tạo thành công mô hình máy in nhiệt hoàn chỉnh phần cứng, bo mạch gia công chuẩn xác và đóng hộp cơ khí chắc chắn.
  • Tối ưu hóa thông số vận hành phần cứng: Điện áp cấp nhiệt cho đầu in VH xác lập ở mức 8.3V (dưới ngưỡng cực đại 8.5V) kết hợp tụ bù 47 µF cho chất lượng in đậm, không bị mất nét; động cơ bước điều khiển theo chu kỳ 8 bước ổn định, nạp giấy chính xác 0.0625 mm sau mỗi 4 bước kích từ.
  • Xử lý in chính xác toàn bộ 384 điểm ảnh trên một hàng ngang (khổ in rộng 48 mm trên giấy 57 mm).
  • Đọc và chuyển đổi chính xác tín hiệu tương tự từ cảm biến nhiệt độ 30 kΩ (B:3950) sang thang đo nhiệt độ thực tế và truyền lên máy tính qua UART.
  • Xây dựng phần mềm giao diện C# hoạt động ổn định: Quản lý đăng nhập, tùy chọn cổng COM / tốc độ Baud, truyền chuỗi văn bản và hiển thị nhiệt độ liên tục.

Về mặt giải pháp và đóng góp kỹ thuật, đồ án đã đưa ra mô hình ghép nối phần cứng module hóa với chi phí thấp (sử dụng Arduino Mega 2560, L298 và LM2596) để làm chủ phương thức điều khiển đầu in nhiệt chuyên dụng FTP-628MCL103. Nghiên cứu cung cấp tài liệu giải thuật chi tiết về việc chuyển đổi dữ liệu ký tự sang xung SPI và điều khiển phân đoạn 6 khối đầu đốt nhiệt STB.

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

Theo đánh giá của nhóm tác giả trong văn bản, đề tài còn tồn tại một số hạn chế:

  • Hệ thống chỉ mới in được các ký tự cơ bản (chữ hoa, chữ thường, số) và một logo trường được nạp cố định trong chương trình; chưa hỗ trợ font tiếng Việt có dấu và chưa thể nhận dữ liệu hình ảnh động bất kỳ từ máy tính.
  • Sản phẩm chưa tích hợp cơ cấu dao cắt giấy tự động (Auto-cutter) và chưa có bộ nhớ đệm lớn để in tài liệu dung lượng dài.

Các hướng phát triển tiếp theo được đề xuất bao gồm:

  • Mở rộng bộ font chữ, hỗ trợ giải mã và in tiếng Việt đầy đủ dấu.
  • Nâng cấp phần mềm máy tính và firmware để nạp, xử lý và in trực tiếp các file hình ảnh định dạng bitmap tùy chọn từ người dùng.
  • Tích hợp thêm các module giao tiếp không dây như Bluetooth hoặc Wi-Fi nhằm hỗ trợ lệnh in từ các thiết bị di động (smartphone, máy tính bảng).
  • Nghiên cứu thiết kế cơ cấu dao cắt giấy tự động và tích hợp toàn bộ các khối chức năng lên một bo mạch in nguyên khối (All-in-one PCB).

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn cao đối với:

  • Sinh viên các ngành Công nghệ Kỹ thuật Điện tử Truyền thông, Kỹ thuật Cơ điện tử, Kỹ thuật Điều khiển & Tự động hóa và Hệ thống Nhúng đang thực hiện đồ án thiết kế thiết bị ngoại vi hoặc máy in nhiệt.
  • Những người nghiên cứu muốn tìm hiểu phương pháp điều khiển dòng đầu in nhiệt Fujitsu FTP-628MCL103, kỹ thuật điều khiển động cơ bước qua cầu H L298, và kỹ thuật ghép nối giao thức SPI với vi điều khiển họ AVR.
  • Tài liệu cung cấp mẫu tham khảo hoàn chỉnh về cách xây dựng ứng dụng giao tiếp máy tính bằng ngôn ngữ C# (Windows Forms) kết nối với vi điều khiển qua cổng COM ảo (Virtual COM Port).

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

1. Module đầu in Fujitsu FTP-628MCL103 giao tiếp với Arduino Mega 2560 qua những chân tín hiệu nào? Module đầu in kết nối với Arduino Mega 2560 qua 4 đường SPI gồm DO (nối D50/MOSI), DIN (nối D51/MISO), CLK (nối D52/SCK) và LAT (nối D53/SS); 6 chân kích hoạt khối đốt STB1 - STB6 kết nối lần lượt với các chân D23, D25, D27, D29, D31, D33; chân cảm biến nhiệt TM kết nối với chân ngõ vào tương tự A0.

2. Vì sao tác giả lựa chọn Module L298 thay vì Driver A4988 để điều khiển động cơ bước? Động cơ bước bên trong đầu in nhiệt yêu cầu nguồn cấp hoạt động từ 4.5V. Driver A4988 yêu cầu điện áp động cơ trong dải 8V - 35V nên khó cấp nguồn phù hợp, trong khi L298 đáp ứng tốt dải áp thấp, có đế nhôm tản nhiệt hiệu quả và tương thích trực tiếp với các câu lệnh đơn giản của thư viện Stepper trên Arduino IDE.

3. Mức điện áp cấp cho đầu in (VH) được thiết lập là bao nhiêu và tác giả dùng biện pháp gì để ổn định nguồn? Theo datasheet, điện áp VH tối đa là 8.5V. Qua quá trình thực nghiệm, nhóm tác giả điều chỉnh module LM2596 xuất điện áp 8.3V để bản in đạt độ rõ nét nhất, đồng thời gắn thêm một tụ phân cực 47 µF nối song song giữa chân VH và mass (GND) nhằm ổn định dòng điện tức thời.

4. Tổ chức điểm ảnh và cơ chế điều khiển in một hàng (dot line) của đầu in FTP-628MCL103 diễn ra như thế nào? Một hàng in gồm 384 điểm ảnh (tương đương 48 byte dữ liệu). Đầu in chia thành 6 khối đốt STB1 đến STB6, mỗi khối phụ trách 64 điểm ảnh (8 byte). Dữ liệu được nạp vào thanh ghi dịch qua SPI, chốt qua chân LAT, sau đó kích hoạt 6 chân STB để đốt nhiệt lên giấy; tiếp đó động cơ bước được điều khiển quay 4 bước để đẩy giấy di chuyển 0.0625 mm sang hàng điểm tiếp theo.

5. Lý do nhóm nghiên cứu lựa chọn Arduino Mega 2560 thay vì vi điều khiển PIC 16F887 hay STM32F3? Cả 3 vi điều khiển đều đáp ứng yêu cầu kỹ thuật, tuy nhiên vi điều khiển STM32F3 có giá thành cao hơn (415.000 VNĐ so với 250.000 VNĐ của Arduino Mega 2560) và cần trang bị thêm mạch nạp ngoài; trong khi PIC 16F887 có số lượng tài nguyên hạn chế. Arduino Mega 2560 có số lượng chân ngoại vi lớn (54 Digital, 16 Analog), tích hợp sẵn cổng nạp USB và sở hữu hệ thống thư viện C++ phong phú, dễ tra cứu tài liệu.

Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công máy in nhiệt" của sinh viên Phùng Thanh Hiếu và Mai Quốc Việt đã hoàn thành trọn vẹn các mục tiêu thiết kế phần cứng, thi công mô hình và xây dựng chương trình điều khiển nhúng. Hệ thống làm chủ thành công cơ chế giao tiếp SPI điều khiển đầu in nhiệt Fujitsu FTP-628MCL103, lái động cơ bước bằng cầu H L298 và giám sát thiết bị qua giao diện C# trên máy tính. Kết quả thử nghiệm trên khổ giấy 57mm chứng minh khả năng in ấn sắc nét đối với văn bản ký tự và hình ảnh logo, cung cấp tài liệu thực nghiệm giá trị cho việc phát triển các thiết bị in ấn nhúng chuyên dụng.