于振中,徐 靜
(江南大學 物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122)
基于STM32和Android的桌面型碼垛機器人控制系統(tǒng)設計*
于振中,徐 靜
(江南大學 物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122)
針對我國缺乏具有自主知識產權的低成本碼垛機器人這一現(xiàn)狀,設計了基于STM32和Android的桌面型碼垛機器人控制系統(tǒng)。首先介紹了桌面型碼垛機器人的機械結構,然后以STM32F103RCT6微處理器為主控制系統(tǒng)核心,以Android為平臺開發(fā)了客戶端作為示教控制系統(tǒng),同時根據(jù)碼垛機器人的需求,完成了對整個控制系統(tǒng)的設計。實際運行效果表明,系統(tǒng)工作穩(wěn)定、制造成本低、使用靈活。
桌面型碼垛機器人;控制系統(tǒng);STM32F103RCT6;Android
Abstract: In view of China’s lack of low cost palletizing robot with independent intellectual property rights, this paper designs a control system of the desktop palletizing robot based on STM32 and Android. Firstly, the mechanical structure of palletizing robot is introduced. Then the STM32F103RCT6 microprocessor is used as core of the main control system. Teaching control system is the client based on the Android platform. And the whole control system is designed to meet the needs of palletizing robot. The practical operation shows that the system operation is stable, manufacturing cost is low and it is flexible to use.
Key words:desktop palletizing robot; control system; STM32F103RCT6; Android
作為物流自動化領域的一門新興學科,碼垛技術能夠幫助企業(yè)提升生產效率,改善勞動條件,其應用在工業(yè)生產領域越來越廣泛。控制系統(tǒng)是碼垛機器人的核心組成部分,對實現(xiàn)機器人碼垛功能和保障作業(yè)性能起著決定性作用[1]。近年來,許多院校已開設了機器人學方面的有關課程,為了滿足碼垛機器人有關課程教學示范和實驗教學的需求,開發(fā)一款具有教學適用性、成本低、靈活性好的控制系統(tǒng)十分必要。
經(jīng)調查發(fā)現(xiàn),目前工業(yè)碼垛機器人多采用“PLC+觸摸屏”組合的控制系統(tǒng),這種構架形式工作靈活性較差,成本高,對電源要求也高,安全性差,不適用于教育領域的機器人。而ARM具有強大的數(shù)學運算能力、豐富的接口,能完全滿足對碼垛機器人的控制要求,其開發(fā)成本也要比PLC低[2]。并且隨著智能終端的普及和其運行速度不斷提升,為提高機器人控制系統(tǒng)的靈活性提供了新思路。利用Android平臺開發(fā)移動智能終端,示教控制碼垛機器人[3]。這樣用戶就可以利用Android手機或者平板電腦和碼垛機器人進行無線通信,可以更好地整合資源,提高效率。針對本文所研究的桌面型碼垛機器人,利用ARM與Android平臺設計碼垛機器人的控制系統(tǒng)。
圖1 控制系統(tǒng)硬件結構
碼垛機器人控制系統(tǒng)由示教器、控制主機、步進驅動器和機器人本體組成,其硬件結構如圖1所示。示教器作為人機交互接口,為用戶提供美觀實用的操作界面??刂浦鳈C、步進驅動器和電源等由各種線纜連接并安裝在控制柜內。機器人本體由各個運動機構、步進電機和限位開關構成。
控制主機通過無線WiFi與示教器進行通信實現(xiàn)數(shù)據(jù)交互,構成整個控制系統(tǒng),整體為自主研發(fā)的裝置。控制主機接收示教器發(fā)送來的控制指令,解析后控制碼垛機器人做出相應動作。示教器從控制主機獲取機器人的當前信息并呈現(xiàn)在界面上,用戶根據(jù)信息向控制主機發(fā)出控制指令。
本文控制主機選擇的ARM芯片是Cortex-M3內核的STM32F103,其內核性能高,具有很高的代碼效率且成本低。晶振頻率為72 MHz,有豐富的I/O端口,支持以太網(wǎng)與相機接口,具有很好的可擴展性和高性能、低功耗等優(yōu)點,很好地滿足了桌面型碼垛機器人控制系統(tǒng)的輸入輸出需求[4]??刂浦鳈C的硬件電路包含:電源電路、復位電路、時鐘電路、JLINK下載電路、串口通信電路以及通過串口通信模塊外擴的無線WiFi模塊,使得碼垛機器人可以進行WiFi通信,這樣用戶可以通過Android手機終端和碼垛機器人進行信息交互和控制,如圖2所示。
圖2 控制主機的硬件電路組成
控制系統(tǒng)軟件分為主控制系統(tǒng)軟件和示教控制系統(tǒng)軟件兩個部分,采用模塊化思想,對控制系統(tǒng)軟件結構設計按功能進行模塊化分[5]。示教器與控制器主機根據(jù)用戶不同的需求而采用不同的模塊組合,并通過網(wǎng)絡進行數(shù)據(jù)傳輸。主控制器軟件的主要功能包括初始化模塊、定時器模塊、運動控制模塊、原點搜索模塊以及和與示教器的通信處理模塊。其中運動控制模塊是碼垛機器人控制系統(tǒng)的核心部分,它具有運動學分析、軌跡規(guī)劃等豐富的控制功能,使用方便,滿足了機器人碼垛作業(yè)的需求。示教控制軟件的主要功能包括界面顯示、手動控制以及與主控制器的通信。
2.1主控制系統(tǒng)的軟件設計
主控制系統(tǒng)的程序流程如圖3所示,程序啟動后,首先要對系統(tǒng)進行相關初始化,主要有時鐘初始化、延時初始化、中斷初始化、定時器初始化、通信初始化、GPIO初始化與配置以及TCP/IP模塊初始化等。機器人回零后對示教器發(fā)送過來的控制指令進行解析,經(jīng)過一系列運動學正反解、軌跡規(guī)劃后,與初始狀態(tài)進行比較,從而到達目標位置的坐標。
圖3 主控制系統(tǒng)程序流程圖
圖3中機器人回零是指,主控制器在對示教器發(fā)送來的控制指令進行解析前,要使大臂、小臂、腰部、手腕處的步進電機都達到原點,通過分布在各個關節(jié)的限位開關來實現(xiàn)?;亓愠绦虻牧鞒倘鐖D4所示。
圖4 機器人回零程序流程圖
圖3程序流程圖中從插補運算到運行至末端點這一運動過程就是軌跡規(guī)劃模塊,本文選用直線插補和關節(jié)插補來確保碼垛機器人的運動軌跡平滑以及運行平穩(wěn)有序。對軌跡關鍵點之間通過插補算法自動計算出各個插補點的坐標,然后經(jīng)過運動學反解求出各關節(jié)角度。其軌跡控制過程如圖5所示。
圖5 軌跡控制流程圖
2.2示教控制系統(tǒng)的軟件設計
Android是建立在Linux系統(tǒng)之上的開源手機開發(fā)平臺,該平臺由操作系統(tǒng)、中間件、用戶界面和應用程序組成。Android的應用程序是用Java語言開發(fā)的。隨著智能終端的上市,強大的性能和開放性使Android系統(tǒng)在市場上的普及率也越來越大,也讓其成為智能終端相關科研項目很好的選擇[6]。利用移動智能終端對碼垛機器人的控制靈活性高這一優(yōu)點,本文選擇Android作為示教控制軟件開發(fā)平臺,在Android提供的應用程序框架上開發(fā)桌面型碼垛機器人的示教系統(tǒng)。
2.2.1客戶端框架
該系統(tǒng)總體設計思路是采用C/S系統(tǒng)架構,開發(fā)基于控制主機的服務器及Android平臺的客戶端。在Android Studio 開發(fā)環(huán)境下,采用Java語言,基于軟件的分層架構思想對客戶端進行設計,如圖6所示。表示層:負責生成用戶的操作界面,其功能是控制機器人當前狀態(tài)、單方向運動、單軸運動、點到點之間的運動。業(yè)務邏輯層:用于處理各種事物。數(shù)據(jù)訪問層:主要用于網(wǎng)絡數(shù)據(jù)通信。應用程序接口(Application Programming Interface,API)是由所有的參數(shù)數(shù)據(jù)集合而成,這樣業(yè)務邏輯層就可以直接調用API接口模塊,API接口模塊與通信模塊直接交互。
圖6 機器人示教軟件分層架構
2.2.2通信程序設計
IT和工業(yè)通信領域中常見的通信方式有串口、并行口、USB等,但由于傳輸效率低、抗干擾能力弱,無法實現(xiàn)示教器與控制主機之間通信的準確性和及時性。以太網(wǎng)以其高速率、遠距離傳輸?shù)膬?yōu)勢,逐漸成為工業(yè)控制網(wǎng)絡建設的一種新思路。而WiFi作為以太網(wǎng)的擴展,主要應用于搭建無線局域網(wǎng)。它具有功耗高、成本低、傳輸速率快、安全性低等特點。
本設計中,Android客戶端使用無線WiFi網(wǎng)絡通過TCP/IP協(xié)議與控制主機服務端連接,從而實現(xiàn)人機交互。示教軟件作為Android系統(tǒng)的應用軟件層,通過Java語言進行編程,而TCP通信的客戶端是由Java語言提供封裝的套接字Socket類來實現(xiàn),Socket包括還IP地址、端口號,程序員可方便地訪問TCP/IP協(xié)議[7]。
控制主機的TCP服務器端與示教器的 TCP客戶端的通信流程如圖7所示??刂浦鳈C作為服務器,連接時服務器進入監(jiān)聽模式,等待來自客戶端的連接請求,當遠端IP地址和端口號正確時可連接成功。Android 手機客戶端接入無線WiFi網(wǎng)絡后,通過Socket編程接收和發(fā)送數(shù)據(jù),將其接收到的機器人當前狀態(tài)連續(xù)地顯示在客戶端上 。
圖7 TCP通信流程
3.1數(shù)據(jù)傳輸實驗測試
先借助串口助手將WiFi模塊設置為服務器,然后用戶在示教器客戶端輸入服務端IP和端口號,點擊【連接】請求,若符合服務器的內部參數(shù),即可與服務器建立Socket連接,接收框中顯示“OK,CONNECT”,效果如圖8所示。在客戶端發(fā)送數(shù)據(jù),會在服務器中顯示接收到的數(shù)據(jù)。通過實驗測試,示教器客戶端與服務器的通信連接成功,對數(shù)據(jù)進行準確快速的發(fā)送。這時將設置好的WiFi模塊接入控制主機的通信接口,實現(xiàn)Android客戶端和碼垛機器人的人機交互和控制??刂浦鳈CSTM32芯片上的TCP/IP模塊初始化程序如下:
Char msg1[]="AT+CIPMUX=1 ";
Char msg2[]="AT+CIPSERVER=1,8001 ";
for(t=0;t<=12;t++)
{while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);
USART_SendData(USART3,msg1[t]);}
delay_ms(1000);
for(t=0;t<=20;t++)
{while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);
USART_SendData(USART3,msg2[t]);}
while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);
圖8 TCP/IP通信實驗測試
3.2現(xiàn)場控制測試
手機先連接上WiFi,開啟客戶端后,點擊菜單上的【連接設備】,自動連接控制板上WiFi模塊的IP地址,地址連接成功后指示燈亮,機器人當前狀態(tài)就會顯示回零點的坐標和角度。點擊每個控制按鈕都會通過控制器發(fā)送指令給機器人使其運動,并通過控制器將機器人當前坐標和旋轉的角度反饋給客戶端。
經(jīng)測試,客戶端的每條指令可下發(fā)給控制主機,控制的靈活性、連續(xù)性均良好,該系統(tǒng)達到預期目標。只要在WiFi覆蓋的區(qū)域內,碼垛機器人都能夠迅速對用戶的控制做出反饋,完成相應動作。
本設計采用STM32作為主控制器,以Android為平臺設計了示教器,兩者通過無線WiFi模塊進行通信,構成整個控制系統(tǒng),克服了傳統(tǒng)碼垛機器人控制系統(tǒng)的擴展性差、靈活性差、成本高等缺點。還可以將該控制系統(tǒng)推廣應用到課堂教學,該系統(tǒng)使用弱電控制、安全系數(shù)高、成本低,根據(jù)需要學生可自主設計控制系統(tǒng)。通過實樣機的運行測試,該系統(tǒng)可完成60 m范圍內的無線通信,實現(xiàn)無線人工遙控和自主運動。由于Android手機與碼垛機器人的無線通信擴大了碼垛機器人的功能,且該系統(tǒng)運行穩(wěn)定、操控效果良好,具有實用價值及推廣價值。
[1] 李曉剛,劉晉浩.碼垛機器人的研究與應用現(xiàn)狀,問題及對策[J].包裝工程,2011,32(3):96-102.
[2] 郭亞奎.基于ARM的嵌入式碼垛機器人控制系統(tǒng)的研究與設計[D].南京:南京航空航天大學,2014.
[3] 陳瑋,秦會斌,曹曙光,等.基于Android平臺的智能家居系統(tǒng)設計[J].電子技術應用,2015,41(10):158-160.
[4] 于振中,蔡楷倜.基于STM32的機器人仿真示教器設計[J].微型機與應用,2016,35(23):38-41.
[5] 陳致遠,朱葉承,周卓泉,等.一種基于STM32的智能家居控制系統(tǒng)[J].電子技術應用,2012,38(9):138-140.
[6] ENCK W, OCTEAU D, MCDANIEL P, et al. A study of android application security[C]. USENIX Conference on Security, 2011: 21-21.
[7] 徐宏宇,程武,張博.基于ARM和Android的智能家居控制系統(tǒng)設計[J].微型機與應用,2017,36(3):29-32.
Control system design of desktop palletizing robot based on STM32 and Android
Yu Zhenzhong, Xu Jing
(School of Internet of Things Engineering, Jiangnan University, Wuxi 214122, China)
TP242.2
A
10.19358/j.issn.1674- 7720.2017.18.001
于振中,徐靜.基于STM32和Android的桌面型碼垛機器人控制系統(tǒng)設計[J].微型機與應用,2017,36(18):1-3,7.
江蘇省2016年度普通高校研究生實踐創(chuàng)新計劃項目(SJZZ16_0219)
2017-03-22)
于振中(1980-),男,博士,副教授,主要研究方向:機電一體化。
徐靜(1992-),女,碩士研究生,主要研究方向:電機與電器。