您当前的位置:五五电子网电子知识电子知识资料电动机-发电机高清视频监控的I2C总线云台电机控制设计方案 正文
高清视频监控的I2C总线云台电机控制设计方案

高清视频监控的I2C总线云台电机控制设计方案

点击数:7917 次   录入时间:03-04 12:04:03   整理:http://www.55dianzi.com   电动机-发电机
  
  ptr.dataSize = 1;ptr.reg = reg; ptr.count = count; ptr.value = value;
  
  cmd = CMD_WRITE;
  
  status = ioctl(fd, cmd, & ptr);
  
  if (status != 0)
  
  printf("ioctl I2C_CMD_WRITE error!");
  
  return status;
  
  }
  
  如图4所示,函数最终通过条用ioctl这个函数实现对驱动的调用,其中参数fd是设备句柄,cmd读写控制是命令, 其中宏定义I2C_CMD_SET_DEV_ADDR为地址设置命令,I2C_CMD_READ向内核读取数据命令, I2C_CMD_WRITE向内核写入数据命令。

  其他3个读写函数实现过程类似,这几个函数是数据写入读出的函数接口,方便应用层实现调用。
  
  6 云台电机控制应用程序设计
  
  云台很重要部分是电机转动控制,本课题研究采用图像界面实现人机交互,其中界面设计采用QT图形界面软件来设计,可以在界面操作实现电机的水平转动、垂直转动,逆时针转动和顺时针转动,从而带动视频监控的摄像头朝不同方位转动以及定位,如图所示。根据协议,应用程序设计主要实现以下操作:
  
  (1)获取当前的垂直位置,函数接口为get_motor_curVertICal_ptr (),返回垂直位置值;
  
  (2)获取当前的水平位置,函数接口为get_motor_curHorizontal_ptr (),返回水平位置值;
  
  (3)设置垂直运行的停止位置,函数接口为set_motor_vertical_ptr (unsigned short ptr),参数ptr为设置的垂直停止位置值;
  
  (4)设置水平运行的停止位置,函数接口为set_motor_horizontal_ptr (unsigned short ptr)参数ptr为设置的水平停止位置值;
  
  (5)水平操作和垂直操作的启动操作,接口函数为set_motor_opt(bool bVertical, bool bHorizontal) ,参数bVertical表示是否启动垂直操作,bHorizontal表示是否启动水平操作
  
  (6)设置运行速度,函数接口为set_motor_speed(unsigned char vertical_speed, unsigned char horizontal_speed),参数vertical_speed控制垂直方向速度值,horizontal_speed控制水平方向速度值;
  
  (7)设置电机运行方向,接口函数set_motor_direction(bool bVertical, bool bHorizontal) ,设置运行方向为顺时针或者逆时针,参数bVertical为真表示垂直方向向上运动,为假表示向下运动;bHorizontal为真,表示水平方向逆时针,否则为顺时针。
  
  下面通过运动速度的接口函数set_motor_speed(),详细介绍云台控制接口函数的实现过程,电机转动速度设置函数设置set_motor_speed(),其中函数参数vertical_speed为垂直方向运动速度;horizontal_speed为水平方向运动速度,局部变量reg用于制定控制类型,value设计为16位,其中高8位存放垂直转动速度数值命令,低8为存放水平转动速度数值,参数设置完后调用I2c_Write16()函数,从而调用ioctl实现对驱动的调用,最终通过I2C总线控制电机,达到电机快速转动、定位准确。
  
  set_motor_speed(unsigned char vertical_speed, unsigned char horizontal_speed) {
  
  int ret;
  
  unsigned char reg;
  
  unsigned short value=0;
  
  reg = 3;
  
  value = vertical_speed<<8;
  
  value |= horizontal_speed;
  
  ret = I2c_Write16 (fd, ?, &value);
  
  if (ret != 0)
  
  printf("set_motor_speed error");
  
  return ret;
  
  }
  
  通过实现人机交互操作程序,实现电机的向上转动、向下转动,逆时针转动和顺时针转动,通过调用各种操作的接口函数,实现对I2C应用程序的调用,最用通过ioctl实现对电机的控制,从而带动视频监控的摄像头朝不同方位转动以及定位,具体实现如图4所示。 

7 结束语

本系统设计实现了一款基于TMS320DM368的高清视频监控系统中的云台电机控制设计,完成了i2c驱动程序的分析以及设计,并且完成了i2c应用程序的设计和云台电机控制应用程序设计,达到了应用目的,取得了良好效果。



上一页  [1] [2] 


本文关键字:电机  监控  高清视频  电动机-发电机电子知识资料 - 电动机-发电机