Data Management and Version Control

Securely manage design data with advanced version control, ensuring seamless collaboration, traceability, and compliance throughout the design lifecycle.

Filter
found
Sort by
Role
Software
Content Type
Region
Clear Filters
使用生成式AI编写和运行嵌入式代码 使用生成式AI编写和运行嵌入式代码 1 min Altium Designer Projects 在 如何构建自定义GPT操作以与您的硬件对话和 构建AI实验室助手中,我们学习了如何使用生成式AI控制我们的硬件。通过在ChatGPT中使用自定义GPT操作,我们能够赋予ChatGPT不仅能让树莓派上的LED灯闪烁,还能控制实验室仪器并获取数据的能力。这意味着我们可以使用人工智能作为我们的实验室助手,并处理它从我们的仪器中获取的数据。在这篇文章中,我们将更进一步,让生成式AI不仅为我们编写代码,还能在嵌入式目标上执行代码并在此过程中接收反馈。 背景 使用生成式AI编写代码,即使是对于嵌入式系统,也不是什么新鲜事。已经有很多工具在建议或完全从头开始编写代码。最受欢迎的大型语言模型,如ChatGPT、Gemini和Claude,都已经变得相当擅长编写代码(参见 Gemini与ChatGPT:谁写的代码更好进行比较)。我已经写了一年多关于ChatGPT生成代码的文章了(参见 使用ChatGPT进行自动化测试),并宣称这是如今开发的唯一方式。真正的挑战是将AI纳入你的开发循环中。 代码生成只能带你走这么远,但要验证并确保它有效,当涉及到生成式AI时需要采取不同的方法。ChatGPT的代码解释器提供了一个封装的Python环境,可以在一定程度上运行生成的代码并验证它对你是否有效。我想更进一步,看看我们是否能在嵌入式系统上实现同样的事情。有两种方法可以使用OpenAI的ChatGPT。最常见的方法是创建一个使用OpenAI API的封闭循环应用。它会提示并从大型语言模型(LLM)使用API获取代码,编译它,将其加载到Arduino上,并使用额外的自定义代码来验证生成代码的功能。我决定采取不同的方法,使用GPT操作来使其更像是一种“代码配对体验”。这就是那种体验的样子: 图1:GPT操作示例 虽然这个例子可能很简单(即闪烁一个板载LED),但上面的演示总结了一切。我能够给我的自定义GPT清晰的指令,它完全按照我的预期执行了指令。我还能确认它确实上传到了我的设备,并以1秒的频率让LED闪烁。与封闭循环系统相比,使用自定义GPT的好处是我可以在提示符内很容易地进行迭代: 图2:在Arduino草图上进行迭代 现在你已经看到了一些例子,让我们来看看这一切是如何工作的。 工作原理 就像我们在其他自定义GPT文章中看到的那样,这个项目的GPT Actions设置或多或少是相同的。Dockerfile、Docker Compose、SSL证书以及仓库的总体结构并没有太大变化。当然,设计代码本身和OpenAPI YAML文件显著不同(这是意料之中的)。 这段代码(与之前的例子相比)最大的变化是我们在Python中引入了一个“子进程”来调用外部程序,在这个案例中是Arduino IDE。我们的OpenAPI 阅读文章