文档库 最新最全的文档下载
当前位置:文档库 › K60人机交互

K60人机交互

K60人机交互
K60人机交互

/***********************************************

* 名称:main

* 功能:摄像头组人机交互模块程序

拨码开关接低电平,进入人机交互

拨码开关接高电平,退出人机交互

退出之前求各个参数

显示:各个电压的实际值

各个PID参数

主页面后期可拓展对摄像头和陀螺仪,加速度计,

电机驱动,编码器的工作状态的检测

可设置参数:速度PID参数

直立PD参数

方向PD参数

车模角度

车模速度

死区电压

如果需要还可进行扩展

说明:

* 硬件: 野火核心板K60FX512, 野火鹰眼二代ST7735S

* 软件平台:IAR6.3

* 创建时间: 2014-4-1

* 修改时间: 2014-4-8

修改说明: 1.优化完善代码2014-4-8

* 版本号: V1.0

*************************************************/

#include "include.h"

/*******************************************

* 说明:LEFT键:正常显示状态时切换屏幕

设置状态时移位

屏幕1: 主屏幕显示

屏幕2: 电压采样显示

屏幕3: 速度检测显示

屏幕4: 速度PID参数显示

屏幕1:直立PD参数,方向PD参数显示

UP:调节PID参数大小

OK:进入设置PID参数页面

SET:在参数设置页面换行

LEFT:

*

********************************************/

/********************函数申明*********************************/

void welcome(void); //开机欢迎页面子程序

void key_process(void); //大循环按键判断子程序

void key_left(void); //左键子程序(移屏或移位)

void key_up(void);//↑键子程序(主要用于设置数据大小)

void key_set(void); //设置键子程序

void key_ok(void);

void key_right(void); //设置键子程序

void key_down(void);

void OledHandle(void); //人机交互处理程序

//

void fuzhi(unsigned char *p,unsigned char start,unsigned char end,unsigned char *q);

void LCD_Fill(void); //LCD清屏

void fprint(uint8 *str,float data);//小数转化为字符串

void Init_Parameter(); //进入人机交互前将当前参数转换为字符方便进行显示

void AD_init(); //电压AD采样初始化

void KeyInit();//按键初始化

void Back(); //从人机交互调试界面返回正常界面

void LCD_fb_char(Site_t site, uint8 ascii, uint16 Color, uint16 bkColor);//反白显示字符

void LCD_fb_str(Site_t site1,Site_t site, uint8 *Str, uint16 Color, uint16 bkColor);//反白显示字符串

/********************变量声明*********************************/

unsigned char olcd_display_row=20; //行

unsigned char olcd_display_column=0; //列

unsigned char gn_screen_num; //页数

unsigned char gn_set_flag; //按下SET键标志位

/***********速度PID*******************************/

unsigned char P_Spe[13] ={'P','_','S','P','E',':','1','0','.','0','0','0','\0'}; //电机PID控制参量设置

unsigned char I_Spe[13] ={'I','_','S','P','E',':','0','0','.','0','0','0','\0'}; //电机PID控制参量设置unsigned char D_Spe[13] ={'D','_','S','P','E',':','0','0','.','0','0','0','\0'}; //电机PID控制参量设置unsigned char Speed[12] ={'S','P','E','E','D',':','0','0','0','0','\0'}; //速度

/***********方向PID*******************************/

unsigned char P_Dir[13] ={'P','_','D','i','r',':','0','0','.','0','0','0','\0'}; //方向PD

unsigned char D_Dir[13] ={'D','_','D','i','r',':','0','0','.','0','0','0','\0'}; //

/***********直立PID*******************************/

unsigned char P_Zl[12] ={'P','_','Z','l',':','0','0','.','0','0','0','\0'}; //直立PD

unsigned char D_Zl[12] ={'D','_','Z','l',':','0','0','.','0','0','0','\0'}; //

unsigned char V_Dea[10] = {'V','_','D','e','a',':','0','0','0','\0'};//死区电压

unsigned char CarAng[13] ={'C','a','r','A','n','g',':','0','0','.','0','0','\0'}; //车模角度

unsigned char BatPower[10] = {'B','A','T',':','0','0','.','0','0','\0'};

/********变量声明**************

g_f_PID_Parameter[0]:P_SPEED, g_f_PID_Parameter[1]:I_SPEED,

g_f_PID_Parameter[2]:D_SPEED

g_f_PID_Parameter[3]:P_DIRECTION, g_f_PID_Parameter[4]:D_DIRECTION,

g_f_PID_Parameter[5]:P_ZILI, g_f_PID_Parameter[6]:D_ZILI

g_f_PID_Parameter[7]:Speed 速度给定

g_f_PID_Parameter[8]:V_dea 死区电压

************存储各个PID参数的值**************/

float g_f_PID_Parameter[10];

unsigned char strbuf[30]; //存放字符串

/***********************************

* 函数名称: fprint

* 函数功能: 将浮点型00.000数据转换成字符串

* 入口参数: float data : 将要转换的浮点型数据

* 出口参数: uint8 *str : 转换后的字符串

************************************/

uint32 temp;

void fprint(uint8 *str,float data)

{

temp = (uint32)(data*1000);

if ( temp>=10000 ) //百位

{

*str = temp/10000%10 +'0';

}

else

{

*str = '0';

}

str++;

if ( temp>=1000 ) //十位

{

*str = temp/1000%10 +'0';

}

else

{

*str = '0';

}

str++;

*str = '.'; //小数点

str++;

if ( temp>=100 )//小数点后一位

{

*str = temp/100%10 +'0';

}

else

{

*str = '0';

}

str++;

if ( temp>=10 )//小数点后两位

{

*str = temp/10%10 +'0';

}

else

{

*str = '0';

}

str++;

if ( temp>=1 )//小数点后三位

{

*str = temp%10+'0';

}

else

{

*str = '0';

}

}

/***********************************

* 函数名称fuzhi

* 函数功能:将源数组的值赋值给目的数组从start到end 位置

* 入口参数:*p :目的数组

start :目的数组起始位置

end: 目的数组结束位置

*q : 源数组

****************************************************/

void fuzhi(unsigned char *p,unsigned char s,unsigned char end,unsigned char *q) {

unsigned char i;

for(i = s,p = p+s; i

{

*p = *q;

}

}

/***********************************

* 函数名称:fuzhi

* 函数功能:进入人机交互前将当前参数转换为字符方便进行显示

****************************************************/

void Init_Parameter() //进入人机交互前将当前参数转换为字符方便进行显示{

unsigned char start;

//速度P参数

fprint(strbuf,g_f_PID_Parameter[0]);

start = 6;

fuzhi(P_Spe,start,13,strbuf);

//速度I参数

fprint(strbuf,g_f_PID_Parameter[1]);

start = 6;

fuzhi(I_Spe,start,13,strbuf);

//速度D参数

fprint(strbuf,g_f_PID_Parameter[2]);

start = 6;

fuzhi(D_Spe,start,13,strbuf);

//方向P参数

fprint(strbuf,g_f_PID_Parameter[3]);

start = 6;

fuzhi(P_Dir,start,13,strbuf);

//方向D参数

fprint(strbuf,g_f_PID_Parameter[4]);

start = 6;

fuzhi(D_Dir,start,13,strbuf);

//直立P参数

fprint(strbuf,g_f_PID_Parameter[5]);

start = 5;

fuzhi(P_Zl,start,12,strbuf);

//直立D参数

fprint(strbuf,g_f_PID_Parameter[6]);

start = 5;

fuzhi(D_Zl,start,12,strbuf);

//车速

sprintf((char*)strbuf,"%d",((uint16)g_f_PID_Parameter[7]));

start = 6;

fuzhi(Speed,start,12,strbuf);

//死区电压

sprintf((char*)strbuf,"%d",((uint16)g_f_PID_Parameter[8]));

start = 6;

fuzhi(V_Dea,start,12,strbuf);

//车角度

fprint(strbuf,g_f_PID_Parameter[9]);

start = 7;

fuzhi(CarAng,start,12,strbuf);

}

/********************************

* 函数名称: AD_init

* 函数功能: 电压AD采样初始化

*

*********************************/

void AD_init()

{

adc_init(ADC1_SE16); //3V3

adc_init(ADC0_SE10); //7V2

adc_init(ADC1_SE14); //5V

adc_init(ADC1_SE15); //5V

}

/**************************

* 函数名称: KeyInit

* 函数名称: 人机交互按键初始化

*

*************************/

void KeyInit()

{

LEFT_INIT;

RIGHT_INIT;

DOWN_INIT;

UP_INIT;

OK_INIT;

SET_INIT;

}

/*******************************

* 函数名称: Back

* 函数功能: 从人机交互状态返回到非调试状态,执行其他程序

* 返回前求各个参数

********************************/

void Back()

