当前位置:首页 > 单片机 > 单片机
[导读]以仿生机器鱼实验平台为载体,介绍基于 PIC18F452单片机的舵机控制方法。主要围绕舵机的角度控制和速度控制进行了深入浅出的介绍,并给出了相应的程序实例。

仿生机器鱼实验平台属于教育部和北京邮电大学共同出资支持的一项“国家级大学生创新性实验计划”项目,是一个集光、机、电、流体、智能于一体的实验平台,研究内容包括:仿生机器鱼机械结构的研究,推荐效率的研究以及控制性能的研究。
    1 仿生机器鱼平台简介:
    设计制作的机器鱼模仿鲹科鱼类的外形,头部采用刚性结构的塑料材料。其形状采用流线型,模仿真鱼鱼头的形状和大小比例。在鱼头的内部空间里安装电源及控制电路,并在鱼头两侧鱼眼处及在头前部的偏下侧安装了3 个红外传感器,构成了一个探测左、前、右三个方向的传感器网络,让鱼具有自助避障的功能。
    使用铝合金制作的鱼骨架把三个舵机串联起来,鱼骨架支撑起套于舵机外面的橡胶鱼皮,便构成了了机器鱼的鱼身这个三关节的驱动系统。使用铝合金制作的连接件将鱼身通过螺纹连接的方式固定在在刚性鱼头上,鱼身的橡胶鱼皮使用热熔胶粘在鱼头上,这样便构成了机器鱼的整体结果。具体如图1 所示。实验证明,这种方法简单易行,且方便拆卸和组装。

机器鱼技术指标:巡游速度:1.2~1.5m./s;全电量巡游距离:4.5~5.5 千米;转弯半径:15~20cm。


    2.系统组成及工作原理:

从功能上看,整个鱼体的系统可以分成三大块,分别是:感知区,决策区,行为区。感知区对应着多红外传感器网络和无限传输模块,而决策区指的是主控芯片(MCU),动作区对应着舵机串联组成的三关节驱动系统。具体如图2所示。本系统的最重要的工作集中在对多舵机的协调控制,因此主要围绕舵机的控制工作进行细致详尽的介绍。


    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;i<j;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° 之间的转角。
    3.2.2 多舵机不同角度的控制:
    通过多舵机不同角度的控制,可以控制几个舵机同时向不同角度扭转,以达到预期的控制目的。
    具体的实现方法是:在定时器延时函数中设定一个计时值t(在程序中t 在初始化时值为0),使t 在每次定时器计时完毕时加1。例如,定时器一周期的定时时间为0.25ms,则t值每加1 就相当于0.25ms。当t 的代表值达到20ms 也就是当t 等于80 时清零,这样就可以将脉冲周期控制在20ms,再通过使用if 语句查询方式,可以调节同一周期脉冲的脉冲宽度,即能使多舵机同时向不同角度旋转。
    程序示例:(晶振为:4MHZ,脉冲从PORTDbits.RD0,PORTDbits.RD1,PORTDbits.RD2三个端口中输出)
    if(t=0) //端口初始化
    {
        PORTDbits.RD0=1
        PORTDbits.RD1=1
        PORTDbits.RD2=1
    }
    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;
        t++
    }
    else goto L1;
    if(t=4)
        PORTDbits.RD0=0; //脉冲宽度为:1ms
    else if(t=6)
        PORTDbits.RD1=0; //脉冲宽度为:1.5ms
    else if(t=8)
        PORTDbits.RD2=0; //脉冲宽度为:2ms
    else(t=80)
        t=0; //脉冲周期为:0.25ms*80=20ms
    通过以上程序再配合for 循环,便能在PORTDbits.RD0,PORTDbits.RD1,PORTDbits.RD2三个端口得到脉冲宽度分别为1ms,1.5ms,2ms,周期同为20ms 的三种周期脉冲信号,从而达到对三个舵机同时进行不同控制的要求。当然利用以上的方法,可以很轻松地对3 个以上的多个舵机同时进行控制。
    3.3 舵机的速度控制
    通过舵机的特性可以了解到舵机的瞬时运动速度是由其内部的直流电动机和变速齿轮组的配合来决定的,在恒定的电压驱动下,其数值是恒定的。但舵机的平均运动速度可通过分段停顿的控制方式来改变,例如,把动作幅度为90°的转动细分为128 个停顿点,通过控制每个停顿点的时间长短来实现0°到90°变化的平均速度。也就是说,将90 度的连贯一步转动变为128 个停顿的步进转动,通过每步之间的短暂停顿可实现减速的目的,因为停顿时间非常短因此可看做是90°的连贯转动,由于篇幅的限制,这里不再给出相应的程序实例,感兴趣的读者可以自己参考上面的程序实例进行编写。
    4.结束语
    本文介绍的这种方法产生的PWM 波形精度高,能够很好的完成舵机的控制工作,舵机工作稳定,我们设计制作的机器鱼成功地实现了鱼类的一些基本运动动作,如前游,加速,停止,前进中转弯等,这也验证了所采用的多关节驱动方式和对多舵机的控制方法是行之有效的。本文通过以仿生机器鱼为载体进行撰文,意在抛砖引玉,希望对其它的舵机控制应用起到帮助。
    本文作者创新点:
    文中以仿生机器鱼为运用背景,采用PIC18F452 单片机作为舵机的控制单元,运用单片机的定时器从单片机的端口产生周期性脉冲信号
    参考文献(Reference):
    [1] 刘和平. PIC 18Fxxx 单片机原理及接口程序设计.北京:北京航空航天大学出版社,2004
    [2] 李学海. PIC 单片机实用教程-提高篇(第2 版).北京:北京航空航天大学出版社,2007
    [3] 王志良,周卓,靳松,赵积春. 竞赛机器人制作技术.北京:机械工业出版社,2007
    [4] 周志强,王志良,张雪元,黄海欢. 仿生机器鱼的设计及其运动控制研究. 微计算机信息, 2006 年 第22 卷 第17 期

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

步进电机是一种常用的伺服系统,广泛应用于各种工业和商业领域。它通过接收脉冲信号来转动,从而实现精确的角度控制。在许多应用中,单片机被用来控制步进电机,以实现复杂的功能。本文将介绍几种常见的单片机如何控制步进电机。

关键字: 步进电机 脉冲信号 单片机

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP
关闭
关闭