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

Khóa luận tốt nghiệp của tác giả Lê Thị Mỹ Hạnh được thực hiện tại Khoa Vật lý, Trường Đại học Sư phạm – Đại học Đà Nẵng (năm 2018), dưới sự hướng dẫn của TS. Cao Xuân Hữu, chuyên ngành Vật lý học. Nghiên cứu thuộc loại hình thiết kế kỹ thuật và thực nghiệm mô hình phần cứng kết hợp phần mềm thu thập dữ liệu phục vụ đào tạo thực hành.

Lý do chọn đề tài xuất phát trực tiếp từ thực tiễn giảng dạy các học phần thực tập chuyên đề và thực tập cơ sở của khối cử nhân ngành Vật lý. Trong chương trình đào tạo truyền thống, sinh viên chủ yếu được tiếp cận với họ vi điều khiển 8051 (cụ thể là chip vi điều khiển AT89C52 của hãng Atmel). Hệ thống này bộc lộ nhiều hạn chế về mặt kỹ thuật: tốc độ xử lý thấp, khả năng giao tiếp ngoại vi hạn chế, rất khó khăn trong việc ghép nối với các cảm biến hiện đại cũng như truyền thông với máy tính. Mặt khác, các bộ kit thực hành 8051 trên thị trường có giá thành tương đối đắt đỏ; mỗi khi sinh viên muốn triển khai một ứng dụng mới, quy trình thường đòi hỏi phải thiết kế và gia công lại toàn bộ mạch in, gây tốn kém thời gian và chi phí vật tư.

Trong khi đó, nền tảng Arduino với vi điều khiển mã nguồn mở cung cấp cấu hình phần cứng mạnh mẽ hơn, hỗ trợ thư viện phần mềm phong phú, dễ tìm kiếm linh kiện thay thế và không đòi hỏi thiết kế lại bo mạch khi thay đổi yêu cầu thí nghiệm. Sự kết hợp giữa Arduino Mega 2560, nhân firmware LINX và môi trường lập trình đồ họa LabVIEW trên máy tính cho phép thiết lập hệ thống thu thập dữ liệu tự động hóa qua cổng USB, thay thế hoàn toàn cho các card thu nhận dữ liệu (DAQ) logic đắt tiền và phức tạp.

Mục tiêu nghiên cứu của đề tài được xác định rõ:

  • Thiết kế, chế tạo và vận hành chạy thử nghiệm (demo) bộ kit thí nghiệm dựa trên nền tảng Arduino nhằm mô phỏng việc điều khiển các thiết bị ngoại vi, giao tiếp với các cảm biến thông dụng và thiết lập truyền thông hai chiều với máy tính.

Nhiệm vụ nghiên cứu được phân chia thành 5 nội dung cụ thể:

  1. Nghiên cứu cấu trúc phần cứng của bộ vi xử lý và kit vi điều khiển Arduino.
  2. Nghiên cứu kỹ thuật lập trình phần mềm trên bộ kit Arduino và khảo sát các ứng dụng thực tiễn của nó.
  3. Nghiên cứu phương thức hoạt động của nhân firmware LINX trên Arduino và phần mềm LabVIEW trên máy tính để thiết lập kênh giao tiếp Arduino – máy tính.
  4. Thiết kế phần cứng bộ thí nghiệm sử dụng kit Arduino ứng dụng trong điều khiển thiết bị ngoại vi và đọc tín hiệu cảm biến.
  5. Triển khai thực nghiệm, kiểm thử các bài đo trên mô hình bộ kit cụ thể.

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

  • Đối tượng nghiên cứu: Bộ kit vi điều khiển Arduino và các phương thức giao tiếp phục vụ điều khiển thiết bị, thu thập tín hiệu từ các cảm biến thông dụng và truyền thông dữ liệu với máy tính cá nhân.
  • Phạm vi nghiên cứu: Tập trung vào vi điều khiển Arduino Mega 2560; các linh kiện điện tử cơ bản; các module cảm biến vật lý (cảm biến dòng điện MAX471, cảm biến chuyển động hồng ngoại PIR, cảm biến siêu âm HY-SRF05, cảm biến nhiệt độ - độ ẩm DHT21, cảm biến nhiệt độ DS18B20, module cảm biến mưa FC-37, module dò line TCRT5000); module điều khiển động cơ công suất BTS7960, module thời gian thực DS3231, màn hình LCD 20x4 và môi trường lập trình LabVIEW thông qua nhân LINX.

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

