于振中,徐 静
(江南大学 物联网工程学院,江苏 无锡 214122)
基于STM32和Android的桌面型码垛机器人控制系统设计*
于振中,徐 静
(江南大学 物联网工程学院,江苏 无锡 214122)
针对我国缺乏具有自主知识产权的低成本码垛机器人这一现状,设计了基于STM32和Android的桌面型码垛机器人控制系统。首先介绍了桌面型码垛机器人的机械结构,然后以STM32F103RCT6微处理器为主控制系统核心,以Android为平台开发了客户端作为示教控制系统,同时根据码垛机器人的需求,完成了对整个控制系统的设计。实际运行效果表明,系统工作稳定、制造成本低、使用灵活。
桌面型码垛机器人;控制系统;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
作为物流自动化领域的一门新兴学科,码垛技术能够帮助企业提升生产效率,改善劳动条件,其应用在工业生产领域越来越广泛。控制系统是码垛机器人的核心组成部分,对实现机器人码垛功能和保障作业性能起着决定性作用[1]。近年来,许多院校已开设了机器人学方面的有关课程,为了满足码垛机器人有关课程教学示范和实验教学的需求,开发一款具有教学适用性、成本低、灵活性好的控制系统十分必要。
经调查发现,目前工业码垛机器人多采用“PLC+触摸屏”组合的控制系统,这种构架形式工作灵活性较差,成本高,对电源要求也高,安全性差,不适用于教育领域的机器人。而ARM具有强大的数学运算能力、丰富的接口,能完全满足对码垛机器人的控制要求,其开发成本也要比PLC低[2]。并且随着智能终端的普及和其运行速度不断提升,为提高机器人控制系统的灵活性提供了新思路。利用Android平台开发移动智能终端,示教控制码垛机器人[3]。这样用户就可以利用Android手机或者平板电脑和码垛机器人进行无线通信,可以更好地整合资源,提高效率。针对本文所研究的桌面型码垛机器人,利用ARM与Android平台设计码垛机器人的控制系统。
图1 控制系统硬件结构
码垛机器人控制系统由示教器、控制主机、步进驱动器和机器人本体组成,其硬件结构如图1所示。示教器作为人机交互接口,为用户提供美观实用的操作界面。控制主机、步进驱动器和电源等由各种线缆连接并安装在控制柜内。机器人本体由各个运动机构、步进电机和限位开关构成。
控制主机通过无线WiFi与示教器进行通信实现数据交互,构成整个控制系统,整体为自主研发的装置。控制主机接收示教器发送来的控制指令,解析后控制码垛机器人做出相应动作。示教器从控制主机获取机器人的当前信息并呈现在界面上,用户根据信息向控制主机发出控制指令。
本文控制主机选择的ARM芯片是Cortex-M3内核的STM32F103,其内核性能高,具有很高的代码效率且成本低。晶振频率为72 MHz,有丰富的I/O端口,支持以太网与相机接口,具有很好的可扩展性和高性能、低功耗等优点,很好地满足了桌面型码垛机器人控制系统的输入输出需求[4]。控制主机的硬件电路包含:电源电路、复位电路、时钟电路、JLINK下载电路、串口通信电路以及通过串口通信模块外扩的无线WiFi模块,使得码垛机器人可以进行WiFi通信,这样用户可以通过Android手机终端和码垛机器人进行信息交互和控制,如图2所示。
图2 控制主机的硬件电路组成
控制系统软件分为主控制系统软件和示教控制系统软件两个部分,采用模块化思想,对控制系统软件结构设计按功能进行模块化分[5]。示教器与控制器主机根据用户不同的需求而采用不同的模块组合,并通过网络进行数据传输。主控制器软件的主要功能包括初始化模块、定时器模块、运动控制模块、原点搜索模块以及和与示教器的通信处理模块。其中运动控制模块是码垛机器人控制系统的核心部分,它具有运动学分析、轨迹规划等丰富的控制功能,使用方便,满足了机器人码垛作业的需求。示教控制软件的主要功能包括界面显示、手动控制以及与主控制器的通信。
2.1主控制系统的软件设计
主控制系统的程序流程如图3所示,程序启动后,首先要对系统进行相关初始化,主要有时钟初始化、延时初始化、中断初始化、定时器初始化、通信初始化、GPIO初始化与配置以及TCP/IP模块初始化等。机器人回零后对示教器发送过来的控制指令进行解析,经过一系列运动学正反解、轨迹规划后,与初始状态进行比较,从而到达目标位置的坐标。
图3 主控制系统程序流程图
图3中机器人回零是指,主控制器在对示教器发送来的控制指令进行解析前,要使大臂、小臂、腰部、手腕处的步进电机都达到原点,通过分布在各个关节的限位开关来实现。回零程序的流程如图4所示。
图4 机器人回零程序流程图
图3程序流程图中从插补运算到运行至末端点这一运动过程就是轨迹规划模块,本文选用直线插补和关节插补来确保码垛机器人的运动轨迹平滑以及运行平稳有序。对轨迹关键点之间通过插补算法自动计算出各个插补点的坐标,然后经过运动学反解求出各关节角度。其轨迹控制过程如图5所示。
图5 轨迹控制流程图
2.2示教控制系统的软件设计
Android是建立在Linux系统之上的开源手机开发平台,该平台由操作系统、中间件、用户界面和应用程序组成。Android的应用程序是用Java语言开发的。随着智能终端的上市,强大的性能和开放性使Android系统在市场上的普及率也越来越大,也让其成为智能终端相关科研项目很好的选择[6]。利用移动智能终端对码垛机器人的控制灵活性高这一优点,本文选择Android作为示教控制软件开发平台,在Android提供的应用程序框架上开发桌面型码垛机器人的示教系统。
2.2.1客户端框架
该系统总体设计思路是采用C/S系统架构,开发基于控制主机的服务器及Android平台的客户端。在Android Studio 开发环境下,采用Java语言,基于软件的分层架构思想对客户端进行设计,如图6所示。表示层:负责生成用户的操作界面,其功能是控制机器人当前状态、单方向运动、单轴运动、点到点之间的运动。业务逻辑层:用于处理各种事物。数据访问层:主要用于网络数据通信。应用程序接口(Application Programming Interface,API)是由所有的参数数据集合而成,这样业务逻辑层就可以直接调用API接口模块,API接口模块与通信模块直接交互。
图6 机器人示教软件分层架构
2.2.2通信程序设计
IT和工业通信领域中常见的通信方式有串口、并行口、USB等,但由于传输效率低、抗干扰能力弱,无法实现示教器与控制主机之间通信的准确性和及时性。以太网以其高速率、远距离传输的优势,逐渐成为工业控制网络建设的一种新思路。而WiFi作为以太网的扩展,主要应用于搭建无线局域网。它具有功耗高、成本低、传输速率快、安全性低等特点。
本设计中,Android客户端使用无线WiFi网络通过TCP/IP协议与控制主机服务端连接,从而实现人机交互。示教软件作为Android系统的应用软件层,通过Java语言进行编程,而TCP通信的客户端是由Java语言提供封装的套接字Socket类来实现,Socket包括还IP地址、端口号,程序员可方便地访问TCP/IP协议[7]。
控制主机的TCP服务器端与示教器的 TCP客户端的通信流程如图7所示。控制主机作为服务器,连接时服务器进入监听模式,等待来自客户端的连接请求,当远端IP地址和端口号正确时可连接成功。Android 手机客户端接入无线WiFi网络后,通过Socket编程接收和发送数据,将其接收到的机器人当前状态连续地显示在客户端上 。
图7 TCP通信流程
3.1数据传输实验测试
先借助串口助手将WiFi模块设置为服务器,然后用户在示教器客户端输入服务端IP和端口号,点击【连接】请求,若符合服务器的内部参数,即可与服务器建立Socket连接,接收框中显示“OK,CONNECT”,效果如图8所示。在客户端发送数据,会在服务器中显示接收到的数据。通过实验测试,示教器客户端与服务器的通信连接成功,对数据进行准确快速的发送。这时将设置好的WiFi模块接入控制主机的通信接口,实现Android客户端和码垛机器人的人机交互和控制。控制主机STM32芯片上的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现场控制测试
手机先连接上WiFi,开启客户端后,点击菜单上的【连接设备】,自动连接控制板上WiFi模块的IP地址,地址连接成功后指示灯亮,机器人当前状态就会显示回零点的坐标和角度。点击每个控制按钮都会通过控制器发送指令给机器人使其运动,并通过控制器将机器人当前坐标和旋转的角度反馈给客户端。
经测试,客户端的每条指令可下发给控制主机,控制的灵活性、连续性均良好,该系统达到预期目标。只要在WiFi覆盖的区域内,码垛机器人都能够迅速对用户的控制做出反馈,完成相应动作。
本设计采用STM32作为主控制器,以Android为平台设计了示教器,两者通过无线WiFi模块进行通信,构成整个控制系统,克服了传统码垛机器人控制系统的扩展性差、灵活性差、成本高等缺点。还可以将该控制系统推广应用到课堂教学,该系统使用弱电控制、安全系数高、成本低,根据需要学生可自主设计控制系统。通过实样机的运行测试,该系统可完成60 m范围内的无线通信,实现无线人工遥控和自主运动。由于Android手机与码垛机器人的无线通信扩大了码垛机器人的功能,且该系统运行稳定、操控效果良好,具有实用价值及推广价值。
[1] 李晓刚,刘晋浩.码垛机器人的研究与应用现状,问题及对策[J].包裝工程,2011,32(3):96-102.
[2] 郭亚奎.基于ARM的嵌入式码垛机器人控制系统的研究与设计[D].南京:南京航空航天大学,2014.
[3] 陈玮,秦会斌,曹曙光,等.基于Android平台的智能家居系统设计[J].电子技术应用,2015,41(10):158-160.
[4] 于振中,蔡楷倜.基于STM32的机器人仿真示教器设计[J].微型机与应用,2016,35(23):38-41.
[5] 陈致远,朱叶承,周卓泉,等.一种基于STM32的智能家居控制系统[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的智能家居控制系统设计[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的桌面型码垛机器人控制系统设计[J].微型机与应用,2017,36(18):1-3,7.
江苏省2016年度普通高校研究生实践创新计划项目(SJZZ16_0219)
2017-03-22)
于振中(1980-),男,博士,副教授,主要研究方向:机电一体化。
徐静(1992-),女,硕士研究生,主要研究方向:电机与电器。