当前位置:首页 > 嵌入式 > 嵌入式硬件

引言

  嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,MP3播放器、智能手机、数码相机产品等已经渗入人们生活的各个方面。

随着液晶显示技术的不断进步,以及图形用户界面GUI (Graphical User Interface)技术的广泛应用,人机界面也越来越友好。它能为移动机器人的运动控制提供直观的路径图形、数据参数等。本文介绍了一种以嵌入式微处理器LPC2210为基础,应用ZLG/GUI软件包设计移动机器人人机界面的方法。

  我们设计开发的智能移动机器人是一个以PC104嵌入式微机为中心处理器,TMS320F2812为运动控制器,超声波传感器作为避障的集合环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统,主要包括运动系统、电子信息系统和传感系统。它通过CCD摄像机和图像采集卡获得视频信息,并通过超声波传感器组测得前方障碍物距离实现避障。移动机器人的人机界面主要向用户展示移动机器人的运动信息,如当前的运动速度、与前方障碍物的距离以及行驶的轨迹。

  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软件包能够满足对移动机器人人机界面的设计要求。

  数据传输

  接收上位机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。

  结语

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

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

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中国 上海,2025年9月11日——全球领先的智能传感和发射器解决方案供应商艾迈斯欧司朗(SIX:AMS)今日宣布,在第26届中国国际光电博览会(CIOE 2025)上发布了其最新的直接飞行时间(dToF)传感器TMF8...

关键字: 传感器 无人机 机器人

随着中国绿色发展不断深入,ESG(环境、社会、治理)已成为制造企业必须面对的议题。尤其在工业领域推进节能减碳、绿色转型的背景下,ESG不再只是合规要求,更是企业竞争力的关键。2025年初,欧盟供应链法案落地,中国出海制造...

关键字: 机器人 ESG 3C电子

2025年9月4日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 宣布与电子元器件制造商、连接器领域创新企业Molex合作推出全新互动电子书《The El...

关键字: 机器人 连接器 传感器

立体深度估计在机器人技术、AR/VR和工业检测中至关重要,它为诸如箱体拾取、自动导航和质量控制等任务提供了精确的3D感知。Teledyne IIS的Bumblebee X立体相机既具备高精度,又能够提供实时性能,能够在1...

关键字: 深度学习 AR 机器人

重庆2025年9月6日 /美通社/ -- iChongqing新闻报道:2025世界智能产业博览会于9月5日在重庆开幕,550余家企业参展,展示了从自动驾驶和人工智能(AI)座舱到扩展现实(XR)影视和机器人咖啡厅的30...

关键字: 人工智能 新能源汽车 AI 机器人

北京2025年9月5日 /美通社/ -- 9月4日,在北京市人民政府新闻办公室举行的"一把手发布•京华巡礼"系列主题新闻发布会上,北京经开区对外发布,北京经济技术开发区(也称"北京亦庄&qu...

关键字: 航天 大赛 机器人 网络游戏

二十余项改革全国全市推广,700余事项100%全程网办 北京2025年9月5日 /美通社/ -- 9月4日,在北京市人民政府新闻办公室举行的"一把手发布•京华巡礼"系列主题新闻发布会上,北京经开区对...

关键字: DIY 人工智能 加速器 机器人

芜湖2025年9月4日 /美通社/ -- 近日,工业和信息化部装备一司司长王卫明、人才交流中心主任李学林一行赴奇瑞墨甲机器人开展专题调研。调研聚焦具身智能机器人的技术发展、产业化进展与场景应用落地。奇瑞汽车副总裁、墨甲机...

关键字: 奇瑞 机器人 工信部 智能机器人

Arm Neoverse V3AE 凭借卓越的计算性能、可扩展性与安全性,为由 NVIDIA DRIVE AGX Thor 和 Jetson Thor 驱动的下一代车辆和机器人赋能。

关键字: 机器人 智能汽车 AI
关闭