Cơ sở lý thuyết của đề tài dựa trên cấu trúc vi xử lý 8-bit AVR của Atmel, cụ thể là vi điều khiển ATmega2560 tích hợp trên mạch Arduino Mega 2560, cùng với chip chuyển đổi giao tiếp USB-to-UART ATmega16U2. Hệ thống khai thác các chuẩn giao tiếp công nghiệp và nhúng gồm: UART/Serial (truyền thông không đồng bộ đa kênh), SPI (giao tiếp nối tiếp đồng bộ 4 dây), TWI/I2C (giao tiếp đồng bộ 2 dây với các thanh ghi nội của IC), 1-Wire (chuẩn truyền thông một dây kỹ thuật số), và kỹ thuật điều chế độ rộng xung (PWM) với độ phân giải 8-bit phục vụ điều khiển công suất.

Về phía máy tính, khung lý thuyết xử lý tín hiệu dựa trên ngôn ngữ lập trình đồ họa G (Graphical Programming) của phần mềm LabVIEW thuộc National Instruments. LabVIEW tổ chức chương trình dưới dạng các công cụ ảo VI (Virtual Instrument), bao gồm hai thành phần tách biệt: giao diện người dùng (Front Panel với các Control và Indicator) và lưu đồ mã nguồn thuật toán (Block Diagram với các Terminal, Node và Wire). Quá trình truyền thông dữ liệu máy tính - phần cứng được phân tích dựa trên hai công cụ mở rộng quản lý bởi VI Package Manager (VIPM):

  • Gói thư viện LabVIEW Interface for Arduino (LIFA).
  • Gói thư viện MakerHub LINX do hãng Digilent phát triển.

Phương pháp nghiên cứu thực tế được tác giả triển khai gồm hai phương pháp chính:

  • Phương pháp nghiên cứu và khảo sát tài liệu: Thu thập, phân tích thông số kỹ thuật (datasheet) của các linh kiện bán dẫn, sơ đồ nguyên lý mạch điện tử, nguyên lý biến đổi đại lượng vật lý của cảm biến, và tài liệu kỹ thuật về các hàm API trong Arduino IDE và LabVIEW.
  • Phương pháp thực nghiệm kỹ thuật: Lắp ráp các khối mạch chức năng trên mô hình vật lý, lập trình nạp mã nguồn điều khiển trên Arduino C/C++, cấu hình firmware truyền thông nối tiếp LINX, xây dựng giao diện giám sát đo lường trên LabVIEW và chạy thử nghiệm đo lường thực tế để đánh giá sự tương thích của hệ thống.

Nguồn dữ liệu sử dụng trong đề tài bao gồm tài liệu kỹ thuật từ nhà sản xuất Atmel (ATmega2560, ATmega16U2), thông số kỹ thuật cảm biến từ Dallas Semiconductor (DS18B20), Maxim Integrated (MAX471), Maxim/Dallas (DS3231), Aosong Electronics (DHT21/AM2301), tài liệu hỗ trợ của National Instruments và Digilent MakerHub.

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, kết hợp giữa phần cứng xử lý nhúng tại chỗ và phần mềm thu thập, giám sát dữ liệu từ xa trên máy tính cá nhân.

Thành phần thông số Giá trị kỹ thuật trên Arduino Mega 2560
Chip vi xử lý trung tâm ATmega2560
Điện áp hoạt động logic 5V DC
Điện áp nguồn đầu vào (khuyến nghị / giới hạn) 7 - 12V DC / 6 - 20V DC
Số lượng chân I/O kỹ thuật số (Digital I/O) 54 chân (trong đó có 15 chân hỗ trợ PWM)
Số lượng chân ngõ vào tương tự (Analog Input) 16 chân (độ phân giải ADC 10-bit)
Dòng điện DC giới hạn trên mỗi chân I/O 20 mA (chân 3.3V cấp tối đa 50 mA)
Dung lượng bộ nhớ (Flash / SRAM / EEPROM) 256 KB (8 KB dùng cho bootloader) / 8 KB / 4 KB
Tần số dao động thạch anh 16 MHz
Số cổng truyền thông Serial phần cứng 4 cổng UART (Serial 0, 1, 2, 3)
Số lượng chân ngắt ngoài phần cứng 6 chân (chân 2, 3, 18, 19, 20, 21)
Kích thước và trọng lượng bo mạch 101,52 mm x 53,3 mm; khối lượng 37 g

