劉藝煒,張博,張文棟
(太原理工大學信息與計算機學院,山西 晉中 030600)
生物3D 打印這一技術概念最早由美國Clemson University、University of Missouri、Drexel University 等大學的教授在2000 年左右提出[1],是一種能夠在數字三維模型驅動下,按照增材制造原理要求裝配生物細胞、柔性材料或生物材料,制造組織生物制支架、醫用器械的技術[2-3]。目前,打印機技術根據原理可分為熔融沉技術(FDM)、噴墨打印技術和立體光刻技術(SLA),均有其優點、缺點和局限性[4]。目前降低打印成本、提高打印的精度、實現快速打印成為急需解決的問題[5]。
目前,國內研究團隊多使用Arduino 軟件來設計打印機,使用FPGA 芯片控制生物打印機的研究少見[6-7]。
FPGA 集成度高、資源豐富、處理速度快、通信方式多種多樣,為開發者的設計提供了便利,也帶來了更多的發揮空間,可重復編程、設計周期短、研發費用低、可嵌入高性能處理器的優點使得FPGA 可極大地提升產品質量[8]。
文中以FPGA 芯片為核心控制芯片,先將打印的支架參數數字化,再進行數字處理、編碼,使其能精確控制步進電機的運動和噴頭的開啟。通過引入梯形運動控制算法,提高了支架的打印精確度。
生物打印系統主要包括機械系統、運動控制模塊、氣動控制模塊、控制程序四大部分,如圖1 所示。為了實現噴頭擠出、空間定位和環境控制,機械系統又包括三維運動部件、供料系統、噴頭部件3 個部分。上位機通過串口通信發送打印命令給FPGA主控制板。主控制板通過分析打印指令,將三維運動的控制命令進行數據轉換并發送給三維運動控制模塊。然后DM422 步進電機驅動器將細分要求、位移要求命令發送給三維移動平臺,實現位移的控制。噴頭部件通過接收FPGA 主板的開啟關斷命令實現微閥的開啟與關斷,從而控制噴頭。在打印過程中FPGA 主控制板通過與運動控制模塊、溫控加熱模塊的反饋,校正打印指令,提高打印精度。

圖1 整體設計框架
打印機采用噴墨式打印方式,選用孔徑為0.1 μm的電磁閥噴頭,使用步進電機驅動絲桿,通過絲桿的位移控制噴頭的位移[9]。采用4 000 細分驅動,理論上的步進角[10]達到了0.007°,使電機平穩啟動、停止和加減速[11]。
采用微流閥噴頭作為打印噴頭,開啟電壓為24 V,保持電壓為5 V。上位機發送步進電機移動命令時,噴頭控制程序發送脈沖控制信號CONTROL,當控制信號為高時,拉高電磁閥噴頭開啟信號CH1_CONTROL_VOLTAGE。電路原理圖如圖2 所示。

圖2 電路原理圖
為滿足不同噴頭的選擇,設計了如上電路。CH1_BASE_T4 為噴頭的使能信號,用來控制噴頭開啟電壓+24 V_SPIK 的接入。當CH1_BASE_T4 為高時,T10、T19 器件依次開啟,24 V 電壓加到噴頭兩端,噴頭開啟。當接入CH1_CONTROL_VOLTAGE后,達林頓三極管T20 導通,將5 V 的電壓源繼續保持在噴頭兩端CH1_VALVE_CONNECTION_6 和CH1_VALVE_CONNECTION_5。
采用線性光耦器HCPL082 將24 V 的限位信號轉換成3.3 V 傳輸給FPGA 主控制板。通過X_PLUS、X_DIR、X_ENA 3 個信號分別控制X 軸的運動速度、運動方向、運動使能[12]。這些控制信號通過增強型NMOS 管將電壓轉換成對應的步進電機驅動控制器信號X_PLUS_DM、X_DIR_DM、X_ENA_DM。運動控制電路如圖3 所示。

圖3 運動控制電路
加熱模塊采用DS18B20 采集載物臺和噴頭的加熱溫度。STM32 運算溫度采集信號,發送給反饋控制Driv_Warm_Re,使其可在20~80 ℃下運行。STM32將加熱命令Driv_Warm 發送給光耦MOC3022,通過開啟U8 器件控制加熱元件的接地端。在電路的上半部分,通過反饋控制信號Driv_Warm_Re 控制加熱的繼電器,從而實現溫度的負反饋控制[13]。加熱模塊驅動電路如圖4 所示。

圖4 加熱模塊驅動電路
為實現噴頭的移動,基于Xilinx Artix-7 系列FPGA 芯片編寫了Verilog 程序代碼,控制和固定了噴頭的步進電機通信模塊,使用UART 串口傳輸控制信號,用于控制步進電機模塊和噴頭模塊等[14]。硬件連接示意圖如圖5 所示。

