1 设计方案
方案采用STC12C5A60S2单片机作为主控制器,步进电机作为动力,人体红外传感器避障,TCRT5000传感器寻迹,语音芯片则用来播报机器人服务过程中的日常用语。系统设计了一个电源开关、一个模式开关、8个餐桌按键盘、一个返回键。系统由模式开关来选择“送餐”或是“收盘”,并依靠寻找黑线来实行餐桌定位,使用红外探头完成寻轨。机器人正前方安装有人体红外传感器,用来检测前方人体障碍物。中间设计成垃圾回收桶,可回收垃圾。左侧设有小盘可放擦手毛巾,托盘上安装压力传感器,当送餐到客人面前,语音提示客人点餐已到,客人取走点餐,压力传感器检测到没有压力之后,语音提示并原路返回,若是“收盘模式”,则按返回键返回。系统硬件框图如图1所示。
2 硬件设计
2.1 主控芯片
主控芯片使用STC12C5A60S2单片机,该单片机是宏晶科技生产的单机器周期单片机,具有高速、低功耗、超强抗干扰的特点,指令代码完全兼容传统8051,但速度要快8~12倍、内部集成MAX810专用复位电路、2路PWM。
2.2 红外循迹探头传感器
循迹探头采用TCRT5000传感器,其灵敏度高,一只发送、一只接收。TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来,或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。具体实现电路如图2所示。
红外探头一共有8个,分布如图3所示。其中探头3、4、6、7为主探头,用来寻轨;探头5、8为辅助探头,用来修正轨道;探头1、2为计数探头,用来计数餐桌号。底盘灰色部分为轨道。
系统设定8个餐桌,也可能扩展多个,位置布局如图4所示。
2.3 步进电机的选用
步进电机选用美蓓亚42步进电机,相电阻为2 Ω,步距角为1.8°。6 V试电,短路电流达到了1.9 A,静力矩约2.8 kg。采用LMD18200T驱动器,速度适合中等速度偏向高速,而且力量不错,发热也不大。
LMD18200T是NS推出的专用于直流电动机驱动的H桥组件,应用电路原理图如图5所示,内部集成了4个DM0S管,组成一个标准的H型驱动桥。通过充电泵电路为上桥臂的2个开关管提供栅极控制电压,充电泵电路由一个300 kHz左右的工作频率控制。可在引脚1、11外接电容形成第二个充电泵电路,外接电容越大,向开关管栅极输入的电容充电速度越快,电压上升的时间越短,工作频率越高。
引脚2、10接直流电机电枢,正转时电流的方向从引脚2到引脚10;反转时电流的方向从引脚10到引脚2。电流检测输出引脚8可以接一个对地电阻,通过电阻来输出过流情况。内部保护电路设置的过电流阈值为10 A,当超过该值时会自动封锁输出,并周期性地自动恢复输出。如果过电流持续时间较长,过热保护将关闭整个输出。
2.4 压力传感器的选用
电阻应变式压力传感器能够承受5 kg的重量,满足一份点餐的重量。传感器配合HX711AD模块使用,HX711AD模块具有两路模拟通道输入,内部集成128倍增益可编程放大器,是一款高精度、低成本的采样前端模块。图6为压力传感器安装方式。
与同类型芯片相比,HX711AD芯片集成了包括稳压电源、片内时钟振荡器等同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由引脚驱动,无需对芯片内部的寄存器编程。
如图7所示,输入电路配置为提供桥压的电桥式传感器模式,通过HX711AD模块的数字量送到MCU,当送餐到目的地后,客人端走托盘,系统检测压力传感器压力为0,触发CPU 10 s倒计时,倒计时结束后机器人播音“拜拜”,并原路返回。
2.5 人体红外检测模块
选用迷你型人体红外检测模块,主要检测送餐机器人正前方有无人员(障碍物),调整感应距离为0.5 m,若前方0.5 m处检测到人体红外光,则触发模块信号送到MCU处理,MCU发送指令操控送餐机器人停止前行,并触发语音芯片发出“您好,服务员正在送餐中,请让一下路”的提示。
2.6 语音播报IC的选用
语音播报使用MXH040语音芯片。MXH040语音芯片可编程一次性烧录语音,语音长度可达40 s(采样率为6kHz),最多可存放700个语音文件,最多可加载63段地址的语音,具有按键控制模式、一线串口控制模式以及两线串口控制模式等。在本设计中主要采用按键控制模式,并通过单片机P2 I/O口来触发语音播报。系统设计使用以下几个语句:“您好,服务员正在送餐中。请让一下路”,“您好,您的点餐已到,请慢慢享用”,“拜拜”,“您好,送餐已经回来,请准备下一次送餐”。硬件电路如图8所示。
2. 7 3×3按键矩阵
按键矩阵采用3x 3矩阵方式,通过两个三输入的与非门单片机中断口连接,电路原理图如图9所示。
3 软件设计
启动后,选择送餐或收盘模式,系统进入按键扫描状态,当服务员放好点餐端盘后,按下目的地餐桌号,系统若检测到奇数餐桌号,则启动奇数餐桌号计数器并禁止偶数餐桌号计数器;若检测到偶数餐桌号,则启动偶数餐桌号计数器并禁止偶餐桌号计数器,并把目的地餐桌号赋值给变量count,机器人开始寻轨行走。当探头1或2检测到分支路口时,计数器加1,直至计数器加至变量count的值,机器人才向相应的方向转弯行走。当探头3或4同时检测到信号时,机器人停止行走,若是“送餐”模式,则客人取走端盘,系统等待10 s后原路返回。若是收盘模式,则按返回键,机器人原路返回。软件流程图如图10所示。
3.1 红外寻轨
3、4、6、7为红外寻轨探头,探头5、8用来修正轨道。红外反射外传感器端口定义与寻轨程序设计如下:
3.2 步进电机驱动
步进电机作为机器人的动力,主要通过单片机产生的PWM脉冲来调速。LMD18200逻辑真值表如表1所列。
因为使用4个驱动步进电机,需要两个LMD18200模块,步进电机使能端位定义、左转、右转、前进、停止子程序设计略——编者注。
3.3 按键扫描程序设计
按键使用3×3矩阵中断扫描,S1~S8分别对应1号~8号餐桌的路径,S9为备用返回键。单片机的P1口用于键盘的连接,键盘中的行、列线分别连接到按键开关的两端,通过键盘处理程序确定有无按键按下,判断哪一个按键按下,还要消除按键在闭合或断开时的抖动。两个并行口中,一个使按键逐行动态接地,另一个并行口输入按键状态,以此确定闭合键的位置。程序设计如下:
3.4 奇偶餐桌号计数
使用STC12C5A60S2单片机里的两个计数器:T0、T1。其中,T0用来计奇号数餐桌号,T1用来计偶号数餐桌号。当按下奇号数餐桌号时,T0开始工作,T1禁止计数。当送餐机器人走到1号餐桌分支路口时,TCRT5000传感器的红外发射二极管不断发射红外线,并被黑线轨迹吸收,发射出的红外线没有被反射回来,这时计数器自动加1,直至加到与工作人员按下的按键号count值一致时,送餐机器人才向奇数餐桌侧转弯,并前行到该号餐桌。
当红外探头3、4检测到有信号时,小车停止。同样,当按下偶数餐桌号时,T1开始工作,T0禁止计数。程序设计如下:
结语
根据程序测试,选择模式后,按下按键,寻轨式语音播报送餐机器人能够沿着黑线行走,遇到前方有人时,机器人停止行走并语音提示前方行人让路;遇到奇偶餐桌号时,可自动识别并计数,直至行走到按键按下的餐桌号;达到目的地后,机器人停止,语音提示客人点餐已到,待客人拿走端盘,托盘压力传感器压力为0,触发主控器10 s倒计时,倒计时结束后机器人原路返回,若是“收盘模式”,则按返回键机器人原路返回。通过测试,寻轨式语音播报送餐机器人的设计实现了预期的功能。