練錦清 李威龍 李明楓 黃京榮 吳俊東
(桂林電子科技大學機電工程學院,廣西 桂林 541004)
隨著中國制造2025 的提出,智能制造在中國得到了大力的發展[1][2],機器視覺檢測是智能制造系統中的重要一個環節,具有檢測快、檢測精度高、重復性好的優點,逐漸取代了相當一部分的人工檢測工序,得到了廣泛的應用[3][4]。在智能制造領域中,機器視覺經常作為缺陷檢測的一個環節,可以提高檢測的準確性,實現長時間的工作,是智能制造檢測中不可或缺的重要環節。步進電機主要是利用脈沖進行控制,脈沖的頻率大小和步進電機的旋轉速度成正比,脈沖的個數也和步進電機的旋轉角度成正比,控制簡單,運動精度高、成本低廉是步進電機的主要優點,因此步進電機在制造業也中得到了十分廣泛使用。本文根據機器視覺檢測設備的實際需求,針對機器視覺質量檢測的設備,如缺陷檢測、外觀檢測、尺寸測量方面的設備,文中主要利用單片機,對步進電機控制系統進行了控制,可以調節步進電機的旋轉速度,連續運動、增量式運動,以及回到原點的功能,同時具備按鍵和OLED 屏幕人機交互以及和電腦端的上位機串口通信的功能。在本實驗裝置基礎上,可以擴展實現工業相機的圖像采集、圖像處理以及控制一體化的軟件編程,擴展性高。
Stm32F407 具備多個定時器,比如高級定時器1 和高級定時器8、內部具有I2C,SPI、具備多個串口等功能,性能穩定,內部有浮點運算功能,運算速度快[5],所以文中的控制系統的主要芯片是stm32F407 芯片,實現了三個軸的控制的功能,控制系統組成部分,包括降壓穩壓的模塊、主控模塊、獨立式的按鍵模塊和0.96''的OLED 顯示屏的人機交互模塊。同時,還包括了串口通信模塊,電機驅動模塊、電機限位開關,如圖1 所示是本系統的控制框圖。

圖1 控制系統原理框圖
主控STM32F4 核心板模塊,由復位電路、晶振電路、電容濾波電路構成,電路板上包括了一個測試用的貼片的LED 燈、一個測試用的按鍵等。晶振采用的是8M 外部晶振,采用多個電容對輸入的電源進行濾波穩定,讓控制系統更加穩定工作。
獨立按鍵電路主要包括5 個按鍵,為了節約成本,沒使用硬件去抖動功能,而在軟件中利用延時實現去按鍵的抖動,提高按鍵的操作穩定性,如圖2 所示;蜂鳴器電路,主要是利用NPN 型的三極管實現蜂鳴器開關功能,圖3 利用NPN 型的S9013 三極管實現電路的電流放大和開關作用;OLED 電路,主要是實現參數顯示功能,和stm32F407 芯片通過軟件SPI 通信,如圖4 所示。OLED采用的是7 個引腳的SPI 接口的OLED,傳輸刷新數據更快,更加穩定。

圖2 獨立按鍵電路

圖3 有源蜂鳴器電路

圖4 OLED 接口電路
步進電機驅動接口,主要是分配stm32F407 芯片的IO 口,將其和步進電機驅動器連接,實現步進電機的控制功能,本控制系統主要是利用定時器產生脈沖,控制步進電機,因此對IO 口分配沒有特殊的要求,x 軸接口如圖5 所示。限位開關模塊,主要是利用光電傳感器的通斷功能,當工作平臺運動到限位開關上方,和工作平臺連接的遮擋塊準確的進入到紅外光電傳感器模塊的凹槽中,就會遮擋光線,從而電平從高電平變為低電平,stm32 芯片接收到跳變信號,進入到中斷服務函數中,執行相關的程序,限位開關模塊共有5 個,X 軸2 個,Y 軸2 個,旋轉平臺1 個,X 軸靠近電機側限位開關接口如圖6 所示。

圖5 步進電機接口

