基于PIC单片机的仿生机器鱼的舵机控制.doc

基于PIC单片机的仿生机器鱼的舵机控制.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于PIC单片机的仿生机器鱼的舵机控制 /s/blog_5ccce2820100lofb.html 仿生机器鱼实验平台属于教育部和北京邮电大学共同出资支持的一项“国家级大学生创新性实验计划”项目,是一个集光、机、电、流体、智能于一体的实验平台,研究内容包括:仿生机器鱼机械结构的研究,推荐效率的研究以及控制性能的研究。 ??? 1 仿生机器鱼平台简介: ??? 设计制作的机器鱼模仿鲹科鱼类的外形,头部采用刚性结构的塑料材料。其形状采用流线型,模仿真鱼鱼头的形状和大小比例。在鱼头的内部空间里安装电源及控制电路,并在鱼头两侧鱼眼处及在头前部的偏下侧安装了3 个红外传感器,构成了一个探测左、前、右三个方向的传感器网络,让鱼具有自助避障的功能。 ??? 使用铝合金制作的鱼骨架把三个舵机串联起来,鱼骨架支撑起套于舵机外面的橡胶鱼皮,便构成了了机器鱼的鱼身这个三关节的驱动系统。使用铝合金制作的连接件将鱼身通过螺纹连接的方式固定在在刚性鱼头上,鱼身的橡胶鱼皮使用热熔胶粘在鱼头上,这样便构成了机器鱼的整体结果。具体如图1 所示。实验证明,这种方法简单易行,且方便拆卸和组装。 机器鱼技术指标:巡游速度:1.2~1.5m./s;全电量巡游距离:4.5~5.5 千米;转弯半径:15~20cm。 ??? 3 舵机的控制 ??? 3.1 舵机的工作原理: ??? 舵机主要由以下几个部分组成:舵盘、减速齿轮组、比例电位器(位置反馈电位计)、直流电机(马达)、控制电路板等。其工作原理:控制电路板接受来自信号线的控制信号,控制直流电机转动,直流电机带动一系列齿轮组,其齿轮组的输出轴与一个线性的比例电位器相连,该电位器把输出轴转过的角度θ 转换成比例的电压反馈给控制电路,控制电路将其与输入的控制脉冲信号比较,产生纠偏脉冲,并驱动马达正向或反向地转动,使齿轮组的输出位置与期望值相符,令纠正脉冲趋于为0,从而达到使舵机精确定位的目的。舵机是一个典型闭环反馈系统,其工作原理由图3 所示。 舵机的输入线共有三条,红色中间,是电源线,一边黑色的是地线,这两根线给舵机提供最基本的能源保证,主要是电机的转动消耗。电源有两种规格,一是4.8V,一是6.0V,分别对应不同的转矩标准,另外一根线是控制信号线,一般为白色。 ??? 3.2 单舵机和多舵机的角度控制 ??? 3.2.1 单舵机的角度控制: ??? 由舵机的工作原理可知,给舵机输入一个周期在20ms 左右,脉冲宽度在0.5ms 至2.5ms 之间的周期性脉冲信号,驱动舵机输出轴达到-90°到90° 之间的转角,呈线性变化。并且无论外界转矩怎样改变,舵机的输出轴都会保持在一个相对应的角度上,直到给它提供一个另外宽度的脉冲信号,才会改变输出角度到新的对应的位置上。通过编程,借助单片机的输出端口得到需要的周期性脉冲信号。 ??? 程序示例:(晶振为:4MHZ,脉冲从PORTDbits.RD0 输出) ??? void delay(int j) //此函数用于产生0.25ms*j 的延时 ??? { ??????? for(i=0;ij;i++) ??????? { ??????? INTCONbits.TMR0IF=0; //清TMR0 中断标志位 ??????????? T0CON=0XCF; //设定TMR0L 工作于8 位定时器方式、内部时钟、 ??????????? TMR0 不用分频 ??????????? TMR0L=0X14; //设定TMR0 每0.25ms 产生一次中断 ??????????? L1: if(INTCONbits.TMR0IF==1) ??????????????? { ??????????????? INTCONbits.TMR0IF==0; //清TMR0 中断标志位,关计时器 ??????????????? T0CON=0X4F; ??????????????? } ??????????? else goto L1; ??????? } ??? } ??? PORTDbits.RD0=1; // 输出脉冲宽度为2ms,周期为20ms 的脉冲信号 ??? delay(8); ??? PORTDbits.RD0=0; ??? delay(72); ??? 从上面的程序可知,通过改变delay 函数的形参j,可以根据需要,得到具有相应脉冲宽度和周期的脉冲信号。例如,改变以上程序段的1 至4 行为: ??? PORTDbits.RD0=1; ??? delay(4); ??? PORTDbits.RD0=0; ??? delay(76); ??? 得到输出脉冲宽度为1ms,周期为20ms 的脉冲信号,然后借助for 循环,将能得到所需要的周期性脉冲信号,驱动舵机输出轴达到-90°到90° 之

文档评论(0)

14576 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档