基于单片机的红外遥控监控摄像头装置设计

2013-08-10 12:46:50凡,王粟,汪
湖北工业大学学报 2013年1期
关键词:遥控按键摄像头

夏 凡,王 粟,汪 峰

(湖北工业大学电气与电子工程学院,湖北 武汉430068)

1 系统的工作原理

1.1 步进电机的工作原理

本设计采用型号为28BYJ48的步进电机,它是四相八拍永磁式减速电机,步距角度为5.625/64,减速比为1∶64,定位转矩大于或等于300Nm[1].本设计通过控制脉冲的个数来控制角位移,达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,达到调速的目的.

由于步进电机不能直接采用直流或者普通交流供电,必须采用专门的步进电机驱动控制器,步进电机驱动控制器基本原理见图1,由脉冲发生与分配单元、功率驱动单元、反馈与保护单元组成.

图1 步进电机驱动控制基本原理框图

综合28BYJ48型步进电机的参数与步进电机的驱动特点,本设计采用四只9012的三极管,共集电极安放,将MC0-3电平反向输出,以此增强电流驱动能力,具体原理图如下:

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动.每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角).步进电机旋转一周所需要的指令个数

其中m=8,即可以得到S′=4096.

那么旋转一度所需要的指令数为4096/360,要旋转N度,所需要的指令数

通过式(1)和式(2),达到准确控制步进电机旋转角度的目的.

图2 步进电机设计原理图

当通电状态的改变完成一个循环时,转子转过一个齿距.四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(ABBC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…).驱动方式见图3.

图3 步进电机驱动方式示意图

1.2 系统工作原理

由运行人员通过单片机实时控制两个不同平面的步进运转,步进电机通过机械耦合连接到监控摄像头上,当步进电机运行时,会带动其监控摄像头的相应旋转.

具体而言,就是通过红外通信遥控器和按键输入器件,控制两个步进电机的相应运转,并由LED显示出步进电机实时工作状态,调节两个不同平面的步进电机转向时,监控摄像头会在三维空间中任意角度旋转;同时合理控制两个步进电机转速,使监控摄像头匀速或加速度旋转;预设步进电机的转动圈数,让运行人员自定义监控摄像头的运转时间,达到监控摄像头定时旋转的效果.系统结构框图见图4.

图4 系统结构框图

2 硬件设计

在清楚了解整个系统的原理后,即可对整个系统的硬件进行设计,主要有下面内容:单片机控制模块,LED显示模块,红外遥控模块,按键输入模块,摄像头组装模块等.

2.1 单片机控制模块

以STC89C51高性能CMOS 8位单片机为核心器件,具有以下标准功能:8KB Flash存储器,256BRAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口,片内晶振及时钟电路[1],它使用高密度、非易失性存储器技术制造,按照设计原理一般化设计,不再赘述.

2.2 LCD显示模块

本系统采用的LCD是1602字符液晶模块,能够同时显示16字、2行即32个字符.

由于硬件设计原因,该处I/O比较紧缺,故将P1口左侧的JP14跳线跳帽到Motor一侧(左侧),LCD模块的ADDR0到ADDR3四个口需要用杜邦线引出来,连接相对应的P3.0,P3.1,P3.2和P3.5口,以使LCD正常工作.

图5 显示译码与步进电机的选择接口

2.3 红外遥控模块

采用HS0038作为红外遥控接收端,HS0038是一个集红外线信号接收和放大为一体的三端元器件,其中心接收频率为38kHz,3个引脚分别为:1—地,2—电源,3—数据输出.当接收到38kHz的红外信号时,输出端为低电平;没有接收到38kHz的红外信号时,输出端为高电平.HS0038的具体硬件电路见图6.

图6 HS0038的硬件电路

2.4 按键输入模块

由于系统中的其他模块对端口占有不多,所以在键盘连接上采用每一排按键组成独立式按键进行控制,共4排独立式按键形成了矩阵按键(图7).

本设计采用软件去斗,即检测出键闭合后执行一个延时程序,产生5~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下[2].

图7 按键电路

2.5 摄像头组装模块

