Britvic拥有的Aqua Libra Co的可持续性计划依赖于强大、可靠的分配设备。Green Custard设计了一个测试解决方案,利用Raspberry Pi Pico的灵活性,提供难以通过其他方式实现的严格测试。
Green Custard:https://www.green-custard.com/
解决方案 | Raspberry Pi Pico |
企业规模 | 中小企业 |
行业 | 测试、传感和控制 |
根据其“健康人,健康星球”的使命,英国饮料巨头Britvic旗下的Aqua Libra Co正在努力实现工作场所和零售饮料分配的可持续未来。该公司与亚马逊网络服务(AWS)和总部位于剑桥的专业服务公司Green Custard合作开发了Aqua Libra Flavour Tap,通过将饮料直接输送到可重复使用的容器中,消除了对一次性包装的需求。水龙头可以分配静水或气泡水和各种口味。
水龙头内有几个控制系统,其中一个系统对用户输入做出反应,并将风味墨盒信息传递给AWS。另一个直接控制分配,在精确控制的时间内切换阀门和螺线管,以及驱动泵,以获得特定饮料配方的确切风味量。作为Green Custard帮助开发水龙头工作的一部分,需要一个测试在分配控制板上运行的软件和硬件的解决方案。
挑战
在整个开发和部署过程中,寻找漏洞的成本呈指数级增长。几项研究揭示了解决错误的成本,从早期更改需求的100美元到软件部署后修复的数万美元不等。复制在现场看到的间歇性错误可能非常困难,除非可以观察到该错误,否则它很可能被标记为“无法重现”并被忽略。
审查代码可以发现可能表现为错误的实现错误,但测试是现代软件开发的基石。它有多种形式,包括单元测试、集成测试等。测试在嵌入式系统上运行的软件可能特别困难,因为被测设备通常需要来自外部传感器的输入,这些传感器提供随着时间的推移而变化的信号。解决方案是模拟这些外部信号,这允许嵌入式软件像在完整系统中运行一样运行,而不仅仅是一个孤立的测试设置。
可以使用一种称为硬件在环(HIL)的技术来模拟输入。使用HIL,传感器输入可以自动生成,无需用户交互。这有助于测试软件在不同条件下的行为。
Aqua Libra分配控制器由运行实时操作系统的微控制器组成,用于监测重量和流体流动,以及驱动步进电机和机电阀。手动测试需要将容器放在重量测量设备上,以便进行分配。需要监控随后的阀门开关和泵活动,以确认预期的饮料是否已分配。与此同时,需要通过生成一系列脉冲来模拟液体的流动,就像电子流量传感器产生的脉冲一样。
解决方案
Raspberry Pi Pico基于Raspberry Pi的RP2040微控制器,并具有对HIL测试非常有用的外围设备。在Aqua Libra分配控制器的测试工具中,可编程输入/输出(PIO)块用于生成非常快的串行数据,就像来自24位ADC一样,以模拟应变片。ADC输出可以任意设置,并触发被测系统上的事件。PIO还用于模拟流量传感器的输出,模拟输出与真实硬件的输出无法区分。测试中的单元驱动许多步进电机,PIO用于读取两相电机驱动输出,通过光耦合器调节。这种方法可以测量应用于电机的每一步,即使步进速率在kHz范围内。它为低成本的测试工具提供了前所未有的仪器水平。
同样,随着测试的进行,螺线管和阀门状态也会受到监控。RP2040包含两个PIO块,单个步进通道使用单个PIO的所有程序。因此,有必要对多个RP2040进行菊花链,以便能够监控被测电路板的所有I/O。这需要一种新颖的串行通信技术,该技术可以解决测试开始时要配置的唯一电路板或所有电路板,并在测试期间尽可能快地恢复数据。被测单元的I/O状态以20Hz采样,收集的数据与唯一的测试标识符一起写入时间序列数据库。测试后,可以使用Grafana绘制收集的数据,仪表板配置为表示逻辑分析器。这对硬件和机械团队的系统开发非常有用。
数据库也可以被查询,根据测试的类型,数据可能会被处理以表示通过或失败条件。整个系统是完全自动化的,可以运行数千个独立的测试,而无需人工交互。在RP2040上运行的软件对每个测试节点都是相同的,GPIO通过跳线使用,以提供唯一的节点标识,RP2040应用程序在运行时读取。这定制了节点功能,为该节点加载PIO程序,并意味着只需要维护单个图像。
设计和制造了一个PCB,节点0上的Raspberry Pi Pico作为主控制器,可以选择连接多个节点以提供更多的输入监控。树莓派 Pico 安装在电路板中心的顶部;I/O位于板的外围
为什么是树莓派?
Raspberry Pi Pico作为这种测试的基础很有吸引力,原因有几个:
-
成本:整个 PCB 板,包括板载电源供应和闪存存储,成本低于 4 英镑。这很有利,因为可以为不同的现场制作多个测试设置,如果在开发过程中 Pico 损坏,也不会造成太大损失。
-
外形:Pico使用40针DIL接头,可以直接焊接到PCB上或使用低剖面转换接头,便于更换。
-
PIO:Green Custard报道,PIO (可编程 I/O)是一个出色的设计理念,并给予了极大的灵活性,以至于它的实用性怎么强调都不为过”。
-
生态系统:整个Raspberry Pi生态系统——从博客文章到GitHub repos、YouTube教程和Raspberry Pi论坛——提供了许多有用的信息,大大减少了开发时间。
-
可获性:即使在全球芯片短缺期间,Raspberry Pi Pico 仍然保持现货供应,因此可以放心下订单。
-
正在测试的电路板在中间,基于Pico的HIL电路板在左右
“可编程I/O(PIO)是Raspberry Pi Pico的一个令人难以置信的灵活功能。它允许开发在没有完整 FPGA 实现的情况下也能实现的硬件接口。PIO提供的零件成本和电力使Pico成为引人注目的选择。SDK有据可查,随附的GitHub回购协议中有许多有用的代码示例。Pico是我首选的低成本、低批量开发的部分。我对HIL测试框架感到满意。这让我相信,对在目标硬件上运行的软件所做的任何更改都没有引入任何回归,并且按预期运行。”
结果
HIL测试工具提供的灵活性允许在自动化环境中运行许多分配配方的组合。一次测试可以要求数千个分配器,这些分配需要几个小时才能完成,检查每个泵步骤和阀门打开和关闭周期。这几乎不可能手动完成。然后,测试结果可以被视为基于文本的结果,最终是通过或失败条件,也可以被视为类似于逻辑分析器的图形显示。
在Green Custard的系统中,测试结果被转换为记录,并批量写入Influx时间序列数据库的实例。测试输入JSON文件包含用于确定测试是否通过的指标。Python脚本解析JSON文件,提取该测试的相关指标,并存储它们可供使用。测试完成后,会查询Influx数据库,并可以检查特定功能;例如,泵电机的步数,或阀门打开时间和持续时间达到毫秒的精度。
成功的测试用例
测试失败;控制器 1 超出公差范围
第二个图形显示数据的方式由开源数据分析和可视化平台Grafana提供。这种观点允许不参与软件开发的团队——例如,开发口味的人和液体专家——使用测试数据来确定切换时间和序列是否符合预期。例如,下图显示了在分配四杯单独饮料期间按顺序生成的三个不同的图表。顶部图表显示分配进度周围的数据;中间图表显示与分配相关的更多数据,这些数据随时间而变化;底部图表显示水龙头内控制元素的打开和关闭。
Grafana 仪表板显示系统状态;数据描述已被模糊处理
这种详细程度,加上能够测试许多输入条件的能力,使其成为一个功能强大的测试工具。
在这个应用程序中,Raspberry Pi Pico使Green Custard能够提供低成本的解决方案来模拟不同类型的传感器,并测量由此产生的输出变化。可以实时监控不同组件的状态,并将收集的数据写入时间序列数据库。最后,至关重要的是,数据可以绘制在仪表板上,以便进一步分析。整个过程是自动化的,无需人工交互即可运行数千次测试。
Green Custard的Hardware-in-the-Loop系统支持测试用例,这些测试用例注入了在真实系统上重新创建非常困难甚至完全无法实现的故障条件,从而可以评估被测软件的鲁棒性。
如果没有Raspberry Pi Pico,识别可能影响现场性能的间歇性错误将非常困难(如果不是不可能的话)。使用Hardware-in-the-Loop,Britvic可以确信Aqua Libra Co Flavour Tap将按预期运行。
要了解更多关于Green Custard如何帮助开发Aqua Libra Co Flavour Tap的信息,请在此处阅读他们的完整案例研究。
完整案例研究:https://www.green-custard.com/customers/britvic-flavour-tap/