Về mặt kiến trúc truyền thông phần mềm, tác giả so sánh và lựa chọn giải pháp firmware kết nối giữa LIFA và LINX:

  • Nhân LIFA biến Arduino thành một thiết bị mở rộng ngoại vi I/O hoàn toàn thụ động của máy tính. Mọi quyết định logic đều do máy tính gửi lệnh xuống, Arduino không thể hoạt động độc lập và không tận dụng được kho thư viện C/C++ phong phú của Arduino IDE.
  • Nhân LINX cung cấp cơ chế linh hoạt hơn: cho phép triển khai chế độ nạp trực tiếp firmware gốc của Digilent để điều khiển I/O cơ bản, đồng thời hỗ trợ mở rộng mã nguồn bằng cách khai báo các hàm tùy biến thông qua lệnh LinxSerialConnection.AttachCustomCommand(). Cấu trúc này cho phép vi điều khiển ATmega2560 vừa tự động đọc cảm biến, xử lý thuật toán thời gian thực tại chỗ, vừa đóng gói dữ liệu thành mảng byte truyền ngược lên máy tính qua cổng USB tốc độ cao (baud rate mặc định 115200 bps).
Khối chức năng trong hệ thống Thiết bị / Linh kiện sử dụng Chuẩn giao tiếp / Kết nối
Xử lý trung tâm Arduino Mega 2560 (ATmega2560) Xử lý logic, ADC, PWM
Giám sát môi trường Cảm biến DHT21 (AM2301) Chuẩn 1-Wire kỹ thuật số
Đo khoảng cách Cảm biến siêu âm HY-SRF05 Xung Trigger (10µs) / Echo
Phát hiện chuyển động Cảm biến hồng ngoại thụ động PIR 500BP Mức logic Digital (0V - 3.3V)
Phát hiện nước / chất lỏng Module cảm biến mưa FC-37 (IC LM393) Ngõ ra Digital D0 và Analog A0
Dò đường / Nhận diện màu Cảm biến hồng ngoại TCRT5000 (IC LM393) Ngõ ra Digital D0 và Analog A0
Định thời gian thực Module RTC DS3231 + EEPROM AT24C32 Bus I2C/TWI (chân SDA 20, SCL 21)
Chấp hành và công suất Động cơ DC 12V + Module cầu H BTS7960 Tín hiệu PWM điều khiển tốc độ (43A)
Đo dòng điện động cơ Module cảm biến dòng MAX471 Ngõ ra Analog (đo tối đa 3A)
Đo nhiệt độ công suất Cảm biến số DS18B20 Chuẩn 1-Wire (-55°C đến +125°C)
Hiển thị và tương tác tại chỗ Màn hình LCD 20x4, nút nhấn, LED 5mm Chuẩn song song/I2C, Digital I/O

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

Chương 1: Giới thiệu tổng quan về bộ kit Arduino và phần mềm LabVIEW

Chương 1 tập trung trình bày chi tiết về nền tảng phần cứng Arduino Mega 2560 và môi trường phần mềm LabVIEW. Tác giả phân tích cấu trúc phần cứng của ATmega2560 với 54 chân Digital (15 chân PWM từ chân 2 đến 13 và 44, 45, 46), 16 chân Analog ngõ vào với bộ chuyển đổi 10-bit (tương ứng 1024 mức phân giải điện áp), 6 ngắt ngoài phần cứng và 4 cổng Serial phần cứng: Cổng 0 (RX0: chân 0, TX0: chân 1), Cổng 1 (RX1: chân 19, TX1: chân 18), Cổng 2 (RX2: chân 17, TX2: chân 16), Cổng 3 (RX3: chân 15, TX3: chân 14). Chương này cũng phân tích cấu trúc một chương trình C/C++ cơ bản trong Arduino IDE với hai hàm nền tảng setup() (chạy khởi tạo một lần) và loop() (vòng lặp vô hạn duy trì hoạt động).

