EDN China > 设计实例 > 嵌入式系统 > 参考设计 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

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

廖建尚?? 广东交通职业技术学院 计算机工程学院 单片机与嵌入式系统应用?? 2015年05月14日 ?? 收藏0

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所示。

图4 云台电机控制应用程序设计图
图4 云台电机控制应用程序设计图
(点击查看大图)

7 结束语

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

参考文献

[1]张志.高速公路高清视频监控系统的构建[D].北京,中国交通信息化。201104

[2]邓旻熙.基于DM365的智能视频分析系统的设计与实现[D].成都,电子科技大学.2011

[3]Texas Instruments Incorporated. TMS320DM368 digital media sys-tem-on-Chip( DMSoC) . http://www.ti.com/lit/ds/symlink/tms320dm368.pdf.2014-03

[4]Philips Corp. The I2C- BUS Specification Version 2. 1[Z],2000

[5]高非非. ARM-Linux中I2C总线驱动开发[D].北京,微型机与应用,201203

[6] TMS320DM36x Digital Media System-on-Chip(DMSoC)Inter-Integrated Circuit(I2C)Module User's Guide

http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html.[2014-03]

[7]linux-2.6.32.17 http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html.[2014-03]

[8]ARM9: http://www.arm.com/zh/products/processors/classic/arm9/index.php

[9]TMS320DM36x Digital Media System-on-Chip(DMSoC) ARM Subsystem User's Guide http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html.[2014-03]

[10]DanielP.Bovet.Understanding the Linux Kernel [M] .北京:中国电力出版社,2007:354-669.

[11]Jonahan Corbet. Linux Device Drivers [M].北京:中国电力出版社,2006.

[12]W. Richard Stevens,Advanced Progamming in the UNIX Environment Fourth Edition[M],北京,人民邮电出版社,2006

【分页导航】


上一页12345下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

视频监控系统? 云台电机控制?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