ROBOT & AI

首页 | 新闻 | 产品 | 竞赛 | 学苑 | 读书 | 硬件 | 软件 | 智能 | 制作 | 项目 | 资源 | 论坛
 您的位置:首页 >> 制作 >> 创新设计 >> 正文
站内搜索:   

基于ARM2210的智能移动机器人人机界面设计

来源:   字体:[ ]  2007-04-19

关键词:人机界面 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表示点灭。

3页 上一页  [1] [2] [3] 下一页 

录入:master 点击:

[发表评论] [打印文章] [关闭窗口]  

原创文章属本站所有,转载请注明来源:Robotain.com  
相关文章

 网友评论(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

发表评论 昵称:

  

  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
最新推荐
热门文章
论坛精华
网站简介设为首页 加入收藏在线留言友情链接联系我们 - 广告服务 - 版权申明

Copyright © Robotain.com  all rights reserved  浙ICP备07003355号

版权所有 机器与智能网