Về phía phần mềm LabVIEW, tác giả làm rõ nguyên lý lập trình G, cơ chế giao tiếp giữa Front Panel và Block Diagram thông qua các cấu trúc Icon/Connector để tạo SubVI. Nội dung chương trình bày chi tiết các bảng công cụ: Tool Palette, Controls Palette (chứa các công cụ Numeric, Boolean, String & Path dạng Control/Indicator) và Functions Palette (chứa các khối phép toán số học, logic, mảng, ma trận, cấu trúc vòng lặp). Chương 1 phân tích cấu tạo và chức năng của các khối kết nối trong gói Arduino: khối Init (chọn cổng VISA COM, tốc độ Baud rate 115200, loại bo mạch Uno/Mega 2560, kiểu kết nối USB/Bluetooth/XBEE), khối Close (đóng phiên kết nối), nhóm khối Low Level (đọc/ghi tín hiệu Digital/Analog, băm xung PWM), nhóm khối Sensors (các hàm giao tiếp cảm biến nhiệt độ, quang trở, điều khiển hiển thị LCD, LED) và nhóm Example, Utility. Điểm nhấn của chương là sự phân tích đối chiếu giữa nhân LIFA và nhân LINX, chứng minh tính ưu việt của nhân LINX thông qua ví dụ Manual Blink (điều khiển LED 13 qua cổng COM3) và kỹ thuật viết hàm tùy biến myCustomCommand trên file mẫu Arduino_Mega_2560_Serial để xử lý mảng byte truyền nhận giữa máy tính và vi điều khiển.

Chương 2: Một số bài thí nghiệm thiết kế trên bộ kit Arduino sử dụng các cảm biến thông dụng và truyền thông với máy tính

Chương 2 mô tả chi tiết thông số kỹ thuật, cấu tạo, sơ đồ chân và mã nguồn lập trình cho hệ thống 11 bài thí nghiệm thực hành đo lường cơ bản với các cảm biến vật lý:

  • Linh kiện phụ trợ: Khảo sát điện trở 10kΩ, LED đơn siêu sáng 5mm, nút nhấn 2 chân và 4 chân, tụ gốm 104 (điện dung 0.1µF, điện áp chịu đựng 50V, dải nhiệt độ -25°C đến 85°C dùng để lọc nhiễu cao tần) và màn hình LCD 20x4 ký tự.
  • Cảm biến nhiệt độ - độ ẩm DHT21 (AM2301): Cảm biến tích hợp đo nhiệt độ và độ ẩm kỹ thuật số, dải điện áp 3.3V - 5V, sai số độ ẩm ±3%, sai số nhiệt độ ±0.5°C, giao tiếp vi điều khiển qua 1 dây tín hiệu duy nhất (SDA) với khoảng cách truyền dẫn dây dẫn đạt tới 20m.
  • Cảm biến siêu âm HY-SRF05: Hoạt động ở điện áp 5V, dòng tiêu thụ dưới 2mA, dải đo khoảng cách từ 2cm đến 450cm với độ chính xác 0.5cm, góc quét dưới 15 độ. Nguyên lý đo dựa trên phát xung siêu âm 10µs từ chân Trigger, đo độ rộng xung phản hồi mức cao (HIGH) tại chân Echo qua hàm pulseIn(). Tác giả thiết lập công thức tính khoảng cách dựa trên vận tốc truyền âm trong không khí $v = 340 \text{ m/s}$ (tương đương 29.412 µs cho mỗi cm đường đi): $$\text{distanceCm} = \frac{\text{duration}}{29.412 \times 2}$$ với tham số chia đôi do sóng âm phải truyền đi và phản xạ ngược lại.
  • Cảm biến chuyển động PIR (Passive Infrared Sensor) sử dụng đầu dò 500BP: Điện áp làm việc 4.5V - 20V DC, ngõ ra mức logic 0V - 3.3V DC, dải phát hiện từ 2m đến 4.5m, hỗ trợ hai chế độ kích hoạt: L (không lặp lại kích hoạt) và H (lặp lại kích hoạt liên tục), tích hợp hai biến trở điều chỉnh độ nhạy và thời gian trễ (từ 0.3s đến vài phút).
  • Module cảm biến mưa FC-37: Gồm tấm cảm biến kích thước 54x40mm và mạch xử lý kích thước 30x16mm tích hợp IC so sánh điện áp LM393, xuất đồng thời tín hiệu số TTL D0 (mức thấp khi có mưa) và tín hiệu tương tự A0 tỷ lệ với lượng nước bám trên bề mặt.
  • Cảm biến dò line đơn TCRT5000: Sử dụng cặp thu-phát hồng ngoại, khoảng cách phát hiện 1 - 25mm, dòng tiêu thụ dưới 10mA, nhiệt độ làm việc 0°C - 50°C, sử dụng IC so sánh LM393 cung cấp ngõ ra D0 và A0, tích hợp chiết áp vi chỉnh độ nhạy để phân biệt vạch đen và nền trắng.
  • Module thời gian thực RTC DS3231: Sử dụng IC định thời độ chính xác cao DS3231 tích hợp bộ bù nhiệt (độ trôi chỉ 2ppm trong dải nhiệt độ 0 - 40°C, tương đương sai số khoảng 1 phút/năm), tính toán đầy đủ các đại lượng giây, phút, giờ, thứ, ngày, tháng, năm với khả năng tự bù năm nhuận đến năm 2100. Module tích hợp thêm IC nhớ EEPROM AT24C32 dung lượng 32KB, giao tiếp I2C tốc độ 400kHz với địa chỉ bus mặc định là 0x57 (EEPROM) và 0x68 (DS3231), kết nối qua chân SCL (chân 21) và SDA (chân 20) của bo mạch Mega 2560.
  • Các bài thí nghiệm thực hành: Triển khai bài học nhấp nháy LED tại chân 13; thay đổi độ sáng LED bằng PWM tại chân 6 (fadeAmount = 5, bước trễ 30ms); điều khiển tuần tự 8 LED trên mảng chân từ 2 đến 9 với bước trễ 500ms; xác định trạng thái nút nhấn tại chân 2 (sử dụng điện trở kéo xuống 10kΩ về GND) và ứng dụng nút nhấn chân 11 để đóng/cắt LED chân 2; đo khoảng cách không gian hiển thị lên Serial Monitor với thời gian chờ phản hồi timeout 5000µs; cảnh báo phát hiện người bằng PIR bật LED 13; phát hiện mưa bằng ngõ vào chân 6; phân biệt vạch màu trắng/đen với TCRT5000 tại chân 8; đọc dữ liệu thời gian thực dạng BCD chuyển đổi sang số thập phân hiển thị qua Serial; giám sát đồng thời nhiệt độ, độ ẩm môi trường từ DHT21 xuất dữ liệu lên LCD 20x4 và truyền dữ liệu lên giao diện máy tính qua nhân LINX.

