飞思卡尔 熟悉小车之 舵机篇

今天重新回到科创中心,开始飞思卡尔的旅程

这个寒假已经把野火k60的上手视频全部自学完了,并没有觉得有多难。而且在大一下学期和大二上学期,我参加了各种程序大赛,c语言的基础还是有的。再加上自学了半个学期的51单片机,所以觉得入门没有多难。

但直到我今天打开飞思卡尔小车例程代码,我不禁感慨,要学的还是蛮多的,跟入门根本是两回事,或许可以说根本搭不上。

我的任务是负责软件这一块,核心是图像处理,但是跟着学习了解小车的各个方面还是很有必要的,接下来我将用博客记录我在未来半年里的点点滴滴(哦,我也带着将我之前参加数学建模国赛,美赛的感悟带着补全)

舵机是调节方向的核心,其灵敏度和准确性对小车的影响都很大。

小车电机测试代码

void motor_init()
{  
    tpm_pwm_init(TPM0 , TPM_CH0 , 20000 , 0);      //初始化 电机 PWM为0
    tpm_pwm_init(TPM0 , TPM_CH1 , 20000 , 0);      
    tpm_pwm_init(TPM0 , TPM_CH2 , 20000 , 0);      
    tpm_pwm_init(TPM0 , TPM_CH3 , 20000 , 0);      
}
 
Void main()
{
motor_init();
While(1)
{
tpm_pwm_init(TPM0 , TPM_CH0 , 0);      //初始化 电机 PWM为0
        tpm_pwm_init(TPM0 , TPM_CH1 , 50);      
        tpm_pwm_init(TPM0 , TPM_CH2 , 50);      
tpm_pwm_init(TPM0 , TPM_CH3 , 0);
 
}
 
}

注意要点

1.占空比与舵机的控制

飞思卡尔 熟悉小车之 舵机篇

    可以这样理解,电机占空比为0的就类比于电机驱动板的接地,不为0的占空比就是控制信号就是看成正极,这样电流不就可以流动了me.

飞思卡尔 熟悉小车之 舵机篇

关于舵机调中的问题和转动角度的问题

1.这里随便举个例子,例如,舵机调中时可用舵机0度时的占空比,根据上图输入脉宽与转角的关系知道舵机0度时对应高电平时间为1.5ms,那么根据上面的来计算就是:

占空比分子 =  (1.5  / 20)* 10000(我设置的周期是20ms,精度是10000) 最后算出为750,这就可以将750这个占空比分子做为舵机的中值,让舵机打到这个角度后再装上舵盘以及舵机的两臂,这就是舵机的调中。

2.舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位置为中间位置。舵机有最大转动角度,中间位置的定义就是从这个位置到最大角度与最小角度的量完全一样。最重要的一点是,不同舵机的最大转动角度可能不相同,但是其中间位置的脉冲宽度是一定的,那就是1.5ms。如下图:

飞思卡尔 熟悉小车之 舵机篇

角度是由来自控制线的持续的脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如:1.5毫秒脉冲会到转动到中间位置(对于180°舵机来说,就是90°位置)。当控制系统发出指令,让舵机移动到某一位置,并让他保持这个角度,这时外力的影响不会让他角度产生变化,但是这个是由上限的,上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度,舵机的角度不会一直不变。
当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。如下图:


1频率每个舵机都有最适合他的频率,找到它对于测试车辆显得尤为重要。

          周期很频率是相关的,20Hm,但是需要注意的是频率越高,舵机反应是变快了但是力的输出却变小了,所以大家要根据需           要权衡一下速度与力。

        2.分的精度,例如将2PI分成100,1000,或是2000份,都是因人而异。

        3.与电机要共地,否则会,导致舵机无法转到指定角度