{

//退出前求各个参数

//速度PID

g_f_PID_Parameter[0]=

(P_Spe[6]-0X30)*10+(P_Spe[7]-0X30)+(P_Spe[9]-0X30)*0.1+(P_Spe[10]-0X30)*0.01+(P_Spe[ 11]-0X30)*0.001;

g_f_PID_Parameter[1]=

(I_Spe[6]-0X30)*10+(I_Spe[7]-0X30)+(I_Spe[9]-0X30)*0.1+(I_Spe[10]-0X30)*0.01+(I_Spe[11] -0X30)*0.001;

g_f_PID_Parameter[2]=

(D_Spe[6]-0X30)*10+(D_Spe[7]-0X30)+(D_Spe[9]-0X30)*0.1+(D_Spe[10]-0X30)*0.01+(D_Sp e[11]-0X30)*0.001;

//方向PD

g_f_PID_Parameter[3]=

(P_Dir[6]-0X30)*10+(P_Dir[7]-0X30)+(P_Dir[9]-0X30)*0.1+(P_Dir[10]-0X30)*0.01+(P_Dir[11 ]-0X30)*0.001;

g_f_PID_Parameter[4]=

(D_Dir[6]-0X30)*10+(D_Dir[7]-0X30)+(D_Dir[9]-0X30)*0.1+(D_Dir[10]-0X30)*0.01+(D_Dir[ 11]-0X30)*0.001;

//直立PD

g_f_PID_Parameter[5]=

(P_Zl[5]-0X30)*10+(P_Zl[6]-0X30)+(P_Zl[8]-0X30)*0.1+(P_Zl[9]-0X30)*0.01+(P_Zl[10]-0X3 0)*0.001;

g_f_PID_Parameter[6]=

(D_Zl[5]-0X30)*10+(D_Zl[6]-0X30)+(D_Zl[8]-0X30)*0.1+(D_Zl[9]-0X30)*0.01+(D_Zl[10]-0X 30)*0.001;

//速度

g_f_PID_Parameter[7]=

(Speed[6]-0X30)*1000+(Speed[7]-0X30)*100+(Speed[8]-0X30)*10+(Speed[9]-0X30);

//死区电压

g_f_PID_Parameter[8] = (V_Dea[6]-0X30)*10+(V_Dea[7]-0X30);

//车模角度

g_f_PID_Parameter[9]=

(CarAng[7]-0X30)*10+(D_Zl[8]-0X30)+(D_Zl[10]-0X30)*0.1+(D_Zl[11]-0X30)*0.01;

}

/****************************************************************************** ********

函数名称:OledHandle

函数功能:人机交互处理

******************************************************************************* *******/

void OledHandle(void)

{

int16 BAT;

unsigned char start;

unsigned char bat_strbuf[30]; //存放字符串

int16 count =0,count1 =0;

gn_screen_num = 0;

gn_set_flag = 0;

Site_t site ={0,0};

Site_t site1 ={0,0};

int16 MMA7361 ,ENC03,ENC03_level;

AD_init();//电压AD采样初始化

KeyInit();//按键初始化

Init_Parameter();//参数转换

while(1)

{

/*

if( 1 == gpio_get(PTB7) ) //拨码开关选择退出人机交互

{

Back(); //退出人机界面扫描

LCD_Fill();//退出前清屏

return; //退出人机交互调试界面

}

*/

key_process();//按键扫描

if(gn_set_flag == 0) //非参数设置状态

{

if(!RIGHT)

{

// DELAY_MS(10);

if(!RIGHT)

{

Back();//退出前求参数

return;

// while(!LEFT);

}

}

if(gn_screen_num == 0)//AD采样界面

{

site.x =35;

site.y =0;

LCD_str(site,"V oltage",RED,WHITE);

count++;

count1++;

if(count==5000)

{

site.x =0;

site.y =0;

count = 0;

//BA T = adc_once(ADC0_SE10,ADC_12bit); //7V2

//电压显示

BAT = adc_ave (ADC0_SE10,ADC_12bit,1);

fprint(bat_strbuf,(BAT*4*3.3/4096.0));

start = 4;

fuzhi(BatPower,start,10,bat_strbuf);

site.x =0;

site.y +=16;

LCD_str(site,BatPower,BLACK,WHITE);

}

if(count1==1000)

{

site.x =0;

site.y =16;

count1 = 0;

//加速度计陀螺仪采

MMA7361 = adc_ave(ZOUT, ADC_12bit,100); //Z

ENC03 = adc_ave(Gyro2,ADC_12bit,100); // gyro2

ENC03_level = adc_ave(Gyro1,ADC_12bit,1);

//加速度计

site.y +=16;

sprintf((char*)strbuf,"7361:%d",MMA7361_vertical);

LCD_str(site,strbuf,BLUE,WHITE);

site.y +=16;

sprintf((char*)strbuf,"MMA7361:%d",MMA7361);

LCD_str(site,strbuf,BLACK,WHITE);

//直立陀螺仪

site.y +=16;

sprintf((char*)strbuf,"GYRO_V AL:%d",GYRO_V AL);

LCD_str(site,strbuf,BLUE,WHITE);

site.y +=16;

sprintf((char*)strbuf,"ENC03:%d",ENC03);

LCD_str(site,strbuf,BLACK,WHITE);

//水平陀螺仪

site.y +=16;

sprintf((char*)strbuf,"GYRO_level:%d",GYRO_level);

LCD_str(site,strbuf,BLUE,WHITE);

site.y +=16;

sprintf((char*)strbuf,"ENC03level:%d",ENC03_level);

LCD_str(site,strbuf,BLACK,WHITE);

}

// sprintf((char*)strbuf,"BAT : %d",(uint16)(BAT*4.036*3.3*100/4096.0)); } //end of if(gn_screen_num == 0)

if(gn_screen_num == 1)// 直立,速度PID参数显示界面

{

site.x =20;

site.y =0;

LCD_str(site,"ZL_PD SPE_PD",RED,WHITE);

//直立参数

site.x =0;

site.y +=20;

LCD_str(site,P_Zl,BLACK,WHITE);

site.y +=20;

LCD_str(site,D_Zl,BLACK,WHITE);

site.y +=20;

//速度参数

LCD_str(site,P_Spe,BLACK,WHITE);

site.y +=20;

LCD_str(site,I_Spe,BLACK,WHITE);

site.y +=20;

LCD_str(site,D_Spe,BLACK,WHITE);

} //end of if(gn_screen_num == 1)

if(gn_screen_num == 2) //界面2,方向PD,死区电压,速度,车模角度

{

site.x =40;

site.y =0;

LCD_str(site,"Dir_PD",RED,WHITE);

site.x =0;

site.y +=20;

LCD_str(site,P_Dir,BLACK,WHITE);

site.y +=20;

LCD_str(site,D_Dir,BLACK,WHITE);

site.y +=20;

LCD_str(site,V_Dea,BLACK,WHITE);

site.y +=20;

LCD_str(site,Speed,BLACK,WHITE);

site.y +=20;

LCD_str(site,CarAng,BLACK,WHITE);

} //end of if(gn_screen_num == 2)

if(!SET) //OK键功能,进入速度PID参数设置

{

DELAY_MS(10); //注意此延时大小,太小则不能进入if(gn_set_flag == 1)

if(!SET)

{

gn_set_flag = 1; //进入设置页面标志位,进入速度PID参数设置

LCD_Fill(); //清屏

while(!SET);

}

}

}// end of if(gn_set_flag == 0)

if(gn_set_flag == 1)//进入设置界面状态界面1,速度PID,方向PD设置

{

site.x =0;

site.y =0;

LCD_str(site,"PID Adjust",RED,WHITE);

site1.x =olcd_display_column;//olcd_display_row;

site1.y =olcd_display_row;//olcd_display_column;

site.x =0;

site.y =+20;

LCD_fb_str(site1,site,P_Spe,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,I_Spe,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,D_Spe,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,P_Dir,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,D_Dir,BLACK,WHITE);

if(!SET) //OK键功能,进入直立PD系数,死区电压,速度,角度设置{

DELAY_MS(10);

if(!SET)

{

gn_set_flag = 2; //进入设置页面标志位,进入速度PID参数设置

LCD_Fill(); //清屏

while(!SET);

}

}

}

if(gn_set_flag == 2)//进入直立PD系数,死区电压,速度,角度设置

{

site.x =0;

site.y =0;

LCD_str(site,"PID Adjust",RED,WHITE);

site1.x =olcd_display_column;//olcd_display_row;

site1.y =olcd_display_row;//olcd_display_column;

site.x =0;

site.y =+20;

LCD_fb_str(site1,site,P_Zl,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,D_Zl,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,V_Dea,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,Speed,BLACK,WHITE);

site.y +=20;

LCD_fb_str(site1,site,CarAng,BLACK,WHITE);

if(!SET) //返回主界面

{

DELAY_MS(10);

if(!SET)

{

gn_set_flag = 0; //

LCD_Fill(); //清屏

gn_screen_num = 0;

while(!SET);

}

}

}

}//end of while(1)

}