Chương 3: Bài thí nghiệm điều khiển động cơ, giao tiếp cảm biến và truyền thông với máy tính

Chương 3 xây dựng bài thực hành phức hợp tích hợp giữa điều khiển công suất động cơ, cảm biến đo lường và giao diện giám sát hai chiều trên LabVIEW.

  • Phần cứng điều khiển động cơ: Sử dụng module điều khiển động cơ DC BTS7960 công suất cao, cho phép dòng tải định mức lên tới 43A, hỗ trợ điều khiển chiều quay và điều chỉnh tốc độ thông qua băm xung PWM.
  • Khối đo lường dòng điện và nhiệt độ: Hệ thống tích hợp cảm biến dòng điện chuyên dụng MAX471 với dải đo dòng điện một chiều tối đa 3A, xuất tín hiệu điện áp tương tự tỷ lệ thuận với cường độ dòng điện tiêu thụ của động cơ đưa vào chân Analog của Arduino. Để giám sát nhiệt độ phát sinh trên động cơ và khối công suất, hệ thống gắn cảm biến nhiệt độ kỹ thuật số DS18B20 với dải đo nhiệt từ -55°C đến +125°C, giao tiếp chuẩn 1-Wire.
  • Mạch cầu phân áp: Thiết kế mạch chia điện áp dùng hai điện trở chính xác để hạ mức điện áp làm việc 12V của động cơ xuống ngưỡng dưới 5V, giúp bộ chuyển đổi ADC 10-bit của Arduino Mega 2560 đọc và tính toán chính xác giá trị điện áp thực tế của nguồn cấp theo công thức tỷ lệ phân áp.
  • Cấu trúc hệ thống toàn mạch bao gồm: Khối điều khiển trung tâm (Arduino Mega 2560), Khối điều khiển động cơ (BTS7960), Động cơ DC và máy phát điện mini, Khối hiển thị LCD 20x4, Khối phím bấm cài đặt tốc độ và hướng quay, cùng Khối truyền thông dữ liệu máy tính.
  • Lập trình điều khiển và truyền thông: Tác giả xây dựng chương trình điều khiển trung tâm trên Arduino IDE để tiếp nhận tín hiệu từ các phím bấm, tính toán giá trị dòng điện từ MAX471, điện áp qua cầu phân áp và nhiệt độ từ DS18B20, xuất kết quả trực tiếp ra màn hình LCD 20x4. Đồng thời, thông qua nhân LINX, chương trình thiết lập giao diện điều khiển Front Panel trên LabVIEW với các đồng hồ kim (Gauge/Meter), đồ thị thời gian thực biểu diễn điện áp, dòng điện tiêu thụ và các nút bấm ảo cho phép người dùng điều khiển tốc độ và đảo chiều động cơ trực tiếp từ bàn phím máy tính.

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

