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

Khóa cửa là bộ phận cấu thành thiết yếu trong mọi công trình kiến trúc dân dụng và công nghiệp. Tuy nhiên, các loại khóa cơ truyền thống bộc lộ nhiều nhược điểm trong quá trình sử dụng như: dễ bị cạy phá, cắt bỏ khi gặp kẻ gian; dễ bị kẹt ổ khóa; gây bất tiện khi người dùng phải mang theo nhiều chìa khóa kim loại cồng kềnh; tính thẩm mỹ suy giảm sau thời gian dài sử dụng do hiện tượng hoen gỉ. Đồng thời, tại các khu chung cư, cơ quan, viện nghiên cứu hay các tòa nhà sử dụng hệ thống điều hòa không khí tập trung, việc kiểm soát cửa đóng mở tự động là yêu cầu cấp thiết nhằm tránh thất thoát nhiệt lượng, giảm thiểu va chạm và đảm bảo lưu thông thông suốt. Xuất phát từ thực tế đó, đề tài "Thiết kế khóa thông minh sử dụng bộ điều khiển STM32" được thực hiện nhằm chế tạo mô hình khóa cửa tự động, tích hợp xác thực điện tử để nâng cao tính an toàn và tiện dụng.

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

  1. Bảo đảm an toàn, bảo mật cao: Ứng dụng công nghệ nhận diện thẻ từ RFID và mã số bảo mật nhằm hạn chế khả năng đột nhập trái phép so với khóa cơ học.
  2. Quản lý dễ dàng: Hỗ trợ người quản trị dễ dàng thêm, xóa quyền truy cập của người dùng thông qua hệ thống quản lý.
  3. Dễ sử dụng: Tối ưu thời gian thao tác mở khóa xuống còn 1–2 giây khi quẹt thẻ (hoặc 3–5 giây khi thao tác đóng mở hoàn tất) và tự động chốt cửa sau khi người dùng đi qua.
  4. Nâng cao tính thẩm mỹ: Thiết kế kiểu dáng thanh lịch, phù hợp với kiến trúc nhà ở hiện đại và các căn hộ chung cư.

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

  • Đối tượng nghiên cứu: Hệ thống khóa cửa thông minh ứng dụng cho các hộ dân cư, căn hộ chung cư, khách sạn quy mô từ nhỏ đến lớn.
  • Phạm vi nghiên cứu:
    • Thiết kế phần cứng: Lựa chọn và tích hợp vi điều khiển STM32F103C8T6, module đọc thẻ RFID-RC522, bàn phím ma trận 4x4, cảm biến khoảng cách hồng ngoại, động cơ RC Servo và mạch nguồn hạ áp LM2596.
    • Phát triển phần mềm: Lập trình firmware cho vi điều khiển STM32 xử lý tín hiệu đầu vào/ra; xây dựng phần mềm quản lý trên máy tính (sử dụng nền tảng WPF/Windows Form) kết nối cơ sở dữ liệu Microsoft SQL Server qua giao tiếp nối tiếp UART/CH340.
    • Chế tạo và thử nghiệm mô hình: Thi công mạch in PCB bằng phần mềm Altium Designer và lắp ráp khung mô hình bằng vật liệu bìa Fomex để đánh giá hoạt động thực tế.

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

Khóa luận xây dựng trên các nền tảng lý thuyết và công nghệ kỹ thuật sau:

  • Cơ sở dữ liệu và quản trị hệ thống: Lý thuyết về cơ sở dữ liệu quan hệ (RDBMS), ngôn ngữ truy vấn có cấu trúc SQL (Structured Query Language) và hệ quản trị cơ sở dữ liệu Microsoft SQL Server.
  • Phương pháp lập trình: Lập trình hướng đối tượng (OOP) với 4 đặc tính cơ bản (đóng gói, kế thừa, đa hình, trừu tượng) phục vụ xây dựng phần mềm quản lý người dùng.
  • Công nghệ phát triển ứng dụng Windows: So sánh và ứng dụng Windows Forms (WinForm) cùng Windows Presentation Foundation (WPF) với mô hình liên kết dữ liệu Data Binding và ngôn ngữ XAML.
  • Giao thức truyền thông số:
    • Giao thức SPI (Serial Peripheral Interface): Chuẩn truyền thông đồng bộ tốc độ cao, song công (Full-Duplex) theo mô hình Master-Slave sử dụng 4 đường tín hiệu (SCK, MISO, MOSI, SS) để kết nối STM32 với module RFID-RC522.
    • Giao thức UART/USART: Chuẩn truyền thông nối tiếp không đồng bộ kết nối STM32 với máy tính thông qua IC chuyển đổi CH340.
  • Khảo sát các cơ cấu cửa tự động: Phân tích nguyên lý và cấu tạo của các dòng cửa trên thị trường gồm cửa kính tự động kéo, cửa trượt tự động (2 cánh, 4 cánh thông thủy 75%, trượt cong), cửa xoay tự động (hệ 3-4 cánh với các chế độ: khóa điện, xoay chậm, tự động, một chiều) và cửa mở cánh dùng lò xo.