摄像头组装就是用来使监控摄像头与两个不同平面上的步进电机机械连接的部分.具体处理办法是在步进电机的输出轴上套装一个齿轮套,该齿轮套与一个带齿轮的支柱相啮合,再将该支柱与监控摄像头底座齿轮组相啮合[3],由此,当步进电机左右旋转时会带动监控摄像头底座齿轮旋转,达到监控摄像头自由旋转的目的.

3 软件设计

系统采用C语言模块化结构软件设计.随着代码量不断加大,将所有代码放在同一个C文件中使得程序结构混乱,可读性和可移植性较差,采用模块化设计,能够有效解决此类问题.

仿真系统的程序在KEIL C51Vision3环境下编译.程序主要包括:数据读取程序、正反转判断程序、步进电机驱动程序和红外遥控解码程序(图8).

图8 主程序流程图

程序设计过程中,分别将红外DS1302、1602、蜂鸣器等程序模块进行封装,等待主函数的调用.从图9中可以看出,单片机上电工作后,LCD显示初始状态信息平台,控制步进电机驱动的定时器0子程序和控制红外解码的外部中断1子程序等待相应指令.首先在主函数进行系统的初始化过程,设置定时器0的初始值、显示LCD初始态等,当按键或红外遥控输入信号时,定时器0中断子程序进行运行,对T0进行重装初值,不停的统计脉冲个数,当满足相关条件后,步进电机进行对应的驱动程序,程序运行代码如下:

void motor_onoff()interrupt 1

TL0=0x33;

TH0=0xf5;

q++;

if(q<rate)

{return;}

else

{q=0;

number++;}//脉冲计数

if(number==4096)//64个脉冲电机转一圈{snum--;

number=0;

number1++;}//电机转动圈数

if(direction==1)//方向标志

{if(v<8)

{P1= FFW[v];v++;}//取数据,正转

if(v==8)

{v=0;}

else

{if(v<8)

{P1= REV[v];v++;}//取数据,反转

if(v==8)

{v=0;}

在外部中断1子程序中,通过红外遥控接收器获取红外信号,再通过红外解码程序进行红外通信的解码,将所获取的键码值存入相关数组,等待主程序的调用[4].

在运行主程序中,通过预设判断是否满足四种条件要求,如果满足进入相应状态,对步进电机进行控制;如果不满足,则直接返回到等待获取红外程序,继续等待.

图9 中断子程序流程图

4 结论

本文提出了一种基于51单片机红外遥控监控摄像头的方案,将在不同平面上的两个步进电机机械组装从而达到控制监控摄像头的旋转的目的.通过KEIL51软件与Proteus软硬件仿真验证了本方案的可行性.和传统的控制摄像头方案相比,本设计特点是:稳定性好,可靠性高,实时性强,操作简明.

在应用于实际中时,本设计的系统还存在一定不足,还需要考虑很多实际影响因素,比如两个步进电机协调度问题,如何更加精准地控制监控摄像头的旋转角度,同时考虑如何将该系统产业化等等一些实际问题,展望未来,随着技术朝着高精度、更稳定方向发展,设计中的一些死角问题也将得到很好的解决,从方案到实际应用还有一段路要走.

[1]刘波文,刘向宇,黎胜容.51单片机C语言应用开发[M].北京:北京航空航天大学出版社,2011:138-149.

[2]高 伟,曹国君.AT89单片机原理及应用[M].北京:国防工业出版社,2008:39.

[3]李少远,王景成.智能控制[M].北京:机械工业出版社,2005:53-83.

[4]戴仙金.51单片机C语言程序开发实例[M].北京:清华大学出版社,2008:323-429.

猜你喜欢
遥控按键摄像头
如何遥控引爆的
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
基于有限状态机的按键检测程序设计
电子制作(2021年3期)2021-06-16 03:14:26
他是如何遥控引爆的
一种多方向导光按键结构设计
电子制作(2016年1期)2016-11-07 08:43:05
奔驰360°摄像头系统介绍
遥控赛车
按键的多种状态检测及消抖处理方法
家电科技(2013年4期)2013-07-09 10:55:08
遥控提琴
环球时报(2012-03-28)2012-03-28 14:31:30