一种基于竞赛的两轮自平衡小车的设计

2014-10-14 17:59周牡丹陈庆利康若鹏陈泽坤
现代电子技术 2014年20期

周牡丹+陈庆利+康若鹏+陈泽坤

摘 要: 介绍一种两轮自平衡智能小车控制系统的实现方案。该系统以MC9S12XS128单片机作为主控芯片,采用一组激光传感器进行路径检测,使用ENC?03MA陀螺仪与MMA7361加速度计进行小车直立自平衡检测,利用BTS7960芯片进行电机驱动,使用增量式编码器进行速度检测,借助滑动电阻器和液晶屏对参数进行调整与观测。在软件方面,结合PWM技术和PID控制技术对小车的两个直流电机的转速进行控制,可以实现两轮小车的动态自平衡快速寻迹运行。实践表明该设计达到了理想效果。

关键词: 自平衡智能小车; 两轮小车; 直立控制; 寻迹

中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2014)20?0070?04

Design of a two?wheel self?balanced vehicle for race

ZHOU Mu?dan, CHEN Qing?li, KANG Ruo?peng, CHEN Ze?kun

(Department of Electronic Engineering, TKK College, Xiamen University, Zhangzhou 363105, China)

Abstract: An implementation scheme of control system for two?wheel self?balanced intelligent vehicle is introduced in this paper. In the system, MC9S12XS128 is used as a master microcontroller, some laser sensors are used to detect the path, ENC?03MA gyroscope and MMA7361 accelerometer are used for upright self?balanced detection of the vehicle, the chip BTS7960 is employed to drive the motor, the incremental encoder are used for the speed detection, and sliding resistors and LCD screen are utilized to adjust and observe the parameters. The speed of the two DC motors in the vehicle is controlled with PWM technology and PID control technology, so as to achieve the dynamic self?balance and fast tracking of the vehicle.

Keywords: self?balanced intelligent vehicle; two?wheel vehicle; upright control; tracking

0 引 言

两轮自平衡小车系统与倒立摆系统相似,受控对象具有多变量、非线性、强耦合等特点,在两轮自平衡车的设计实现中必须着重解决系统的稳定性、快速性、跟随性等问题[1?2]。本文设计研究的两轮自平衡小车是“智能车”竞赛中的一种,要求在规定跑道上完成竞速的比赛,需要竞赛小车具备高度的稳定性和快速性,所以设计的重点是在保证两轮动态自动平衡的前提下尽可能地提高速度 [3?4]。在系统设计与实现中,不但要确保两轮小车的自动直立平衡,还需要考虑自动寻迹的转向控制,速度平稳控制等。本文就自平衡小车的硬件系统构成和单片机实现的软件设计方案进行详细介绍。

1 系统的硬件结构

自平衡小车的硬件系统主要由单片机模块、倾斜角度检测模块、电机驱动模块、激光路径检测模块、电机测速模块、电源模块及调试模块等组成。车模控制系统的硬件电路总体框图如图1所示。

图1 小车整体硬件电路框图

1.1 电源模块

自平衡车控制系统中,不同电路模块的工作电压电流各不相同。因此电源模块需要对电池的电量进行合理分配和进行电压调节,保证各模块的具有可靠的工作电压。电源模块中包含多个电压变换的模块电路。电池采用DC 7.2 V,2 000 mA·h镍镉充电电池,OLED显示采用3.3 V电压;单片机、编码器等使用的5 V电压;电机驱动使用的7.2 V电压;驱动MOS管使用的12 V电压。采用LM2940芯片来做5 V的稳压,采用ASM1117芯片把5 V电平降为3.3 V,采用MC34063芯片把电池电压升压到12 V。为了防止车子行进过程中电池电压的下降对车子性能的影响,还用一片MC34063对7.2 V的电池电压进行7.2 V的稳压。

1.2 单片机模块

单片机选择飞思卡尔MC9S12XS128微控制单元,它包括16位中央处理器、总线可以超频至80 MHz,具有128 KB的FLASH存储器、8 KB的RAM、2 KB的E2PROM、两个异步串行通信接口、两个串行外围接口、一组8通道的输入捕捉或输出捕捉的增强型捕捉定时器、两组8通道10路模/数转换器、一组8通道脉宽调制模块、29个独立的数字I/O接口等[5]。MC9S12DG128完全能够满足自平衡车设计的需要,不必扩展外部存储器资源。