圖5 硬件連接示意圖
上位機通過RS232 與打印機通信,通過特定的數據幀協議傳輸打印的指令,具體包括打印支架材料的尺寸、打印噴墨式噴頭的控制參數、打印步進電機的移動速度等,具體協議幀如表1、表2 所示[15]。

表1 打印層數據幀

表2 打印參數設置幀
在打印程序中,通過將打印尺寸分解、切片,轉化成蛇形線性移動路徑,通過步進電機的移動,實現打印噴頭的位移,通過程序計算,噴頭將會在特定的位置開啟一定的時長,用來保證液滴的正常大小及正常噴射。通過測試不同的噴頭開啟時間,發現噴頭開啟時間在400 μs 時,液滴打印效果較好。通過打印測試,電機的移動速度在5 mm/s 時,支架呈現出較好的形貌特征。具體處理流程如圖6 所示。

圖6 打印信號處理流程圖
為了提高步進電機的移動精準度,加入了梯形加減速控制算法,在步進電機的啟動、停止、轉向這些涉及到步進電機啟停的特定時間點加入文中算法來控制步進電機[16]。加減速實現功能圖如圖7 所示。

圖7 加減速實現功能圖
加減速模塊通過Verilog 程序代碼來實現,主要包括頂層模塊sudu_control、位移計數模塊displace_count、脈沖發生模塊PWM_genrator、算術計算模塊arith_solve、狀態轉換模塊STATE_change。
在狀態轉換模塊中包含有加減速狀態轉換機,用于實現步進電機不同狀態之間的切換。具體狀態包含狀態等待、加速、減速、勻速、狀態停止、位移校正、停止等[17]。具體狀態轉換表如表3 所示。

表3 狀態轉換表
狀態轉換模塊用于讀取模塊的速度、位移等數據。根據速度和位移數據更改步進電機的轉換狀態,完成加速的狀態識別和轉換。
為辨別各個狀態的轉換時刻,通過分析各個階段的實時速度和位移數據,與速度和位移信號經行比較。當滿足條件時,即可進行狀態轉換[18]。
具體的計算公式如下:
t1時刻的狀態轉換標志:

其中,ΔS為加速距離。

t2時刻的位移點計算公式為:

t2時刻的判斷信號為當前位移量displace_coun是否與目標值aim_count 相等:
t3時刻的標志位為:

頂層模塊讀取目標位置、速度、加速度及當前位置等數據,計算出每一周期速度增加量以及減速點等數據,再根據當前位置、當前速度自動控制當前速度的變化,完成加減速控制功能。
頂層模塊綜合圖如圖8 所示,加減速模塊通過Verilog 程序代碼實現,頂層模塊sudu_control 用于各個模塊的綜合;位移計數模塊displace_count 用于計數步進電機的位移距離計算;脈沖發生模塊PWM_genrator 用于產生特定步進電機運動速度的脈沖波;算術計算模塊arith_solve 用于計算加減速轉換的標志位;狀態轉換模塊state_change 用于不同加減速狀態之間的轉換[19]。

圖8 頂層模塊綜合圖
在完成控制系統硬件與軟件設計的基礎上,搭建完整的控制系統平臺進行相關測試實驗,主要包括溫度調節測試、恒溫控制測試和實物打印測試。測試設備如圖9 所示,由上位機發送相關指令,觀測對應實驗結果并進行分析。

圖9 測試設備
該研究進行了模擬支架的打印實驗。具體方法為:使用5%的海藻酸鈉溶液作為打印材料[20],打印1 mm×1 mm 網格型支架材料;在完成30 mm×30 mm的網格型支架打印后,使用4%的CaCl2溶液噴霧固化,待凝固后進行觀察。打印氣壓為35 kPa,行進速度為5 mm/s,噴頭開啟時間為400 μs。
圖10 為穩定成型的網格支架實物。從10(a)中可以看出,支架整體打印完整度較好,行列之間基本保持平行,也從側面說明所設計加減速控制算法達到了較好的控制效果,位移控制相對精準。從局部放大圖10(b)中可以發現,每個1 mm×1 mm 的正方形網格外輪廓一致性較好。

圖10 穩定成型的網格支架實物
該文設計了一種基于FPGA、擁有多噴頭可以打印柔性材料的生物3D 打印機。分析和設計了打印機的各功能模塊、電路,編寫了打印機控制程序。為提高打印機打印的精確性,加入了步進電機的梯形控制算法,通過打印機的實驗驗證可知,基于FPGA的3D 打印機能夠實現柔性材料的打印,滿足基本的柔性材料的打印需求。基于FPGA 的框架3D 打印機的設計,為生物凝膠材料固化成型技術提供了新的簡便制備方法。