/****************************************************************************** ********

函数:void welcome(void)

功能:开机显示welcome

说明:

入口参数:

出口参数:无

******************************************************************************* *******/

void welcome(void)

{

Site_t site = {0,0}; //x = 10 ,y = 20

Site_t site1 = {16,0}; //x = 10 ,y = 20

LCD_fb_str(site1,site," welcome", BLACK,WHITE);

site.y+=20;

site.x = 0;

LCD_str(site,"Balance Camera ", BLACK,WHITE);

site.x = 10;

site.y+=20;

LCD_str(site,"2014-4-3", BLACK,WHITE);

DELAY_MS(3000);

LCD_Fill();

}

/****************************************************************************** ********/

/****************************************************************************** ********

函数:key_process

功能:检测按键子程序

说明:

入口参数:

出口参数:无

******************************************************************************* *******/

void key_process(void) //检测按键子程序

{

if(!OK)

{

// DELAY_MS(10);

if ( !OK )

{

key_ok();

while(!OK);

}

}

if(!LEFT)

{

// DELAY_MS(10);

if(!LEFT)

{

key_left();

// while(!LEFT);

}

}

if(!UP)

{

// DELAY_MS(10);

if(!UP)

{

key_up();

while(!UP);

}

}

if(!RIGHT)

{

// DELAY_MS(10);

if(!RIGHT)

{

key_right();

while(!LEFT);

}

}

if(!DOWN)

{

// DELAY_MS(10);

if(!DOWN)

{

key_down();

while(!DOWN);

}

}

}

void key_ok(void)

{

if(gn_set_flag == 0) //判断当前是否在设置界面,如果不是,则移屏{ //刷屏

//判断屏幕页面

if(gn_screen_num <= 3) //如果需要添加页面4改为5即可,添加更多,依次类推

{ //然后在OledHandle添加一个if(gn_screen_num == 5)

gn_screen_num++;

if(gn_screen_num >= 3)

{

gn_screen_num = 0;

}

}

while(!OK);

}

if((gn_set_flag == 1)|(gn_set_flag == 2))

{

if(!OK)

{

DELAY_MS(10);

if(!OK)

{

olcd_display_row = olcd_display_row + 20; //每按SET键一次,换行一次

if(olcd_display_row > 100)

{

olcd_display_row = 20; //换至最低行后,行标志清零,使循环换行

}

}

while(!OK); //等待松下按键,回到主程序

}

}

LCD_Fill();

}

/**************************************

* 函数名称:key_left

* 函数功能: 正常显示状态时切换屏幕

设置状态时横向反白移位

*

*****************************************/

void key_left(void) //左键功能函数

{

if((gn_set_flag == 1)|(gn_set_flag == 2)) //判断当前是否在设置界面,如果是,则反白移位

{

if(LEFT==0)

{

DELAY_MS(10);

if(LEFT==0)

{

olcd_display_column = olcd_display_column - 8;

if(olcd_display_column == 0) // 96/8=12个字符

{

olcd_display_column = 96;

}

while(!LEFT);

}

}

}

// LCD_Fill();

}

/**************************************

* 函数名称:key_left

* 函数功能: 正常显示状态时切换屏幕

设置状态时横向反白移位

*

*****************************************/

void key_right(void) //左键功能函数

{

if((gn_set_flag == 1)|(gn_set_flag == 2)) //判断当前是否在设置界面,如果是,则反白移位

{

if(RIGHT==0)

{

DELAY_MS(10);

if(RIGHT==0)

{

olcd_display_column = olcd_display_column + 8;

if(olcd_display_column == 96) // 96/8=12个字符

{

olcd_display_column = 0;

}

while(!RIGHT);

}

}

}

// LCD_Fill();

}

/**************************************

* 函数名称:key_up

* 函数功能: 对参数进行调节

*

*****************************************/

void key_up(void) //上键功能(调整参数值大小){

unsigned char x;

unsigned char olcd_display_data_first;

unsigned char olcd_display_data_second;

unsigned char olcd_display_data_third;

unsigned char olcd_display_data_forth;

olcd_display_data_first = 0;

olcd_display_data_second = 0;

olcd_display_data_third = 0;

olcd_display_data_forth = 0;

// y = olcd_display_row/20;

x = olcd_display_column/8;

if(gn_set_flag == 1) //只有进入设置界面才能改变PID参数值

{

while(!UP);

if((olcd_display_row==20)&&(x>=6)&&(x!=8))

{ //P_Spe[13] ={'P','_','S','P','E',':','0','0','.','0','0','0','\0'} //电机PID控制参量设置olcd_display_data_first = P_Spe[x];

olcd_display_data_first+=1;

if(olcd_display_data_first ==0x3A) //逢10化0,不进位

{

olcd_display_data_first = 0x30;

}

P_Spe[x] = olcd_display_data_first;

}

if((olcd_display_row==40)&&(x>=6)&&(x!=8))

{

//I_Spe[13] ={'I','_','S','P','E',':','0','0','.','0','0','0','\0'}; //电机PID控制参量设置

olcd_display_data_second = I_Spe[x];

olcd_display_data_second+=1;

if(olcd_display_data_second==0x3A)

{

olcd_display_data_second = 0x30;

}

I_Spe[x] = olcd_display_data_second;

}

if((olcd_display_row==60)&&(x>=6)&&(x!=8))

{

//D_Spe[13] ={'D','_','S','P','E',':','0','0','.','0','0','0','\0'}; //电机PID控制参量设置olcd_display_data_third = D_Spe[x];

olcd_display_data_third+=1;

if(olcd_display_data_third==0x3A)

{

olcd_display_data_third = 0x30;

}

D_Spe[x] = olcd_display_data_third;

}

if((olcd_display_row==80)&&(x>=6)&&(x!=8))

{

//P_Dir[13] ={'P','_','D','i','r',':','0','0','.','0','0','0','\0'}; //方向PD

olcd_display_data_forth = P_Dir[x];

olcd_display_data_forth+=1;

if(olcd_display_data_forth==0x3A)

{

olcd_display_data_forth = 0x30;

}

P_Dir[x] = olcd_display_data_forth;

}

if((olcd_display_row==100)&&(x>=6)&&(x!=8))

{

//D_Dir[13] ={'D','_','D','i','r',':','0','0','.','0','0','0','\0'}; //

olcd_display_data_forth = D_Dir[x];

olcd_display_data_forth+=1;

if(olcd_display_data_forth==0x3A)

{

olcd_display_data_forth = 0x30;

}

D_Dir[x] = olcd_display_data_forth;

}

}

if(gn_set_flag == 2) //只有进入设置界面才能改变PID参数值

