葛辉 周香珍 南京理工大学泰州科技学院 225300
基于单片机的人机交互系统的设计
葛辉 周香珍 南京理工大学泰州科技学院 225300
在单片机的应用中,友好人机界面起着十分重要的作用。在本文中利用成本低、资源少的单片机系统实现和完善了运动控制系统的人机界面的设计,并详细介绍了基于单片机的人机交互系统的设计方法,包括其多级菜单的实现方法以及输入输出的设计,最终实现具有多级中文菜单显示功能的人机界面,并将该系统成功应用到机电控制系统中,实现了软硬件的联调。
单片机;运动控制系统;人机交互系统
随着社会生产水平的提高,我国的经济增长方式正在实现从粗放型到集约型、劳动密集型到科技创新型的大幅转变,社会从业人员结构发生了变化,从事简单重复工作的劳动人员在大幅减少,2008年初开始执行的新劳动法,使得企业用人成本大幅增加,在这样的背景下,在生产线上通过运动手臂或者其它运动执行机构代替人力就显得十分必要。
课题设计的硬件部分比较简单,主要包括键盘,显示以及单片机三个模块。本课题设计中的键盘要求性价比高,稳定可靠,抗干扰能力强, 实现模块化设计,同时便于今后升级,因此采用的是基于AT89C52的外设键盘方案,采用薄膜按键,优点是硬件结构相对简单,可靠性高,方便修改按键功能。
在了解运动控制系统的基本工作原理之后,为了便于操作,决定取消数字键,用方向键代替数字键进行3轴坐标的设置,最终确定该系统的键盘模块包括:“上”、“下”、“左”、“右”、“Z上”、“Z下”6个方向键,“确定”“返回”“删除”3个功能键,以及“启动”“暂停”“复位”3个系统功能键,因此该系统的键盘模块设计为3×4键盘,正好可以满足以上需求。如有新增功能需求,可增加按键个数。
而运动控制系统的显示部分要求显示稳定可靠,在高性价比要求下,同时因为系统显示内容较少,所以选定12864液晶屏,可显示16×16点阵中文字4行,每行8个字,由于其不带中文字库,故根据需要自制汉字字库。
单片机模块包括时钟电路和复位电路,共同组成了单片机的最小工作系统。
2.1 主程序流程图
主程序主要功能是实现多级菜单功能,基本原理是通过两个switch函数对键值和显示分别处理,处理键值时在相应的case里对menu和row值进行计算,而在处理显示时在相应的case里根据menu和row值调用显示函数进行相应的显示。
2.2 显示模块软件设计
本设计中所用液晶屏的驱动器是KS0108,不带字库,所以每个字符和汉字都需要自行取模。显示采用图形点阵的方式,要事先提取点阵码,每个汉字占32B,分左右两部分,各占16B。根据在LCD上开始显示的行列号及每行的列数可找到显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二字节,按行列对齐,依次陆续发送,直到32B发送完就可在LCD上显示出一个完整汉字,而英文和字符显示方法类似,占16B,显示大小为汉字的一半[1]。
2.4 键盘模块软件设计
在设计最初,考虑到键盘需要反应迅速,采用了外部中断键盘的方式,将键盘的列线通过与器件连接在单片机的P3.2口上,当有按键按下时即进入中断,在中断中进行键盘的扫描及取值。后由于使用过程中在设置坐标时需要进行按键的长按,导致无法退出中断,最终选择了循环扫描取键值的方式,解决了上述问题,取得了较好的效果。
2.5 坐标设置模块软件设计
本设计主要功能就是示教编程,在示教编程时需要设置起始点的坐标参数,在设计中用户可通过“上”、“下”、“左”、“右”、“Z上”、“Z下”6个方向键实时在线地进行坐标设置,因为不让本课题中用的LCD没有显示数字的功能,只能通过调用显示函数进行0~10的显示,而在坐标设置时需要显示3位数的坐标值,并且根据实际情况坐标值还需要判断其正负,并正确显示,所以在此处特别编写了程序来实现该功能。
2.6 菜单模块软件设计
根据设计要求和实际使用的需要,在本设计中,系统开机时显示的主菜单共包括四项,分别为文件管理,示教编程,运动参数设置,系统参数设置。其各项子菜单如表1所示。
表1 人机交互界面菜单一览表
2.6.1 文件管理界面。
在实际的生产过程中,为了方便企业生产管理,加工程序的编写一般都是由工程师或者技术人员来完成,而对于生产线上的操作人员来说,只需要选择加工的文件,然后操作“启动”、“复位”、“停止”功能键即可。反白显示时表示文件被选中,选中时按“删除”键会提示“确认删除该文件?”,按“确定”文件删除,然后提示“按启动键开始加工”。
2.6.2 示教编程界面。
示教编程功能用于操作人员根据现场情况,各项加工参数进行设置,包括加工类型和坐标设置,然后由运动控制系统自行调用相应的算法和程序进行加工,提示性人机交互界面,使得操作简便,无需记忆繁琐的控制指令,该部分设计了插补加工和阵列加工两项功能。
示教编程时需要将运动轨迹分解,分解成直线和圆弧的组合。直线由起点和终点两点确定,而圆弧由起点、中点和终点三点确定,因此只需要把这些关键点的坐标确定,就可以示教出一个完整的图形。用户只需要按照示教编程的提示和指引依次输入每段图形的关键点,就可以确定下整个图形,最后设置运动参数,系统就可以自行调用相应的插补算法进行工作[4]。
坐标设置时选项反显表示被选中,坐标反显时表示此时可以通过“上”、“下”、“左”、“右”、“Z上”、“Z下”6个方向键来分别设置X、Y、Z轴坐标,设置完坐标后按确定即可。完成一段设置后可以选择进行下一段插补设置或者保存,保存时将提示“设置成功,按启动键开始加工”。
阵列功能是提高生产效率非常有效的手段,在本系统中设计了可实现在行与列方向上的阵列,根据生产的需要,阵列的参数可以进行单独设定,其中包括阵列的行数、列数、行偏移、列偏移以及方向(先X后Y还是先Y后X),最后保存启动运行即可。
2.6.3 运动参数设置界面。
进入运动参数设置菜单后,共有X、Y、Z轴参数设置三项供选择,选中进入其中一项后,可对其各种参数进行设定。其中包括起始速度、加速度、加工速度、空移速度、复位速度、最大行程这些项目,操作人员根据现场实际情况以及机械性能,通过设置不同的参数达到一个不同的加工效果,其中最大行程的设置与坐标设置相关联,最大行程一旦设定,在坐标设置时正负坐标都以最大行程为上下限。
2.6.4 系统参数设置界面。
操作人员根据实际的加工要求一般需要设置不同的循环加工间隔,以便工件的更换或调整。另外一般执行机构在执行一段时间之后都会产生一定的坐标误差,当误差累计到一定的程度之后必须进行复位,因此需要根据实际的机械情况进行循环加工次数的设置,此外,Z轴抬起高度的设置主要是为了避免执行机构在运动时碰撞到加工工件的表面。
[1]唐炜,顾金风.基于单片机点阵图形液晶显示器应用[J].电子测量技术,2003,20(2): 53~54
[2]施锋,吴峻,朱欣华. 基于ARM7的数控机床人机界面的设计[J]. 电子器件,2008,31(2): 681~686
[3]葛辉.基于嵌入式技术的运动控制系统的研究与应用[D]. 江苏:南京师范大学电气与自动化工程学院,2006
[4]田坤,吴彰良,卫静. 数控机床与编程[M]. 武汉:华中科技大学出版社,2001
10.3969/j.issn.1001-8972.2011.24.042