Phương pháp nghiên cứu được triển khai:

  • Phương pháp nghiên cứu thực nghiệm: Thiết kế, chế tạo mạch in, lập trình nhúng và kiểm tra trực tiếp các kịch bản đóng/mở cửa bằng mật khẩu, quẹt thẻ RFID và phản hồi trạng thái trên mô hình vật lý.
  • Phương pháp nghiên cứu tình huống: Khảo sát thực tế cơ chế vận hành cửa tự động tại các tòa nhà thương mại, sân bay và văn phòng công sở.
  • Phương pháp nghiên cứu so sánh: Đánh giá ưu nhược điểm giữa phương thức mở bằng mã PIN và thẻ từ; so sánh đặc tính kỹ thuật giữa các dòng vi điều khiển 8-bit và 32-bit.

Nguồn dữ liệu sử dụng:

  • Dữ liệu định danh thẻ từ thu thập trực tiếp qua sóng vô tuyến tần số 13.56 MHz từ IC MFRC522.
  • Dữ liệu tín hiệu phím bấm từ bàn phím ma trận 4x4 quét qua các chân GPIO.
  • Dữ liệu nhật ký vận hành và thông tin phân quyền người dùng lưu trữ trong các bảng dữ liệu của Microsoft SQL Server.

Thiết kế và triển khai

Hệ thống được thiết kế dưới dạng một giải pháp tích hợp phần cứng nhúng và phần mềm quản lý trên máy tính, gồm các khối chức năng chính:

Tên khối Linh kiện / Công nghệ sử dụng Thông số kỹ thuật & Chức năng chính
Khối nguồn Biến áp đối xứng, IC LM2596 Biến áp 220VAC/110VAC sang 15-0-15VAC (3A); IC LM2596 hạ áp xung 5VDC (dòng liên tục 3A, tần số chuyển mạch 150kHz).
Khối vi điều khiển STM32F103C8T6 Lõi ARM Cortex-M3 32-bit, thạch anh 8MHz, nguồn 3.3VDC, quản lý giao tiếp SPI, UART, Timer và các cổng GPIO.
Khối xác thực RFID Module RC522 (IC MFRC522) Tần số 13.56 MHz, giao tiếp SPI (tối đa 10 Mbit/s), khoảng cách nhận dạng 0–60 mm (hỗ trợ thẻ Mifare1 S50, S70, UltraLight, Pro, Desfire).
Khối nhập mã PIN Bàn phím ma trận 4x4 Gồm 16 phím bấm mềm, 8 đầu vào/ra kết nối GPIO, hoạt động theo thuật toán quét mức logic hàng và cột.
Khối chấp hành Động cơ RC Servo Nguồn cấp 5VDC, điều khiển góc quay đóng/mở chốt cửa thông qua tín hiệu PWM phát từ bộ Timer của STM32.
Khối cảm biến Cảm biến hồng ngoại LM393 Cặp LED thu/phát hồng ngoại, khoảng cách phát hiện vật cản 2–30 cm (góc 35°), hỗ trợ nhận biết và kích hoạt phụ trợ.
Khối truyền thông Module CH340 Cầu nối chuyển đổi tín hiệu Serial TTL (USART) từ STM32 sang tín hiệu chuẩn USB trên máy tính.
Phần mềm quản lý C#/WPF, MS SQL Server Giám sát trạng thái, lưu trữ thông tin tài khoản, ghi nhận thời gian quẹt thẻ và hỗ trợ xuất báo cáo lịch sử sang định dạng Excel.

