1. 引言
工业机器人的技术水平和应用程度在一定程度上反映了一个国家工业自动化的水平。目前,工业机器人主要承担着焊接、喷涂、搬运以及堆垛等重复性并且劳动强度极大的工作,其工作方式一般采取示教再现的方式[1] 。
2. 总体方案设计
基于单片机的机械控制系统一般都要重新下载程序才能改变动作。这样的控制系统不利于不同客户多场合使用,本设计的特点是可现场编程、智能语音输入的控制方式。因此这个机械手臂控制系统更能适应复杂多变的环境。确定系统框图如下图1所示。
3. 机械设计
机械臂主要由底座支架、主轴承、上下轴承、米线开合器和搅拌器构成,分别由4个减速电机控制转向,其中两个电机分别是控制左右摆动和上下摆动,另外的两个电机是用来控制米线器的开合和米粉的搅拌。关节之间由齿轮轴承带动连接,设置了反馈形成闭环系统。本设计机械部分设计的模型结构如图2所示。
4. 电路设计方案
4.1. 控制核心单片机
STM32系列单片机是意法半导体(ST)公司生产的单片机,是ST公司利用ARM Cortex-M3内核专为要求高性能、低成本、低功耗的嵌入式应用而专门设计的。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。两个系列都内置32 K到128 K的闪存,不同的是SRAM的最大容量和外设接口的组合。增强型系列时钟频率达到72 MHz,是同类产品中性能最高的产品;基本型时钟频率为36 MHz。时钟频率72 MHz时,从闪存执行代码,STM32功耗36 mA,是32位市场上功耗最低的产品,相当于0.5 mA/MHz。相对于MSP430等16位单片机的产品来说,价格相当,性能却翻倍了。就内部硬件资源而言,STM32F103ZET6含有512 K闪存程序存储器、64 K的SRAM、112个IO端口、11个定时器。物美价廉因此被广泛应用,网上相关资料多、支持库函数和寄存器开发,常见的KEIL4 MDK开发环境相对熟悉。
4.2. 机械关节电机
直流减速电机就是齿轮减速电机,其内部含有齿轮减速箱和一个普通的直流电机。在比较高的减速比下,减速电机具有很强的力矩,减速电机具有噪声小,容易控制,工耗低的特点。通过这种齿轮箱可以调节转速和力矩,因此,广泛应用于钢铁、机械等行业。由于步进电机转速很快的时候,容易丢步,造成系统定位不准,步进电机一般用于精确计算场合,其价格高,一个步进电机最少需要四个控制IO接口,程序控制复杂,运动较慢。减速直流电机是一个合适的选择。
4.3. 电机驱动方式
电机的驱动方式有多种,常见的有继电器驱动和L298N双H桥的电机专用驱动芯片。其中,继电器是一个单刀双掷开关,两个继电器和一些元件可以构成一个“H桥”,实现电机正反转。但是,继电器在工作时需要消耗部分的电流,本设计需要控制4个电机,故需要8个继电器,因此,造成静态和动态功耗也很大。不利于使用电池供电。另一方面,当继电器工作起来时,产生“滴答滴答”的响声,对周围环境造成极大的影响。L298N不一样,其可以用来驱动继电器、线圈、直流电动机和步进电机等感性负载。芯片中的H桥可以提供2安培的电流,供电电压范围从2.5伏到48伏,芯片内部逻辑部分采用5伏供电,可以接受5伏TTL电平。
5. 系统软件设计
5.1. 消费者界面
当进入到消费者界面的时候,界面上显示余额、一两、二两、三两、四两的金额和退出按钮。这时
候可以使用语音和手动操作选择的米粉的两数。语音部分由集成模块做成,在语音模块里,由模块里的单片机对语音控制,所以,本设计将语音模块与STM32F103ZET6的通信设置成了IO口通信,引出3个IO口,所以输出量是0~7的数,语音模块还设置了两级输入指令模式,所以事先之前你得叫“阿姨”,然后再叫米粉的两数。这样,系统就可以识别人的语音。
消费者子程序流程图如图3所示。
5.2. 管理者界面
管理者的界面较为复杂,在主界面中,当点击红色区域时,即可进入管理者密码输入界面。这个时候,要求管理者输入登录密码,输入密码错误的话,进入不到管理机械臂的界面。当成功输入密码后,将进入到管理机械臂的界面,管理者可以使用“W”“U”上下的选择功能菜单,这样的设置保障了管理者的合法权利。在这个菜单有:编程模式,示教模式,价格修改,手动操作,密码修改,磁卡管理等功能。当管理者按下“K”时,将进入到对应功能。按下“T”时推出功能界面,回到管理者界面。程序流程图如图4所示。
5.3. 减速电机程序控制
本设计使用减速电机的基础上安装角度电位器的方法来控制机械臂的运转,由给定预定目标值,实际值,所以使用模糊控制的方式用来控制电机。利用模糊数学的基本思想和理论的控制方法。在传统的控制领域里,控制系统动态模式的精确与否是影响控制优劣的最主要关键,系统动态的信息越详细,则越能达到精确控制的目的[2] 。然而,对于复杂的系统,由于变量太多,往往难以正确的描述系统的动态,于是工程师便利用各种方法来简化系统动态,以达成控制的目的,但却不尽理想[3] 。换言之,传统的控制理论对于明确系统有强而有力的控制能力,但对于过于复杂或难以精确描述的系统,则显得无能为力了。因此便尝试着以模糊数学来处理这些控制问题。糊控制控制实质上是一种非线性控制,从属于智能控制的范畴[4] 。然而,一个设计模糊控制器的缺点是缺乏系统的分析和设计工具,即,模糊控制理论[5] 。模糊局部控制器还承担仿射形式和他们的偏见都解决了在一个数值的方式同时与收益[6] 。本设计的流程图如图5所示。

