高昀欣,高永民,成文娟,江永鑫
(廈門理工學院 電氣工程與自動化學院,福建 廈門 361024)
在一些發達的城市,如北京、上海等,企業和政府部門都會配置公司咖啡機以提供免費咖啡。在工作之余的休息時間,飲用咖啡可拉近員工間的距離,使員工放松心情、掃除疲憊,從而是精力更集中地投入到工作中。在家庭配置咖啡機可以提升家庭生活的品味,對生活品質的追求,讓中國消費者對咖啡的態度逐步發生變化。從最初的消費需求逐漸過渡到社交需求,“咖啡”似乎已經成為一種新時代特有的文化象征,并逐漸滲透進現代人的生活[1]。
因此,本文基于可供公司、家庭使用的設計理念,設計以Arduino為核心的智能拉花咖啡機,該智能咖啡機可實現多種口味咖啡的自動沖泡,及拉花的自動制作。
本設計可實現水箱的加熱和多種口味咖啡粉的制作,并以Arduino作為拉花裝置的控制板,通過在雕刻軟件中導入圖片,使用小型步進電機和光軸導軌,通過控制實現拉花裝置在平面上的精確移動。將蠕動泵固定在拉花裝置上,利用蠕動泵的引流功能,將打好的奶泡引入杯中,實現咖啡機的智能拉花。系統整體設計圖如圖1所示。

圖1 系統整體設計圖
該智能拉花咖啡機的硬件結構圖如圖2所示。

圖2 硬件結構圖
2.2.1 咖啡萃取裝置
咖啡萃取裝置采用“傳送帶式咖啡萃取系統”,咖啡粉由咖啡粉道送至篩網隔板之上,單片機控制步進電機驅動隔板向右運動,使咖啡粉到達內徑較隔板徑稍大的上、下釀造盒之間,隔板停止運動。上、下釀造盒閉合,夾住隔板,使咖啡壓實,達到一定密度后再沖泡,具有一定密度的咖啡粉可增加熱水在釀造時的阻力,從而延長釀造時間,使咖啡經過充分萃取。此時,水路系統電磁閥打開,熱水由上釀造盒的兩個進水口沖入,對咖啡粉進行萃取、釀造,所得的咖啡溶液由下釀造盒的出水口流出。釀造完成,上、下釀造盒分開,篩網隔板由電機驅動向右運動至除渣盒內;電機驅動隔板旋轉一周,除去隔板上咖啡渣,然后驅動電機驅動隔板返回到原出發點。
2.2.2 打奶泡裝置
裝置由蒸汽導管、電機、超聲波液位傳感器構成。從熱水加熱裝置中引出一根蒸汽導管,當需要奶泡時則將水加熱至沸騰產生蒸汽,控制電機讓蒸汽頭沉入牛奶下面約1 cm,當檢測到蒸汽頭沉入液面以下,此時蒸汽導管的開關由繼電器收到信號后打開,讓牛奶在蒸汽的作用下開始緩慢旋轉,通過定時器設定好各種溫度下所需的時間,待奶泡制作完成停止蒸汽供給,蒸汽導管撤回。
2.2.3 咖啡拉花裝置
⑴ Arduino控制器
本設計采用Arduino系列中的Ardunio UNO作為切割機的控制器。其核心處理器為Atmega328,工作電壓為5 v,時鐘速度為16 MHz,具有16個數字I/O、6個模擬輸入并可以輸出6路PWM。Ardunio通過USB數據線與計算機連接進行通信和供電。通過其定時器輸出PWM方波,以脈沖模式驅動控制步進電機運行,Arduino可以通過輸出多路PWM控制多個步進電機運行。
⑵ A4988步進電機驅動
步進電機的運行要具有足夠的功率,單獨使用單片機發出的控制脈沖無法驅動步進電機正常運行。這里我們使用步進電機驅動將信號進行功率放大后再施加到繞組,脈沖分配器接收控制脈沖信號和方向電平,并按步進電機的控制方式要求的狀態順序產生各相相應的繞組控制信號。
A4988 是一個完全的小型步進電機驅動器,內置有電平轉換器,操作簡單,該模塊可以在全步進、半步進、1/4步進、1/8步進及1/16步進模式時驅動雙極步進電機運行,輸出的驅動電壓最高可達35 V,電流可達±2 A。A4988是一個DMOS驅動器,帶有過流保護和微步驅動器,其易于控制的關鍵便是轉換器,只需在“步進”中輸入一個脈沖,便可控制電機產生微步。
⑶ 拉花機蠕動泵控制
拉花機的傳動結構選用步進電機、光軸導軌、同步帶的組合實現對行走距離的精確把控。支架選用鋁型鋼材和亞克力板進行固定,使用十字滑臺將X軸和Y軸進行聯動。十字滑臺包含8個直線軸承,分為上下2層,直線軸承垂直分布,分別固定X軸和Y軸的光軸。蠕動泵驅動電壓為12 V,Arduino通過一路PWM輸出2個固定的占空比控制蠕動泵。