Quy trình thiết kế và tính toán kỹ thuật:

  • Tính toán mạch nguồn: Mạch phân áp cho chân phản hồi (Feedback) của IC LM2596 sử dụng công thức: $$V_{out} = V_{ref} \times \left(1 + \frac{R1}{R3}\right)$$ Với điện áp tham chiếu $V_{ref} = 1.23\text{V}$, chọn điện trở $R3 = 3.3\text{k}\Omega$, tính toán lý thuyết cho ra $R1 = 10.11\text{k}\Omega$. Trong thực tế, nhóm lựa chọn điện trở chuẩn $R1 = 10\text{k}\Omega$, tạo ra điện áp ngõ ra xấp xỉ 4.95V–5.0V cấp nguồn ổn định cho hệ thống.
  • Thiết kế mạch in và mô hình: Mạch nguyên lý và sơ đồ mạch in (PCB) được thiết kế trên phần mềm Altium Designer 16 với độ rộng đường mạch tín hiệu chuẩn. Khung mô hình được gia công định hình bằng các tấm bìa Fomex liên kết bằng keo dán chuyên dụng.
  • Thuật toán xác thực và thêm người dùng:
    • Mở cửa bằng mã PIN: STM32 liên tục quét trạng thái 4 hàng và 4 cột của bàn phím. Khi người dùng nhập đủ chuỗi ký tự, vi điều khiển so sánh với mật mã lưu trữ; nếu trùng khớp, Timer kích hoạt Servo quay mở cửa trong 4–5 giây rồi tự động quay về vị trí đóng.
    • Mở cửa bằng RFID: Khi thẻ quét vào vùng cảm ứng, RC522 truyền UID qua SPI đến STM32. STM32 gửi chuỗi ký tự qua UART lên phần mềm máy tính để đối soát trong CSDL SQL Server; nếu hợp lệ, phần mềm phản hồi lệnh mở cửa.
    • Quy trình thêm người dùng: Người quản trị kích hoạt lệnh thêm trên giao diện phần mềm -> phần mềm truyền mã 'Ti' xuống STM32 -> người dùng quẹt thẻ lần 1, STM32 gửi chuỗi "IA1x" lên phần mềm -> phần mềm yêu cầu quẹt xác thực lần 2, STM32 gửi chuỗi "IA2x" -> phần mềm mở biểu mẫu cho phép nhập tên, quan hệ và lưu trữ trực tiếp vào SQL Server.

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

CHƯƠNG 1: TỔNG QUAN

Chương 1 hệ thống hóa các kiến thức nền tảng về cơ sở dữ liệu quan hệ, ngôn ngữ SQL, hệ quản trị Microsoft SQL Server và phương pháp lập trình hướng đối tượng (OOP). Tiếp đó, chương phân tích các công cụ phát triển phần mềm giao diện trên hệ điều hành Windows gồm WinForms và WPF, đồng thời trình bày cấu trúc giao tiếp phần cứng qua chuẩn SPI (chức năng các đường SCK, MISO, MOSI, SS trong mô hình kết nối 1 Master - nhiều Slave).

Về mặt cơ khí và ứng dụng thực tế, chương tổng hợp kết quả khảo sát cửa thông minh tại các tòa nhà: hệ thống cửa 2 cánh (trọng lượng khoảng 80 kg/cánh), dẫn động bằng động cơ DC điều khiển điện áp 2 cấp tốc độ (mở nhanh để tránh ùn tắc, giảm tốc cuối hành trình; đóng chậm để đảm bảo an toàn) kết hợp công tắc hành trình. Cuối chương, tác giả phân loại và so sánh chi tiết ưu nhược điểm của các loại cửa tự động (cửa trượt 2 cánh, 4 cánh, trượt cong, cửa xoay, cửa mở cánh) cùng các thành phần cơ bản như ray trượt, nắp, bo điều khiển, dây đai truyền động, pulley không tải, tai treo bánh xe, cữ chặn và các loại cảm biến chuyển động/nhiệt hồng ngoại.

CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG MÔ HÌNH HỆ THỐNG CỬA THÔNG MINH

Chương 2 tập trung vào phân tích yêu cầu kỹ thuật, so sánh lựa chọn linh kiện và hiện thực hóa thiết kế hệ thống. Trong phần lựa chọn vi điều khiển, tác giả lập luận so sánh 3 phương án: STM32F103C8T6 (kiến trúc ARM Cortex-M3 32-bit, xung nhịp cao, ngoại vi phong phú, hỗ trợ IDE đa dạng như Keil MDK, STM32CubeIDE), PIC 18F6520 (8-bit, cấu trúc đơn giản, chi phí rẻ nhưng tốc độ và ngoại vi hạn chế) và Nuvoton (dòng chip mới, cộng đồng và tài liệu hỗ trợ chưa phong phú). Vi điều khiển STM32F103C8T6 được lựa chọn làm khối xử lý trung tâm.

Chương trình bày chi tiết sơ đồ khối tổng quát, tính toán thông số mạch nguồn hạ áp LM2596 từ biến áp 15VAC xuống 5VDC, nguyên lý kết nối chân của module đọc thẻ RC522, cảm biến khoảng cách LM393, module chuyển đổi USB-UART CH340 và động cơ RC Servo. Toàn bộ thiết kế mạch in được layout trên phần mềm Altium Designer 16 và thi công trên khung mô hình Fomex. Về mặt phần mềm, chương xây dựng lưu đồ thuật toán quét phím ma trận 4x4, lưu đồ đọc/truyền mã thẻ RC522, quy trình xác thực hai bước khi thêm thẻ mới, cấu trúc lược đồ thực thể quan hệ (ER Diagram) và các bảng dữ liệu quản lý người dùng trên Microsoft SQL Server.

CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ

Chương 3 trình bày quy trình vận hành và kết quả kiểm thử thực nghiệm trên mô hình. Các bước vận hành sản phẩm được chuẩn hóa từ khâu cấp nguồn, quẹt thẻ/nhập mã PIN đến hiển thị trạng thái trên phần mềm và cơ cấu Servo đóng mở chốt cửa. Quá trình kiểm nghiệm được thực hiện thông qua 4 bảng số liệu thực nghiệm:

  • Bảng 3-1: Bảng thể hiện thông tin khi thêm thẻ.
  • Bảng 3-2: Bảng thể hiện thông tin khi xóa thẻ.
  • Bảng 3-3: Bảng thông tin số lần thử nghiệm nhập password.
  • Bảng 3-4: Bảng thông tin quẹt thẻ.

Từ các kết quả thử nghiệm, tác giả đánh giá hệ thống đạt được các ưu điểm về thời gian mở cửa nhanh chóng, tính năng tự động chốt an toàn, khả năng lưu trữ và trích xuất lịch sử ra vào trực quan. Đồng thời, chương chỉ ra các hạn chế của mô hình và phân tích tác động tích cực của sản phẩm đối với việc tiết kiệm năng lượng điều hòa và nâng cao văn minh tại các khu dân cư, văn phòng.

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

Kết quả thực nghiệm chính của đồ án bao gồm:

  • Chế tạo thành công mô hình phần cứng khóa cửa thông minh hoạt động ổn định với nguồn cấp 5VDC qua mạch hạ áp LM2596.
  • Tích hợp thành công vi điều khiển STM32F103C8T6 với module RFID-RC522 (giao tiếp SPI) và bàn phím ma trận 4x4 (quét GPIO), cho phép mở cửa qua 2 phương thức độc lập.
  • Xây dựng phần mềm quản lý trên máy tính giao tiếp qua cổng COM ảo (CH340/UART), liên kết đồng bộ với hệ quản trị cơ sở dữ liệu Microsoft SQL Server.
  • Hệ thống hỗ trợ đầy đủ các chức năng quản trị: thêm người dùng qua quy trình quét thẻ 2 lần ("IA1x", "IA2x"), xóa thẻ, hiển thị thông tin chủ thẻ khi quẹt, ghi nhận nhật ký thời gian thực và xuất dữ liệu lịch sử ra file Excel.
  • Cơ cấu chấp hành Servo vận hành chính xác theo chu trình: mở cửa khi xác thực đúng và tự động đóng chốt an toàn sau 4–5 giây.

