您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

ARM2210的智能移动呆板大家机界面计划

发布日期:2011-04-21

   择要: 移动呆板大家机界面为移动呆板人的活动控制提供直观的路径图形、活动速率和角度、停滞物信息等。通过ARM2210的串口UART0吸取中间处理惩罚器PC104的活动信息,利用东芝公司的液晶控制器T6963C驱动STN液晶屏YL240128A,以及ZLG/GUI软件包提供的根本画图和菜单操纵函数计划了基于嵌入式体系ARM2210开辟板的移动呆板大家机界面,并利用ARM2210的I2C器件ZLG7290提供的I2C接口成果和键盘停止信号实现菜单选择,具有很强的实用性。

   小序

    嵌入式体系以其高性能、低功耗、低本钱的好处,已经在很大程度上变化了人们的生存。如,MP3播放器、智能手机、数码相机产品等已经渗入渗出人们生存的各个方面。随着液晶表现技能的不绝进步,以及图形用户界面GUI (Graphical User Interface)技能的遍及应用,人机界面也越来越友爱。它能为移动呆板人的活动控制提供直观的路径图形、数据参数等。本文先容了一种以嵌入衰落处理惩罚器LPC2210为底子,应用ZLG/GUI软件包计划移动呆板大家机界面的要领。

    我们计划开辟的智能移动呆板人是一个以PC104嵌入衰落机为中间处理惩罚器, TMS320F2812为活动控制器,超声波传感器作为避障的聚集环境感知、动态决定计划与筹划、举动控制与实行等多种成果于一体的综合体系,重要包括活动体系、电子信息体系和传感体系。它通过CCD摄像机和图像征求卡得到视频信息,并通过超声波传感器组测得火线停滞物间隔实现避障。移动呆板人的人机界面重要向用户展示移动呆板人的活动信息,如当前的活动速率、与火线停滞物的间隔以及行驶的轨迹。


图1 ARM2210的体系框图

ARM221O的根本构成

    ARM221O以PHILIPS公司ARM7TDMI-S微控制器LPC2210为内核,以支持及时仿真和嵌入式跟踪的嵌入式体系。LPC2210的CPU频率最大为60MHz,并且扩展了丰富的外围配置接口,使体系稳固性大大进步,开辟也更大略。图1是ARM2210的体系框图。

    由于该体系包括了RS232转换电路,可通过UART0与上位机PC104举行数据传输,同时还包括东芝公司的点阵式液晶控制器T6963C,扩展了液晶接口,同时提供了LED数码管表现和16个按键输入,因此开辟人机界面非常方便。
 
人机界面的硬件计划

数据传输
    PC104的串行口可以作为标准PC的COMl通讯口或扩展为控制外观串行口,用于键盘输入和表现终端输出或谋略机之间的串行输入/输出口。

    ARM2210的UART0具有16字节吸取和发送FIFO;寄存器位置切合'550产业标准;吸取器FIFO触发点可为1, 4, 8和14字节 ;内置波特率产生器 。

    移动呆板人的活动信息通过TI公司DSP控制器TMS320F2812以及超声波传感器等发送至嵌入衰落机PC104,再颠末PC104作信息融合后,通过串口传给ARM2210并由液晶屏表现。

液晶表现及菜单选择
    东芝公司的液晶控制器T6963C具有独特的硬件初始化设置成果,最大驱动点阵液晶为单色640*128(单屏),支持图形和文本单独表现和殽杂表现,并具有字符产生器,能餍足对移动呆板大家机界面的表现请求。图2为内置T6963C的240*128位图形液晶模块原理图。

    别的, ARM2210体系中配备了I2C器件ZLG7290以及16个按键。ZLG7290提供了I2C串行接口和按键停止信号,方便与处理惩罚器连接;并且能驱动8位共阴数码管或64只独立的LED和64个按键,8个成果键可检测任一键的连击次数。

    本体系选用点像素为240*128点、黄绿表现的STN液晶屏YL240128A作为人机界面表现屏;用ARM2210体系16个按键中的S11、S12、S13作为输入部分,实现对人机界面的选择操纵。
 
人机界面的软件计划

    移动呆板大家机界面的关键是菜单操纵,以及图形和数据的及时表现。GUI是用于进步人机交互友爱性、易操纵性的谋略机步伐,它是创建在谋略机图形学底子上的产品。人们不再必要去世记硬背大量的下令,而是通过窗口、菜单方便地举行操纵。由于嵌入式体系的资源有限,以是对GUI 的请求是可裁剪的,高速率的。ZLG/GUI 是由周建功公司开辟的,占用资源小、利用方便的嵌入式体系浅显的图形用户界面软件。ZLG/GUI 提供了最根本的画点、线、圆形、圆弧、椭圆形、矩形、正方形、添补等成果,较高级的接口成果有ASCII 表现、汉字表现、图标表现、窗口、菜单等,支持单色、灰度、伪彩、真彩等图形表现配置。因此,利用ZLG/GUI软件包可以或许餍足对移动呆板大家机界面的计划请求。


图2 内置T6963C的240*128点阵液晶模块原理图

数据传输
    吸取上位机PC104发送的数据时,使能UART0的FIFO举行数据发送/吸取,吸取采取停止处理惩罚方法。此中,UART0的串口模式和数据布局设置为:通讯波特率9600,8位数据位,1位克制位,无奇偶校验。其重要步伐如下:
