基于ARM2210的智能移动机器人人机界面设计 - 学院 - CHINAUI.com 优艾网 - 中国人机界面设计门户网站
您的位置:首页 >> 学院 >> 方法理论 >> 基于ARM2210的智能移动机器人人机界面设计
基于ARM2210的智能移动机器人人机界面设计
来源:电子产品世界 作者:北京交通大学电子信息工程学院 发布时间:2008-03-26

  图标菜单选择

  界面中还需实现对图标菜单的选择操作。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。

  结语

  随着嵌入式系统应用的飞速发展,人机交互系统的开发将更加广泛。本文阐述的基于ARM2210嵌入式系统的移动机器人人机界面的设计方法,这种方法设计简单,成本低,使操作者与机器人的交互更加友好。■

  参考文献:
  
  1.  周立功等,ARM与嵌入式系统基础教程,广州周立功单片机发展有限公司,2004.11

  2.  周立功, ARM微控制器基础与实战,北京航天航空大学出版社,2003

  3.  周立功等, ARM嵌入式系统实验教程,北京航天航空大学出版社,2004.11

相关阅读
推荐文章
热点文章