Đóng góp của đề tài: Đồ án đã thiết kế và hiện thực hóa một mô hình khóa cửa tự động hoàn chỉnh, kết hợp đồng bộ giữa vi điều khiển nhúng 32-bit và ứng dụng quản lý cơ sở dữ liệu trên máy tính. Giải pháp cung cấp tài liệu kỹ thuật chi tiết về thiết kế mạch phần cứng, giải thuật lập trình nhúng và giao thức truyền nhận dữ liệu chuỗi có cấu trúc, tạo tiền đề cho việc ứng dụng các giải pháp kiểm soát ra vào chi phí thấp trong các căn hộ và văn phòng.

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

Hạn chế của đề tài (dựa trên nội dung công bố trong văn bản):

  • Kết cấu cơ khí của sản phẩm mới dừng lại ở mức mô hình thử nghiệm bằng bìa Fomex và động cơ RC Servo công suất nhỏ, chưa đáp ứng tải trọng thực tế của cánh cửa dân dụng.
  • Phương thức truyền thông giữa khối vi điều khiển và máy tính quản lý vẫn phụ thuộc vào kết nối có dây thông qua module UART/USB CH340, làm hạn chế khoảng cách bố trí thiết bị.
  • Hệ thống chưa được tích hợp các cơ chế cảnh báo từ xa (như còi báo động công suất lớn hoặc tin nhắn cảnh báo) khi có hành vi cạy phá hoặc nhập sai mật khẩu nhiều lần liên tiếp trong điều kiện thực địa.

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

  • Nâng cấp phần cứng cơ khí và động cơ truyền động công suất lớn phù hợp với các loại cửa kính trượt hoặc cửa mở cánh thực tế.
  • Tích hợp các module truyền thông không dây (Wi-Fi, Bluetooth) hoặc phát triển ứng dụng di động (Mobile App) để giám sát và điều khiển khóa cửa từ xa qua mạng Internet.
  • Bổ sung thêm các phương thức xác thực sinh trắc học (nhận diện vân tay, khuôn mặt) hoặc điều khiển bằng giọng nói.
  • Mở rộng khả năng tương thích và liên kết hệ thống khóa với hạ tầng nhà thông minh (Smart Home) tổng thể.

Giá trị tham khảo

Đồ án là tài liệu tham khảo chuyên ngành hữu ích cho:

  • Sinh viên các ngành Công nghệ Kỹ thuật Điện tử - Viễn thông, Kỹ thuật Máy tính, Cơ điện tử, Tự động hóa và Công nghệ Thông tin đang thực hiện đồ án tốt nghiệp hoặc các dự án về hệ thống nhúng.
  • Các kỹ sư, người nghiên cứu thiết kế hệ thống IoT và thiết bị an ninh dân dụng.