/*定义串口模式及数据布局*/
typedef  struct  Uart0Mode
{  uint8 datb;         // 字长度
uint8 stpb;         // 克制位
 uint8 parity;     // 奇偶校验位
}  UART0MODE;
/*初始化串口*/
uart0_set.datb= 8;                 // 8位数据位
uart0_set.stpb = 1;                 // 1位克制位
uart0_set.parity = 0;               // 无奇偶校验UART0_Ini(9600, uart0_set);  // 初始化串口模式
/*串口UART0吸取停止*/
void   __irq IRQ_UART0(void)
{  uint8  i;
  if( 0x04==(U0IIR&0x0F) ) rcv_new = 1; // 置新数据标记
   for(i=0; i<8; i++)
   { rcv_buf[i] = U0RBR; // 读FIFO数据,打扫停止标记}
   VICVectAddr = 0x00;            // 停止处理惩罚结束
}       

窗口表现
    人机界面重要是通过图标菜单实现移动呆板人活动参数的表现,以及活动轨迹的相干操纵,如"打开"、"停息"、"封闭"等。因此,起首定义一个窗口的数据布局,并设置窗口的肇始坐标、大小、标题等相干参数;然后调用GUI_WindowsDraw()输出表现窗口
/* 设置主窗口并表现输出 */
mainwindows.x = 0;
mainwindows.y = 0;
mainwindows.with = 240;
mainwindows.hight = 128;
mainwindows.title = (uint8 *) "Mobile Robot Interface";
mainwindows.state = NULL;
GUI_WindowsDraw(&mainwindows); // 绘制主窗口

    图标菜单也必要定义相干的数据布局,此中图标数据和笔墨表现可以通过字模软件转化为数据。如映射"打开"图标转化为数据:
uint8 const menuico1[]={
  0x00,0x70,0x00,0x1C,0x00,0x12,0x1C,0x1A,
  0x17,0x0A,0x21,0xF1,0x20,0x1A,0x4F,0xFE,
  0x58,0x02,0x50,0x02,0x60,0x06,0x60,0x04,
  0x60,0x04,0x40,0x08,0x7F,0xF8,0x00,0x00,
};   /*;图标"打开";宽×高(像素) : 16×16*/

    然后,将每一个图标菜单项的表现坐标地点、图标的数据指针、映射的办事函数等举行设置后,即可调用GUI_MenuIcoDraw()实现表现输出。
mainmenu[0].icodat = (uint8 *) menuico1;
mainmenu[0].title = (uint8 *) "open";
mainmenu[0].Function = (void(*)())Runopen;

    别的,主步伐必要先调用GUI_SetColor(1,0)函数来设置前风景及配风景。1表现点表现,0表现点灭。

图标菜单选择
    界面中还需实现对图标菜单的选择操纵。I2C器件ZLG7290提供了I2C接口成果和键盘停止信号。I2C总线是Philips推出的芯片间串行传输总线,它以2根连接实现了美满的全双工同步数据发送,可以方便的构成多机体系和外围器件扩展体系。I2C总线采取了器件地点的硬件设置要领,通过软件寻址完全克制了器件的片选线寻址要领,从而使硬件体系具有最大略而机动的扩展要领。I2C操纵模式分为主模式I2C和从模式I2C,分别映射LPC2210作为主机和从机。

    本文采取主模式I2C发送吸取数据,从而控制三个按键S11、S12、S13的扫描并检测其连击次数。步伐中先设置好默认菜单,再调用函数ZLG7290_GetKey()读取被按下的键值。ZLG7290_GetKey()函数通过调用IRcvStr (ZLG7290,1,&rece,1),直接读取器件ZLG7290上的按键值。若S11被按下,表现指向上一个图标菜单;若S12被按下,表现选择当前的图标成果;若S13被按下,表现指向下一个图标菜单。
key = ZLG7290_GetKey();
if(key==KEY_OK) break; // 点击OK 键选择
if(key==KEY_NEXT)
{ mainmenu[select].state = 0; // 取消上一选择
GUI_MenuIcoDraw(&mainmenu [select]);
select++; // 指向下一菜单
if(select>2) select=0;
mainmenu[select].state = 1;
GUI_MenuIcoDraw(&mainmenu [select]);
}
if(key==KEY_BACK)
{ mainmenu[select].state = 0; // 取消上一选择
GUI_MenuIcoDraw(&mainmenu [select]);
if(select==0) select=2;
else select--; // 指向下一菜单
mainmenu[select].state = 1;
GUI_MenuIcoDraw(&mainmenu [select]);

移动呆板人利用轨迹及相干参数表现
    为了能及时更新表现数据及利用轨迹,PC104将移动呆板人的速率,行驶方向,转角等信息转化为液晶屏上的坐标信息,并调用根本画图函数GUI_Line(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color),画出当前行驶轨迹;同时,将新的速率值及与火线停滞物的间隔值更新到相应位置。

人机界面表现结果
    图3为人机界面实现结果图,整个表现窗口大小为240*128;图标菜单大小为16*16,共有六个图标;用户可以根据本身必要添加图标及映射成果。移动呆板人行驶轨迹表现窗口大小为160*100;其他活动参数表现窗口大小为80*100,可以表现当前的速率、停滞物的间隔和呆板人旋转角度。图中小车位置表现轨迹的出发点,左下角有坐标表现和比例尺1:500。


图3 人机界面实现结果图

结语

    随着嵌入式体系应用的飞速生长,人机交互体系的开辟将越发遍及。本文叙述的基于ARM2210嵌入式体系的移动呆板大家机界面的计划要领,这种要领计划大略,本钱低,使操纵者与呆板人的交互越发友爱。

参考文献:
1.  周建功等,ARM与嵌入式体系底子教程,广州周建功单片机生长有限公司,2004.11
2.  周建功, ARM微控制器底子与实战,北京航天航空大学出版社,2003
3.  周建功等, ARM嵌入式体系实行教程,北京航天航空大学出版社,2004.11