Figure 3. Flow chart of consumers UI program
图3. 消费者界面子程序流程图

Figure 5. Flow chart of fuzzy control algorithm for reduction motor
图5. 减速电机模糊控制算法流程图
电机A使用的具体模糊控制程序如下:
void PID_A(void)//A电机的控制函数
{EN_A1=EN_A0;//记录前面一次的数值
Tlc2543_ch2=TLC2543_cov(2);//AD采集第二个通道
EN_AM=YuD_A-Tlc2543_ch2;//计算当前偏差
EN_A0=absx(EN_AM);//对偏差取得绝对值
if(EN_A0>200)//偏差大于200
{ if(EN_AM<0) A_MO_Zhez; //判断方向 正转的速度太大则反转
else A_MO_Fanz; //反转的速度太大则正转
if(abs(EN_A1-EN_A0)>2)
{
if(EN_AM<0) A_MO_Fanz;//同向速度小则正转
else A_MO_Zhez;
TIM2->CCR4=300;//设置PWM的大小占空比 = CCRx/1000;
}
else
TIM2->CCR4=600;//
}
else
if(EN_A0>30)//偏差大于30靠近目标后速度降低
{ if(EN_AM<0) A_MO_Zhez;
else A_MO_Fanz;
if(abs(EN_A1-EN_A0)>1)
{ if(EN_AM<0) A_MO_Fanz;
else A_MO_Zhez;
TIM2->CCR4=250;
}
else
TIM2->CCR4=400;
}
else//偏差小于30
{ A_MO_Stop;//停止转
TIM2->CCR4=0;
}
}
程序中多处使用了if…else…的模糊控制算方法。事实证明,使用模糊控制的方法略降低了系统的精度,但提高了系统的稳定性。
5.4. 示教程序设计
示教再现是一种可重复再现通过示教编程存储起来的作业程序的机器人。本设计使用了AT24C16 EEPROM作为存储器,通过彩色触摸屏输入示教的程序代码,用存储器将用户代码保存起来。在示教模式下,第一步,判断是否有用户代码,如果有,则将用户代码读出来,没有则不执行动作;第二步,将代码解析成数字量以及对应的机械臂的转轴;第三步,将机械臂的角度赋给预定的角度;第四步,判断是否到达相应的位置,到了则转第一步,没到则等待。
6. 结论
本设计由STM32F103ZET6单片机作为控制系统的核心,3.2寸彩色触摸屏作为显示和操作,使用开关电源供电和电池供电,使用L298N芯片驱动电机。其他外围电路还使用到了射频卡,语音识别模块,外部储存器等。软件部分通过模糊控制算法控制电机到达预定的目标。本设计的机械臂将其做成示教机器人,做了多个界面显示,方便用户管理者可以编写机械臂代码,可以运行用户代码,以适应不同客户需求。
本设计人机交互良好,消费者和维修管理员都可以操作。管理者输入机械手登录密码,登陆成功后可以编写机械手臂的运行程序、示教演练、修改米粉的价钱、手动操作、修改登录密码、管理磁卡等功能。消费者可以通过语音输入或者手动的选择几两的米粉,刷卡后自动售卖相应的已经搅拌过的桂林米粉。本系统制作成本低,耗能低,容易操作,安全可靠、卫生等。
虽然本系统是针对桂林米粉售卖进行设计,但是只要修改示教程序,同样也可以应用于类似的售卖领域,如麻辣烫、云南米线等等。本设计在米粉售卖店和食品行业具有一定的创新价值和应用前景,具有较好的社会意义和实践意义。
基金项目
本文受国家级大学生创新创业计划项目“基于单片机的模糊控制智能机械手研究”支持。