Các nội dung có giá trị tham khảo kỹ thuật cao trong tài liệu:

  • Phương pháp tính toán và thiết kế mạch nguồn hạ áp DC-DC dùng IC LM2596.
  • Quy trình lập trình cấu hình ngoại vi SPI cho module RFID-RC522 và thuật toán quét phím ma trận trên vi điều khiển ARM Cortex-M3 (STM32F103C8T6).
  • Cấu trúc đóng gói chuỗi ký tự và xây dựng giao thức truyền thông hai chiều giữa vi điều khiển nhúng với phần mềm giao diện máy tính (C#/WPF) kết nối cơ sở dữ liệu SQL Server.

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

1. Vi điều khiển STM32F103C8T6 được nhóm tác giả lựa chọn dựa trên những ưu điểm nào so với PIC 18F6520 và Nuvoton?
Nhóm tác giả lựa chọn STM32F103C8T6 vì dòng vi điều khiển này sử dụng lõi ARM Cortex-M3 32-bit có hiệu năng xử lý cao, xung nhịp lớn, dung lượng bộ nhớ Flash/SRAM dồi dào và tích hợp đa dạng ngoại vi (SPI, USART, Timer, ADC). Ngoài ra, STM32 có hệ sinh thái phần mềm mạnh mẽ (STM32CubeIDE, Keil MDK, thư viện HAL), cộng đồng hỗ trợ đông đảo và nằm trong chương trình đào tạo của nhà trường, thuận lợi hơn so với dòng PIC 8-bit (tốc độ chậm, ít ngoại vi) và dòng Nuvoton (còn mới, ít tài liệu tham khảo).

2. Khối nguồn của mô hình được thiết kế hạ áp như thế nào để cung cấp điện áp 5VDC cho hệ thống?
Khối nguồn sử dụng máy biến áp đối xứng hạ điện áp lưới 220VAC xuống 15-0-15VAC (dòng tối đa 3A). Sau khi nắn dòng và lọc phẳng, nguồn điện đi vào IC hạ áp xung LM2596 (tần số 150 kHz). Thông qua mạch phân áp nối với chân Feedback với giá trị điện trở $R3 = 3.3\text{k}\Omega$ và $R1 = 10\text{k}\Omega$, mạch tạo ra điện áp ngõ ra ổn định xấp xỉ 5VDC cung cấp cho vi điều khiển và các module ngoại vi.

3. Module RFID-RC522 sử dụng tần số sóng mang nào và kết nối với STM32 qua giao thức gì?
Module RFID-RC522 tích hợp IC MFRC522 của Philips, hoạt động ở tần số sóng mang 13.56 MHz, hỗ trợ đọc/ghi các loại thẻ Mifare (Mifare1 S50, S70, UltraLight, Pro, Desfire) trong phạm vi từ 0 đến 60 mm. Module kết nối và truyền nhận dữ liệu với STM32F103C8T6 thông qua giao thức truyền thông nối tiếp đồng bộ SPI 4 dây gồm: SCK (xung nhịp), MISO (dữ liệu vào Master), MOSI (dữ liệu ra Master) và SDA/SS (chân chọn chip kích hoạt mức thấp).

4. Giao thức dữ liệu giữa STM32 và phần mềm máy tính khi thêm một thẻ người dùng mới diễn ra theo các bước nào?
Quá trình diễn ra theo 3 bước:

  1. Người quản trị bấm thêm trên phần mềm, phần mềm gửi ký hiệu "Ti" ('T' là ký tự bắt đầu, 'i' là số thứ tự thẻ) xuống STM32 qua UART.
  2. Người dùng quẹt thẻ mới lần 1, STM32 đọc mã và gửi chuỗi "IA1x" lên phần mềm; phần mềm yêu cầu quẹt lại để xác thực.
  3. Người dùng quẹt thẻ lần 2, STM32 gửi chuỗi "IA2x" lên phần mềm; khi xác nhận trùng khớp, phần mềm bật giao diện cho phép nhập họ tên, quan hệ và lưu trực tiếp vào cơ sở dữ liệu SQL Server.

5. Cơ cấu cửa tự động duy trì trạng thái mở trong bao lâu trước khi đóng lại?
Theo thiết kế và quy chuẩn vận hành của mô hình, sau khi người dùng xác thực thành công bằng mật khẩu đúng trên bàn phím ma trận hoặc quẹt thẻ từ RFID hợp lệ, vi điều khiển sẽ điều khiển động cơ Servo mở chốt cửa và duy trì trạng thái mở trong khoảng thời gian từ 4 đến 5 giây trước khi tự động điều khiển đóng chốt lại.

Kết luận

Đồ án "Thiết kế khóa thông minh sử dụng bộ điều khiển STM32" đã hoàn thành việc nghiên cứu, tính toán phần cứng và lập trình hệ thống khóa cửa điện tử ứng dụng vi điều khiển 32-bit kết hợp phần mềm quản lý trên máy tính. Hệ thống đáp ứng các yêu cầu kỹ thuật về bảo mật đa phương thức (mã PIN ma trận 4x4 và thẻ từ RFID 13.56 MHz), vận hành cơ cấu chốt tự động trong 4–5 giây và quản trị dữ liệu người dùng tập trung qua Microsoft SQL Server. Mô hình thực nghiệm chứng minh tính khả thi cao, cung cấp tài liệu tham khảo có giá trị cho sinh viên chuyên ngành kỹ thuật điện tử và định hướng phát triển các giải pháp kiểm soát truy cập thông minh trong tương lai.