表1 拉花裝置零部件明細
拉花裝置主要零部件如表1。
拉花裝置使用計算機作為上位機,使用方式簡單且方便。上位機軟件的主要功能是將設計圖轉化為坐標信息,即G代碼,并向拉花機傳輸數據,我們選用奎享雕刻作為上位機。上位機軟件主界面如圖3所示。

圖3 奎享雕刻軟件主界面
將Arduino連接到電腦,端口選擇COM22,波特率選擇115200,固件為GRBL。GRBL是雕刻軟件為Arduino平臺專門適配的一種開源通用固件,其中一些操作指令和代碼已經被包含到固件庫中,在Arduino編程中只需要調用現成的固件庫便可完成一系列復雜的操作。
上位機準備好后,開始對Arduino進行編程,使用Arduino IDE將程序語言轉化為機器語言燒錄進Arduino的微控制器里。GRBL是德國的嵌入式G代碼編譯和運動控制器的開源代碼,它能解析主流數控軟件產生的數控代碼G代碼[2]。Grbl控制流程如圖4所示。

圖4 Grbl控制流程圖
上位機通過串口發送G代碼到Arduino,Grbl接收后對G代碼進行解析,分解為運動控制和主軸控制。運動控制是控制步進電機運行,使蠕動泵在平面上運行。主軸控制用于控制蠕動泵在何時啟動拉花。
3.2.1 步進電機驅動程序
配置定時器1作為步進電機的驅動中斷和脈沖發生定時器,定時器選擇010的脈沖模式,選擇通道一作為輸出通道。選擇定時器0作為步進電機輸入的中斷,使用通道0輸出中斷。聲明一個串口初始化函數,將波特率設置為115200,無奇偶校驗位,有一個停止位。隨后配置主軸驅動,即蠕動泵的舵機控制。選用引腳時使用if語句判斷此引腳是否被步進電機驅動引腳占用,此方法可以減少錯誤出現的可能。初始化完成后便需要對主軸的運動進行控制,聲明一個函數控制主軸的方向和角度。最后對控制進行限位,使能換針中斷對運動進行限位防止意外發生。
3.2.2 主函數
主函數運行時包括上述所有程序。主函數流程圖如圖5所示。
系統啟動后,首先初始化串口,即波特率和上位機進行適配。隨后從eeprom中載入Grbl,Grbl載入完成開始初始化電機配置,和定時器中斷。將全局變量進行初始化,即對上次使用結束后的全局變量進行復位。進入程序的主循環,開始讀取串口數據,對蠕動泵的位置和姿態進行歸位,回到初始位置后清理上次使用的緩沖區防止錯亂,最后解析G代碼,運行Gbrl主循環,即執行運動。

圖5 主程序流程圖
首先往水箱中加入適量的水,按下按鈕對水箱進行加熱。利用蒸汽打牛奶,將空氣打入液態的牛奶中,形成細小綿密的泡沫。往咖啡萃取裝置中加入咖啡粉,高壓蒸汽和水的混合物快速穿過咖啡層,瞬間萃取出咖啡,咖啡溫度高,雜質含量低,且口感濃郁。將萃取好的咖啡通過傳送帶送到拉花頭下方。隨后,在上位機上選取心形圖案開始拉花,奶泡從噴頭中緩緩流出,按照機器的指令勾勒圖案。最后,咖啡表面出現一個心形圖案,拉花完成。試驗結果如圖6所示。

圖6 心型拉花咖啡
本文設計的基于Arduino的智能拉花咖啡機,溫度控制精度高,可實現多種口味咖啡的自動沖泡。采用以Arduino 為控制核心、A4988為驅動核心控制步進電機運行方式,結合上位機,成功實現用戶自定義拉花功能。該智能咖啡機不僅省時方便,其新穎的拉花功能更讓消費者在品味咖啡時提升了飲用的美感。