1.3 角度与角速度检测模块

在车模倾斜角度的采集上,采用陀螺仪和加速度计相融合的方式获得。

车模倾斜角速度可由安排在车模上的陀螺仪上测得,将角速度信号在时间上积分后便可以得到车模的直立倾斜角度。一般由陀螺仪测得的车模角速度噪声很小,由角速度积分后得到的角度信号比较稳定[6?7]。但是,如果角速度信号存在微小的误差,经过积分后就会形成累积误差,最终无法得到正确的角度。本系统采用加速度计传感器得到的角度对陀螺仪得到的角度进行校正。根据物体的运动方向改变输出信号的电压值。如果物体受到重力作用,三轴加速度传感器的z轴输出电压会根据其运动方向改变输出电压值,经单片机A/D转换后就可以计算出倾斜的角度。

本系统通过MMA7361三轴加速度计来矫正ENC?03MA陀螺仪的角度漂移,将重力加速度计和陀螺仪的角度互补融合来获取车模倾角和角速度[8]。具体做法是:通过对比陀螺仪角速度积分后的角度与z轴重力加速度计所得到的角度,用两个角度的偏差改变陀螺仪的角度输出,从而使积分后的角度逐步跟踪到准确的角度值。

1.4 赛道检测模块

赛道信息的识别重点是使传感器能够感知更远距离以获取更多的路面信息[9?10]。而激光传感器接收性好,周围光线对其几乎没有影响,检测距离满足要求。本系统的激光传感器安放在车子顶部,这样可以带来更远的前瞻性和更好的接收角度。使用74HC573锁存器进行激光的驱动,单片机A口输出数字信号到锁存器的D口进行开关控制,由Q口输出信号对激光进行点亮。由于激光接收管需要接受某一个固定范围波长的光波,因此在锁存器的使能端加上一个180 kHz的调制信号,此调制信号由555定时器产生。激光调制与发射电路如图2和图3所示。

图2 NE555脉冲调制电路

图3 74HC573驱动红外发射器电路

1.5 电机驱动模块

电机驱动采用英飞凌的BTS7960半桥驱动芯片构成H桥驱动电路。BTS7960电机驱动芯片驱动电流大,最大电流可达43 A;内阻小(只有16 mΩ),功耗小;具有死区时间、过温、过电压、过电流、短路保护等功能。两片BTS7960芯片构成H桥驱动电路如图4所示,通过两路PWM信号进行电机的正反转和速度控制。该电路结构简单,控制方便,驱动效率较高,输出功率也能满足对小车直立控制的要求。

1.6 参数的观测方案

前期调试时,用串口在线观测数据,读取陀螺仪零偏移量、加速度计传感器的A/D值、激光点亮和采集信号的值、编码器的码数值等。后期在跑道上测试平衡小车直立的时候改用了LCD显示屏来显示相关的参数。虽然LCD的显示效果很好,不受外界电磁脉冲干扰,电磁兼容性好。但是由于它占用了11个I/O口,体积太大,非常占用有限的板上空间。最后选用OLED显示,OLED具有屏幕小、重量轻、分辨率较高、视角宽、发光效率高、响应快等特点,而且只要占用4个I/O口,大大节省了I/O口的资源。

图4 BT7960构成的H桥电机驱动电路

2 控制方案及实现

自平衡小车的控制通过单片机编程实现,单片机实现的主要功能有:

(1) 总体的程序运行流程控制:初始化、车模的启动和结束;

(2) 系统的界面:状态显示、参数的设定;

(3) 车模倾斜角度计算、速度计算及路径检测;

(4) 车模的动态平衡控制:直立控制、速度控制、方向控制;

(5) 电机的PWM输出。

在程序结构的设计上,把不需要精确的时间周期的车模程序运行流程控制和系统的界面设定放在主程序中。把需要精确执行周期的直立控制、速度控制、方向控制等程序放在中断内执行。主程序和中断程序之间用全局变量进行数据通信。程序框架如图5所示。

2.1 主程序