Kết quả thực nghiệm của khóa luận được thể hiện qua các số liệu và sản phẩm cụ thể:

  • Chế tạo hoàn chỉnh một mô hình bộ kit thực hành vật lý ứng dụng dựa trên vi điều khiển Arduino Mega 2560, tích hợp đầy đủ hệ thống giắc cắm, bo mạch kết nối cảm biến và module công suất.
  • Thực nghiệm thành công 11 bài thí nghiệm cơ bản về ghép nối ngoại vi, bao gồm: điều khiển phát xung PWM biến thiên độ sáng LED; điều khiển 8 kênh LED logic; đọc trạng thái chuyển mạch nút nhấn với điện trở 10kΩ; đo khoảng cách siêu âm chính xác 0.5cm trong phạm vi 2cm - 450cm; phát hiện chuyển động trong phạm vi 2m - 4.5m với cảm biến PIR 500BP; phát hiện nước mưa với FC-37; nhận dạng line đen/trắng trong cự ly 1 - 25mm với TCRT5000; đếm thời gian thực chính xác 2ppm bù năm nhuận đến năm 2100 với DS3231; và đo nhiệt độ/độ ẩm môi trường chính xác ±0.5°C / ±3% với DHT21 hiển thị lên LCD 20x4.
  • Xây dựng thành công hệ thống điều khiển và giám sát động cơ DC công suất cao (module BTS7960 43A) có đo dòng thời gian thực (tối đa 3A với MAX471), đo điện áp qua cầu phân áp và đo nhiệt độ (-55°C đến +125°C với DS18B20), liên kết dữ liệu hai chiều với giao diện Front Panel của phần mềm LabVIEW qua cổng USB ảo (Baud rate 115200 bps).

Giải pháp và kiến nghị đề xuất của tác giả:

  • Kiến nghị nhà trường và Khoa Vật lý đưa bộ kit thực hành Arduino kết hợp LabVIEW vào chương trình giảng dạy chính thức của các học phần thực tập chuyên đề và thực tập cơ sở ngành Vật lý học.
  • Đề xuất thay thế từng bước các bộ kit vi điều khiển 8051 (chip AT89C52) đã lạc hậu bằng nền tảng vi điều khiển mã nguồn mở Arduino Mega 2560 nhằm giảm chi phí làm mạch mới cho sinh viên, đồng thời nâng cao khả năng tiếp cận công nghệ tự động hóa đo lường vật lý.

Đóng góp của nghiên cứu so với các phương pháp trước đó:

  • Khắc phục triệt để nhược điểm tốc độ chậm, tài nguyên hạn chế và tính đóng kín của hệ thống vi điều khiển 8051 truyền thống trong các phòng thí nghiệm vật lý đại học.
  • Giải quyết bài toán truyền thông máy tính tốc độ cao mà không làm mất đi tính độc lập của vi điều khiển bằng cách khai thác nhân mở rộng LINX với cơ chế hàm tùy biến AttachCustomCommand, thay vì dùng nhân LIFA biến vi điều khiển thành card ngoại vi thụ động.
  • Cung cấp một tài liệu hướng dẫn kỹ thuật chi tiết từ sơ đồ nối dây, thông số linh kiện, thuật toán C/C++ đến giao diện đo đạc LabVIEW, phục vụ trực tiếp cho công tác đổi mới phương pháp thực hành trong đào tạo cử nhân Vật lý học.

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

