没有合适的资源?快使用搜索试试~ 我知道了~
低成本CRAPPY嵌入式硬件:实验装置中的灵活和经济的解决方案
软件X 22(2023)101348原始软件出版物CRAPPY嵌入式:在实验设置中包括低成本硬件Antoine Weisrocka,b,Victor Coutya,Jean-François Witza,Lieven Thorrezb,Pauline Lecomte-Grosbrasaa大学Lille,CNRS,Centrale Lille,UMR 9013-LaMcube-Aptatoire de Mécanique,Multiphysique,Multi-échelle,F-59000 Lille,Franceb组织工程实验室,发展和再生系,KU Leuven,E. Sabbelaan 53,8500 Kortrijk,比利时ar t i cl e i nf o文章历史记录:2022年11月28日收到2023年2月17日收到修订版,2023年保留字:控制命令采集Python低成本嵌入式硬件a b st ra ct在之前的出版物中,我们介绍了CRAPPY,这是一个Python模块,专为希望轻松开发代码以驱动复杂实验设置的研究人员而设计。在一个补充版本中,现在针对更广泛的受众,我们扩展了框架,包括低成本的传感器,执行器和摄像头。使用这些设备,现在可以以更具成本效益和灵活的方式设置CRAPPY测试。这可以通过Raspberry Pi等嵌入式计算机来实现,该模块现在已经完全可用。或者,我们介绍了一种直接从普通PC驱动嵌入式传感器和执行器的解决方案。还描述了用于集成微控制器和远程设备的其他增强。基于现有的测试驱动使用CRAPPY的例子,我们在本文中证明了包括低成本的设备在实验装置,以获得相关的结果的可行性。版权所有©2023作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.5.9用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00392Code Ocean compute capsule法律代码许可证GPL v2使用Git的代码版本控制系统使用的软件代码语言、工具和服务Python编译要求、操作环境依赖性Numpy如果可用,链接到开发人员文档/手册https://crappy.readthedocs.io问题支持电子邮件centralelille.fr软件元数据当前软件版本1.5.9此版本可执行文件的永久链接https://github.com/LaboratoireMecaniqueLille/crappy/releases/tag/v1.5.9法律软件许可证GPLv2计算平台/操作系统Linux,Windows,MacOS安装要求依赖性Numpy如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://crappy.readthedocs.io/问题支持电子邮件centralelille.fr1. 动机和意义通讯作者:组织工程实验室,组织工程与再生系,KU Leuven,E。Sabbelaan53,8500 Kortrijk,比利时.电子邮件地址:antoine. kuleuven.be(Antoine Weisrock)。https://doi.org/10.1016/j.softx.2023.101348随着实验力学领域研究的进展,需要先进的装置来更好地了解所研究的现象。这样的设置可以具有许多传感器和致动器,遵循复杂的命令模式,2352-7110/©2023作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxAntoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013482或者受到强的设计约束。随着特征数量的增加,它们的命令和同步对实验研究人员来说越来越具有挑战性。此外,单个测试通常具有来自多个供应商的设备,需要额外的集成工作以从单个接口驱动测试。为了帮助研究人员克服这些限制,我们最近引入了一个名为CRAPPY的Python模块[1],提供了一个易于使用的框架,以灵活和模块化的方式驱动实验测试由于大多数复杂性不会暴露给用户,因此它允许编写通常少于100行的高级测试脚本。该软件的块式组织使得即使是Python初学者也很容易处理。CRAPPY附带了大量现成的工具和硬件,可以简单地用基本的Python知识进行扩展,以满足用户虽然它最初是为实验力学而设计的,但其多功能性使其适用于几乎任何领域的驾驶测试,只要将硬件适当地添加到框架中。有关CRAPPYCRAPPY最初用于与实验室设备(如采集板和摄像机)或工业硬件(如拉伸试验机)进行接口。这些设备通常缺乏在各种实验设置中集成所需的灵活性和多功能性,并且通常非常昂贵,最低价格为数百欧元。对于资源有限的团队来说,这些都是很大的限制,即使是简单的设置也会非常昂贵且灵活性差。研究中使用的大部分工业传感器和执行器依赖于商业上仅售几十欧元的电子元件。在过去的20年里,像Adafruit或SparkFun这样的嵌入式电子公司使公众越来越容易访问和使用这些组件。此外,免费的教程和代码通常与组件一起提出,以及大量用户社区的支持。因此,可以购买性能接近工业设备的性能的低成本电子设备,具有类似的服务质量和帮助。尽管它们通常可实现的数据速率较低,噪声水平较高,但我们确实认为这些元件在仅需要几十Hz采样率且不需要最高精度的设置中非常有用与工业设备不同,低成本设备通常不能直接通过USB与普通PC连接。相反,通常使用微控制器或单板计算机(SBC),如众所周知的Rasp-berry Pi(RPi)虽然这些组件的计算能力比普通PC低得多,但它们在简单的设置上仍然令人满意在实验力学领域,一些已发表的装置已经具有低成本嵌入式组件[2- 5 ],从而证明了它们与获得科学有效数据的为了改善研究人员对嵌入式组件的访问,我们现在引入一个新版本的CRAPPY。它完全能够在Raspberry Pi 3和4上运行,并具有广泛的附加功能,使其能够与嵌入式传感器和执行器连接。对于计算密集型设置,我们还开发了将低成本设备的灵活性与PC的计算能力相结合的工具基于CRAPPY我们还可以运行完全由Raspberry Pi 4控制的低成本测试,包括真实的测试。时间图像处理,如视频延伸测量。最后,我们可以将由CRAPPY控制的ESP32微控制器集成到实验装置中,并使用它进行快速决策,从而克服CRAPPY的主要局限性之一,如本文后面所述。据我们所知,很少有软件解决方案存在集成低成本传感器和执行器到实验设置CRAPPY做。首先,一些软件解决方案专注于管理整个测试。National InstrumentMyOpenLab [8]提供了免费和开源的优势,但也依赖于图形编程语言。Qudi [9]和Itom [10]是用Python编写的,可以在Raspberry Pi上运行,尽管它们并不明确用于与嵌入式硬件接口然而,当CRAPPY自动处理时,它们将进程的并行化和同步留给然后,其他软件程序专注于驱动低成本硬件或微控制器,但不集成任何测试管理方面。通用接口Electric UI [11]和Flow-Code [12]可以驱动传感器、致动器和微控制器,但Electric UI只能处理C++代码,FlowCode使用图形编程语言。Adafruit在这三种情况下,提供的代码只允许单独驱动组件,测试管理留给用户。只有Phidgets然而,它的范围仅限于Phidgets模块,而CRAPPY可用于驱动来自各种供应商的硬件据我们所知,CRAPPY是目前唯一的免费开源软件,既可以与嵌入式设备连接,也可以管理整个测试。在本文中,我们将展示CRAPPY使用嵌入式电子领域的设备获取可靠和相关数据的可行性。我们相信,最近增加的CRAPPY将为希望使用这些低成本和多功能设备的研究人员提供一个强大而2. 软件描述2.1. CRAPPY的简短介绍在本节中,将详细介绍为CRAPPY添加的内容以及它们满足的需求。概要的主要补充可以在图中找到。1.一、请参阅我们的第一篇文章详细介绍了CRAPPY简单地说,CRAPPY是一个Python模块,旨在以一种可访问的方式驱动它是免费的,开源的,可以在Windows,MacOS和Linux上运行。它提供了许多Python对象,用户可以实例化这些对象,并将它们以块的方式连接在一起。虽然这种设计非常适合集成到图形界面中,但我们选择不提供图形界面。这样,用户就可以充分利用PythonAntoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013483将在本文稍后讨论。2.2. 与来自CRAPPY的图1.一、项 目 的 主要新增内容,按对象类型组织。多功能性并且不受接口实现的限制CRAPPY之所以选择Python编程语言,是因为它在科学界很受欢迎,编程初学者可以使用,并且非常灵活。使用CRAPPY的典型Python脚本包含几个Block对象,它们通过允许数据交换的Link对象链接在一起。每个模块都有一个特定的功能,如采集数据,绘制曲线,驱动电机等。块可以依赖于Camera、Actuator、Tool或InOut对象来完成其任务。但是,与这些简单Python类的帮助对象不同,每个Block都是一个Python多进程。CRAPPY管理所有块的初始化,同步和终止,用户只需使用它们的参数实例化块并根据需要链接它们。进程的使用确保了所需的计算能力分布在所有CPU内核上,但也需要复杂的模块架构和额外的努力来确保跨平台兼容性。CRAPPY它还在于可以向框架添加新硬件以满足用户然而,由于我们的设计选择,它有明显的局限性。首先,它需要Python的基本知识来编写测试脚本。然后,取决于专用Python语言或详细的Python 语言 的可 用性 , 并不 是所 有的 硬件都 可以 集成 到CRAPPY的框架中。因为它是用纯Python编写的,所以CRAPPY在执行某些任务时可能比用C++编写的等效解决方案慢最后,在一般情况下,CRAPPY无法在高于几十Hz的频率下实现确定性最后一个限制将如前所述,CRAPPY新版本针对的大多数低成本硬件都不通过USB接口。相反,它通常通过更简单的I2C或SPI总线进行通信,用于集成组件之间的通信。由于常规PC不会暴露这些总线,因此必须探索替代解决方案。第一种选择是使用SBCs。这些紧凑型计算机可以运行操作系统(OS),通常成本不到100美元,这使得它们对于低成本设置非常有趣,即使对于初学者也易于使用。大多数情况下,SBC具有GPIO并向用户公开SPI,I2C和其他总线,因此它们非常适合与硬件 接 口 。 在 各 种 现 有 的 SBC 中 , 我 们 选 择 确 保 CRAPPY 与Raspberry Pi 3 [17]和4 [18]型号完全兼容,因为它们都是众所周知 的 并 且 广 泛 使 用 。 它 们 还 包 括 CRAPPY 中 使 用 的RPi.GPIO[19],smbus2[20]和spidev[21] Python库,分别用于控制GPIO,I2C和SPI。为了进一步扩展RPi上CRAPPY的可能性,添加了一个依赖于picamera[22] Python模块的Camera对象,用于控制PiCamera 1,2 [23]和HQ [24]模型。使用后者,我们能够在CRAPPY中以接近50帧每秒(FPS)的请注意,作为一个Python模块,CRAPPY应该能够在RPi以外的SBC上运行,尽管这还没有经过测试。使用SBC进行驾驶测试的主要缺点是大多数模型缺乏计算能力,Nvidia的Jetson系列是一个明显的例外虽然SBC可以完美地处理简单的测试,但在运行具有许多块或涉及图像处理的测试时,它们表现出很强的局限性。例如,Raspberry Pi上的实时图像相关是可能的[26],但实现的帧率无法与常规PC相比。这构成了将嵌入式传感器和致动器集成到计算密集型设置中的强烈限制。为 了 克 服 这 个 问 题 , 我 们 选 择 将 Adafruit 的 FT232H USB 到GPIO,SPI和I2C转换器[ 27 ]作为工具对象实现它的功能是将USB命令从PC转换为SPI或I2C,并将其转换为SPI。因此,CRAPPY可以通过SPI或I2C与任何普通PC进行接口,只需使用15美元的适配器。因此,嵌入式设备的多功能性和成本效益可以直接与现代PC的计算能力相结合。请注意,此功能仍在开发中,可能会受到其他USB设备的不稳定或干扰在内部,我们必须克服USB库pyusb[28]的限制,该限制禁止在多个相反地, 开发了一个管理所有对pyusb的请求的服务器,并且希望使用FT 232 H进行通信的块简单地向/从该服务器发送和接收请求。由于速度也很关键,并且USB命令不能总是被pickle,因此努力将USB服务器与其客户端之间的通信限制为通过临时文件的简单二进制通信。选择使用文件是因为我们遇到了Python的多处理模块提供的高级工具的bug与FT232H通信的整体架构总结在图。二、这种架构将服务器的计算能力限制在一个CPU核心上。Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013484图二、CR A PP Y 和 FT 2 3 2 H 之 间 的通信示 意 图 。基于为SPI和I2C接口开发的功能,无论是从RPi还是PC,许多InOut和Actuator对象都根据我们的需要添加到框架中。因此,现在可以通过SPI或I2C通过CRAPPY访问各种嵌入式传感器和执行器,包括压力传感器(MPRLS [30])、直流电机驱动器(TB6612[31])、称重传感器调节器(NAU 7802 [32])、模数转换器(HX 711、ADS 1262 [33])、热电偶放大器(MCP 9600 [34])等。在CRAPPY的命名法中,通过创建专用的Actuator或InOut对象来对于每个对象,都进行了集成,以便可以从RPi或FT232H使用。此外,我们确保Adafruit在这三种与硬件接口的方式之间切换对于用户来说仍然是直接的,用户只需要在他的Python测试脚本中设置一个不同的在代码长度、复杂性和所需技能方面,将嵌入式设备集成到CRAPPY中与工业设备没有太大区别。大多数时候,这甚至更容易,因为用户友好的库通常由制造商提供,如Adafruit的Blinka。然而,在某些罕见的情况下,没有代码可用,组件的集成需要彻底阅读长达数百页的文档。这对CRAPPY中嵌入式硬件的实现构成了限制,用户应该意识到这一点。2.3. 使用微控制器SBC包括用于与硬件接口的各种选项,并且常规PC显示高计算能力,但是当需要快速决策时,它们两者都存在很大的限制。PC和SBC管理着大量并发运行的进程,包括由操作系统本身启动的进程。这些进程不断地被调度程序停止和恢复,以便它们看起来都在同时运行。CRAPPY的进程也不例外,并且可以频繁地中断几毫秒,正如我们在中档笔记本电脑上测量的那样。这些神经过敏现象禁止在个人电脑上使用CRAPPY或SBC,适用于响应速度至关重要的某些应用,如快速相机触发或精确信号生成。一个可能的解决方法是使用专门为实现确定性响应时间而设计的修改后的操作系统版本,如Linux PREEMPT_RT补丁[35]。 据报道,该补丁特别能显著降低PC和SBC上的抖动[36,37],并且应该与CRAPPY的使用完全兼容,尽管这还没有经过测试。为了使计算机知识有限的用户能够访问CRAPPY,操作系统,提出了一个不同的解决方案,并在这里详细介绍微控制器单元(MCU)是一种简单的计算机,性能非常有限,只有一个基本的用户界面,通常售价不到25美元。它们通常被设计为一次只运行一个或最多几个进程。由于大多数MCU无法提供操作系统,因此它们通常只运行一个进程和一个执行线程。在这种情况下,这个过程不会受到调度程序的意外中断,并且它的响应是可预测的。因此,MCU非常适合解决CRAPPY的抖动限制。为了充分利用MCU的功能,引入了UController Block以及MicroPython [38] 和 Arduino [39] 模 板 以 上 传 到 MCU 。MicroPython是Python的轻量级版本,Arduino是C++的扩展,它们都兼容各种MCU。与任一模板结合使用时,UController块允许通过启动和停止数据采集、发送命令和接收数据与MCU进行使用此块,我们成功地将决策委托给由CRAPPY驱动的MCU,响应时间可预测且远低于毫秒。实际上,PC和MCU之间的通信是通过大多数MCU拥有的标准串行连接进行的。由于MCU一通电就开始运行上传的代码,因此所提供的模板被设计为阻塞,直到接收到来自PC的然后,PC和MCU商定一个查找表,用于更有效地交换数据。在测试过程中,两个方向的数据都以二进制格式发送。在测试结束时,一个特定的命令向MCU发出信号,它必须复位,从而返回到初始的阻塞调用。正如这里所讨论的,UController块构成了一个很好的补充,以规避CRAPPY此外,与大多数MCU(I2C、SPI、GPIO、串行等)使其成为从PC获取嵌入式设备数据的FT232H的方便等效物这稍后将更详细地介绍解决方案2.4. 通过网络进行一些畅销的MCU,如Raspberry Pi Pico W [40]或EspressifESP32 [41],包括WiFi模块,为远程数据采集铺平了道路。虽然大多数设置只能使用有线连接运行,但特定情况下需要无线数据传输,例如在完全封闭的区域中进行测试或在旋转部件上进行数据采集。为了将这些用例添加到CRAPPYAntoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013485图3.第三章。R a s p b e r r y P i 驱 动 的 测 试 设 置 的接线示 意 图 。开发了Client_Server模块。它使用轻量级MQTT网络协议,并与MQTT broker结合使用,通常在主PC上运行。Client_server块允许订阅和发布MQTT主题,即通过网络接收和上传数据。CRAPPY的这一新功能,尽管不是主要功能,但进一步提高了软件与低成本设备接口的多功能性和灵活性。在本节中,描述了CRAPPY中添加的用于与低成本和嵌入式硬件接口的新功能,以及实现这些功能的基本原理。我们想指出的是,这些增强明确地针对与CRAPPY的初始版本略有不同的受众使用嵌入式设备需要基本的电子和通信总线知识,至少是正确的布线。因此,在这个最新版本中,我们的目标是在这些领域有经验或愿意学习的研究人员3. 说明性实例3.1. 拉伸试验装置在本节中,将详细介绍使用CRAPPY最近添加的实验力学在我们之前的文章中,有一节专门描述了CRAPPY驱动的拉伸测试我们现在设计了一个不同的拉伸试验机的软生物材料,使用这个时间嵌入式电子硬件。拉伸试验机的框架是在内部设计和加工的。它由步进电机(Nanotec L4118 L1804-T6 X2)驱动,使用步进电机驱动器(Pololu Tic 36 v4 [42])驱动使用5 N测力传感器(InterfaceSMT S-1000)获得力。类型[43]),并通过称重传感器调节器(SparkFun NAU 7802 [32])转换为数字。可选地,可以安装相机,并且可以使用各种图像处理技术实时计算应变。受试样品由硅胶(SmoothOnSORTA-Clear™37,含10%SiliconeThinner™)制成,并使用打孔器切割成狗骨形状(参见附录A)。准确的尺寸)。然后以6 mm/min的速度对它们进行单调单轴拉伸试验,直到在拉伸方向上达到50%应变为了驱动机器和采集数据,测试了两种不同的设置。第一个设置由Rasp- berry Pi 4 B+ [18](8 GB RAM)驱动,PiCamera V2[23]用于图像采集。RPi通过I2C与调节器通信,通过USB与电机驱动器通信,并通过CSI连接与相机通信组件和接线的示意图见图1。3.第三章。第二种设置由中档笔记本电脑(Dell Latitude 5420)驱动,Ximea XiQ(MQ 042 MG-CM)[44]用于图像采集。笔记本电脑通过USB与摄像头和电机驱动器进行通信。称重传感器调节器通过I2C与微控制器(Adafruit Feather HUZ-ZAH ESP 32 [41])连接,该微控制器使用MQTT协议通过本地WiFi网络发送力数据。然后,力数据被连接到同一网络的笔记本电脑接收 组件和接线的示意图见图1。 四、在两种设置上连续运行测试,使用两种图像处理技术实时计算应变。这些技术是:(i)数字图像相关(DIC),基于OpenCVDISOpticalFlow库[45],并且计算非常密集;(ii)视频拉伸测量(VE),依赖于点跟踪来估计应变,并且在CPU上轻得多此外,还测试了没有图像采集的配置,并根据电机的测量位置估计了应变。对于每项测试,记录电机位置、力读数和应变并保存到.csv文件中。用于驱动测试的CRAPPY块和它们之间的链接的示意图可以在图中找到。 五、用于驱动测试的完整Python脚本太长,无法在这里展示,但附录B中有一个示例(只有通过RPi上的VE获取应变的版本)。我们想强调的是,即使在如此复杂的设置中,Python代码对于用户来说仍然相对较短。与上一篇文章中介绍的驱动工业设备的代码相比,这里介绍的脚本没有显示出额外的复杂性。Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013486××图四、笔 记 本 电 脑 驱 动 的测试装置接 线 示 意 图 。图五、 用于驱动R a s p b e r r y P i 拉伸试验机的 块 的 表 示 , 使用视频拉伸仪计算应变。3.2. 两种设置两项设置的成本已根据组件于二零二二年八月二十九日的市场价格进行评估。全部费用比较详见表1。正如预期的那样,笔记本电脑驱动的设置的价格这种差异主要是由于两种设置上的相机和计算机质量的差距。PiCamera V2只能达到30 FPS分辨率(1920年) 1080),而Ximea XiQ可以在2048帧时达到90 FPS2048决议。此外,委员会认为,PiCamera采用滚动快门技术,比Ximea采用的全局快门技术便宜得多。Raspberry Pi 4 B+和Dell Latitude 5420之间的差异也相当大,因为笔记本电脑拥有8个CPU核心,16 GB RAM,其CPU最高运行4.9 GHz,而RPi只有4个CPU核心,最高运行频率为1.5 GHz,内存为8 GB。因此,两种装置之间的价格差距是由技术和组件理论性能的差异所证明的。现在必须考虑我们的具体应用所实现的性能。使用这两种设置,我们能够从传感器获取数据并驱动执行器。原始数据见[46]。根据这些数据,试验得出的正如预期的那样,从RPI驱动测试获得的值与从笔记本电脑驱动测试获得的值对于位置和力,该结果是预期的,因为相同的传感器Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013487表1笔记本电脑和Raspberry Pi驱动设置之间的成本比较,制造商价格为2022年8月29日但是也证明了低成本的PiCamera可以用于获取一致的数据。根据记录的数据点,我们可以计算每种设置和每种图像处理技术的平均数据速率。表2中总结了所有这些结果。两种设置的采集速度有很大不同。对于给定的配置,位置和应变信号的数据速率在计算机驱动的设置上比在RPI驱动的设置上高2至6倍,并且力的数据速率处于相同的数量级。这一结果符合我们的预期,因为两种设置之间的性能存在显著差距如上所述,低成本的设置比笔记本电脑驱动的设置便宜14倍,并且可以获得相同的数据,但位置和应变的速率低2至6倍,力的速率相似。就目前的绝对性能而言,单调单轴拉伸测试通常需要几十Hz的力和应变采样率。基于表2,由此清楚的是,从RPi驱动并使用VE的低成本测试满足数据速率方面的要求。同样的测试,但从笔记本电脑驱动远远超过了最低要求。然而,这种额外的速度可能不会给实验研究人员带来额外的信息更高的采集速度仍然肯定需要在更高的拉伸速率进行的测试,使笔记本电脑驱动的设置适用于更广泛的条件。基于我们的低成本拉伸测试机的例子,我们可以在这里演示使用在Raspberry Pi 4上运行CRAPPY的低成本设置我们还展示了使用运行CRAPPY的笔记本电脑驱动设置从嵌入式传感器获取数据的可能性。Python脚本和连接仍然很简单,与前一篇文章中已经描述的内容一致。在比较了两种装置的成本、数据速率和符合性要求之后,似乎低成本装置足以在低拉伸速度下运行简单的拉伸测试。用膝上型计算机驱动的设置获得的更高通过这个例子,我们说明了在不需要高性能的实验设置上集成低成本嵌入式硬件的相关性,以及使用CRAPPY以简单而强大的方式驱动此类设置3.3. 使用FT232H进行数据采集除了前面描述的两个主要设置之外,还尝试了从笔记本电脑驱动的其他配置。在这种配置中,FT232H用于通过I2C与称重传感器调节器连接,并通过USB与计算机通信。接线和组件示意图见附录D。不幸的是,Ximea相机和FT232H之间的USB信号干扰阻止了两个设备的同时使用。我们仍然能够进行测试,只记录位置和力。就像之前的两个设置一样,原始数据可以在[46]中找到,表2中所记录的值和数据速率与先前呈现的笔记本电脑驱动设置的值和数据速率相似。与之前使用Client_server模块的设置相比,FT232H解决方案具有类似的布线,并具有不需要网络连接的优点。因此,FT232H构成了一个可能的替代方案,以网络为基础的解决方案,直接从笔记本电脑与嵌入式硬件接口。 它的使用范围是有限的,因为这个功能仍在开发中的CRAPPY。3.4. 集成用于决策独立于上述拉伸试验机,CRAPPY 在该摩擦试验机上,可以安装摄像头以获取制动盘的图像。摄像机需要始终捕捉即使当盘受到加速或减速时也是如此。这意味着两个触发器之间的延迟必须变化,并且必须基于记录的旋转速度在每一次旋转时计算。此外,该延迟必须根据安装在摩擦计上的相机的类型进行调整,因为每个相机在接收触发信号时具有不同的响应性。考虑到磁盘的高旋转速度(几千RPM),从计算机或带有CRAPPY的SBC生成触发器不是一种选择,原因在本文前面已经详细介绍。相反,使用微控制器在这里是一个很好的替代方案,因为计算触发之间的延迟所需的计算能力很低。然而,根据安装的摄像机调整延迟在微控制器上并不简单,因为它们执行无法修改的编译代码。因此,用户输入是必要的,这在设置的设计使用CRAPPY,驱动满足上述要求的微控制器被证明是非常简单的.由于速度是这里的关键,CRAPPY的Arduino模板与MCU的接口是首选,而不是MicroPython模板。在这个模板上,只需要添加几十行来生成触发和计算延迟。该模板已经包含了复杂的代码管理与CRAPPY通信.选择的MCU是Arduino Mega [48]。使用开发的代码,每个摄像头的特定延迟可以从驱动测试的PC发送到MCU。MCU的循环频率(未精确测量)也证明是令人满意的,因 为 MCU 完 全 能 够 完 成 其 任 务 。 在 PC 端 , 只 需 将 一 个UController块添加到驱动测试的Python脚本中。这个简短的例子说明了微控制器可以简单地添加到CRAPPY驱动的设置中,以可靠地执行快速决策。Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013488表2对于每种设置和每种图像处理技术,三种信号类型实现的帧速率,所有值均以Hz为单位。4. 影响最近添加到CRAPPY的新特性为模块增加了更多的通用性,并且是对前一篇文章中已经介绍的许多特性的补充。这些改进旨在使嵌入式电子领域的传感器和执行器易于实验研究人员使用。使用这样的设备,CRAPPY现在可以在有限的电子知识下设置灵活且具有成本效益的测试。为了更好的适应性,我们可以从普通PC、SBC或微控制器中将嵌入式设备与CRAPPY进行接口。有了这些新功能,我们明确地针对具有开发和电子经验的研究人员,尽管初学者也可以管理简单的设置。如前一节所述,CRAPPY他们允许研究人员和博士。学生在LaMcube实验室获得可靠的和相关的结果,令人满意的表现。CRAPPY的未来版本应该包括更多的SPI或I2C硬件接口,因为它在我们实验室的使用不断增加。当然,我们也希望其他机构作出积极贡献。5. 结论本文介绍了Python模块CRAPPY的最新版本。在上一篇文章中介绍的工作的基础上,我们扩展了模块的框架,以允许与低成本硬件接口。最重要的改进是(i)CRAPPY与Raspberry Pi等SBC的兼容性,(ii)将各种嵌入式传感器和执行器添加到内置库中,(iii)简单地与ESP32等MCU接口并将其用于确定性采样的可能性,(iv)通过网络获取数据和远程控制执行器的能力描述并解释了这些功能在软件中的实现以及我们所做的选择。通过展示实验设置的详细示例,我们展示了CRAPPY驱动复杂测试的能力,该测试具有低成本嵌入式设备和标准工业硬件。我们相信,我们的会议将打开新的可能性,希望与嵌入式电子设备的研究人员。所有的代码都可以在GitHub上的GPL v2+许可证下获得,文档可以在ReadTheatre上找到。对于任何问题,问题或对项目做出贡献,请使用GitHub上的专用部分图A.6. 在拉伸试验中测试的样品尺寸,3 mm厚。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性这些数据可通过作为参考的永久链接在线获取。致谢我们要感谢实习生,他们为CRAPPY中嵌入式硬件的实现做出了积极的贡献,他们是Emmanuel Berthe、André Auilo Martins、Antoine Hochard和Pierre Margotin。此外,我们还要感谢AnnieMorch,她准备了用于拉伸试验的硅胶样品。 这项工作得到了AID( Agence Innova-tion Defense ) 、 法 国 上 法 兰 西 大 区 和 I-SITEULNE的资助。附录A. 试验样品尺寸见图 A.6.Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)1013489附录B. 驱动测试的代码示例#c o d i n g:u t f−8Importcrappy从PathlibimportPath从类型Imp ortDict、Any、List、Union、Tuple#将数据集设置为一个大小相同的数据集,然后进行修改classOffset(crappy.我的意思是,我的意思是,我的意思是,(d)(i)(def__init__(self,label,offset):supeper().__init__()self._offset=偏移量Self. _compensation=NoneSelf. _compensated=Falsedefevaluate(self,data):我不信我信。_compensated:Self. _compensation=−data[label]+offsetSelf. _commpensated=True标签在自我_offsets:data[label]+=self. _compensation返回数据#G l o b a l p a r a m et e r s增益测力传感器=−12300base_path=P ath(__file__)。parent/if__name__==“__main__“:#C o m m a n d速度= 6个gen=crappy. blocks. Generator([{{' t yp e ':' c o n s t a n t ',' v a l u e ':1/10,’#把我的心点燃mot=crappy. blocks. Machine([{'cmd':'cmd','steps_per_mm':100,'cur r e n t _li m i t ':200 0,' s t e p_mod e ':6 4,’crappy. 林克(gen,mot)#RE C O R D I N G THE PO S IT I O Nsave_pos=crappy. blocks. Recorder(str(base_path/labels=[crappy. link(mot,save_pos)Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)10134810#AC Q U I R I N G THE F R C Enau=crappy. blocks. IOBlock(backend=crappy. link(nau,gen,Offset(#Re c o r d i n g h e f r c esave_force=crappy。blocks. Recorder(str(base_path/labels=[' t(s)',' F(N)' ])c r a ppy. link(nau,save_force,Offset(#A rg um mentt s for ur i n g h Pi C am er aw i t h G S t r e am erkwargs={“gst−launch−1。0libcamerarc!videoconvert! ““video/x−raw,width=1280,height=720,““format=GRAY8!Autovideosink“,’’#Ac u i r i n g h e s t r a i nextenso=crappy. blocks. Video_extenso(showw_image=False,verbose=True,(德国)crappy.link(extenso, gen)#重新编码save_exx=crappy. blocks. Recorder(str(base_path/labels=[crappy.link(extenso, save_exx)crappy.start()附录C. Stress–strain curves obtained from the conducted tensile见图 C.7和C.8。图C.7. 应力-应力曲线来自拉伸试验,应变根据记录位置计算Antoine Weisrock,Victor Couty,Jean-François Witz等软件X 22(2023)10134811图C.8.通 过 拉伸试验得到应力-应力曲线,基于图像处理计算应变。图D.9. 测 试 装置接线示意图, 由配备FT232H的笔记本电脑驱动。附录D. FT232H接线见图 D.9.引用[1] [10]李国雄,李国雄,李国雄. CRAPPY:并行Python中的命令和实时采集,用 于 实 验 设 置 的 Python 模 块 。 SoftwareX2021;16 : 100848.http://dx.doi.org/10.1016/j.softx.2021.100848天
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)