论文部分内容阅读
摘要
本文首先对智能车的硬件进行设计,达到了低重心、大前瞻、高稳定性。其次对系统的软件部分进行设计,利用阀值对赛道进行判断,从而得到智能车的偏航角。综合偏航角控制量实现舵机控制,入弯道切内道,大大提高了智能车的弯道运行速度。用光电编码盘检测智能车的运行速度,再根据赛道信息给定智能车的运行速度,运用一些算法调节驱动电机转速,实现了电机的快速响应。经过大量测试,最终确定系统结构和各项控制参数。
关键词:单片机;舵机控制;速度控制
【中图分类号】U293.2+5
0 引言
智能车有着极为广泛的应用前景。结合传感器技术和自动驾驶技术可以实现汽车的自适巡航并把车开得开得又快又稳、安全可靠;汽车夜间行驶时,如果装上红外摄像头,就能实现夜晚汽车的安全辅助驾驶;他也可以工作在仓库、码头、工厂或危险、有毒、有害的工作环境里,此外他还能担当起无人值守的巡逻监视、物料的运输、消防灭火等任务。在普通家庭轿车消费中,智能车的研发也是有价值的,比如雾天能见度差,人工驾驶经常发生碰撞,如果用上这种设备,激光雷达会自动探测前方的障碍物,电脑会控制车辆自动停下来撞车就不会发生了。提高安全性和系统效率。这种新型车辆控制方法的核心,就是实现车辆的智能化。
1 智能车机械结构设计
机械结构是控制算法和软件程序的执行机构,对机械结构性能的了解和改造有利于对控制算法和软件程序的实现。因此对车体机械结构的调整是非常必要的。
1.1 车体机械参数调整
前轮参数的调整包括前轮主销后倾角,主销内倾角,前轮外倾角,前轮前束。这几个参数对车体直线行驶的平稳性和转弯的灵活性有很重要的影响[1]。
1.2 舵机的安装
舵机转向是整个控制系统中延迟较大的一个环节,在相同的舵机转向条件下,转向连杆在舵机一端的连接点离舵机轴心距离越远,转向轮转向变化越快。这样安装的优点是:改变了舵机的力臂,使转向更灵敏;舵机安装在正中央,使左右的转向基本一致;重心相对来说靠后,减轻舵机的负载[2]。
1.3后轮距与后轮差速机构调整
后轮距的调整:赛车高速行驶时突然转弯时容易翻倒,为了增加整车的平衡能力,可将车模原配的后轮调节件把改为大轮距的调节件,使后轮距在原来基础上增加了4mm,
1.4传感器的安装
图中将激光管固定在下排孔内上排六个固定接收管和透镜,将激光照射距离调整到50CM,前瞻效果达到最好[3]。
1.5 车体重心调整
重心越低越好。选择摄像头时选择比较轻的,摄像头支架材料及规格也要加以考虑,电路板的摆放也尽可能低。
2系统总体硬件电路设计
2.1 系统硬件电路结构
此智能车辆定位系统用激光管和接收芯片检测车辆前方的赛道,通过MC9S12XS128采样光电三极管的模拟信号,获得赛道数据,结合一定的算法,提取赛道的黑白线对舵机和电机驱动芯片以合适的控制[4]。
系统先对接收芯片获得的数字信号,速度传感器测得的速度值,加速度传感器检测到的坡度信息,以及拨码开关输入的脉冲值等送入单片机最小系统进行分析处理,发出命令驱动舵机,并使用全桥电机驱动芯片 MC33883驱动场效应管控制电机的正反转,输出 PWM 波形实现对于电机的控制,使用LM 2940S 等稳压芯片对各模块提供电源[5]。
2.2 传感器选择及其电路设计
激光传感器好比模型车的眼睛,是整个系统采集赛道信息的核心。前瞻距离最远能够达到1.1M。经过调整和优化,使得激光传感器性能能够完成赛道全部信息采集的任务。
2.2.1 激光发射电路设计
当电路连接以后,1脚会输出一个调制频率为180KHZ,占空比大约为30%的方波,然后通过反相器HD74LS04放大驱动激光发射管。
2.2.2 传感器接收电路设计
接收管通过接受高频率激光发射的信号直接输出TTL电平,将1.5K电阻直接上拉到VCC_5V。最后RECEIVE_0直接连接到单片机的I/O口。赛道中不是黑线的区域,接收管接收到返回的激光信號,此时输出为低电平;当遇到黑线,没有收到返回的激光信号,输出为高电平。只需要查询单片机的I/O口高低电平状态就可以判断出赛道信息[6]。
2.3 电机驱动模块设计
MC33883它可以驱动场效应管实现电机的正反转,场效应管用IRF3205,场效应管为N沟道,MC33883的驱动能力很强,最大电流可以达到110A。本设计采用PWM直流脉宽调速,该方法有效地避免了串电阻调速其调速范围小,平滑性低的缺点, IN_HS1、IN_HS2、IN_LS1、IN_LS2是单片机传给MC33883脉冲信号的接口。
2.4 测速电路模块设计
VCC_MCU为5V电压,SIGNAL是编码器的脉冲输出端,SIGNAL和VCC_MCU之间接一个10K上拉电阻,然后将SIGNAL连接到单片机的PT7口,进行脉冲。
3智能车电路板的设计
智能车的电路板设计是利用altium designer软件设计的。在布线时信号线和电源线的宽度不同,信号线的宽度为10mil,稳压后的电源线为20mil或30mil,直接经过电源的电源线为60mil。覆铜的时注意移除死铜,覆铜定义网络标号为GND。
4系统软件设计
4.1 程序开发和调试
本车在开发和调试中所使用的开发环境为Metrowerks 公司的集成开发环境 Metroworks CodeWarrior IDE4.6和与之配套使用的调试软Hiwave,调试器为清华大学工程物理系开发的BDM,辅助调试工具有电视机、刻度尺,串口调试软件等。 4.2 调试器
CodeWarrior IDE中的调试器不仅可以进行在线调试,还可以进行在线的仿真。在调试器中,我们可以看到定义的全局变量的变化和各个寄存器的当前值,还可以看到单片机内存中内容等。此外,还有许多其他的实用功能,在赛车的调试过程中使用很是方便有效。
4.3系统程序流程图
如图6显示程序开始进行初始化,然后开始采集信息,在把采集到的信息进行一些数据处理(这里可以用到模糊和PID算法)[7],之后求出速度和转向。为了形成闭环系统这里利用中断进行时时测速,保证小车速度不至于过快或过慢,形成闭环系统,使小车更快,更稳定的完成比赛。
4.4赛道识别
4.4.1 黑色引道线的提取
赛道识别,即使模型车能够分辨当前的路径为是直道、十字线、起跑线、或者坡道。首先分析一下赛道信息。 当前路径是直道、弯道、十字线、起跑线时,传感器识别黑线情况,当传感器位于直到和弯道的时候,总的传感器的状态跳变2次。当传感器位于十字线的时候,总的传感器的状态跳变0次。当传感器位于起跑线上的时候,总的传感器的状态跳变4次。
当前的12个传感器所采集的赛道状态值,黑线为1,白线为0。Jump是跳变次数标志。每当相邻的传感器状态不同,Jump就加1。然后通过if()else()语句来判断车子当前做行走的道路类型[8]。
4.6 转向舵机的控制程序的设计
一个周期采集完毕以后,要对传感器的原始状态进行处理,我们规定当激光传感器照射到黑线记做1,白线记做0,12个传感器分别赋予对应的权值,当有2个或者1个激光传感器照射到黑线的时候,对它们的权值取平均值,最后单片机通过最终的偏移值计算出控制转向舵机和速度分配值[11]。
number是计算一共有几个传感器在黑线上,lost_number是计算所有在黑线上传感器的偏移值,lost_location是计算激光传感器的平均偏移值。
4.7 速度采集程序的设计
速度采集模块需要定时采集速度,根据相同时间内的脉冲数多少来判定速度的快慢,因而我们单独开了一个PIT中断,中断定时周期为3MS,那么每当经过3MS,就读取脉冲累加器计数器PACNT的值,然后将此值和设定速度的值进行比较,完成对速度的闭环控制[12]。 控制函数number_count变量是反馈的速度,用来传递给PID函数;TIME_INTER是速度给定;这里要注意的就是,当进行完毕速度读取,PACNT寄存器一定要清零,防止脉冲的错乱。
5 结论
我们在车模硬件及软件上都有许多改进与创新,采用上排激光管作为循迹传感器。大大提高了前瞻距离和系统的稳定性。激光前瞻達到0.25米,大前瞻是保证高速度的前提条件。采用自己制作的单片机最小系统板。自己制作的单片机最小系统板,尺寸小,重量轻。即减轻了车模总重量,有方便了其它硬件布局。使得整个硬件系统布局更简洁,性能更稳定。
参考文献
[1]陈家瑞.汽车构造.机械工业出版社,2009.
[2] 第四届全国大学生“飞思卡尔”智能汽车竞赛杭州电子科技大学钱江一号队技术报告,2009.
[3]第五届全国大学生“飞思卡尔”智能汽车竞赛河北理工轻工学院飞思嘉杭队技术报告,2010
[4] Freescale 公司MC9S12XS Family Reference Manual.2009.9.
[5] Paul Horowitz.电子学.电子工业大学出版社,2009
[6]李艳红.传感器原理及其用用.北京理工大学出版社,2010.
[7]邵贝贝.单片机嵌入式应用的在线开发方法.清华大学出版社,2004 .
本文首先对智能车的硬件进行设计,达到了低重心、大前瞻、高稳定性。其次对系统的软件部分进行设计,利用阀值对赛道进行判断,从而得到智能车的偏航角。综合偏航角控制量实现舵机控制,入弯道切内道,大大提高了智能车的弯道运行速度。用光电编码盘检测智能车的运行速度,再根据赛道信息给定智能车的运行速度,运用一些算法调节驱动电机转速,实现了电机的快速响应。经过大量测试,最终确定系统结构和各项控制参数。
关键词:单片机;舵机控制;速度控制
【中图分类号】U293.2+5
0 引言
智能车有着极为广泛的应用前景。结合传感器技术和自动驾驶技术可以实现汽车的自适巡航并把车开得开得又快又稳、安全可靠;汽车夜间行驶时,如果装上红外摄像头,就能实现夜晚汽车的安全辅助驾驶;他也可以工作在仓库、码头、工厂或危险、有毒、有害的工作环境里,此外他还能担当起无人值守的巡逻监视、物料的运输、消防灭火等任务。在普通家庭轿车消费中,智能车的研发也是有价值的,比如雾天能见度差,人工驾驶经常发生碰撞,如果用上这种设备,激光雷达会自动探测前方的障碍物,电脑会控制车辆自动停下来撞车就不会发生了。提高安全性和系统效率。这种新型车辆控制方法的核心,就是实现车辆的智能化。
1 智能车机械结构设计
机械结构是控制算法和软件程序的执行机构,对机械结构性能的了解和改造有利于对控制算法和软件程序的实现。因此对车体机械结构的调整是非常必要的。
1.1 车体机械参数调整
前轮参数的调整包括前轮主销后倾角,主销内倾角,前轮外倾角,前轮前束。这几个参数对车体直线行驶的平稳性和转弯的灵活性有很重要的影响[1]。
1.2 舵机的安装
舵机转向是整个控制系统中延迟较大的一个环节,在相同的舵机转向条件下,转向连杆在舵机一端的连接点离舵机轴心距离越远,转向轮转向变化越快。这样安装的优点是:改变了舵机的力臂,使转向更灵敏;舵机安装在正中央,使左右的转向基本一致;重心相对来说靠后,减轻舵机的负载[2]。
1.3后轮距与后轮差速机构调整
后轮距的调整:赛车高速行驶时突然转弯时容易翻倒,为了增加整车的平衡能力,可将车模原配的后轮调节件把改为大轮距的调节件,使后轮距在原来基础上增加了4mm,
1.4传感器的安装
图中将激光管固定在下排孔内上排六个固定接收管和透镜,将激光照射距离调整到50CM,前瞻效果达到最好[3]。
1.5 车体重心调整
重心越低越好。选择摄像头时选择比较轻的,摄像头支架材料及规格也要加以考虑,电路板的摆放也尽可能低。
2系统总体硬件电路设计
2.1 系统硬件电路结构
此智能车辆定位系统用激光管和接收芯片检测车辆前方的赛道,通过MC9S12XS128采样光电三极管的模拟信号,获得赛道数据,结合一定的算法,提取赛道的黑白线对舵机和电机驱动芯片以合适的控制[4]。
系统先对接收芯片获得的数字信号,速度传感器测得的速度值,加速度传感器检测到的坡度信息,以及拨码开关输入的脉冲值等送入单片机最小系统进行分析处理,发出命令驱动舵机,并使用全桥电机驱动芯片 MC33883驱动场效应管控制电机的正反转,输出 PWM 波形实现对于电机的控制,使用LM 2940S 等稳压芯片对各模块提供电源[5]。
2.2 传感器选择及其电路设计
激光传感器好比模型车的眼睛,是整个系统采集赛道信息的核心。前瞻距离最远能够达到1.1M。经过调整和优化,使得激光传感器性能能够完成赛道全部信息采集的任务。
2.2.1 激光发射电路设计
当电路连接以后,1脚会输出一个调制频率为180KHZ,占空比大约为30%的方波,然后通过反相器HD74LS04放大驱动激光发射管。
2.2.2 传感器接收电路设计
接收管通过接受高频率激光发射的信号直接输出TTL电平,将1.5K电阻直接上拉到VCC_5V。最后RECEIVE_0直接连接到单片机的I/O口。赛道中不是黑线的区域,接收管接收到返回的激光信號,此时输出为低电平;当遇到黑线,没有收到返回的激光信号,输出为高电平。只需要查询单片机的I/O口高低电平状态就可以判断出赛道信息[6]。
2.3 电机驱动模块设计
MC33883它可以驱动场效应管实现电机的正反转,场效应管用IRF3205,场效应管为N沟道,MC33883的驱动能力很强,最大电流可以达到110A。本设计采用PWM直流脉宽调速,该方法有效地避免了串电阻调速其调速范围小,平滑性低的缺点, IN_HS1、IN_HS2、IN_LS1、IN_LS2是单片机传给MC33883脉冲信号的接口。
2.4 测速电路模块设计
VCC_MCU为5V电压,SIGNAL是编码器的脉冲输出端,SIGNAL和VCC_MCU之间接一个10K上拉电阻,然后将SIGNAL连接到单片机的PT7口,进行脉冲。
3智能车电路板的设计
智能车的电路板设计是利用altium designer软件设计的。在布线时信号线和电源线的宽度不同,信号线的宽度为10mil,稳压后的电源线为20mil或30mil,直接经过电源的电源线为60mil。覆铜的时注意移除死铜,覆铜定义网络标号为GND。
4系统软件设计
4.1 程序开发和调试
本车在开发和调试中所使用的开发环境为Metrowerks 公司的集成开发环境 Metroworks CodeWarrior IDE4.6和与之配套使用的调试软Hiwave,调试器为清华大学工程物理系开发的BDM,辅助调试工具有电视机、刻度尺,串口调试软件等。 4.2 调试器
CodeWarrior IDE中的调试器不仅可以进行在线调试,还可以进行在线的仿真。在调试器中,我们可以看到定义的全局变量的变化和各个寄存器的当前值,还可以看到单片机内存中内容等。此外,还有许多其他的实用功能,在赛车的调试过程中使用很是方便有效。
4.3系统程序流程图
如图6显示程序开始进行初始化,然后开始采集信息,在把采集到的信息进行一些数据处理(这里可以用到模糊和PID算法)[7],之后求出速度和转向。为了形成闭环系统这里利用中断进行时时测速,保证小车速度不至于过快或过慢,形成闭环系统,使小车更快,更稳定的完成比赛。
4.4赛道识别
4.4.1 黑色引道线的提取
赛道识别,即使模型车能够分辨当前的路径为是直道、十字线、起跑线、或者坡道。首先分析一下赛道信息。 当前路径是直道、弯道、十字线、起跑线时,传感器识别黑线情况,当传感器位于直到和弯道的时候,总的传感器的状态跳变2次。当传感器位于十字线的时候,总的传感器的状态跳变0次。当传感器位于起跑线上的时候,总的传感器的状态跳变4次。
当前的12个传感器所采集的赛道状态值,黑线为1,白线为0。Jump是跳变次数标志。每当相邻的传感器状态不同,Jump就加1。然后通过if()else()语句来判断车子当前做行走的道路类型[8]。
4.6 转向舵机的控制程序的设计
一个周期采集完毕以后,要对传感器的原始状态进行处理,我们规定当激光传感器照射到黑线记做1,白线记做0,12个传感器分别赋予对应的权值,当有2个或者1个激光传感器照射到黑线的时候,对它们的权值取平均值,最后单片机通过最终的偏移值计算出控制转向舵机和速度分配值[11]。
number是计算一共有几个传感器在黑线上,lost_number是计算所有在黑线上传感器的偏移值,lost_location是计算激光传感器的平均偏移值。
4.7 速度采集程序的设计
速度采集模块需要定时采集速度,根据相同时间内的脉冲数多少来判定速度的快慢,因而我们单独开了一个PIT中断,中断定时周期为3MS,那么每当经过3MS,就读取脉冲累加器计数器PACNT的值,然后将此值和设定速度的值进行比较,完成对速度的闭环控制[12]。 控制函数number_count变量是反馈的速度,用来传递给PID函数;TIME_INTER是速度给定;这里要注意的就是,当进行完毕速度读取,PACNT寄存器一定要清零,防止脉冲的错乱。
5 结论
我们在车模硬件及软件上都有许多改进与创新,采用上排激光管作为循迹传感器。大大提高了前瞻距离和系统的稳定性。激光前瞻達到0.25米,大前瞻是保证高速度的前提条件。采用自己制作的单片机最小系统板。自己制作的单片机最小系统板,尺寸小,重量轻。即减轻了车模总重量,有方便了其它硬件布局。使得整个硬件系统布局更简洁,性能更稳定。
参考文献
[1]陈家瑞.汽车构造.机械工业出版社,2009.
[2] 第四届全国大学生“飞思卡尔”智能汽车竞赛杭州电子科技大学钱江一号队技术报告,2009.
[3]第五届全国大学生“飞思卡尔”智能汽车竞赛河北理工轻工学院飞思嘉杭队技术报告,2010
[4] Freescale 公司MC9S12XS Family Reference Manual.2009.9.
[5] Paul Horowitz.电子学.电子工业大学出版社,2009
[6]李艳红.传感器原理及其用用.北京理工大学出版社,2010.
[7]邵贝贝.单片机嵌入式应用的在线开发方法.清华大学出版社,2004 .