Hạn chế của đề tài:

  • Hệ thống thực nghiệm mới chỉ dừng lại ở quy mô các bài thí nghiệm mẫu (demo) trong phạm vi phòng thực tập, chưa được đóng gói thành sản phẩm thương mại hoặc thiết bị đo lường công nghiệp hoàn chỉnh.
  • Kênh truyền thông giữa Arduino và máy tính LabVIEW trong toàn bộ các bài thí nghiệm chỉ mới khai thác kết nối có dây thông qua cáp USB (chuẩn UART ảo), chưa triển khai thực nghiệm các module truyền thông không dây (mặc dù khối Init của LINX có hỗ trợ tùy chọn Bluetooth hoặc XBEE).
  • Các thuật toán điều khiển tốc độ động cơ DC trong bài thí nghiệm ở Chương 3 mới dừng lại ở việc phát xung PWM hở theo lệnh cài đặt, chưa tích hợp vòng điều khiển phản hồi kín tự động (như giải thuật PID) dù phần mềm LabVIEW có sẵn các khối chức năng này.

Hướng nghiên cứu tiếp được gợi mở từ phạm vi đề tài:

  • Nghiên cứu mở rộng khả năng kết nối không dây cho bộ kit bằng cách tích hợp các module Bluetooth, sóng vô tuyến nRF24L01 hoặc các module Wi-Fi (như ESP8266/ESP32) để phục vụ các bài toán thu thập dữ liệu từ xa và ứng dụng Internet of Things (IoT).
  • Ứng dụng các thuật toán điều khiển nâng cao có sẵn trong LabVIEW như bộ điều khiển PID hoặc Logic mờ (Fuzzy Logic) để tự động hóa ổn định tốc độ động cơ hoặc ổn định nhiệt độ trong các phép đo vật lý chuyên sâu.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực cho các đối tượng và học phần cụ thể:

  • Đối với sinh viên và giảng viên ngành Vật lý học, Sư phạm Vật lý, Kỹ thuật Cơ điện tử, Tự động hóa và Công nghệ kỹ thuật điện - điện tử: Khóa luận là tài liệu tham khảo trực tiếp cho các học phần Thực tập Cơ sở, Thực tập Chuyên đề Vật lý, Điện tử ứng dụng và Kỹ thuật đo lường - Ghép nối máy tính.
  • Các nội dung kỹ thuật có giá trị tham khảo cao nhất bao gồm:
    • Bảng cấu hình thông số kỹ thuật chi tiết của bo mạch vi điều khiển Arduino Mega 2560 (đặc biệt là sơ đồ 4 cổng Serial phần cứng và hệ thống ngắt ngoài).
    • Sơ đồ đấu nối mạch điện, cấu hình thanh ghi và mã nguồn chuẩn bằng ngôn ngữ C/C++ của 7 module cảm biến thông dụng (DHT21, HY-SRF05, PIR 500BP, FC-37, TCRT5000, DS3231, DS18B20).
    • Quy trình cài đặt phần mềm quản lý VIPM, nạp nhân firmware LINX và phương pháp sử dụng hàm AttachCustomCommand để truyền nhận dữ liệu mảng byte giữa Arduino và giao diện đồ họa LabVIEW.

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

1. Tại sao tác giả lại lựa chọn vi điều khiển Arduino Mega 2560 thay vì Arduino Uno hay vi điều khiển 8051 truyền thống?
Vi điều khiển 8051 (chip AT89C52) có tốc độ xử lý thấp, bộ nhớ nhỏ, khó ghép nối với các cảm biến hiện đại và đòi hỏi phải thiết kế làm mạch mới tốn kém khi thay đổi ứng dụng. Tác giả chọn Arduino Mega 2560 thay vì Arduino Uno vì Mega 2560 sở hữu cấu hình mạnh mẽ vượt trội với chip ATmega2560: 54 chân I/O số (so với 14 chân trên Uno), 16 chân ngõ vào Analog 10-bit (so với 6 chân trên Uno), 4 cổng UART phần cứng độc lập (Uno chỉ có 1 cổng) và bộ nhớ Flash lên tới 256 KB, đáp ứng tốt nhu cầu kết nối đồng thời nhiều module cảm biến, khối hiển thị LCD và module công suất lớn trong cùng một hệ thống thực hành.