在单片机初始化完成后,进入直立状态检测,由陀螺仪和加速度计融合后的角度值来判断小车是否处于直立状态。如果是处于直立状态的话,马上启动车模的直立控制、方向控制以及速度控制。车模跌倒与否取决于在一定时间内加速度计的值是否超过一定倾角阈值,如果跌倒则关闭相应的程序段代码执行进行直立检测,直至断电或者重新获取直立条件值。

图5 程序框架

2.2 中断程序

车模运动控制可分解成三个基本控制任务:

(1) 控制直立平衡:通过控制两个电机正反向运动保持车模直立平衡状态。

(2) 控制车模速度:通过调节车模的倾角来实现车模速度控制,本质上还是通过控制电机的转速控制车轮速度。

(3) 控制车模方向:通过控制两个电机之间的转动差速实现车模转向控制[11]。

传统的PID算法具有对数学模型要求不高、参数整定方便的优点。在车模控制中的直立、速度和方向控制三个环节中,都使用比例微分(PD)控制。中断服务程序完成车模的角度、速度和方向控制的周期调用。具体调用的子函数主要实现以下四个任务:

(1) 角度计算和直立控制。通过单片机的ADC读取陀螺仪和加速度计的数值。通过陀螺仪信号获得车模的角速度和倾角,由重力加速度计z轴信号得到的倾角来补偿陀螺仪的漂移。根据车模角度和角速度,采用PD控制,计算车模电机的控制量。直立控制函数5 ms调用1次,程序如下:

void Get_AV(void) // 陀螺仪角速度计算

{

int Vout;

Vout = GyroVout;

AV_Gyro = (float)(Vout ? V_Gyro_OFFSET) * R_Gyro ? RGyroVout / 50;

}

void Get_Angle(void) //陀螺仪角度计算

{

int Vout;

Vout = AccVout;

Angle_Acc = (float)(V_ACC_OFFSET ? Vout) * R_ACC;

}

void Angle_Control() //直立的PD控制函数

{

g_AngleOut = ANGLE_P * Angle + ANGLE_D * AV_Gyro;

}

(2) 速度计算与速度控制。根据50 ms内左、右车轮上两个编码器脉冲数计算电机转速。由采集的电机速度设定值,采用PD控制,计算电机的控制量。为了减少车模速度控制对直立控制的影响,速度控制应更加平滑,速度的输出变化量被平均分配到10个直立角度控制的5 ms中断函数周期中。这样不但可保证车模直立的平衡性,又可保证车模速度控制的平稳性。程序如下:

void Pulsecount() //两个电机速度的计算

{

int leftSpeed;

if(g_LeftOut > 0) leftSpeed=?PACNT;

else leftSpeed=PACNT;

Left_Travel +=leftSpeed;

PACNT = 0;

}

(3) 路径识别与方向控制。在车模顶上左、右对称安装有8个激光发射管和4个接收管。由于激光的距离较近,接收管如果同时点亮,会发生接受干扰和概率性的接收错误。因此采用循环右移分时点亮同步接收的工作方式。所谓分时点亮是指在同一时刻只允许一个激光管点亮,同步接收是指在点亮激光管的同时开启想要接收激光信号I/O口。每10 ms通过采集到的车模距离中心线的位置偏差,采用PD控制,计算电机的控制量。为了使方向控制更平滑,也将方向控制的输出变化量平均分配到2个5 ms的直立角度控制周期中。

(4) 根据前面的直立控制、速度控制和方向控制函数计算的控制量进行线性加权叠加,就可分别得到左右两个电机的输出电压控制量。为了提高车模在静态下的稳定性,需要增加死区补偿。为了保证输出量不超出PWM的满量程范围,需要对输出增加饱和处理。最终,电机驱动信号由单片机的PWM模块产生。程序如下:

void MotorSpeed_Out(void)

//电机的PWM计算函数,该函数5 ms调用一次

{

if(g_LeftOut >= 0)

{

if(g_LeftOut > 700) g_LeftOut = 700;

PWMDTY01 = g_LeftOut + DEAD_VAL;

PWMDTY23 = 0;

}

else

{

if(g_LeftOut < ?700) g_LeftOut = ?700;

PWMDTY01 = 0;

PWMDTY23 = ?g_LeftOut + DEAD_VAL;

}

if(g_RightOut >= 0)

{

if(g_RightOut > 700) g_RightOut = 700;

PWMDTY45 = g_RightOut + DEAD_VAL;

PWMDTY67 = 0;

}

else

{

if(g_RightOut < ?700) g_RightOut = ?700;

PWMDTY45 = 0;

PWMDTY67 = ?g_RightOut + DEAD_VAL;

}

}

