Đến nay, mọi người đã có vài tháng để làm quen với AI Sinh sản và, nổi tiếng nhất, ChatGPT. Trong bài viết cuối cùng của tôi, Sử dụng ChatGPT cho Kiểm thử Tự động, tôi đã giới thiệu dịch vụ ChatGPT, chỉ bạn cách làm quen với nó và sử dụng nó để tạo mã chạy các bài kiểm tra trên phần cứng của bạn. Trong bài viết này, chúng ta sẽ xem xét cách tốt nhất để sử dụng ChatGPT để viết mã DelphiScript chạy các chức năng tự động trong chính Altium sử dụng Altium Scripting.
Trước khi chúng ta bắt đầu triển khai, điều quan trọng là phải hiểu chúng ta đang làm việc với cái gì ở đây. Altium Scripting được hỗ trợ tốt nhất khi sử dụng DelphiScript (so với các ngôn ngữ khác). Mặc dù một tìm kiếm nhanh trên mạng cho kết quả như, “Đã là năm 2022—Đã đến lúc bạn bắt đầu viết mã bằng Delphi chưa?” và các tiêu đề hấp dẫn như, “Ngôn ngữ Pascal được sử dụng trong Delphi là một trong những ngôn ngữ lập trình phổ biến và đa dụng nhất,” tôi chưa bao giờ thấy Delphi được sử dụng ngoài Altium Designer. Điều đó không có nghĩa là nó là một ngôn ngữ tồi - chỉ là nó không phổ biến như Python, C++, v.v. Có rất nhiều điều để học với một ngôn ngữ mới (đặc biệt nếu bạn không phải là một lập trình viên bản địa), vì vậy Altium đã tổng hợp rất nhiều tài nguyên và thậm chí là công cụ xung quanh việc lập trình bằng DelphiScript tại đây. Nếu bạn muốn tìm hiểu sâu về ngôn ngữ, các tài nguyên ở đó có thể hữu ích.
Khi bạn bắt đầu với Altium Scripting, bạn sẽ nhanh chóng phát triển một kho lưu trữ lớn các script mà bạn có thể muốn lưu và/hoặc chia sẻ. Để tạo một dự án Scripting mới trong Altium Designer, điều hướng đến File > New > Script > Script Project. Nhấp chuột phải vào dự án mới tạo của bạn và điều hướng đến Add New to Project > Script Unit. Điều này sẽ tạo một tệp .pas mới sẽ là script của bạn:
Hình 1: Thêm một tệp script vào dự án hiện tại
Chúng ta sẽ muốn lưu điều này vào không gian làm việc Altium 365 của mình. Đầu tiên, hãy đảm bảo bạn đã lưu dự án cục bộ. Sau đó, nhấp chuột phải vào dự án một lần nữa và điều hướng đến History & Version Control > Add Project to Version Control…
Hình 2: Thêm dự án vào Không gian Làm việc Altium 365
Theo các hướng dẫn sau để lưu dự án vào Không gian Làm việc Altium 365 của bạn. Để biết thêm hướng dẫn về cách viết, chạy và gỡ lỗi mã DelphiScript trong Altium Designer, hãy tham khảo tài liệu Altium.
Bây giờ chúng ta đã sẵn sàng, chúng ta sẽ bắt đầu. ChatGPT có "khả năng" viết hoàn toàn mã DelphiScript từ đầu đến cuối. Tôi sử dụng "khả năng" thay vì "năng lực" ở đây bởi vì nó không phải lúc nào cũng làm đúng. Hãy lấy một ví dụ đơn giản khi chúng ta yêu cầu ChatGPT tạo một script trong DelphiScript để liệt kê tất cả các mạch trong dự án của tôi. Tôi bắt đầu với một lời nhắc mà, phải công nhận, rất mơ hồ:
Hình 3: Phản hồi ban đầu của ChatGPT
Điều này tự động được hiểu là tôi muốn liệt kê tất cả các mạch từ một PcbDoc. Thực ra tôi muốn nó từ sơ đồ, vì vậy tôi đã sửa lại:
Hình 4: Một trong nhiều nỗ lực của ChatGPT để viết đúng script
Tôi không hiển thị tất cả mã mà nó đã tạo cho tôi, nhưng điều xảy ra sau đó là tôi chạy mã đó nhiều lần chỉ để Altium Designer báo lỗi như “Undeclared Identifier: eNet,” hoặc “Expected: in For Pin in Component. Pins Do.” Tất cả những gì tôi làm là phản hồi lại với ChatGPT về những lỗi đó nhiều lần, và sau lần thứ năm, nó đã tạo ra mã mà tôi đang tìm kiếm.
Rõ ràng là nó không giỏi trong việc tạo DelphiScript từ đầu, nhưng nó có khả năng làm vậy. Hãy nhớ điều này trước khi bạn ném bàn phím vào tường vì thất vọng.
ChatGPT cũng có thể được sử dụng như một người bạn đồng hành hoặc lập trình viên cùng làm việc. Bạn có thể sử dụng ChatGPT để phân tích mã của mình, tìm lỗi, hoặc giúp bạn chỉnh sửa các chức năng cụ thể. Chúng ta có thể lấy một ví dụ về Kịch bản Altium hiện có và yêu cầu ChatGPT chỉnh sửa nó để đáp ứng nhu cầu của chúng ta.
Có các nguồn lực ngoài kia (đặc biệt là được lưu trữ trên GitHub) cung cấp các ví dụ về Kịch bản Altium cho bạn. Tôi sẽ sử dụng những ví dụ chính thức được cung cấp bởi Altium. Bạn có thể tìm thấy chúng tại đây.
Tôi bắt đầu với ví dụ PlaceAPort nằm dưới \DelphiScript Scripts\SCH\Sch_Scripts.PrjScr. Tôi đã đưa cho ChatGPT một nhiệm vụ rất đơn giản:
ChatGPT đã đưa cho tôi mã theo đúng yêu cầu này. Thực sự đây là điều khá đơn giản nếu bạn tương đối thoải mái với lập trình. Hãy làm cho nó khó hơn một chút đòi hỏi kiến thức ngữ cảnh về Kịch bản Altium.
Đây là lời nhắc cập nhật của tôi cho ChatGPT:
Nó thất bại ngay từ lần đầu tiên với lỗi Undeclared Identifier:
Hình 5: Lỗi debugger từ Altium Designer
Tôi đã thông báo cho nó biết và nó đã xin lỗi, dĩ nhiên. Nó thất bại một lần nữa với lỗi “Undeclared identifier: Name” nhưng, đến lần thứ ba, tôi đã nhận được nhãn mạng của mình đúng chỗ nó cần phải có:
Hình 6: Nhãn mạng mới và cổng được tạo bởi kịch bản đã chỉnh sửa
Rõ ràng là với sự tăng lên về độ phức tạp, ChatGPT sẽ có ít cơ hội hơn để làm đúng kịch bản của bạn ngay từ lần đầu tiên. Tôi đã phát hiện ra rằng, với sự kiên trì, nó cuối cùng cũng có thể làm đúng, đặc biệt là nếu bạn có thể hỗ trợ nó một chút (giả sử bạn hiểu mã nó tạo ra).
Trong bài viết này, chúng tôi đã bắt đầu với giới thiệu về Kịch bản Altium, cách tạo một dự án, và lưu nó vào không gian làm việc Altium 365 của bạn. Chúng tôi đã đi sâu vào các ví dụ với ChatGPT nơi nó hoàn toàn tạo ra kịch bản từ đầu và cũng chỉnh sửa kịch bản mà chúng tôi cung cấp. Chúng tôi đã thể hiện khả năng của nó và làm thế nào nó không phải lúc nào cũng làm đúng. Mặc dù nó không hoàn hảo nhưng chắc chắn nó có thể hành động như một hướng dẫn trong suốt hành trình Kịch bản Altium của bạn. Quan trọng nhất, chắc chắn tốt hơn là có nó hơn là không có nó.