亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

电气工程师何时可以使用 Python? Python 编程语言的应用程序

EE 在日常工作中可以在哪里使用 Python?下面来看看 Python 擅长的应用。

EE 日常可以在哪里使用 Python?下面来看看 Python 擅长的应用。

在上一篇文章中,我们提出了一个问题“为什么工程师还要费心学习 Python?”

现在,让我们讨论 Python 如何与电气工程师的工作相关。

瑞士军刀工程师

EE 不仅仅处理电路设计。我们还面临着许多必须处理的其他任务。有固件编程、调试、测试原型硬件和软件、测试生产样品、进行质量控制,以及看似永无止境的大量数据收集、评估和分析。

Python 如何帮助解决这一切?

进入瑞士军刀语言 Python

Python 非常擅长成为一种通用的编程语言。像 HDL(硬件描述语言,如 VHDL、Verilog)这样的语言会做一件特定的事情,比如合成到硬件。 C/C++ 运行精益,非常适合嵌入式编程。但是,在您的工具带中使用瑞士军刀语言可以帮助处理通常构成我们处理大部分事情的通用任务。

通常,这些任务是测试、数据收集或自动化等,它们构成了工程师的大部分时间。根据我的经验,设计只需要工程师大约 5-10% 的时间。其余 90% 左右的时间用于研究、测试原型、调试、创建测试夹具和程序、生产测试、质量控制,当然还有可怕的“D”字……文档。

设计之前的很多事情(例如研究部件和实现以及提出系统架构)都无法真正实现自动化。这些任务使我们成为富有创造力的手工工程师。但是,一旦实现了设计(即有趣的部分),还有很多苦差事需要处理。

以下是一些苦差事类型的任务,以及 Python 如何帮助有效地完成这些任务。

提交 Gerber 文件的文件处理

最常需要自动化的应用程序之一是文件处理。处理工作流因软件、供应商、客户等而异。大多数情况下,这些包括处理某种格式的文件。我的 PCB 供应商要求我提交带有特定文件扩展名的 Gerber 文件,以便他们的工作人员能够解析、检查和确认他们符合设计要求。

由于我的 PCB CAD 工具没有以所需格式输出 Gerber,因此每次提交 PCB 时我都需要更改文件扩展名。这不是一项艰巨的任务,但由于我每年都会迭代许多设计和设计修订,因此每次我向晶圆厂提交设计时,更改大约 10 个不同文件的 Gerber 文件扩展名会很累人。

文件处理的一个更重要的例子是当您拥有一种格式(例如 XML)的文件而客户需要另一种格式(例如 CSV)的文件时。这是一种常见的情况,通常会让人头疼,如果不是对某些客户来说是个难题。但是使用一些库和一些简单的 Python 代码,可以在多种格式之间更改文本文件。

自动化测试设备

作为 EE,使用 Python 的一大优势是控制和自动化测试设备。找到配备 USB 输出的低成本测试设备变得越来越普遍,这些设备可以收集数据并以 CSV 等常见格式存储数据。

Python 最初是为文本解析而创建的,因此筛选大量文本数据以提取有用信息非常有用。例如,我在现场随身携带的一台便携式示波器是一台值得信赖的老款 Hantek DSO5202P 数字存储示波器。它价格低廉,可以将波形输出为原始 CSV 数据。

带USB接口的Hantek DSO5202P数字存储示波器

这意味着您实际上可以从某个波形中捕获数据,对其进行解析、处理并绘制输出图。这是您现在可以在计算机内使用的实时物理数据,并查看它与您的数字滤波器的行为。更好的是,您可以将其格式化以提供给任意波形发生器并重新创建用于电路测试的准确波形。

是德数字万用表背面的 GPIB 接口。图片来自 Farnell

如果您使用的是支持 GPIB 接口的测试设备,您还可以使用 Python 库(如 pyVISA)来控制它们。您过去需要购买 National Instruments 设置才能完成所有这些操作,这仅限于负担得起的大公司。现在,您可以以计算机的价格和一点 Python 专业知识自动设置测试设备。

