时间:2020-7-8来源:本站原创作者:佚名

之前提出了一个问题:“为什么工程师还要学习Python?”现在,让我们讨论一下Python如何与电子工程师的工作相关。

瑞士军刀工程师

电子工程师不只是处理电路设计。我们还面临着一系列其他需要处理的任务。有固件编程、调试、测试原型硬件和软件、测试生产样品、致力于质量控制以及看似永无止境的数据收集、评估和分析。Python如何帮助解决所有这些问题?

输入Python,瑞士军刀语言

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

通常,这些任务可能是测试、数据收集或自动化等之类的,它们占工程师时间的很大一部分。根据我的经验,设计只占工程师时间的5-10%。另外90%左右的时间用于研究、测试原型、调试、创建测试夹具和程序、生产测试、质量控制,当然还有可怕的“D”字......文档。很多在设计之前发生的事情(比如研究部件和实现以及提出系统架构)都无法实现自动化。这些任务使我们成为有创造力的、有艺术性的工程师。但是,一旦设计得以实现(即有趣的部分),仍然需要处理许多繁重的工作。下面是一些繁重的任务,以及Python如何帮助有效地完成这些任务。

Gerber文件提交的文件处理

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

由于我的PCBCAD工具不能以所需格式输出Gerbers,因此每次提交PCB时都需要更改文件扩展名。这不是一项艰巨的任务,但由于我每年都会迭代许多设计并进行设计修改,每次我向FAB提交设计时,都会在大约10个不同的文件上更改Gerber文件扩展名。文件处理的一个更实际的例子是当你有一种格式的文件(例如XML)而客户需要另一种格式的文件(例如CSV)时。这是一种常见的情况,如果不是某些客户的表现,通常会是一个巨大的麻烦。但是使用一些库和一些简单的Python代码,可以在多种格式之间更改文本文件。

自动化测试设备

作为电子工程师,使用Python的一大优势是控制和自动化测试设备。寻找配备USB输出的低成本测试设备变得越来越普遍,这些设备可以收集数据并以CSV等常见格式存储它们。Python最初是为文本解析而创建的,因此筛选大量文本数据以提取有用信息非常有用。我随身携带的一台便携式示波器就是一台值得信赖的旧式HantekDSOP数字存储示波器。它价格低廉,可以输出波形作为原始CSV数据。

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

这意味着你实际上可以从某个波形中捕获数据、分析、处理并绘制输出。这是实时的物理数据,你现在可以在计算机内部使用它,并查看它在数字滤波器中的表现。更好的是,你可以对其格式化以馈送到任意波形发生器,并重新创建用于在电路上进行测试的精确波形。

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

如果你使用的是支持GPIB接口的测试设备,你还可以使用Python库(如pyVISA)来控制它们。你曾经需要购买NI设备来完成所有这些工作,将其限制在能够负担得起的大公司。现在,你可以以计算机的价格和一些Python专有技术自动化测试设备设置。一旦可以自动化你的测试设备,你就会觉得自己像个魔术师。你可以设置闭环测试,例如使用任意波形发生器激励被测设备,并通过示波器、万用表或数据记录器收集其响应的数据。

Flask,PythonMicroframework

它不仅仅停留在自动化测试设备上。设计连接到某些互联网服务或通过RESTAPI与之通信的产品变得越来越普遍。在开发硬件和编写测试固件时,你还可以使用Python来设置带有RESTAPI的测试服务器以进行连接。你不需要优秀的Web开发人员或为此学习其他语言,因为使用Python/Flask框架设置RESTAPI非常容易。你可以在一小时内逐步设置自定义RESTAPI。

作为一名专业的电子工程师,你可能会在某些时候参与生产,并且自动化生产测试的能力非常有用。无论这些节省来自更少的现场故障,更少的退货还是质量控制不良造成的声誉损害更少,测试越一致和彻底,对公司的底线就越好。对于电路设计,我得到了使用钉床探针、线束和夹紧机构制成的定制测试夹具。这些测试夹具可以与Arduino或RaspberryPi等定制板连接,并可通过计算机进行控制。我的标准生产测试系统由类似这样的东西组成,线束连接到运行Firmata协议固件的Arduino。

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

关于SQL的后续内容请打开下面链接进行查看


转载请注明原文网址:http://www.gzdatangtv.com/hjpz/12933.html
------分隔线----------------------------