3 结 语

本文针对基于智能车竞赛的自平衡小车的设计问题进行了研究,给出了自平衡小车的硬件系统和单片机实现的软件实现方案。实验表明,本方案对光线的抗干扰性强,电机驱动性能良好,小车能够沿着赛道行进,车身保持动态自动平衡,行驶平稳快速,该车在2012年福建省电子设计竞赛中表现突出。

参考文献

[1] 赵建伟,阮晓钢.柔性两轮直立式自平衡仿人机器人的建模及控制[J].机器人,2009,31(2):179?186.

[2] 郜园园,阮晓钢,宋洪军,等.两轮自平衡机器人惯性传感器滤波问题的研究[J].传感技术学报,2010,23(5):696?700.

[3] 阮晓钢,程怀玉,孙亮.自平衡机械系统匀速行走模糊控制[J].控制工程,2009,16(4):481?484.

[4] 福建省电子设计竞赛秘书处.2012福建省全国大学生电子设计竞赛D题题目要求[M].福州:福建省电子设计竞赛秘书处,2012.

[5] 刘伟.基于MC9S12XS128微控制器的智能车硬件设计[J].电子设计工程,2010,18(1):102?104.

[6] 王晓宇,闫继宏,臧希喆,等.两轮自平衡机器人多传感器数据融合方法研究[J].传感技术学报,2007,20(3):668?6772.

[7] 董锟,韩帅,孙继龙,等.两轮自平衡智能车系统设计[J].单片机与嵌入式系统应用,2013(1):71?74.

[8] 蒋纬洋,邓迟,肖晓萍.两轮自平衡小车系统制作研究[J].国外电子测量技术,2012(6):76?79.

[9] 傅继奋,孙汉旭,王亮清,等.自平衡两轮机器人的控制系统设计[J].机电产品开发与创薪,2004,11(6):75?77.

[10] 李龙辉,梅迎.电磁导航直立自平衡智能车的电控系统设计[J].汽车实用技术,2013 (4):26?29.

[11] 飞思卡尔竞赛秘书处.第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案(版本2.0)[M].北京:飞思卡尔竞赛秘书处,2012.

int Vout;

Vout = GyroVout;

AV_Gyro = (float)(Vout ? V_Gyro_OFFSET) * R_Gyro ? RGyroVout / 50;

}

void Get_Angle(void) //陀螺仪角度计算

{

int Vout;

Vout = AccVout;

Angle_Acc = (float)(V_ACC_OFFSET ? Vout) * R_ACC;

}

void Angle_Control() //直立的PD控制函数

{

g_AngleOut = ANGLE_P * Angle + ANGLE_D * AV_Gyro;

}

(2) 速度计算与速度控制。根据50 ms内左、右车轮上两个编码器脉冲数计算电机转速。由采集的电机速度设定值,采用PD控制,计算电机的控制量。为了减少车模速度控制对直立控制的影响,速度控制应更加平滑,速度的输出变化量被平均分配到10个直立角度控制的5 ms中断函数周期中。这样不但可保证车模直立的平衡性,又可保证车模速度控制的平稳性。程序如下:

void Pulsecount() //两个电机速度的计算

{

int leftSpeed;

if(g_LeftOut > 0) leftSpeed=?PACNT;

else leftSpeed=PACNT;

Left_Travel +=leftSpeed;

PACNT = 0;

}

(3) 路径识别与方向控制。在车模顶上左、右对称安装有8个激光发射管和4个接收管。由于激光的距离较近,接收管如果同时点亮,会发生接受干扰和概率性的接收错误。因此采用循环右移分时点亮同步接收的工作方式。所谓分时点亮是指在同一时刻只允许一个激光管点亮,同步接收是指在点亮激光管的同时开启想要接收激光信号I/O口。每10 ms通过采集到的车模距离中心线的位置偏差,采用PD控制,计算电机的控制量。为了使方向控制更平滑,也将方向控制的输出变化量平均分配到2个5 ms的直立角度控制周期中。

