本文主要介绍了智能科技两轮自平衡机器人的设计系统方案。该方案以K60系列单片机作为系统控制处理器,采用陀螺仪、加速度仪传感器对机器人进行直立控制,运用PID算法对两个驱动马达进行差速控制确保平衡性能。文中将介绍机器人系统硬件设计以及系统软件设计的主要内容。
1.引言
由于特殊的结构,自平衡机器人适应地形变化能力强,运动灵活,可以胜任一些复杂环境里的工作。[1]但因两轮自平衡小车的应用最大的难点在于其平衡控制方面,所以本文针对该系统的基本平衡控制问题设计了最佳控制方案,仿真实验结合实际系统实验均实现了其对平衡控制,验证了控制效果。
2.系统硬件设计
本系统方案以K60系列中MK60N512VMD100微控制器为系统的主要控制单元。采用MMA7260三轴加速度计和ENC-03M做为检测机器人模型直立姿态的传感器,并通过AD采样后以数字信号的形式反馈给单片机,单片机进行PID运算处理后对两个驱动马达通过PWM的方式施加控制,使得车体自动直立得到实现。然后在驱动马达上叠加一个速度控制分量,加以使用光电编码器检测车轮速度,实现了车模速度的控制。
3.软件设计
本次设计研究的自平衡机器人软件部分主要由加速度传感器数据采集模块、电机控制模块、PID算法控制模块三个部分构成。
3.1MMA7260三轴加速度计AD采集
由于MK60N512VMD100芯片本身自带AD采样的I/O口,所以只需配置好所需的ADC寄存器ADC0_SC1A(ADC 状态控制寄存器 1)、ADC0_RA(ADC 数据结果寄存器)即可实现对MMA7260三轴加速度计的数据采集。[2]以下为关键采样程序段:
while (( ADC0_SC1A & ADC_SC1_COCO_MASK ) != ADC_SC1_COCO_MASK)
{
}
result = ADC0_RA;
ADC0_SC1A &= ~ADC_SC1_COCO_MASK;
3.2电机控制模块
电机的控制采用PWM脉冲宽度调制控制,PWM信号通过L298放大后直接控制小型直流电机驱动两轮小车运动,主要的程序段如下:
if(speedValue>=0&&speedValue<=1000)
{
FTM0_C6V=speedValue;
FTM0_SYNC|=FTM_SYNC_SWSYNC_MASK;//使能软件触发
}
3.3PID算法控制模块
PID算法是控制小车自主平衡的关键,PID算法就是将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控制对象进行控制。[3]此程序通过PID算法对机器人平衡系统的稳定性进行优化,使其抗干扰能力得到更好的提升。
4.结束语
本文讨论的是一种两轮自平衡机器人运动控制系统。从系统中关键的加速度传感MMA7260芯片人手,对系统的硬件组成进行了详细的介绍,在软件方面主要针对系统的传感器模拟信号输入的读人、电机控制信号的输出以及控制算法的实现方面进行了分析,并给出关键的程序段,所有软硬件系统通过了调试运行,证明系统组成是可行的。
作者简介:
田啸宇(1995-),男,汉族,新疆阿克苏人,在读本科生,专业:电气工程及其自动化。