Britvic擁有的Aqua Libra Co的可持續性計劃依賴于強大、可靠的分配設備。Green Custard設計了一個測試解決方案,利用Raspberry Pi Pico的靈活性,提供難以通過其他方式實現的嚴格測試。
解決方案 | 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將按預期運行。
-
自動化測試
+關注
關注
0文章
220瀏覽量
27092 -
Pico
+關注
關注
0文章
179瀏覽量
17342 -
樹莓派
+關注
關注
118文章
1882瀏覽量
106257
發布評論請先 登錄
相關推薦
評論