一旦您可以自动化测试设备,您就会感觉自己像个魔术师。您可以设置闭环测试,例如使用任意波形发生器刺激被测设备,并通过示波器、万用表或数据记录器收集有关它如何响应的数据。可能性是无限的。

Flask,一个 Python 微框架

然而,它不仅限于自动化测试设备。如今,设计连接到某些 Internet 服务或通过 REST API 与之通信的产品变得越来越普遍。在开发硬件和编写测试固件时,您还可以使用 Python 设置带有 REST API 的测试服务器以进行连接。

您不需要专业的 Web 开发人员或为此学习另一种语言,因为使用 Python/Flask 框架设置 REST API 非常容易。您可以在一小时内设置自定义 REST API。

作为一名专业的电气工程师,您可能会在某个时候参与制造,而自动化生产测试的能力非常有用。测试越一致和彻底,对公司的底线就越有利,无论这些节省是来自更少的现场故障、更少的退货,还是更少的质量控制造成的声誉损失。

对于我的电路设计,我使用钉床式探针、线束和夹紧机构制成的定制测试夹具。这些测试夹具可以与定制板(如 Arduino 或 Raspberry Pi)连接,并通过计算机进行控制。我的标准生产测试系统由这样的东西组成,线束连接到运行 Firmata 协议固件的 Arduino。

这允许我使用 pyFirmata 在 Python 中与它通信。我可以将每个引脚设置为输入或输出,检查每个引脚的状态,记录所有数据,生成唯一的序列号,并输出大的 PASS 或 FAIL 消息。当电路板在工厂装配车间时,我只需要教一个人如何运行 Python 测试脚本,等待大的 PASS 或 FAIL,数据会自动与生产运行的统计数据一起存储。

SQL:数据库管理语言

哦,我有提到存储吗?这让我想到了数据库的主题。实际上在 Python 中使用数据库是一种乐趣。它附带 SQLite3,顾名思义,它是一个基于单个文件的轻量级数据库。

如果您希望选择将代码迁移到不同的数据库,尤其是基于服务器的数据库,那么我推荐一个名为 SQLAlchemy 的库。这使您可以连接到许多流行的关系数据库,如 SQLite、PostgreSQL 和 MySQL,而无需更改代码。

现在,您会问 EE 如何使用数据库?

那么,在我之前提到的自动化测试设置中,测试系统会输出一个序列号以及其他数据,例如统计数据、测试结果和杂项注释。这些都可以存储在您创建的数据库中,因此有一个日志可以跟踪所生产的每个板的历史记录。退还单板时,可查询序列号,查看单板历史。也许它之前被退回进行 RMA,或者它在一次测试中失败了但在下一次尝试中通过了。

或者甚至可能是电路板上的运算放大器出现故障,当您对数据库进行简单搜索时,发现这是该生产运行中特定运算放大器第五次出现故障。像这样的洞察力可以提高生产效率、底线以及工程师对公司的价值。

结论

我可以继续说下去,这真的是因为 Python 可以为工程师打开全新的世界。

电气工程师的基础仍然是电子设计。但是,如今,纯粹地生活在电子世界中变得越来越困难。我们还必须编写固件、执行测试、收集数据、参与生产并对退回或失败的产品进行取证。

除了电子学和 C/C++ 的基本知识外,Python 知识还可以帮助实践工程师完善从电路设计到参与整个产品生命周期的技能。

因此,在我们开始本系列时加入我们,从电气工程师的角度亲身体验 Python。


嵌入式

  1. 工业物联网应用的最佳编程语言
  2. 元素锆用于什么? |锆的应用
  3. 云工程师薪酬最高的 7 个市场
  4. 千古情缘:当 IT 遇到 OT
  5. Cervoz:为工业应用选择合适的闪存
  6. 5G 可以为联网汽车提供什么?
  7. eSIM 如何推动运营商的增长
  8. C 编程语言 PDF:初学者基础教程
  9. 了解何时使用传感器进行机器人焊接
  10. 区块链什么时候可以为供应链做好准备?
  11. 人工智能:找到人工智能的正确用途
  12. 汽车市场的砂型铸造应用