2. Điểm khác biệt mấu chốt giữa hai nhân giao tiếp LIFA và LINX trong việc liên kết Arduino với LabVIEW là gì?
Nhân LIFA biến Arduino thành một card I/O mở rộng hoàn toàn thụ động của máy tính; toàn bộ hoạt động của Arduino đều do máy tính ra lệnh, khiến vi điều khiển không thể chạy độc lập như một real-time target và không tận dụng được kho thư viện C/C++ có sẵn. Ngược lại, nhân LINX cho phép nạp firmware mở rộng và lập trình thêm các hàm tùy biến bằng lệnh LinxSerialConnection.AttachCustomCommand() trong Arduino IDE. Nhờ đó, vi điều khiển vừa có thể chạy độc lập, tự đọc cảm biến bằng các thư viện gốc chuyên dụng, vừa trao đổi dữ liệu mảng hai chiều với LabVIEW qua giao tiếp nối tiếp.

3. Cảm biến siêu âm HY-SRF05 đo khoảng cách dựa trên nguyên lý và công thức tính toán vật lý nào?
Cảm biến phát ra một xung siêu âm có độ rộng tối thiểu 10µs từ chân Trigger. Khi sóng siêu âm gặp vật cản và phản xạ trở lại đầu thu, chân Echo sẽ xuất hiện mức điện áp cao (5V) với độ rộng thời gian tương ứng. Sử dụng vận tốc truyền âm thanh trong không khí là $340 \text{ m/s}$ (tương đương 29.412 µs để đi được 1 cm), khoảng cách được tính theo công thức: $$\text{distanceCm} = \frac{\text{duration}}{29.412 \times 2}$$ Số 2 ở mẫu số xuất phát từ việc sóng âm phải trải qua hai lượt đường đi (từ cảm biến tới vật cản và dội ngược lại cảm biến).

4. Module BTS7960 và cảm biến MAX471 đóng vai trò gì trong bài thí nghiệm điều khiển động cơ ở Chương 3?
Module BTS7960 là mạch cầu H điều khiển công suất cao chuyên dụng cho động cơ DC 12V, có khả năng chịu tải dòng điện liên tục lên tới 43A, cho phép vi điều khiển điều khiển chiều quay và băm xung PWM để thay đổi tốc độ động cơ mượt mà. Cảm biến MAX471 là module đo dòng điện chuyên dụng với dải đo từ 0 đến 3A, được mắc nối tiếp trong mạch động cơ để biến đổi giá trị dòng điện tiêu thụ thực tế thành điện áp tương tự ngõ ra, giúp vi điều khiển và phần mềm LabVIEW giám sát liên tục tải tiêu thụ của động cơ trong quá trình vận hành.

5. Module thời gian thực DS3231 duy trì độ chính xác cao và lưu trữ dữ liệu như thế nào?
Module sử dụng IC đồng hồ thời gian thực DS3231 tích hợp cảm biến nhiệt độ nội để tự động bù nhiệt cho thạch anh dao động, đạt độ chính xác cao trong dải nhiệt độ 0 - 40°C với sai số chỉ 2ppm (khoảng 1 phút mỗi năm). Module tính toán đầy đủ các đại lượng thời gian và tự động bù năm nhuận đến năm 2100. Dữ liệu được truyền thông với vi điều khiển qua bus I2C (chân SDA và SCL) với địa chỉ mặc định 0x68. Ngoài ra, module còn tích hợp thêm chip nhớ EEPROM AT24C32 với dung lượng 32KB (địa chỉ mặc định 0x57) để lưu trữ các tham số cài đặt của người dùng ngay cả khi mất nguồn điện chính nhờ pin nuôi dự phòng.

Kết luận

Khóa luận của tác giả Lê Thị Mỹ Hạnh đã giải quyết thành công bài toán kỹ thuật về việc thiết kế và chế tạo bộ kit thực hành Arduino Mega 2560 phục vụ đào tạo thực nghiệm trong chuyên ngành Vật lý học. Bằng việc tích hợp đồng bộ 7 module cảm biến đo lường vật lý, khối công suất điều khiển động cơ DC BTS7960 43A và phương thức truyền thông hai chiều với phần mềm LabVIEW thông qua nhân LINX, hệ thống đã chứng minh tính khả thi và độ tin cậy trong các phép đo đạc tự động hóa. Đề tài cung cấp cơ sở kỹ thuật thực tiễn vững chắc, góp phần thay thế hiệu quả các bộ thí nghiệm vi điều khiển 8051 truyền thống và hiện đại hóa trang thiết bị phòng thí nghiệm vật lý đại học.