{

while(!UP);

if((olcd_display_row==20)&&(x>=5)&&(x!=7))

{

// P_Zl[12] ={'P','_','Z','l',':','0','0','.','0','0','0','\0'}; //直立PD olcd_display_data_first = P_Zl[x];

olcd_display_data_first+=1;

if(olcd_display_data_first ==0x3A) //逢10化0,不进位

{

olcd_display_data_first = 0x30;

}

P_Zl[x] = olcd_display_data_first;

}

if((olcd_display_row==40)&&(x>=5)&&(x!=7))

{

//D_Zl[12] ={'D','_','Z','l',':','0','0','.','0','0','0','\0'};

olcd_display_data_second = D_Zl[x];

olcd_display_data_second+=1;

if(olcd_display_data_second==0x3A)

{

olcd_display_data_second = 0x30;

}

D_Zl[x] = olcd_display_data_second;

}

if((olcd_display_row==60)&&(x>=6)) //死区电压参量调节

{

//V_Dea[10] = {'V','_','D','e','a',':','0','0','0','\0'};

olcd_display_data_forth = V_Dea[x];

olcd_display_data_forth+=1;

if(olcd_display_data_forth==0x3A)

{

olcd_display_data_forth = 0x30;

}

V_Dea[x] = olcd_display_data_forth;

}

if((olcd_display_row==60)&&(x>=7)&&(x!=9)) //车模角度调节

{

//CarAng[13] ={'C','a','r','A','n','g',':','0','0','.','0','0','\0'};

信息组织人机交互

人机交互 人机交互是研究系统与用户之间的交互关系的技术机制。通过机器的输入,输出设备,以有效,简单的方式实现用户与机器的互动。所以人机交互系统可以是各种各样的机器设备,也可以是计算机程序化的软件与人之间的交流机制。用户可以通过人机交互系统方便,简易地实现对复杂程序,软件和系统的运用和操作控制(人机交互系统能够使用户更加方便快捷地进行操作)。传统的交互设备一般都是计算机的硬件设备,例如:鼠标,键盘,触摸屏,显示器等。总之,人机交互是指用户与机器之间通过一定方法和语言交流信息以完成指定任务的过程。实现人机交互需要一定的交互设备。用户如何使用机器,怎样可以高效率地完成指定工作,需要一个良好的人机交互系统。而一个良好的人机交互系统需要设计形象生动的人机交互界面。何为人机交互界面人机交互界面就是系统面向用户的部分,用户可以通过人机交互界面与系统交流沟通,是计算机向用户提供的综合操作环境,是计算机系统的重要组成部分。通过人机交互界面,人们可以与计算机传递,交换信息。人机交互界面的设计应当从多个学科角度来进行。首先,设计人机界面应当了解用户的需求,要知道用户想实现什么功能,想怎样实现特定的目的,想怎样简单,准确地控制系统完成指定的任务。然后,需要结合社会需求和经验补充和扩展界面的功能。再可以考虑界面的风格,可以通过图形进行人机交互,用工业设计的方法和计算机技术结合实现人机交互的智能化。通过研究计算机技术,用户心理,社会经验,图形设计,工业设计等,人们可以改进人机交互的环境(人机交互界面)以实现更复杂的功能和提供智能化,人性化的服务。理论体系方面,人机交互需要从人的心理出发,更加强调认知心理以及行为学和社会学的某些人文科的理论指导。实践范畴方面,需从人机交互接口扩展开来,强调计算机对于人的反馈交互作用。 其实,实现有效的人机交互还是需要借助优秀精良的人机界面。那么如何设计优良的人机界面呢首先,设计人员应当分析可用性需求。管理人员通过精选人员准备时间表和目标,建立和使用指导文档以及参与测试,可以促进大家对用户界面问题的重现。而设计者可以提出多个可供参选的备选设计方案,并对较好的备选方案进行下一步的开发和测试。设计者进行深入研究,对于哪些用户要完成什么任务以及用户与人物之间的关系,他们理解得十分透彻。明确目标有利于设计者实现这些目标。设计者设计人机界面应当做到以下几点: ①满足操作,控制和维护人员对性能的需求; ②将对操作人员的技能要求,知识要求和训练时间都降到最低; ③达到人与设备,软件组合所要求的可靠性; ④在系统中和系统间逐步建立一种设计标准; 倘若人机界面设计的好的话,人机界面就好像消失了一样,从而使人机之间可以像人与人之间正常交流一样方便简单。 其次,人机交互界面需要标准化,一致性和可移植性。所谓标准化就是不同的应用程序中共同的用户界面特征。一致性指应用程序中的通用操作语言,序列,术语,组件,布局,颜色,排版,样式等的统一。可移植性指在多个软件环境中转换数据和共享用户界面的潜在能力。 第三,可用性度量。如果已经选择了充分的需求,保证了可靠性,提出了标准化报告,完成了时间进度和预算计划,那么开发者就可以将精力集中于设计与测试过程,多个备选的设计方案必须通过对多个特定用户群和多个特定的基准任务

谈谈自己对人机交互的认识

中南林业科技大学课程论文谈谈自己对人机交互系统的认识 注:对号:正确、完整、详细、合理 半对号:部分正确、不完整、不详细、基本合理 错号:错误、缺失、较差 抄袭一票否决

谈谈自己对人机交互的认识 人机交互界面作为一个独立的、重要的研究领域受到了世界各计算机厂家的关注。并成为90年代计算机行业的又一竞争领域。从计算机系统的发展过程来看,人机交互界面技术还引导了相关软硬件技术的发展,是新一代计算机系统取得成功的保证。80年代已来,计算机的软件和硬件技术取得了较大的发展,同时,计算机的使用者也从计算机专家迅速扩大到了广大未受过专门训练的普通用户,由此极大地提高了用户界面在系统设计和软件开发中的重要性,强烈地刺激了人机交互界面的进步。人-计算机的交互作用是通过用户界面来实现的。 我国在人机界面方面的设计与国际同类研究相比还存在较大差距。目前的研究仅仅着重于支持界面的软件和硬件,对界面本身还缺少深入的研究,用户界面的设计还没有成为软件设计中独立的一部分,也缺少新的人机界面设计技术。而另一方面,计算机科学的发展和计算机的普及应用却对人机界面的研究提出了越来越高的要求。 进入九十年代计算机软件开发已进入了以开发软件工具和建立软件开发环境为目标的时代。作为支持人机交互软件开发环境的用户界面管理系统UIMS正日益受到人们的关注和重视。今后UIMS将有可能进入各类实际软件开发环境,成为继DBMS之后的又一个重要的软件开发环境和工具。 根据当前发展情况,大概有一个现状和一个趋势能看得到,拿来和大家分享一下。HCI是偏向应用的,本质上还是多学科交叉的工程应用技术领域。从商业应用来看,HCI能做的方面有:软件、硬件、交互环境、互联网、生活应用、集成交互系统等。简单举例:软件,包括优良综合(功能)应用体验和用户界面硬件,包括脑波仪器、眼动仪、感应器(sensor)、移动通讯设备、信息终端、通用电子数码产品、等交互环境,如虚拟现实、三维模拟场景、民用交通工具驾驶环境、军用飞行器/车辆/设备操纵环境、等互联网,包括网站的设计和功能,用户体验的提升和评估,网络产品的用户体验,互联网与通讯网与人际网络的重合研究,等生活应用,包括智能住宅(Smart Home),以及一些家用装备的交互功能和体验设计集成交互系统,如车站港口机场的信息导航设计、功能和体验设计评估与监控,大型复杂操作环境的体系交互设计与评估等其实能做的特别多,当然成就与否在于我们有怎样的思路和做法,这还需要大量的实践来检验。 一个趋势就是,在未来的HCI领域,有可能会分化出这样几个主干方向:1.硬件设备,包括眼动仪、脑波仪、感应仪器、评测仪器、以及能够参与和辅助HCI研究与实践的装备 2.人文研究,毕竟HCI的终极目标是人类好的体验最大化,所有的分支和应用都离不开对用户的研究,所以研究使用者以及文化影响,甚至包括在三重网络(互联网、通讯网、人际关系网)逐渐重叠的趋势下一些新的演变和背后的本质等等 3.还一个就是设计方向,这主要集中在综合的用户体验设计,以及应用产品、服务的具体设计,还包括对设计的理论研究、与HCI其他因素的结合、框架体系、监测评估、流程方式、工具和方法等等。 在一个交互系统中,由于操作者的个人原因,经常会产生误操作,包括键入错误、数据输入错误等。同样,在用户编制的程序或设备连接时也可能会

新型人机交互接口电路的设计

摘要主要介绍了TI公司的新型的16位超低功耗Flash型h6N30F44X系列单片机的结构、特性和功能及液晶显示器LCD的发光原理和类型,讨论了该系列单片机与ILD及键盘的人机接口电路的设计方案和相应的软件的实现方法,最后给出它在体内电刺激器的应用实例。 关键词单片机;MSP430;LCD;人机交互接口 1引言 在当今的各种实时自动控制和智能化仪器仪表中,人机交互是不可缺少的一部分。一般而言,人机交互是由系统配置的外部设备来完成,但其实现方式有两种:一种是由MCU力口驱动芯片实现,如键盘显示控制芯片SK5279A,串行数据传输数码显示驱动芯片MAX7219等等,这时显然MCU没有LCD的驱动功能。另一种就是MCU本身具有驱动功能,它通过数据总线与控制信号直接采用存储器访问形式或I/O设备访问形式控制键盘和LCD实现人机对话。这里的MCU主要有世界各大单片机生产厂商开发的各种单片机,其中TI公司的MSP430系列因其许多独特的特性引起许多研究人员的特别关注,在国内外的发展应用正逐步走向成熟。 2LCD简介 LCD(Liquid Crystal Display),即液晶显示器。液晶显示是通过环境光来显示信息的,它本身并不发光,因而功耗很低,只要求液晶周围有足够的光强。LCD是人与机器沟通的重要界面,早期以显像管(CRT/C athode Ray Tube)显示器为主,但随着科技不断进步,各种显示技术如雨后春笋般诞生。LCD由于具有轻薄短小、低耗电量、无辐射危险、平面直角显示以 及影像稳定不闪烁等优势,逐渐占据显示的主流地位。 LCD的类型,根据其分类方式的不同而不同。如根据LCD显示内容的不同可以分为段式LCD和点阵L CD。根据LCD驱动方式的不同可以分为静态驱动和多路驱动。 3MSP430F44X简介 MSP430F44X系列是TI公司最新推出的具有超低功耗特性的Flash型16位RISC指令集单片机[2]。该系列单片机性价比相当高,在系统设计、开发调试及实际应用上都表现出较明显的优势。它主要应用在各种要求极低功率消耗的场合,特别适合用于智能测量仪器、各种医疗器械、智能化家用电器和电池供电便携设备产品之中。 3.1系统结构 MSP430F44X的系统结构,主要包括:CPU、程序存储器(ROM)、数据存储器(RAM)、FLL+时钟系统(片内DCO+晶体振荡器)、看门狗定时器/通用目的定时器(WatchDog)、ADCl2(12位A/D)、比较器A(精确的模拟比较器,常用于斜边(Slope)A/D转换)、复位电压控制/电源电压管理、基本定时器(Basic Timerl)、定时器(Timer-a和Timer-B)、LCD控制器/比较器(多达160段)、硬件乘法器、I/O口和串行口[4]。系列中各种具体的型号稍有差别。在本次设计中,具体选择MSP430F449作为人机接口电路的设计具有许多独到的优势。这一点,读者可以根据TI公司相关的数据手册进行比较。 3.2片内外模块特性 MSP430F44X具有丰富的片内外围模块,其明显的特点是:具有48条I/0口线的6个并行口P1-P6,其中P1、p2具有中断能力,同时具有2个可用于UART/SPI模式选择的串行口(USART0和USARTl);内含12位的A/D转换器ADCl2,快速执行8×8、8×16、16×16乘法操作并立即得到结果的硬件乘法器;多达160段的LCD控制器/比较器,可以实现多种方式的驱动显示;可以实现UART、PWM、斜坡ADC 的16位Timer-A和16位Timer-B;非常灵活的时钟系统,既可用32768Hz的钟表晶振产生低频时钟,也可以用450kHz-8MHz的晶体产生高频时钟,同时还可以使用外部时钟源或者用不同控制频率的DCO;多达几十kB的Flash空间,这样数据既可以保存在片内的Flash信息存储器,也可保存在程序的Hash中的剩余空间。 4接口电路设计 4.1接口电路简图及说明 典型应用电路示意图。在该图中,LCD类型和键盘种类及数目的选择、下拉电阻的数值大小都必须认真

从人体解剖学分析机器人的人机交互及控制系统

1.从人体解剖学分析机器人的人机交互及控制系统 ?目标:人体解剖学(神经系统)构件→结合机器人技术构件→机器人控制系统架构构件→人机交互界面的系统架构(硬件领域) 1.1.神经系统(nervous system) 神经细胞(神经元)是神经系统的响应细胞,神经系统通过电化学信号来处理和传送信息。运动神经细胞能接收从大脑和骨髓神经传来的信号,并控制肌肉的收缩。i 1.1.1.神经系统的分布 神经系统分为中枢部和周围部。 中枢部即中枢神经系统(CNS,central nervous system),包括脑和脊髓,它们分别位于颅腔和椎管内。 周围部又称周围神经系统(PNS,peripheral nervous system),包括脑神经、脊神经和内脏神经,周围神经一端同脑或脊髓相连,另一端通过各种末梢装置与神奇其他各器官、系统相联系。 根据分布对象的不同,将周围神经系统分为躯体神经和内脏神经。躯体神经分布于体表、骨骼肌、骨和关节;内脏神经分布于内脏、心血管、平滑肌和腺体。躯体神经和内脏神经在大脑皮质统一管辖与协调下,完成神经系统的各种功能。 1.1. 2.神经元的分类 神经系统的基本组织是神经组织(nervous tissue),神经组织主要由神经元和神经胶质做成。神经元(neuron)又称神经细胞(nerve cell),具有感受刺激和传导神经冲动的功能。神经胶质(neuroglia)又称神经胶质细胞(neuroglial cell),简称胶质细胞(glia或glia cell),无传导神经冲动的功能,而对神经元起支持、保护、分隔和营养等作用。 神经元基于功能及神经兴奋传导冲动方向分类如下: 感觉神经元(sensory neuron):又称传入神经元(afferent neuron),感受机器内、外环

回顾:人机交互中的手势的可视化解释

本科毕业设计(论文) 外文参考文献译文及原文 学院机电工程学院 专业数字媒体技术 年级班别2008级(1)班 学号3109000746 学生姓名李林钢 指导教师冯开平 2013年6 月

目录 译文:回顾:人机交互的手势的可视化解释 (1) 1 引言 (1) 2手势建模 (3) 2.1定义手势 (3) 2.2手势分类 (5) 2.3 手势的暂时性模型 (5) 2.4空间建模手势 (6) 3手势分析 (7) 原文: Visual Interpretation of Hand Gestures for Human-Computer Interaction: A Review(见同名文献) .................................................. 错误!未定义书签。 1 INTRODUCTION .......................................................................... 错误!未定义书签。 2 GESTURE MODELING ................................................................ 错误!未定义书签。 2.1 Definition of Gestures .......................................................... 错误!未定义书签。 2.2 Gestural Taxonomy ............................................................... 错误!未定义书签。 2.3 Temporal Modeling of Gestures ........................................... 错误!未定义书签。 2.4 Spatial Modeling of Gestures ............................................... 错误!未定义书签。 3 GESTURE ANAL YSIS ..................................................................................... 错误!未定义书签。

人机交互复习题

1.不属于人机交互界面设计模型的是(D )。 A.行为模型B.结构模型 C.事件-对象模型D.用户模型 2.以下哪个不是交互任务类型的基本对象类型(B ) A.抽象(概念)交互对象B.逻辑交互对象 C.空间交互对象D.时间交互对象 3.下例不属于MVC模型层次的是( D )。 A.模型层B.视图层 : C.控制层D.表示层 4.下面哪个不是Web网站设计的3C原则( C )。 A.简洁B.一致性 C.多样化D.对比度 5.Web界面设计中用户所处地位不正确的是( D ) A.确定Web站点的用户群体,从用户的角度去思考。 B.以用户为中心的设计,为用户的共性设计,同时考虑差异。 C.对目标用户群的构成进行分析:Web网站是以提供的信息内容来分类的。: D.用户是系统的主宰,设计时应该让用户参与。 6.人们通常对水平线和垂直线的认识,正确的是( A )。 A.夸大水平线B.夸大垂直线 C.没有影响D.以上都不对 7.下例哪一项不是新一代的人机交互技术发展方向和趋势。( A ) A.多样化B.集成化 C.智能化D.网络化 8.目前,最具有市场新生力量的手写板是:( C )。 《 A.电阻式压力手写板B.电磁式感应手写板 C.电容式触控手写板D.电阻电磁混和式手写板 9.鼠标与计算机的接口中,下例不正确的是( B )。 A.串行接口B.并行接口 C.PS/2接口D.USB接口 10.用磁盘图标隐喻存盘操作、用打印机图标隐喻打印操作等属于( B )。 A.直接隐喻B.工具隐喻

C.过程隐喻D.表示隐喻 — 11.人们通常对水平线和垂直线的认识,正确的是(A )。 A.夸大水平线B.夸大垂直线 C.没有影响D.以上都不对 12.下面哪一个设备不是图像输入设备( B ) A.照像机B.鼠标 C.二维扫描仪D.数码摄像机 13.下例哪一项不是新一代的人机交互技术发展方向和趋势。( A )> A.多样化B.集成化 C.智能化D.网络化 14.目前,最具有市场新生力量的手写板是:( C ) A.电阻式压力手写板B.电磁式感应手写板 C.电容式触控手写板D.电阻电磁混和式手写板 15.用磁盘图标隐喻存盘操作、用打印机图标隐喻打印操作等属于( B ) A.直接隐喻B.工具隐喻 C.过程隐喻D.表示隐喻 — 16.不属于人机交互界面设计模型的是( D ) A.行为模型B.结构模型 C.事件-对象模型D.用户模型 17.LOTOS最大的优越性在于( D ) A.不能构造一套现成的自动化工具 B.有时可以自动进行错误检测 C.语法容易记忆 D它属于形式化的语言 ; 18.下例不属于MVC模型层次的是( D )。 A.模型层B.视图层 C.控制层D.表示层 19.下例描述中不正确的是(B ) A.业务流程的处理过程对其它层来说是透明的,模型接受视图请求的数据,并返回最终的处理结果。

11本《人机交互与界面设计》复习题目

第1章 1.什么是人机交互? 2.人机交互的发展趋势是什么? 第2章 3.人机交互中,常用的感知有哪些? 4.颜色通常用哪几种属性来表示? 5.“在界面设计中,应该以实际中心为基准进行排版设计。”这句话对吗?为什么? 6.“在明亮的背景下显示灰暗的文字,能够增强文字的可读性。”这句话对吗? 7.RGB、CMYK和HSV的含义各是什么?作为颜色模型,它们各自在什么情况下使用? 8.声音通常用哪几个属性来描述? 9.触觉的感知机理与视觉和听觉的最大不同是什么? 10.认知的两个模式是什么?二者各有什么特点? 11.常见的认知过程有哪些? 12.注意的两个基本特征是什么? 13.“人们识别事物的能力要远胜于回忆事物的能力。”这句话对吗? 14.影响人们认知的因素有哪些? 15.什么是交互系统设计中的概念模型? 16.什么是分布式认知?它与传统认知理论之间有什么关系? 第3章 17.常用的文本输入设备、图像输入设备、三维信息输入设备、指点输入设备各有哪些? 18.虚拟现实交互设备有哪些?各有什么特点? 第4章 19.常用的人机交互输入模式有哪几种?各有什么特点? 20.基本的交互技术有哪些? 21.常用的、用于图形输入的辅助交互技术有哪些? 22.什么是六自由度? 23.什么是三维交互技术?传统的图形交互技术能否直接用于三维交互?为什么? 24.目前主要使用哪些交互方式在三维空间中进行操作? 25.什么是语音识别? 26.在手写识别技术中,什么是脱机识别和联机识别? 27.什么是数字墨水? 第5章 28.图形用户界面包含了三个重要思想,它们是什么? 29.WIMP表示什么? 30.什么是桌面隐喻?“图形用户界面中,最常用的隐喻表现方法是使用静态图标。”这句 话对吗?“隐喻可以表达各种信息。”这句话对吗?为什么? 31.直接操纵具有哪些特性? 32.简要论述图形用户界面设计的一般原则。 33.用户体验由哪几个元素组成? 34.“偶然型和生疏型用户要求系统运行效率高,能够灵活使用;熟练型和专家型用户要求 系统给出更多的支持和帮助。”这句话对吗? 35.在界面设计中,用户交互分析主要包括哪些内容? 36.在界面设计中,对用户的观察和分析,主要有哪些方法? 37.简要描述任务分析主要包括哪些内容。为什么说任务分析是交互设计至关重要的环节?

人机交互系统概述

人机交互系统概述

随着国家信息化步伐的加快和高等教育的规模的扩大,社会对计算机专业的人才的需求不仅体现在数量的增加上,而且体现在质量要求的提高上,培养具有研究和实践能力的高层次的计算机专业人才已成为许多大学计算机专业教育的主要目标。这些,足以说明人机交互在我们的发展中开始占据一定的地位了,我们应该开始逐渐重视人机交互带给我们的影响。 以往对计算机软件的研究,较少关心人的因索问题。重点就在如何最有效地使用两种宝贵的资源——计算速度和存储空间。程序的效率是最高目标。现在,由于硬件价格急剧下降,越来越强的适用于图形的个人计算环境的出现,我们可以首要考虑如何使用户的使用效率最高,而不是着重于计算机的效率。许多功能相似的图形交互式系统已经走入市场。能否取得成功,取决于该系统使用起来是否方便。如何使系统在使用时变得方便已经成为设计中越来越要考虑的关键问题。用户与计算机接口的实际计算机科学。感性心理学认知心理学,且人的因素对一个成功的设计者来说,也是非常关键的。建立友好的人机交互界面的目的就是使系统对它的用户来说既易于理解又易于使用。 但是,什么是人机交互呢? 所谓人机交互就是指关于设计、评价和实现供人们使用交互式计算机系统,并围绕相关的主要现象进行研究的学科。狭义的讲,人机交互技术主要是研究人与计算机之间的信息交换,它主要包括人到计算机和计算机刀刃的信息交换两部分。对于前者,人们可以借助键盘、

鼠标、操纵杆、数据服装、眼动跟踪器、位置跟踪器、数据手套、压力笔等设备,用手、脚、声音、姿势、或身体的动作、视线甚至脑电波等向计算机传递信息;对于后者,计算机通过打印机、绘图仪、显示器、头盔式显示器、音箱等输出或显示设备向人们提供可理解的信息。人机交互是一门综合学科,它与认知心理学、人机工程学、多媒体技术、虚拟现实技术等密切相关。其中,认知心理学与人机工程学是人机交互技术的理论基础,而多媒体技术、虚拟现实技术与人机交互是相互交叉渗透的。 人机交互的研究内容很广泛。涵盖了很多方面,如建模、设计、评估等理论和方法,以及在Web、移动计算、虚拟现实等方面的应用研究,主要包括了以下内容。 1.人机交互的界面表示模型与设计方法 友好的交互界面的开发离不开好的交互模型与设计方法。因此,研究人机交互界面的表示模型与设计方法是人机交互的重要研究内容之一。 2.可用性分析与评估 可用性人机交互关系到人机交互能否达到用户期待的目标,以及实现这一目标的效率和便捷性。对人机交互系统的可用性分析与评估的研究主要涉及到支持可用性的设计原则和可用性的评估方法等。 3.多通道交互技术 多通道交互主要研究多通道交互界面的表示模型、多通道交互界

人机交互技术及其应用科普_百度文库

人机交互技术及其应用(科普) 信息技术的高速发展对人类生产、生活带来了广泛而深刻的影响。高科技成果为人们带来便捷、快乐的同时,也促进着人机交互技术的发展。作为信息技术的重要内容,人机交互技术比计算机硬件和软件技术的发展要滞后许多,已成为人类运用信息技术深入探索和认识客观世界的瓶颈。因此,人机交互技术已成为21世纪信息领域亟需解决的重大课题和当前信息产业竞争的一个焦点,世界各国都将人机交互技术作为重点研究的一项关键技术,例如,在美国21世纪信息技术计划中,将软件、人机交互、网络、高性能计算列为基础研究内容,美国国防关键技术计划也把人机交互列为软件技术发展的重要内容之一,在我国的“863”、“973”和自然科学基金等项目中,也将人机自然交互理论与方法作为信息技术中需要解决的关键科学问题。 一、人机交互的概念 人机交互(Human-Computer Interaction,HCI)是关于设计、评价和实现供人们使用的交互式计算机系统,且围绕这些方面主要现象进行研究的科学,狭义的讲,人机交互技术主要是研究人与计算机之间的信息交换,它主要包括人到计算机和计算机到人的信息交换两部分。人们可以借助键盘、鼠标、操纵杆、数据服装、眼动跟踪器、位置跟踪器、数据手套、压力笔等设备,用手、脚、声音、姿势或身体的动作、眼睛甚至脑电波等向计算机传递信息,同时,计算机通过打印机、绘图仪、显示器、头盔式显示器、音箱等输出或显示设备给人提供信息。人机交互与计算机科学、人机工程学、多媒体技术和虚拟现实技术、心理学、认知科学和社会学以及人类学等诸多学科领域有密切的联系,其中,认知心理学与人机工程学是人机交互技术的理论基础,而多媒体技术和虚拟现实技术与人机交互技术相互交叉和渗透。作为是信息技术的一个重要组成部分,人机交互将继续对信息技术的发展产生巨大的影响。 二、人机交互的研究内容 人机交互的研究内容十分广泛,涵盖了建模、设计、评估等理论和方法以及在移动计算、虚拟现实等方面的应用研究与开发,在此列出几个主要的方向:人机交互界面表示模型与设计方法(Model and Methodology) 一个交互界面的好坏,直接影响到软件开发的成败。友好人机交互界面的开发离不开好的交互模型与设计方法。因此,研究人机交互界面的表示模型与设计方法,是人机交互的重要研究内容之一。 可用性分析与评估(Usability and Evaluation) 可用性是人机交互系统的重要内容,它关系到人机交互能否达到用户期待的目标,以及实现这一目标的效率与便捷性。人机交互系统的可用性分析与评估的研究主要涉及到支持可用性的设计原则和可用性的评估方法等。

对人机交互的概念的理解_人机交互的基本概念

对人机交互的概念的理解_人机交互的基本概念 什么是人机交互人机交互、人机互动(英文:HumanComputer InteracTIon或HumanMachine InteracTIon,简称HCI或HMI),是一门研究系统与用户之间的交互关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。人机交互界面的设计要包含用户对系统的理解(即心智模型),那是为了系统的可用性或者用户友好性。 人机交互的概念:定义1:有关交互式计算机系统设计、评估、实现以及与之相关现象的学科[ACM] 定义2:研究人、计算机以及他们之间相互作用方式的学科,学习人机交互的目的是使计算机技术更好地为人类服务[Alan Dix] 定义3:有关可用性的学习和实践,是关于理解和构建用户乐于使用的软件和技术,并能在使用时发现产品有效性的学科[Carroll] 主要内容:1、界面设计的方法和过程。即在给定任务和用户的前提下,设计出最优的界面,使其满足给定的限制,并对易学性和使用性效率等属性进行优化。 2、界面实现方法。如软件工具包和库函数,以及其他各种高效开发方法等 3、界面分析和评估技术。 4、开发新型界面和交互技术。 5、构建交互相关的描述模型和预测模型 1、框架是提供理解或定义的一种结构,他能够帮助人们结构化设计过程,认识设计过程中的主要问题,还有助于定义问题所涉及的领域 2、执行/评估活动周期EEC:活动的四个基本组成部分:目标(想做什么)、执行(实现目标必须进行的操作)、客观因素(执行活动时必须考虑的客观条件)、评估(用于衡量活动执行的结果语目标之间的差距) 七个阶段:建立目标、形成操作意向、明确动作序列、执行动作、感知系统状态、解释系统状态、对照目标评估系统状态

基于手势识别的人机交互综述

基于手势识别的人机交互综述 摘要:近年来,得益于虚拟现实、人机界面技术、计算机视觉等领域的发展,基于手势识别的人机交互技术得到大力的推动。本文就基于手势识别的人机交互技术展开综述。首先概括手势交互的涉及领域,回顾其发展史和国内外研究现状。接着阐明它的基本界定和分类,并在此基础上分析其热点关键技术。然后实例讨论了几种类型手势交互的典型应用。最后给出了结论。 关键词:虚拟现实;手势交互;计算机视觉;手势识别;特征跟踪 1.引言 人机交互技术通过输入、输出设备,以有效的方式实现交互主体与交互客体的对话。当前的人机交互技术已经从过去交互主体适应交互客体,发展为交互客体不断地适应交互主体的习惯和以交互主体为中心的新阶段[1,2,3,4]。以用户为中心的,新型、自然的人机交互技术逐渐成为开发者和科研工作者的关注重点。这类交互方式要求输入与输出能够最大限度地符合交互主体的行为习惯,并能够在交互主体的脑中顺利构建交互环路。由于手势具有极强的信息表述功能,加之人手操作行为本身就是人与世界相互作用的主要方式,因此,基于手识别的人机交互技术相关研究有着重要的理论价值和应用价值。基于手势识别的人机交互技术涉及计算机科学、认知心理学、行为学等诸多方面的知识。本文不能面面俱到,仅就手势交互的基本问题:手势语义的分类,以及当前发展概况、研究热点技术和典型系统应用等相关问题进行综述。 2.研究现状 目前,基于视觉的手势交互已被广泛的研究,由于手势本身的多义性及时空差异性,加之手形变的高维度及视觉问题本身的不适定性,基于视觉的手势识别一直是一项极富挑战性的究课题[5]。需要解决的核心问题是对手形的识别,对手势的跟踪等。传统的方法主要分为两大类:(1)基于模型(model-base)的方法;(2)基于表征(appearance-based)的方法[6]。这些方法及其衍生算法极大程度地依赖于计算机科学中虚拟现实、机器视觉、模式识别、人机交互等多个领域的交流与合作。相关的国际会议:CHI、ICCV、CVPR、ICAT、IEEE VR 为研究者提供了一个能充分交流的空间,并吸引了越来越多的研究人员共同参与合作。此外,学科之间的交流也吸引了心理学研究人员的共同参与。他们以从用户为中心出发,为基于手势交互研究和开发提出了宝贵意见[7]。纵观手势交互的发展历程,其研究重点也从早期简单的系统框架、低层特征提取[8]、手形模板匹配[8]等问题转变到关节式物体跟踪[9,10, 11]、跟踪性能评价[12]、操作型手势解析[14]等问题上。我国在基于手势识别的人机交互领域的研究近年来得到了长足的发展。研究机构集中在国内的研究所和高校的科研单位。目前国内手势交互的研究成果主要有:中国科学院软件研究所[15]的研究中,对二阶自回归过程动力学模型(Auto-Regressive Process, ARP)进行训练和学习,进而建立基于ARP 的预测模型,实现了人手运动的鲁棒性跟踪,在出现跟踪丢失的情况下在后续序列中可以自动恢复正确跟踪。中国科学院自动化研究所模式识别实验室提出一种基于区域的多连接体(手指)的三维运动跟踪算法[13],用多约束融合的方法以及手指的运动特性,建立多刚体的三维运动描述,通过三类基本约束条件,把跟踪问题归结为一个约束误差优化问题。清华大学的崔锦实博士,提出一种基于回归-优化方法的关节式物体的姿态估计方法[16]。该方法把回归分析与全局优化搜索相结合,保证了估计的精度和连续性;针对现有滤波器在高维非线性多峰

人机交互各章知识点

人机交互各章知识点 第1章 1. 人机交互的概念,所涉及的学科及关系。 答:人机交互(Human-Computer Interaction,HCI)是关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的科学。 人机交互技术与认知心理学、人机工程学、多媒体技术和虚拟实现技术密切相关。其中,认知心理学与人机工程学是人机交互技术的理论基础,而多媒体技术、虚拟实现技术与人机交互技术是相互交叉和渗透的。 2. 人机交互研究的内容。 答:人机交互的研究内容有人机交互界面表示模型与设计方法、可行性分析与评估、多通道交互技术、认知与智能用户界面、群件、Web设计、移动界面设计。 3. 人机交互经历的三个阶段 答:命令行界面交互阶段、图形用户界面交互阶段、自然和谐的人机交互阶段 4. 发展趋势 答:集成化、网络化、智能化、标准化 5. 狭义的讲人机交互技术 答:人机交互技术主要是研究人与计算机之间的信息交换,主要包括人到计算机和计算机到人的信息交换两部分。 第2章 1. 人的主要的感知方式答:视觉、听觉、触觉 2. 人的常见认知过程 答:1、感知和识别 2、注意 3、记忆 4、问题解决5、语言处理 交互原则:许多认知过程是相互依赖的,一个活动可同时涉及多个不同的过程,只涉及一个过程的情况非常罕见。 3. 人机系统设计步骤答:(1)需求分析阶段(2)调查研究阶段(3)系统分析规划阶段 (4)系统设计阶段(5)测试阶段(6)人机系统的生产制造及提交使用阶段 4. 人机工程学的定义 答:人机工程学是研究“人-机-环境”系统中人、机、环境三大要素之间的关系,为解决系统中的人的效能、健康问题提供理论与方法的科学。 第3章 1. 交互设备的的分类输入设备 { 文本输入设备:键盘、手写输入设备(手写板)图形输入设备:二维扫描仪、数码摄像头三维信息输入设备:三维扫描仪、动作捕捉设备指点输入设备:鼠标、光笔、控制杆板、触摸屏} 输出设备 显示器、打印机、语音交互设备(耳麦、声音合成设备) 虚拟现实交互设备: 三维空间定位设备(空间跟踪定位器、数据手套、触觉和力反馈器),三维显示设备(立体视觉、头盔式显示器、V A VE(洞穴是现实环境)、裸眼立体显示器、真三维显示) 第5章 1. 人机界面的分类方式: 根据用户界面的具体形式、根据根据用户界面中信息载体的类型、根据计算机输出信息的形式 图形用户界面有哪几种:命令行界面、图形界面和多通道用户界面 2. 图形用户界面的三个重要思想 答:1.桌面隐喻 2.所见即所得 3.直接操纵 3. 设计用户界面的一般性原则 答:(1)界面要具有一致性 (2)常用操作要有快捷方式 (3)提供必要的错误处理功能

人机交互的方式与种类

人机交互的方式与种类 初步看到这个课题,并不清楚人机交互的概念,经过老师的讲解和个人的搜索资料,才明白人机交互是一门研究系统与用户之间的交互关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。 从学习中了解到,人机交互这个科研项目已有近百年历史,早在59年,美国学者B.Shackel从人在操纵计算机时如何才能减轻疲劳出发,提出了被认为是人机界面的第一篇文献的关于计算机控制台设计的人机工程学的论文。自此,人机交互的概念被提出,时至今日,人机交互已有自己的方式,如:命令行方式、图形化界面,其主要目的就是为了让用户在操作和使用时感觉方便,提高数据管理效率。 目前,人机交互系统已发展成熟,被应用到各个领域,如:汽车领域。该系统实现了人与车之间的对话功能。车主可通过该系统,轻松把握车辆状态信息(车速、里程、当前位置、车辆保养信息等)、路况信息、定速巡航设置、蓝牙免提设置、空调及音响的设置。 再有多媒体与虚拟现实系统,与传统用户界面相比,引入了视频和音频之后的多媒体用户界面,最重要的变化就是界面不再是一个静态界面,而是一个与时间有关的时变媒体界面。 还有窗口系统。窗口系统是控制位图显示设备与输入设备的系统软件。它所管理的资源有屏幕、窗口、象素映象(pixmap)、色彩表、字体、光标、图形资源及输入设备。 人机交互还在人机工程学,认知心理学,脸部追踪等多个领域中实现着它的价值,人机交互技术是目前用户界面研究中发展得最快的领域之一,对此,各国都十分重视。美国在国家关键技术中,将人机界面列为信息技术中与软件和计算机并列的六项关键技术之一,并称其为"对计算机工业有着突出的重要性,对其它工业也是很重要的"。在美国国防关键技术中,人机界面不仅是软件技术中的重要内容之一,而且是与计算机和软件技术并列的11项关键技术之一。因此,保持在这一领域中的领先,对整个智能计算机系统是至关重要的。我们可以以发展新的人机界面交互技术为基础,带动和引导相关的软

人机交互技术现状与发展趋势研究【文献综述】

毕业论文文献综述 教育技术学 人机交互技术现状与发展趋势研究 本文的目的是通过对国内外人机交互技术的历史及现状回顾,来揭示人机交互技术的发展规律。人机交互技术伴随着计算机而诞生,它的发展与计算机息息相关,从70年代中后期第一个图形用户界面的产生到如今已经有了三十多年的发展历程。本文将系统的介绍国内外学者对人机交互技术的研究历程和研究领域以及提出的主流技术,并提出自己对人机交互技术发展趋势的展望。 一、国内外研究历史及各种观点 1.国外研究历史 1959年美国学者B.Shackel从人在操纵计算机时如何才能减轻疲劳出发,提出了被认为是人机界面的第一篇文献的关于计算机控制台设计的人机工程学的论文。1960年,Liklider JCK首次提出人机紧密共栖(Human-Computer Close Symbiosis)的概念,被视为人机界面学的启蒙观点。1969年在英国剑桥大学召开了第一次人机系统国际大会,同年第一份专业杂志国际人机研究(IJMMS)创刊。可以说,1969年是人机界面学发展史的里程碑。在1970年成立了两个HCI研究中心:一个是英国的Loughbocough大学的HUSAT研究中心,另一个是美国Xerox 公司的Palo Alto研究中心。 1970年到1973年出版了四本与计算机相关的人机工程学专著,为人机交互界面的发展指明了方向。 20世纪80年代初期,学术界相继出版了六本专著,对最新的人机交互研究成果进行了总结。人机交互学科逐渐形成了自己的理论体系和实践范畴的架构。理论体系方面,从人机工程学独立出来,更加强调认知心理学以及行为学和社会学的某些人文科学的理论指导;实践范畴方面,从人机界面(人机接口)拓延开来,强调计算机对于人的反馈交互作用。人机界面一词被人机交互所取代。HCI中的I,也由Interface(界面/接口)变成了Interaction(交互)。 20世纪90年代后期以来,随着高速处理芯片,多媒体技术和Internet Web技术的迅速发展和普及,人机交互的研究重点放在了智能化交互,多模态(多通道)-多媒体交互,虚拟交互以及人机协同交互等方面,也就是放在以人为在中心的人机交互技术方面。 2.国内研究历史: 国内对人机交互技术的研究比较晚,在20世纪90年代开始起步,到世纪末

人机交互控制

虚拟驾驶系统场景管理平台设计 -- 宣爱练车房人机交互控制 场景系统输入控制包括由驾驶者控制汽车运动的基本操作,包括对方向盘、油门、离合、刹车和档位转换等,以及触及点火开关、转向指示灯按钮、喇叭鸣笛按钮等辅助性操作,还有就是针对软件运行过程中的某些设置功能的键盘和鼠标操作。读入的汽车运动控制信息,通过汽车的动力学模型运算后,交互控制视觉场景的显示。画面输出除了视景的变化外,同时输出经过汽车动力模型计算后产生的汽车运行信息,包括当前速度、档位、点火开关状态、鸣笛状态、转向指示状态等。 如果仅仅依赖windows的消息机制,系统的实时性则难以达到要求,由于DirectInput直接与设备驱动进行通讯,具有底层输入获取的处理能力,其能够立即响应硬件的中断,不需要经过windows系统的消息机制,保证信号处理的实时性,所以本程序利用DirectInput组件提供的输入接口功能,实现控制信号的输入。输入设备包括三个设备:鼠标、键盘和专用的驾驶模拟游戏杆。利用了主板上的键盘和鼠标输入接口,使输入信号以系统能识别的键盘鼠标兼容的数据形式输入系统,由DirectInput获取并处理,游戏杆采用最新的罗技公司生产的针对赛车类游戏的专业G25型游戏杆,它可以提供包括对方向盘、油门、离合、刹车和档位的操作,通过DirectInput接口将驾驶操纵信号输入到场景管理平台中。 1.操作设备输入的设置和初始化 DirectInput组件由支持COM接口的DirectInput对象和每一种提供数据的输入设备对象组成。DirectInput对象在程序中表征DirectInput子系统,用于查询和管理输入系统。创建DirectInput对象之后,可以使用该对象的接口方法查询系统中的可用输入设备,并为程序中需要使用的每一个设备创建一个DirectInputDevice对象。在DirectInputDevice设备对象创建出来后,必须为它设置设备的属性和数据的读取格式。每一个DirectInputDevice对象都表示了

人机交互

1.1什么是人机交互(HCI)是指关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的学科。狭义地讲,人机交互技术主要是研究人与计算机之间的信息交换。人到计算机的信息交换是用手、脚、声音、姿势或身体的动作、视线甚至脑电波等像计算机传递信息,计算机到人的信息交换是用输出或显示设备向人们提供可理解的信息。 1.2人机交互的研究内容1.人机交互界面表示模型与设计方法 2.可用性分析与评估 3.多通道交互技术 4.认知与只能用户界面 5.群件 6.Web设计 7.移动界面设计 1.3人机交互的发展历史1.命令行界面交互阶段 2.图形用户界面交互阶段 * 3.自然和谐的人机交互阶段2.1人的感知:1.视觉 2.听觉 3.触觉 2.2影响认知的因素: 1)情感(积极的情感会使人的思想更有创造性、解决复杂问题的能力更强,而消极的情感使人的思考更加片面,还会影响其他方面的感知和认知能力) 2)人的个性差异 2.3对概念模型的认知:1.思维模型 2.信息处理模型 3.外部认知模型 3.1输入设备 1.文本输入设备(键盘、手写输入设备) 2.图像输入设备(二维扫描仪、数码摄像头) 3.三维信息输入设备(三维扫描仪、动作捕捉器) 4.指点输入设备(鼠标、 光笔、控件杆、触摸板、触 摸屏) 3.2输出设备:显示器、打 印机、语音交互设备 *3.3显示器的工作原理:显 示器是计算机的重要输出 设备,是人机对话的重要工 具。它的主要功能是接受主 机发出的信息,经过一系列 的变换,最后以光的形式将 文字和图形显示出来。 3.4显示器的类型阴极射 线管显示器、液晶显示器、 等离子显示器 阴极射线管显示器原理: 主要由阴极、电平控制器、 聚焦系统、加速系统、偏转 系统和阳极荧光粉涂层(前 四个组成电子枪)组成。CRT 显示终端的工作原理就是 将显像管内部的电子枪阴 极发出的电子束,经强度控 制、聚焦和加速后变成细小 的电子流,再经过偏转线圈 的作用向正确的目标偏离, 穿越荫罩的小孔或栅栏,轰 击到荧光屏上的荧光粉发 出光。 液晶显示器的原理: 以电流刺激液晶分子产生 点、线、面,并配合背部灯 管构成画面。液晶显示器依 驱动方式可分为静态驱动、 单纯矩阵驱动及主动矩阵 驱动三种。由于成像原理的 不同,LCD比CRT显示器具 有更好的图像清晰度、画面 稳定性和更低的功率消耗。 *4.1人机交互输入模式:请 求模式、采样模式、事件模 式 请求模式原理:在请求模式 下,输入设备的启动是在应 用程序中设置的。应用程序 执行过程中需要输入数据 时,暂停程序的执行,直到 从输入设备接收到请求的 输入数据后,才继续执行程 序。应用程序和输入设备交 替工作,如果要求进行数据 输入时,用户没有输入,则 整个程序被挂起。 采样模式原理:在采样模式 下,输入设备和应用程序独 立的工作。输入程序连续不 断地把信息输入进来,信息 的输入和应用程序中的输 入命令无关。应用数据在处 理其他数据的同时,输入设 备也在工作,心得输入数据 替换以前的输入数据。当应 用程序遇到取样命令时,读 取当前保存的输入设备数 据。这种模式对连续的信息 流输入比较方便,也可同时 处理多个输入设备的输入 信息。 事件模式原理:在事件模式 下,输入设备和程序并行工 作。输入设备把数据保存到 一个输入队列,也称为事件 队列,所有的输入数据都保 存起来,不会遗失。每次用 户对输入设备的一次操作 以及形成的数据叫做一个 事件当某台设备被置成事 件方式,应用程序和设备将 同时、各自独立地工作。从 设备输入的数据或事件都 存放在事件队列里,事件以 发生的时间排序。 4.2.基本交互技术:定位、 笔画、定值、选择、字符串 5.1图形用户界面的主要思 想:桌面隐喻、所见即所得、 直接操纵 5.2桌面隐喻:隐喻的表现

相关文档