(4) 根据前面的直立控制、速度控制和方向控制函数计算的控制量进行线性加权叠加,就可分别得到左右两个电机的输出电压控制量。为了提高车模在静态下的稳定性,需要增加死区补偿。为了保证输出量不超出PWM的满量程范围,需要对输出增加饱和处理。最终,电机驱动信号由单片机的PWM模块产生。程序如下:

void MotorSpeed_Out(void)

//电机的PWM计算函数,该函数5 ms调用一次

{

if(g_LeftOut >= 0)

{

if(g_LeftOut > 700) g_LeftOut = 700;

PWMDTY01 = g_LeftOut + DEAD_VAL;

PWMDTY23 = 0;

}

else

{

if(g_LeftOut < ?700) g_LeftOut = ?700;

PWMDTY01 = 0;

PWMDTY23 = ?g_LeftOut + DEAD_VAL;

}

if(g_RightOut >= 0)

{

if(g_RightOut > 700) g_RightOut = 700;

PWMDTY45 = g_RightOut + DEAD_VAL;

PWMDTY67 = 0;

}

else

{

if(g_RightOut < ?700) g_RightOut = ?700;

PWMDTY45 = 0;

PWMDTY67 = ?g_RightOut + DEAD_VAL;

}

}

3 结 语

本文针对基于智能车竞赛的自平衡小车的设计问题进行了研究,给出了自平衡小车的硬件系统和单片机实现的软件实现方案。实验表明,本方案对光线的抗干扰性强,电机驱动性能良好,小车能够沿着赛道行进,车身保持动态自动平衡,行驶平稳快速,该车在2012年福建省电子设计竞赛中表现突出。

参考文献

[1] 赵建伟,阮晓钢.柔性两轮直立式自平衡仿人机器人的建模及控制[J].机器人,2009,31(2):179?186.

[2] 郜园园,阮晓钢,宋洪军,等.两轮自平衡机器人惯性传感器滤波问题的研究[J].传感技术学报,2010,23(5):696?700.

[3] 阮晓钢,程怀玉,孙亮.自平衡机械系统匀速行走模糊控制[J].控制工程,2009,16(4):481?484.

[4] 福建省电子设计竞赛秘书处.2012福建省全国大学生电子设计竞赛D题题目要求[M].福州:福建省电子设计竞赛秘书处,2012.

[5] 刘伟.基于MC9S12XS128微控制器的智能车硬件设计[J].电子设计工程,2010,18(1):102?104.

[6] 王晓宇,闫继宏,臧希喆,等.两轮自平衡机器人多传感器数据融合方法研究[J].传感技术学报,2007,20(3):668?6772.

[7] 董锟,韩帅,孙继龙,等.两轮自平衡智能车系统设计[J].单片机与嵌入式系统应用,2013(1):71?74.

[8] 蒋纬洋,邓迟,肖晓萍.两轮自平衡小车系统制作研究[J].国外电子测量技术,2012(6):76?79.

[9] 傅继奋,孙汉旭,王亮清,等.自平衡两轮机器人的控制系统设计[J].机电产品开发与创薪,2004,11(6):75?77.

[10] 李龙辉,梅迎.电磁导航直立自平衡智能车的电控系统设计[J].汽车实用技术,2013 (4):26?29.

[11] 飞思卡尔竞赛秘书处.第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案(版本2.0)[M].北京:飞思卡尔竞赛秘书处,2012.

int Vout;

Vout = GyroVout;

AV_Gyro = (float)(Vout ? V_Gyro_OFFSET) * R_Gyro ? RGyroVout / 50;

}

void Get_Angle(void) //陀螺仪角度计算

{

int Vout;

Vout = AccVout;

Angle_Acc = (float)(V_ACC_OFFSET ? Vout) * R_ACC;

}

void Angle_Control() //直立的PD控制函数

{

g_AngleOut = ANGLE_P * Angle + ANGLE_D * AV_Gyro;

}

(2) 速度计算与速度控制。根据50 ms内左、右车轮上两个编码器脉冲数计算电机转速。由采集的电机速度设定值,采用PD控制,计算电机的控制量。为了减少车模速度控制对直立控制的影响,速度控制应更加平滑,速度的输出变化量被平均分配到10个直立角度控制的5 ms中断函数周期中。这样不但可保证车模直立的平衡性,又可保证车模速度控制的平稳性。程序如下:

