12V升压电路
3.3.3 视频同步分离电路
我们用了LM1881视频分离芯片对视频的行同步和畅同步进行了分离提取。而后进行了视频信号的二值化处理。 视频信号中除了包含图像信号之外,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号等。若单单依靠单片机进行处理效率不高,最好借助于视频分离电路对信号间的逻辑关系进行更好把握。LM1881是最合适的选择。LM1881的电路原理图如图 4.5。视频信号由2号引脚进入芯片,由1引脚给出行同步信号提供给单片机作为行中断。3引脚提供场同步信号,提供给单片机作为场中断信号。
为了对视频信号进行更高效的处理,我们设计了硬件二值化处理电路。采用了比较器393实现图像的二值化,电路如下:
16
电机驱动电路设计
驱动电路对于竞速比赛的重要性是不言而喻的,较好的加速与制动能力对小车平均速度的提高有很大帮助。电机的速度与施加的电压成正比,输出转矩则与电流成正比。对直流电机的控制是一个挑战,因为必须在工作期间改变直流电机的速度。一般的,直流电机高效运行的最常见方法是施加一个PWM(脉宽调制)方波,其通-断比率对应于所需速度。电机起到一个低通滤波器作用,将PWM 信号转换为有效直流电平。PWM 驱动信号很常用,因为使用微处理器的控制器很容易产生PWM 信号。虽然用精确的脉冲宽度可以调节电机的速度,实际应用中的PWM 频率却是可变的,应对其进行优化,以防止电机颤抖,发出耳朵听得到的噪声。如要使直流电机反转,必须转换电机中电流的方向。一般电机驱动都用的是经典的H 桥控制电路,有些芯片内部都集成了H 桥电路,并且还集成了内部驱动,保护也做得不错,像SGS 公司的L298,飞思卡尔的MC33886和MC33887 等,但是这些芯片的内部电阻较大,发热严重,驱动能力有限,经测试并不是十分理想。一般情况下,我们使用MOSFET驱动IR2104和MOSFET管IRLR7843搭建成H桥电路作为电机驱动。这种电路的优点是内阻很小,理论计算值在毫欧级别。IRLR7843 的最小内部只有3.3 毫欧姆,最大允许连续源极电流161A,超额符合要求;IR2104 外接自举电路,输出驱动电压在10到20V,具有刹车使能功能,外接电路简单。缺点是需要外接12V电路,电路保护相对较差,电路稳定性相对较低,体积比较大。
针对第六届使用的电机功率较小,对驱动电路的驱动相对较低,而对稳定性和重量因素比较敏感的特点,我们选用在智能车中广泛使用的半桥驱动芯片BTS7960。BTS7960是应用于电机驱动的大电流半桥高集成芯片,它带有一个P沟道的高边MOSFET、一个N沟道的低边 MOSFET和一个驱动 IC。BTS7960通态电阻典型值为 16毫欧,驱动电流43A。从数据上看BTS7960的驱动能力低于我们之前应用的H桥驱动电路,但驱动目前的电机已经绰绰有余,因此综合稳定性等因素,我们选用这款芯片搭建电机驱动电路。驱动电路模块原理图如下:
17
电路PCB如下:
硬件电路部分小结
硬件电路的关键是稳定,智能车系统的正常工作即是以硬件的稳定为前提的。而整个电路系统中,电源部分的稳定性亦至关重要,只有各个电源供应稳定可靠纹波小才能保证其它电路模块的正常工作,尤其是单片机最小系统。稳定的电路板为后续的工作奠定了坚实的基础。在电机转速急减急加或舵机打大角度时,电池电压会产生大的波动,此时若5V稳不住单片机就会出现复位等问题。合理的使用滤波电容可以减少此类的影响,使电压稳定。
我们的电路中既包含模拟电路又包含数字电路,为提高系统稳定性,电路中区分了模拟地与数字地。为保证电路板的稳定性和可靠性,我们将设计好的PCB文件送入工厂打样。各个电路板之间通过排针排母或杜邦线相连,保证了整体电路系统的稳定性。
第四章 系统软件的设计与实现
高效稳定的软件程序是智能车平稳快速寻线的基础。我们设计的智能车使用SONY黑白CCD摄像头来获取赛道信息,图像采集处理就成了整个软件的核心内容。而单片机处理速度有限,如何高效的提取所需的赛道信息和利用所剩不多的单片机资源进行控制成为了我们研究的核心内容。进过不断的尝试和改进,在图像信息采集方面,最终我们成功的把计算融入单片机采集图像的间隙中,充分利用了单片机的资源。在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典PID 控制算法,配合使用理论计算和实际参数补偿的办法,使在寻线中的智能车达到了稳定快速的效果。
18
4.1系统软件流程图
软件设计部分主要包括:图像采集、图像处理、赛道判断、舵机打角、电机速度控制以及速度反馈处理,系统流程图如图4-1-1所示。
图像采集 图像处理(提取出赛道的中心) 赛道类型判断 舵机打脚控制 速度反馈处理 电机速度控制
4.2图像采集
图4-1-1 系统流程图
19
第五章 总结与参数统计 5.1电机控制以及速度反馈控制
电机闭环控制PID控制程序设计
speed 为编码器定时测到的脉冲数 //偏差计算和传递 EN2 = EN1;
EN1 = EN0; EN0 = sv - speed;
dPWMN = (int)((Kp_DianJiN)*(float)(EN0 - EN1) + Ki_DianJiN*(float)(EN0) + //限幅 { }
if(PWMN < 0) { }
PWMN = 0; PWMN = 5000;
//计算增量
if(PWMN > 5000)
5.2上位机调试软件的设计
为了方便实时地监视小车在行进过程中的各种参数,我们特意用Labview编写了一个上位机,并利用无线模块(下面有介绍)将车子的实时数据传输到电脑上,这样,大大提高了调试车子的效率。
20