文献标识码:A
文章编号: 0258-7998(2014)10-0083-03
0 引言
机器人技术与无线传感技术被工业界和学术界公认为前沿性的科学技术。伴随着社会信息化程度不断深入,这两大技术将会在更大的范围内得到使用。本设计将无线传感技术的高感知能力及实时性与机器人良好的机动能力有效结合,从而大大增强了机器人的工作能力和使用范围。
本设计具有无线遥控、自动避障、无线测温以及无线测距4种工作模式,可以让机器人进入一些人类无法进入的特殊环境,在一些紧急情况下,操控者可以实时地监控环境中的重要指标,并驱动机器人完成一些相应的动作。常用的无线传感节点一般采用了处理器与RF模块集成的CC2xxx系列的SoC片上系统。该控制核心具有高集成度、低功耗及外围硬件器件少等优势,但在面对机器人高性能的控制需求和功能的扩展性上就显得有所不足了。所以本设计选用了MSP430单片机加CC1100射频收发芯片的组合设计方案。
1 系统总体设计
系统由遥控端和驱动执行端两个分系统组成,如图1所示。遥控端包含按键模块、MCU、液晶显示模块、无线数传模块及电源模块5部分。驱动执行端由无线数传模块、MCU、测温模块、驱动模块、三轴位移模块及执行机构5部分组成。
遥控端功能主要包括:(1)发送各种按键指令信号。主要有以下几种指令:受控模式、自动避障模式,无线测温、无线测距以及运动控制。(2)接收温度、距离数据信号,并通过液晶显示模块显示。
驱动执行端功能主要包括:(1)接收按键指令信号,并通过三轴位移传感模块跟踪位移状态,实时控制调整机器人运动状态;(2)通过测温/测距模块,采集温度和距离数据,经MCU处理后,通过无线数传模块发送出去。
2 系统硬件设计
整个设计分为两个分系统,结合硬件性能需求及简化设计开发难度,驱动执行端和遥控端分别选用了MSP430F5438A和AT89S52作为MCU,采用CC1100为无线数传模块的射频收发芯片。
2.1 MCU电路设计
MSP430F5438A是MSP430系列中一款超低功耗微控制器,运行性能高达 25 MIPS,拥有256 KB闪存、16 KB的RAM、4个USCI(包含I2C、SPI、UART及IrDA等通用串行接口)以及多通道12位高速ADC。原理框图如图2所示。
MCU采用了双时钟电路,其中25 MHz晶振提供了系统主时钟;32.768 kHz的实时钟晶体提供了微控制器在低功耗时所需时钟。为保障MCU工作稳定性,选用了TPS5430芯片管理MCU电路供电。考虑到后续功能拓展的便捷,将I2C、SPI、UART等通用串行通信接口单独设计出来,以减少外围模块的硬件设计难度。
2.2 无线数传模块设计
该模块主要负责接收各类指令及数据信号和无线发送由机器人所采集的温度和距离数据信号。本模块采用CC1100进行设计,其通信方式为半双工通信。CC1100数据传输率最高可达500 kb/s。CC1100与MSP430工作电压范围一致为1.8~3.6 V,其灵敏度为-110 dBm,在所有工作频率波段上,可编程输出功率为-30~10 dBm。
CC1100通过四线SPI总线接口SO(GDO1)、SI(GDO0)、SCLK、CSn与MCU电路 SPI接口进行通信。CC1100采用QLP封装,其外围元器件很少,设计采用了螺旋天线。CC1100内部结构图如图3所示。
2.3 测温模块设计
本模块选用了TCN75A可编程I2C总线温度传感器。该传感器测温范围为-55 ℃~+125 ℃,具有0.5 ℃~0.062 5 ℃可配置分辨率,能够通过编程设定告警温度、滞后条件等参数。其告警信号可直接作为温度事件中断标志信号。在测温模块中设计了相应的地址位选择电路(DEVICE-ID),通过跳线帽可以方便地对TCN75A 3个地址位引脚(A2,A1,A0)进行高低电平设定。同时,由于TCN75A芯片SDA和SCL均为开漏引脚,为保障通信的建立,还设计上拉电阻选择电路(PULL-UP)。
输入/输出接口SDA1、SCL1分别与MCU电路I2C接口相接,而ALERT(告警信号)直接与MCU的GPIO口相接。测温模块电路图如图4所示。
2.4 三轴位移模块设计
为保证机器人在复杂地形上运动状态的控制,还设计了三轴位移传感模块。通过加速度传感器采集机器人在X、Y、Z 3个方向上的加速位移量,更加全面获取机器人的运行状态,保证了控制的流畅性,提升了路况识别能力。
ADXL362内部包含了几个运动检测模式,通过软件设置运动状态门限阈值,当传感器检测到运动加速度超过设定阈值,即从INT1或INT2口输出指示信号。MCU可以直接以该信号作为中断标志位,实施机器人运动状态调整。三轴传感器输出采用了四线SPI总线接口,所以本模块与无线数传模块挂载到同一根SPI总线上,只需将/CS片选引脚连接到MCU另一个片选引脚上即可。三轴位移模块电路图如图5所示。
其他模块电路均采用了一些常见电路,限于篇幅,这里就不再赘述。
3 系统软件设计
根据系统功能需求,系统软件分为遥控端子程序和驱动控制端子程序,两个分系统程序匹配的关键是拥有统一的通信协议。系统设计了4种工作模式:遥控模式、避障模式、测温模式、测距模式,模式选择全部通过遥控端按键指令控制。
3.1 遥控端程序设计
遥控端程序初始化主要完成设置中断标志位、配置SPI总线、配置无线数传模块以及液晶屏初始化,然后进行按键轮询。若有按键按下,进入中断等待接收驱动执行端所发送的数据,并根据指令设置相应标志位。液晶屏显示子程序查询标志位的值,显示相应信息,然后清除标志位,并返回按键轮询。
3.2 驱动执行端程序设计
驱动端在系统初始化时需要关闭看门狗,设定系统主时钟,开启SPI总线以及配置无线数传模块。当接收到指令后,调用相应的子程序。当子程序运行完成后,再次开启中断接收指令及行判别,若保持原指令不变,则继续执行子程序。由于系统主时钟频率较高,所以指令轮询的延时可以忽略不计,基本不会影响机器人动作精准度。驱动执行端程序流程图如图6所示。
3.2.1 无线数传模块配置
CC1100通过SPI接口进行参数配置, SmartRF Studio7配置软件可以直观方便地完成接收/传输模式、收发地址、RF信道选择、数据率、调制方式以及64位传输FIFO数据缓冲等重要性能参数最优寄存器设定。该软件支持导出C、html等多种格式文件。本设计中直接调用了导出的C语言文件进行无线数传模块的初始化。无线数传模块配置为基准频率为434 MHz,数据率为250 K波特,2FSK调制以及可变长度数据包格式。另外还应注意主从无线模块的地址匹配问题,并需保证两个模块间目的地地址和源地址一致才能保证通信。
3.2.2 三轴位移模块设计
将X、Y、Z三轴分别定义为前进/后退方向、左/右转方向、垂直方向。当机器人处于匀速直线运动时,3个方向加速度接近于零。在机器人出现加速或减速,X轴方向会出现远大于其他两轴方向的测量值变化。同理,机器人进行左/右转运动时,Y轴方向会有较大的测量值。如果路面出现坡道,在Z轴方向上将会出现测量值的改变。
由于机器人在运动状态下,加速度值不断发生改变,固定阈值无法作为检测标准。因此,本设计采用了动态阈值算法。每采样30次更新一次三轴测试数据峰峰值,将平均值(Max+Min)/2作为“动态阈值”。当测量值超出阈值范围,实时调整电机驱动方式,保证机器人在复杂环境中运动稳定性。这种选择具有自适应性,并且足够快。
为保证加速度测试数的精准度,在设计中增加了数字滤波和线性移位寄存环节。数字滤波采用了等增益合并的算法。通过4个寄存器和一个求和单元,使得加速度数据更加平滑。线性移位寄存器包含了2个寄存单元:NEW寄存器和OLD寄存器。当新采样数据来时,NEW寄存器值直接移入OLD寄存器中。而新采样结果是否移入NEW寄存器中取决于:加速度变化是否大于预定义精度。若大于,新采样结果将移入NEW寄存器中;否则NEW寄存器保持不变。线性移位寄存器可以消除高频噪声,避免了测试结果的频繁扰动。以机器人上坡运动为例,程序流程图如图7所示。]
4 结论
经过实测,本机器人具有运动稳定性高、通信距离远、功耗低等优点。最重要的是,系统具有较好的扩展性,可以方便地增加各类型接口的外围硬件模块,实现多种拓展功能。
本设计的部分研究成果用于了学生的毕业设计。该毕业设计荣获2011年江苏省优秀毕业设计二等奖。
参考文献
[1] 洪利,章扬,李世宝.MSP430单片机原理与应用实例详解[M].北京:北京航天航空大学出版社,2010:35-38.
[2] 冒晓莉,杨博,杨静秋.基于MSP430单片机的节能型数字调频发射机[J].电子技术应用,2013,39(5):138-140.
[3] 严冬,黄聃,王平.一种480 MHz无线数传模块的设计[J].电子技术应用,2012,38(6):41-44.
[4] 胡小玲,徐科军,方敏.一种超低功耗单片机MSP430F6736实验装置研制[J].实验室研究与探索,2014,33(1):69-72.
[5] 申海义,吴宝元,任阳.ADXL203型双轴加速计在机器人足部感知系统中的应用[J].电子技术应用,2012,38(5):59-61.
[6] 王方.基于多移动机器人的无线传感器网络系统[D].太原:太原理工大学,2013.