智能炒菜机器人中的电机控制系统设计
2015-10-29黄建杰纪金灿万伟锋许锦标广东工业大学广东广州510000
黄建杰 纪金灿 万伟锋 许锦标(广东工业大学,广东广州 510000)
智能炒菜机器人中的电机控制系统设计
黄建杰纪金灿万伟锋许锦标
(广东工业大学,广东广州510000)
针对智能炒菜机器人中直流电机的正反转控制及速度调节,提出可行方案;并基于绝对值编码器,设计电机的位置检测系统。炒菜机器人的下位机执行机构主要分为火候控制和动作控制两个模块,动作由直流电机实现,本文主要介绍炒菜机器人的电机控制模块,分动作控制与位置检测两部分。
智能炒菜机器人直流电机绝对值编码器
图1 电机正反转控制电路
图2 基于L298N的电机正反转控制电路
本项目中的智能炒菜机器人是一台可编程控的中式菜肴烹饪机器,能够支持vmmda1.0通用菜谱指令。用户可以直接调用机器内部数据库中存储的大量中式菜肴菜谱程序,也可以通过网络接收外部的菜谱程序,还可以根据喜好自行编写和修改菜谱程序。炒菜机器人CPU对菜谱程序进行解读,并控制执行机构作出响应,使炒菜机器人具备了自动加热、下料、翻炒、调味、装盘、出菜、洗锅等功能。
1 电机动作控制方案
图3 编码器输出电路
表1 L298N控制方式及直流电机状态表
表2 光洋TRD-NA1024NW绝对值编码器接线表
炒菜机器人在使用过程中的主要机械动作有两个:一是各部件的运动及复位,这涉及到电机的正反转控制;二是不同的菜式翻炒的频率不同,这涉及到电机速度的调节。
1.1电机正反转控制方案
直流电机一般有两个端口,当一个端口接工作电压另一个端口接地时,电机正转,反之则电机反转。可通过图1 所示电路来实现对电机正反转的控制。
如图1,当Input1输入高电平,Iuput2输入低电平时,光电耦合开关U1闭合,则三极管Q1截止,Q3导通,电机A端接地;U2断开,Q2导通,Q4截止,电机B端接工作电压。因此电机反转。当Input1输入低电平,Iuput2输入高电平时,U1断开,则三极管Q1导通,Q3截止,电机A端接工作电压;U2闭合,Q2截止,Q4导通,电机B端接地。因此电机正转。
还可以使用电机驱动芯片来控制电机的正反转,比如ST公司生产的L298N。图2 是基于L298N的电机正反转控制电路。
L298N可控制两台直流电机,其中IN1、IN2、OUT1、OU2、ENA为第一组引脚,IN3、IN4、OUT3、OU4、ENB为第二组引脚。控制方式及直流电机的状态对应如表1 所示。
1.2电机速度调节方案
直流电机的速度调节可采用由单片机产生的脉冲宽度调制(PWM)信号。在图1 的方案中,Input1和Input2各接一个PWM信号源,分别为PWM1和PWM2。若要电机正转,则PWM1开启,PWM2设为最小值(或将其关闭,操作引脚为低电平),由PWM1来对电机调速。若要电机反转,则PWM1设为最小值(或将其关闭,操作引脚为低电平),PWM2开启,由PWM2来对电机调速。在图2 的方案中,ENA和ENB可分别连接两个PWM信号源,控制两台直流电机。针对炒菜机器人中所使用的PIC16系列单片机,PWM模块的设置程序如下:
void PWM1_Init()
{
TRISC2=0; //脉宽调制输出引脚,设置为输出。PR2=0xFF; //脉宽调制波形的周期。
CCPRIL=0x7F; //脉宽调制波形的占空比。
CCP1CON=0x3C; //CCP1模块工作在PWM模式,占空因数低两位为11。
T2CON=0x04; //打开TMR2,且前后分频值为1:1,同时开始输出PWM。
CCP1IE=0; //关中断。}
2 电机位置检测方案
在智能炒菜机器人的控制系统中,各部件会响应上位机发来的指令,做出翻转、摆动、平移等动作。每一个动作的幅度都是有具体要求的,同时也应该保证机器安全运行,因此,需要引入电机位置检测系统。
2.1绝对值编码器
电机的位置可通过旋转编码器来检测,本项目中采用了光洋公司生产的1024线绝对值光电编码器,型号为TRD-NA1024NW。其引脚接线要求如表2所示。
本型号编码器有10根输出引脚,可向单片机传送一组十位格雷码。电机的轴承与编码器的轴承按一定标准通过齿轮连接,因此,炒菜机器人每一部件的动作幅度都可以被1024等分,每一刻度都对应一个唯一的十位格雷码,上位机可通过这个格雷码来确定电机的位置。
2.2格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码。在实际电路中,多位状态的变化不可能绝对同时发生,容易出现读数错误,因此绝对值编码器要采用格雷码。上位机接收到格雷码后,要将其转换为二进制数,转换公式为:Bi=Gi⊕Bi+1,(n-1≥i≥0)
B为二进制数,G为格雷码。转换公式含义为,从格雷码的左边第二位Gn-1起,将每位Gi与其左边一位Gi+1解码后的值Bi+1异或,作为该位解码后的值Bi(取初始最高位Bn为0)。因此,可编写转换程序如下:
unsigned int GrayToBinary(unsigned int g)
{
unsigned int b;
while(g=g>>1)
b=b^g;
return b;
}
2.3输出电路
本型号编码器的输出形式为集电极开路输出,直接连接单片机引脚时输出电平不确定,因此必须接5V电源,且输出线到5V电源之间接一个1K~4.7K的上拉电阻,如图3 所示。
3 结语
智能炒菜机器人在运行过程中需要作出下料、翻炒、调味、装盘、出菜、洗锅等动作,这些动作的实现都离不开电机的控制与检测。本文中针对直流电机的控制与调速提出了两个可行的方案,也提出了一个基于绝对值光电编码器的电机位置检测方案。
[1]许锦标,何光.可编程控智能炒菜机:中国,CN201310064095.9[P].2013-6-5.
[2]庹朝永.基于单片机的直流电机PWM调速系统设计与开发[J].煤炭技术,2011(6):62-63.
[3]张红娟,李维.基于PIC单片机的直流电机PWM调速系统[J].机电工程,2005(2):10-12.
[4]韩军,周镜平.基于PIC单片机的直流电机控制器研究[J].制造业自动化,2011(2):147-149.
[5]冯友谊,程军.绝对式编码器编码码制的设计[J].山西电子技术,2008(1):43-44.
[6]李君成.格雷码(Gray)和二进制码的快速转换方法[J].安徽广播电视大学学报,2001(3):85-87.
positive control and speed regulation for DC motor intelligent cooking robot, and put forward feasible scheme; and based on the absolute value encoder, position detection system design of the motor. The lower position machine cooking robot actuator mainly consists of a fire control and motion control of two modules, the realization of the action by the DC motor, this paper mainly introduces the motor control module cooking robot, is divided into two parts in motor control and position detection.
intelligent cooking robot DC motor absolute encoder