移动机器人手持无线触控终端系统设计
2014-02-14李红波权宏伟李万兵
李红波 权宏伟 李万兵
(西京学院机电工程系,西安,710123)
在智能车和移动机器人控制中,移动控制终端是监视和控制机器人运动的重要组成部分,通过对机器人的实时监控,具有获取运动状态、记录传感器数据、查看参数变化趋势和处理报警等功能。
通常,移动控制终端主要由移动运算平台、无线收发模块和上位机监控软件组成,一般有三种方案可以选取:一是个人电脑(PC)或可编程控制器(PLC)、无线收发器和上位机软件[1-3];二是智能手机、无线收发器和手机端软件[4-5];三是嵌入式微控制器(MCU)、无线收发器和嵌入式软件[6-7]。第一种方案,虽然PC 或PLC 有丰富的扩展接口,但是其体积较大,设备重,不利于移动控制应用。第二种方案,智能手机虽然手持方便,触摸灵活,但是不具备扩展外设的能力,限制了应用。第三种方案,MCU 有多个外设接口,可连接多个外设和传感器,系统扩展灵活,可根据系统功能需要自行设计。
相比之下,第三种方案较优,它融合了前两种方案的优点,把无线技术和触摸技术结合在一起,在无线触控领域中广泛应用。利用触摸屏技术,用户只要用手指轻触显示屏上的图文就能实现对机器人的操作,这种全新交互设备使人机交互控制更为直截了当,摆脱了对键盘鼠标的依赖,可以得心应手控制移动设备[8]。同时,利用2.4GHz高速无线收发器终端可以方便地进行无线数据传输,为智能车和移动机器人控制需要提供了保证[9]。
1 硬件设计
该终端硬件主要包括ATmega64A 单片机、高速无线收发器nRF24L01+、LCD 触摸屏、字库芯片GT20L16S1Y和SD 存储卡等。系统的硬件结构框图如图1 所示,其核心部分为ATmega64A 单片机。
图1 系统硬件结构框图
1.1 ATmega64A 单片机和GT20L16S1Y 字库芯片
本系统采用Atmel 公司的ATmega64A 嵌入式微处理器,具有高性能、低功耗的特点,大多数指令执行时间为单个时钟周期,工作于16MHz 时性能高达16MIPS,具有8 个32 位通用目的寄存器,只需2 个时钟周期的乘法器,64KB 片上Flash ROM,2KB EEPROM,4KB SRAM,2 个USART,1 个可倍速的SPI 接口(工作于16MHz 时,SCK时钟可达8MHz),1 个IIC 接口,具有看门狗功能的定时器等。其资源丰富,性能优异,满足手持无线应用系统的设计。
GT20L16S1Y 字库芯片是集通数码科技公司的一款内含15×16 点阵的标准汉字库芯片,支持GB2312 国标简体汉字(含有国家信标委合法授权),共收录了6763 个汉字、6 套ASCII 字符(5×7 点阵~8×16 点阵)。排列格式为竖置横排,用户通过字符内码,利用芯片提供的方法计算出字符点阵在芯片中的地址,并从该地址连续读出字符点阵信息。该芯片采用SPI 总线,接口速度可达30MHz。
1.2 LCD 触摸屏接口电路设计
LCD 触摸屏接口电路由触摸屏接口电路和LCD 接口电路组成,触摸屏接口电路如图2 所示,LCD 接口电路框图如图3 所示。触摸屏接口电路由芯片TSC2046 通过SPI总线与嵌入式微处理器相连,可实时采集触摸屏数据,解算和滤波[10]得到用户触摸行为及触摸坐标位置数据。LCD 接口电路通过8 位并行接口与嵌入式微处理器相连,由74HC245 驱动LCD 面板[11],用于图形图像绘制和界面显示。
图2 触摸屏接口电路图
图3 LCD 接口电路框图
1.3 字库芯片接口电路和SD 存储卡接口电路设计
针对ATmega64A 处理器片内Flash ROM 存储容量少的情况,本系统扩展了SD 存储卡接口电路和字库芯片接口电路,便于大容量数据存储和字符显示,其接口电路分别如图4 和图5 所示。
图4 SD 存储卡接口电路图
图5 字库芯片接口电路图
1.4 无线模块设计
无线模块采用目前应用广泛的Nordic 公司生产的单芯片射频收发器件nRF24L01+,其工作在2.4GHz 频段,数据传输率可达2Mbps,具有自动应答功能、自动重发功能和CRC 校验功能,125 个可选工作频道,频道切换时间很短,可用于调频。该模块采用SPI 接口,单片机5V电平转换成3.3V 电平与模块连接。无线收发器接口电路如图6 所示。
图6 无线收发器接口电路图
1.5 系统供电设计
本系统有两种供电形式,USB 供电和电池供电(6 ~9V)。单片机需要5V 供电,其余模块需要3.3V 供电,整个系统最大电流小于300mA,电源芯片选择AMS1117-5.0 提供5V 电源和选择AMS1117-3.3 提供3.3V 电源。
2 软件设计
本系统软件开发环境采用AVR Studio 和WinAVR,利用模块化思想构建系统软件部分,在硬件平台上移植了硬件驱动程序,编写了图形图像库、字符显示库、触摸按键库、无线数据处理库和人机交互界面程序。软件结构框图如图7 所示。
图7 软件结构框图
系统软件运行分为4 个步骤:
1)初始化单片机和硬件电路;
2)调用图形图像库建立图形窗口;
3)显示主界面;
4)等待用户按键操作,根据用户的选择执行对应的功能。
系统软件工作流程如图8 所示。
软件主程序代码:
int main(void)
图8 系统软件工作流程
图9 系统平台实物
{
Port_Init(); //端口初始化
Uart_Init(); //串口初始化
ILI9325_Initial(); //LCD 初始化
ClearScreen(Black);
SetfbRGB(Green,Black);
Touch_Init(); //触摸屏初始化
SD_Init(); //SD 卡初始化
SPI_GT20L16_Init(0); //字库初始化
get_first_data_from_ROM();
uart_puts ("GT20L16_Init High Speed OK! ");
Wireless_Init(); //无线模块初始化
Cleararea(13,13,147,226,Black);
CreateWindow(); //建立图形窗口
DisplayPanel(); //画主界面
Set_Linedis(2); //设置字符行列间距
Set_Columedis(0);
while(1) //////////////主循环//////////////////////////////
{
if(Key_Scan()==0)continue; //获取按键
RunProcess(key);
}
return 0;
}
3 系统测试与结果
本手持无线触控终端系统实物如图9 所示,其系统测试主要有两个方面:无线数据收发距离测试和触摸响应时间测试。系统工作时钟为12MHz 时,实验测试结果如下:
1)在空旷地,数据传输率在250kbps 和发射功率为0dBm 时,通信距离可达100m 左右。在屋内或2.4GHz 信号覆盖地区时,同样的速率和发射功率传输距离较小,通常在50m 左右。
2)通过200 次的触摸测试,最小触摸响应时间为8.2ms,最大响应时间为25.6ms,平均响应时间14.7ms。
实验数据证明,该系统具有通信可靠、触摸灵活和移动方便等特点,在实际应用中基本满足了智能车和移动机器人的控制需要。
[1] 尹强,曾艳红,高全杰,等.一种通用型移动机器人遥控终端的研究与设计[J].机械设计与制造,2012(4)∶168-170.
[2] 侯保民,冯健翔,杜芳,等.一种移动机器人遥操作接口系统的设计与实现[J].现代电子技术,2009(10)∶34-35.
[3] 苏云,潘丰,育应旺.基于组态王与PLC 的远程控制系统[J].工业仪表与自动化装置,2004(2)∶53-55.
[4] 江燕良.基于Android 智能终端的远程控制系统[J].电子技术应用,2012,38(8)∶136-139.
[5] 符强,任凤华.基于手机蓝牙的遥控小车的设计[J].现代计算机(专业版),2011(31)∶77-79.
[6] 蒋晓宁,黄怡皓,王喜萍.嵌入式统一型遥控器的设计与实现[J].计算机工程与设计,2011,32(1)∶125-128.
[7] 袁俊杰.基于ARM9 的嵌入式移动机器人远程控制的研究[D].天津.天津理工大学,2006.
[8] 王莹.触控技术市场动向[J].电子产品世界,2010(7)∶12-19.
[9] 刘靖,陈在平,李其林.基于nRF24L01 的无线数字传输系统[J].天津理工大学学报,2007,23(3)∶38-40.
[10] 宋学瑞,蔡子裕,段青青.触摸屏数据处理算法[J].计算机工程,2008,34(23)∶255-257.
[11] 吴琦.基于AVR 单片机的触摸屏人机界面系统设计与实现[J].电脑知识与技术,2013,9(23)∶5357-5359.