圖6 限位開關接口
控制系統的軟件部分,主要實現驅動了三個軸的步進電機、串口通信、OLED 屏幕顯示、按鍵輸入控制功能。
步進電機的驅動,主要是利用stm32F407 的普通定時器產生脈沖,實現控制。定時器2、定時器3、定時器6 分別負責X、Y、Z 軸脈沖產生,以X 軸的控制為例,進行說明,Y 和Z 軸編程原理相同。首先利用庫函數,初始化stm32F4 的定時器2,設定定時時間是10us,觸一次中斷,然后在定時器6 中斷服務函數中,設定一個靜態變量timer6cnt,每進入一次中斷,timer6cnt 加一,當timer6cnt小于設定的速度數據脈沖Ns 的一半時,讓stm32 的脈沖產生IO 口輸出高電平,當timer6cnt 大于設定的速度數據脈沖Ns 一半并且小于速度數據脈沖Ns 時,timer6cnt歸0 并且IO 口輸出低電平。當改變Ns 大小,就可以實現調節步進電機的速度的目的。
串口通信功能,主要是將stm32F407 和電腦通過串口進行通信,stm32F407 的串口1(PA9 和PA10)負責該功能,當stm32F407 接收到電腦上位機軟件的串口發過來的信息,就會進入串口1 中斷函數,在串口中斷函數中,對信息進行判斷,檢查是否和約定的串口命令幀頭相等,如果相等,運行后續數據傳入數組中,如果不相等,丟棄。再檢查是否和約定的幀尾相等,如果相等,結束數據接收,如果不相等或超過約定的接收時間,也結束數據接收。當接收到完整一幀命令,檢查命令,實現對應的功能。比如電腦端發送字符串“SM0#”,單片機端接收到之后,判斷有沒有#字符,如果存在#字符,那么認為一幀數據完整結束,再判斷SM0 和約定的指令是否存在,如果存在相等,那么執行對應的動作,如果不存在,那么繼續等待新的串口數據。
OLED 屏幕顯示,主要是將stm32F407 的對應控制IO 口編程實現軟件SPI 功能,屏幕顯示主要是顯示方向信息、軸的信息、速度信息等。需要規劃好頁面顯示的位置,在對應的位置顯示對應的信息,當控制電機或者調解控制軸等,在對應的位置進行信息刷新。為了刷新穩定,在定時器15ms 時間,進行一次刷新,而避免了頻繁刷新的情況,讓參數更加顯示穩定,提高人機操作的舒適程度。
按鍵輸入功能,主要包括了按鍵的短按長按和短按連續按兩種模式。如果想實現短按和長按的功能,設定一個計數次數變量timx5mscnt,當按下按鍵,單片機檢測到下降沿,進入對應程序,在里面設置一個循環,每5ms,timx5mscnt 加1,并且檢測一次是否松開,當松開按鍵之后,判斷timx5mscnt 是否大于約定的長按次數,當timx5mscnt 大于超時次數,認為是長按,返回長按鍵碼,當timx5mscnt 小于超時次數,認為是短按,返回短按鍵碼。在主函數中,不斷檢測掃描按鍵,當檢測到對應鍵碼,執行對應的函數,比如歸零、速度調節、運動軸選擇、正轉、反轉等功能。
圖7 是設計并完成的控制系統實物圖,圖8 是操作面板圖,以及圖9 控制箱體內部實物圖,包括了上述的核心板模塊、接口模塊、按鍵和OLED 模塊等。在完成上述編程之后,接入三軸步進電機工作臺,其中X 軸和Y軸構成一個二維機構,Z 軸是旋轉平臺。步進電機驅動器采取共陽接法,并通過撥碼開關選擇為4 細分模式。實驗過程中,可以選擇短按按鍵1,選擇需要控制的軸,長按按鍵1,實現當前選擇軸位置信息清零,短按或者連續按按鍵2,實現電機正轉,按鍵3 實現反轉,按鍵4 實現回零,短按按鍵5,電機停止,長按按鍵5,選擇電機的運動速度。在電機運行過程中,當電機觸發限位開關的時候,電機會停止,并且蜂鳴器報警。當利用USB 轉TTL 模塊將電腦和控制系統連接的時候,電腦端利用串口助手,發送對應字符串,可以實現電機的類似按鍵的控制功能,后續方便可以利用QT 軟件或者其他軟件,結合相機的SDK 庫,以及OPENCV 等圖像處理軟件,編寫一體化的上位機軟件,實現相機的拍攝圖像的檢測,如尺寸檢測、圖像缺陷檢測,實現更加智能的控制。

圖7 實驗平臺實物

圖8 操作面板

圖9 控制箱體內部實物
實驗證明,設計的控制系統,能滿足機器視覺檢測平臺的控制要求,能通過下位機硬件系統的獨立按鍵,實現控制,也能通過電腦的串口,發送串口命令,控制三軸步進電機,性能穩定,對于后續機器視覺的軟件開發提供基礎,具備一定的市場發展前景。