void Pulsecount() //两个电机速度的计算

{

int leftSpeed;

if(g_LeftOut > 0) leftSpeed=?PACNT;

else leftSpeed=PACNT;

Left_Travel +=leftSpeed;

PACNT = 0;

}

(3) 路径识别与方向控制。在车模顶上左、右对称安装有8个激光发射管和4个接收管。由于激光的距离较近,接收管如果同时点亮,会发生接受干扰和概率性的接收错误。因此采用循环右移分时点亮同步接收的工作方式。所谓分时点亮是指在同一时刻只允许一个激光管点亮,同步接收是指在点亮激光管的同时开启想要接收激光信号I/O口。每10 ms通过采集到的车模距离中心线的位置偏差,采用PD控制,计算电机的控制量。为了使方向控制更平滑,也将方向控制的输出变化量平均分配到2个5 ms的直立角度控制周期中。

(4) 根据前面的直立控制、速度控制和方向控制函数计算的控制量进行线性加权叠加,就可分别得到左右两个电机的输出电压控制量。为了提高车模在静态下的稳定性,需要增加死区补偿。为了保证输出量不超出PWM的满量程范围,需要对输出增加饱和处理。最终,电机驱动信号由单片机的PWM模块产生。程序如下:

void MotorSpeed_Out(void)

//电机的PWM计算函数,该函数5 ms调用一次

{

if(g_LeftOut >= 0)

{

if(g_LeftOut > 700) g_LeftOut = 700;

PWMDTY01 = g_LeftOut + DEAD_VAL;

PWMDTY23 = 0;

}

else

{

if(g_LeftOut < ?700) g_LeftOut = ?700;

PWMDTY01 = 0;

PWMDTY23 = ?g_LeftOut + DEAD_VAL;

}

if(g_RightOut >= 0)

{

if(g_RightOut > 700) g_RightOut = 700;

PWMDTY45 = g_RightOut + DEAD_VAL;

PWMDTY67 = 0;

}

else

{

if(g_RightOut < ?700) g_RightOut = ?700;

PWMDTY45 = 0;

PWMDTY67 = ?g_RightOut + DEAD_VAL;

}

}

3 结 语

本文针对基于智能车竞赛的自平衡小车的设计问题进行了研究,给出了自平衡小车的硬件系统和单片机实现的软件实现方案。实验表明,本方案对光线的抗干扰性强,电机驱动性能良好,小车能够沿着赛道行进,车身保持动态自动平衡,行驶平稳快速,该车在2012年福建省电子设计竞赛中表现突出。

参考文献

[1] 赵建伟,阮晓钢.柔性两轮直立式自平衡仿人机器人的建模及控制[J].机器人,2009,31(2):179?186.

[2] 郜园园,阮晓钢,宋洪军,等.两轮自平衡机器人惯性传感器滤波问题的研究[J].传感技术学报,2010,23(5):696?700.

[3] 阮晓钢,程怀玉,孙亮.自平衡机械系统匀速行走模糊控制[J].控制工程,2009,16(4):481?484.

[4] 福建省电子设计竞赛秘书处.2012福建省全国大学生电子设计竞赛D题题目要求[M].福州:福建省电子设计竞赛秘书处,2012.

[5] 刘伟.基于MC9S12XS128微控制器的智能车硬件设计[J].电子设计工程,2010,18(1):102?104.

[6] 王晓宇,闫继宏,臧希喆,等.两轮自平衡机器人多传感器数据融合方法研究[J].传感技术学报,2007,20(3):668?6772.

[7] 董锟,韩帅,孙继龙,等.两轮自平衡智能车系统设计[J].单片机与嵌入式系统应用,2013(1):71?74.

[8] 蒋纬洋,邓迟,肖晓萍.两轮自平衡小车系统制作研究[J].国外电子测量技术,2012(6):76?79.

[9] 傅继奋,孙汉旭,王亮清,等.自平衡两轮机器人的控制系统设计[J].机电产品开发与创薪,2004,11(6):75?77.

[10] 李龙辉,梅迎.电磁导航直立自平衡智能车的电控系统设计[J].汽车实用技术,2013 (4):26?29.

[11] 飞思卡尔竞赛秘书处.第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案(版本2.0)[M].北京:飞思卡尔竞赛秘书处,2012.