论文部分内容阅读
摘 要: 利用写入C语言的STC89C52单片机的控制功能,去驱动直流电机实现小车的运行,继而采用黑白线模块实现电动小车的寻迹功能;在某些障碍物处,由避障模块实现小车的避障功能;同时利用无线接收发射模块和激光感应模块可以实现电动小车的通信功能。
关键词: 单片机控制;电动小车;寻迹;障碍物
中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2012)1210051-02
某设计题目要求设计并制作一台智能电动小车,按照相关要求和给定的行驶路线轨迹完成各项规定任务。智能电动小车行驶路线轨迹如图所示:
基本要求:
1)比赛时,参赛队员将小车放在起点ABFE区域的中心位置,当参赛队员发出声音命令(内容自定)后,小车沿单轨迹前行并完成在第一区内的自动行驶;
2)当到达标志线1后,小车在第二区内完成在双轨迹中心线中的自动行驶;
3)当到达标志线2后,小车在第三区内实现自动避障并且必须在恢复区内自动寻找到规定的行驶轨迹;
4)在第四区和第五区内完成规定路线的行驶,并在到达标志线3后自动停车;
5)小车自动按规定路线倒车并停放在终点DCEF区域,以车体方位正确且几何中心在区域中心为佳;倒车过程中车体不能罩线(终点区域的左右边界线DC、EF及底线CF)。
1 系统方案设计
1.1 直流电动机驱动
直流电动机驱动采用ST提供的L298N芯片,结合Mini红外避障传感器及CTRT5000黑白线检测传感器,检测小车运动轨迹,产生占空比可调的PWM波实现调速。本模块用于驱动车上两个直流电机,能够较好的实现小车速度及方向的控制。89C52的4个I/O口输入信号给A1、A2控制A电机,输入信号给B1、B2控制B电机。9V电压供给电机芯片工作,9V电压通过7805稳压管产生5V直流电压扩展输出可以给传感器供电,3.3V
直流电压扩展输出可以给3.3V电压工作的模块供电。
1.2 避障模块
红外避障传感器是一种集发射与接收于一体的光电传感器。检测距离可以根据具体要求进行自动调节。该传感器具有受可见光干扰小、探测距离远、价格便宜、使用方便、易于装配等特点,可以广泛应用于机器人避障、流水线生产工件的统计工作等众多场合。4.5-5V供电,3-80cm检测距离,TTL电平输出,输出低电平有效。前方无障碍输出高电平,有障碍输出口(黄色)电平会从高电平变成低电平。背面有一个电位器可以调节障碍的检测距离,一旦调节好电位器(如调节好的最大距离70cm)则在有效距离内(如50cm处有障碍物、20cm处有障碍物)则输出低电平,低电平刚好可以提供给89C52识别。
1.3 黑白线检测模块
使用TCRT5000红外反射式接近开关传感器,更低传感器可以实现寻迹、壁障等功能,TCRT5000光电传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关。传感器采由高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出信号经过施密特电路整形,所得信号稳定可靠。
1.4 无线接收发射模块
使用NRF24L01发射接收模块,有效距离达十多米,主要特点是抗干扰能力强,可以选择不同频段发射数据,同时操作简单,上手快。
1.5 激光感应模块
使用光敏电阻,此电阻变化范围大,可调性好,价格便宜,抗干扰能力可以通过调整灵敏度来实现。
2 信号的检测控制方案
智能小车采用宏晶科技公司生产的STC89C52芯片作为控制核心,通过黑白线检测模块来识别路径从而达到循迹功能,利用PWM技术控制两个直流电机的前进速度和方向,硬件电路包括降压电路、电机驱动电路、检测电路、无线发射接收电路。模块化结构保证了小车成为一个可靠整体,软件采用C语言编程,完成小车要实现的任务。
2.1 电机的信号控制过程
通过编程由控制芯片STC89C52产生PWM发出驱动信号,输出的四路PWM作为直流电机的输入,输出控制信号使电机转动,进而带动车轮转动。PWM输出占空比的大小则可以控制直流电机转动的快慢,当占空比大时,转速高,占空比小时,转速低。当左轮转速小于右轮转速时,小车右转。当右轮转速小于左轮转速时,小车左转。小车直行时尽量加大PWM占空比以提高小车运行速度;在直行道上,小车的左右边缘触到黑线时,适当改变PWM占空比,控制左右两电机的转速调整小车的方向;遇到转弯标志线时,根据转弯角度,控制PWM占空比,使小车转弯。
2.2 黑白线、障碍信号检测的控制
当黑白线检测传感器检测到黑线时,小车做出转弯或起跑停止响应。小车左右两边有多个黑白线检测传感器,用于检测跑道两边的边界线,中线,标志线,及时做出调整使小车在预定轨道行驶,防止小车跑出边界。车头上方安装红外传感器,当小车通过红外传感器检测到前方有障碍时,能绕过障碍物,不与障碍物发生碰撞。
3 系统算法与误差分析
3.1 直流电机同步算法与误差分析
由于是工作在相同电压的条件下,再加上系统的摩擦,两个相同的直流电机存在的转速的差异是不可避免的,当在对小车直行的测试上,经过测量发现小车并不能严格的按照直线行走,为提高小车的性能,我们反复调节输入的PWM波的占空比,使小车能够直行。
3.2 转弯角度的大小算法与误差分析
当小车检测到前方不同的转弯标志线时,根据不同的弯做出不同的转弯响应,刚开始的实验,小车的转弯幅度和时间上总会对小车下面的行走产生各种影响,为了小车更能顺利的转弯,我们尝试了各种转弯时的幅度以及转弯设定的时间,使得转弯能够顺利过去。测得转弯角度大约为90°、80°等,时间也各不相同。 3.3 预防小车出轨的算法与误差分析
为使小车完全在跑道上行走,防止小车冲出跑道,智能小车必须加入跑道边缘调整的反馈算法,使得小车的两测检测到边缘时,智能小车自动调整,保证小车的行走方向。但是,小车车身两边的黑白线传感器在检测跑道边缘的同时,对转弯标志线的也进行了检测,这样会得到不期望的结果,于是在算法上我们又加入了智能屏蔽检测的功能,确保了小车能在跑道上的安全运行。测试后小车自动调节较为灵敏。
4 硬件测试与结果分析
4.1 小车车体
根据题目要求选置履带式小车组件,进行组装,放置两个相同的直流电机,用于控制车的运动方向,并经过测试,小车摩擦系数良好,有益于小车的控制。
4.2 直流电机的驱动
为使小车能够正常运行,为电机加上了直流电机驱动模块,由于题目的要求,我们又准备了电池盒,通过该模块对直流电机进行供电,通过对其输入占空比相等的PWM波,观察小车的运动方向,但是发现小车并不是严格的走直线,而是有些偏差,在最后经过反复调试,确定了一组合适的PWM信号,使小车能较好的直线运行。经测量两路PWM占空比只差大约为5%左右。
4.3 黑白线检测模块
选用了性能较好的TCRT5000红外反射式接近开关传感器,经过学习用法,焊接之后进行了测试,发现该模块对于黑线有很好的检测效果,但是在后来的小车运行轨迹观察中发现,有些检测盲点,后来经过该模块电路上的测量排查,发现并无问题,紧接着对环境进行检查,发现该模块在不平的路面上,如果物体距离灯头太近的话,该模块就会做出错误的判断,经过调整该模块的高度,已经能够稳定的检测黑白信号。最佳检测距离测得为5-8mm。
4.4 红外壁障模块
该模块用于检测在超车区域前方是否有小车,以做出超车响应,刚开始时会有漏测,但后来经过调节电位,已能够对是否有车做出正确的判断。4.5-5V供电,3-80cm检测距离,我们最后调节使其检测距离约为40cm。
5 结论
本设计基本满足设计要求。实物电动小车产品出来后,运行轨迹符合题目规定,在关键的难点位置也能较好的实现功能,设计较为成功。
参考文献:
[1]郭天祥,51单片机C语言教程.电子工业出版社,2011:178-184.
[2]杨欣、王玉凤、刘湘黔、张延强,51单片机应用从零开始,清华大学出版社,2008:354-365.
[3]范红刚、魏学海、任思璟,51单片机自学笔记,北京航空航天大学出版社,2010:149-162.
关键词: 单片机控制;电动小车;寻迹;障碍物
中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2012)1210051-02
某设计题目要求设计并制作一台智能电动小车,按照相关要求和给定的行驶路线轨迹完成各项规定任务。智能电动小车行驶路线轨迹如图所示:
基本要求:
1)比赛时,参赛队员将小车放在起点ABFE区域的中心位置,当参赛队员发出声音命令(内容自定)后,小车沿单轨迹前行并完成在第一区内的自动行驶;
2)当到达标志线1后,小车在第二区内完成在双轨迹中心线中的自动行驶;
3)当到达标志线2后,小车在第三区内实现自动避障并且必须在恢复区内自动寻找到规定的行驶轨迹;
4)在第四区和第五区内完成规定路线的行驶,并在到达标志线3后自动停车;
5)小车自动按规定路线倒车并停放在终点DCEF区域,以车体方位正确且几何中心在区域中心为佳;倒车过程中车体不能罩线(终点区域的左右边界线DC、EF及底线CF)。
1 系统方案设计
1.1 直流电动机驱动
直流电动机驱动采用ST提供的L298N芯片,结合Mini红外避障传感器及CTRT5000黑白线检测传感器,检测小车运动轨迹,产生占空比可调的PWM波实现调速。本模块用于驱动车上两个直流电机,能够较好的实现小车速度及方向的控制。89C52的4个I/O口输入信号给A1、A2控制A电机,输入信号给B1、B2控制B电机。9V电压供给电机芯片工作,9V电压通过7805稳压管产生5V直流电压扩展输出可以给传感器供电,3.3V
直流电压扩展输出可以给3.3V电压工作的模块供电。
1.2 避障模块
红外避障传感器是一种集发射与接收于一体的光电传感器。检测距离可以根据具体要求进行自动调节。该传感器具有受可见光干扰小、探测距离远、价格便宜、使用方便、易于装配等特点,可以广泛应用于机器人避障、流水线生产工件的统计工作等众多场合。4.5-5V供电,3-80cm检测距离,TTL电平输出,输出低电平有效。前方无障碍输出高电平,有障碍输出口(黄色)电平会从高电平变成低电平。背面有一个电位器可以调节障碍的检测距离,一旦调节好电位器(如调节好的最大距离70cm)则在有效距离内(如50cm处有障碍物、20cm处有障碍物)则输出低电平,低电平刚好可以提供给89C52识别。
1.3 黑白线检测模块
使用TCRT5000红外反射式接近开关传感器,更低传感器可以实现寻迹、壁障等功能,TCRT5000光电传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关。传感器采由高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出信号经过施密特电路整形,所得信号稳定可靠。
1.4 无线接收发射模块
使用NRF24L01发射接收模块,有效距离达十多米,主要特点是抗干扰能力强,可以选择不同频段发射数据,同时操作简单,上手快。
1.5 激光感应模块
使用光敏电阻,此电阻变化范围大,可调性好,价格便宜,抗干扰能力可以通过调整灵敏度来实现。
2 信号的检测控制方案
智能小车采用宏晶科技公司生产的STC89C52芯片作为控制核心,通过黑白线检测模块来识别路径从而达到循迹功能,利用PWM技术控制两个直流电机的前进速度和方向,硬件电路包括降压电路、电机驱动电路、检测电路、无线发射接收电路。模块化结构保证了小车成为一个可靠整体,软件采用C语言编程,完成小车要实现的任务。
2.1 电机的信号控制过程
通过编程由控制芯片STC89C52产生PWM发出驱动信号,输出的四路PWM作为直流电机的输入,输出控制信号使电机转动,进而带动车轮转动。PWM输出占空比的大小则可以控制直流电机转动的快慢,当占空比大时,转速高,占空比小时,转速低。当左轮转速小于右轮转速时,小车右转。当右轮转速小于左轮转速时,小车左转。小车直行时尽量加大PWM占空比以提高小车运行速度;在直行道上,小车的左右边缘触到黑线时,适当改变PWM占空比,控制左右两电机的转速调整小车的方向;遇到转弯标志线时,根据转弯角度,控制PWM占空比,使小车转弯。
2.2 黑白线、障碍信号检测的控制
当黑白线检测传感器检测到黑线时,小车做出转弯或起跑停止响应。小车左右两边有多个黑白线检测传感器,用于检测跑道两边的边界线,中线,标志线,及时做出调整使小车在预定轨道行驶,防止小车跑出边界。车头上方安装红外传感器,当小车通过红外传感器检测到前方有障碍时,能绕过障碍物,不与障碍物发生碰撞。
3 系统算法与误差分析
3.1 直流电机同步算法与误差分析
由于是工作在相同电压的条件下,再加上系统的摩擦,两个相同的直流电机存在的转速的差异是不可避免的,当在对小车直行的测试上,经过测量发现小车并不能严格的按照直线行走,为提高小车的性能,我们反复调节输入的PWM波的占空比,使小车能够直行。
3.2 转弯角度的大小算法与误差分析
当小车检测到前方不同的转弯标志线时,根据不同的弯做出不同的转弯响应,刚开始的实验,小车的转弯幅度和时间上总会对小车下面的行走产生各种影响,为了小车更能顺利的转弯,我们尝试了各种转弯时的幅度以及转弯设定的时间,使得转弯能够顺利过去。测得转弯角度大约为90°、80°等,时间也各不相同。 3.3 预防小车出轨的算法与误差分析
为使小车完全在跑道上行走,防止小车冲出跑道,智能小车必须加入跑道边缘调整的反馈算法,使得小车的两测检测到边缘时,智能小车自动调整,保证小车的行走方向。但是,小车车身两边的黑白线传感器在检测跑道边缘的同时,对转弯标志线的也进行了检测,这样会得到不期望的结果,于是在算法上我们又加入了智能屏蔽检测的功能,确保了小车能在跑道上的安全运行。测试后小车自动调节较为灵敏。
4 硬件测试与结果分析
4.1 小车车体
根据题目要求选置履带式小车组件,进行组装,放置两个相同的直流电机,用于控制车的运动方向,并经过测试,小车摩擦系数良好,有益于小车的控制。
4.2 直流电机的驱动
为使小车能够正常运行,为电机加上了直流电机驱动模块,由于题目的要求,我们又准备了电池盒,通过该模块对直流电机进行供电,通过对其输入占空比相等的PWM波,观察小车的运动方向,但是发现小车并不是严格的走直线,而是有些偏差,在最后经过反复调试,确定了一组合适的PWM信号,使小车能较好的直线运行。经测量两路PWM占空比只差大约为5%左右。
4.3 黑白线检测模块
选用了性能较好的TCRT5000红外反射式接近开关传感器,经过学习用法,焊接之后进行了测试,发现该模块对于黑线有很好的检测效果,但是在后来的小车运行轨迹观察中发现,有些检测盲点,后来经过该模块电路上的测量排查,发现并无问题,紧接着对环境进行检查,发现该模块在不平的路面上,如果物体距离灯头太近的话,该模块就会做出错误的判断,经过调整该模块的高度,已经能够稳定的检测黑白信号。最佳检测距离测得为5-8mm。
4.4 红外壁障模块
该模块用于检测在超车区域前方是否有小车,以做出超车响应,刚开始时会有漏测,但后来经过调节电位,已能够对是否有车做出正确的判断。4.5-5V供电,3-80cm检测距离,我们最后调节使其检测距离约为40cm。
5 结论
本设计基本满足设计要求。实物电动小车产品出来后,运行轨迹符合题目规定,在关键的难点位置也能较好的实现功能,设计较为成功。
参考文献:
[1]郭天祥,51单片机C语言教程.电子工业出版社,2011:178-184.
[2]杨欣、王玉凤、刘湘黔、张延强,51单片机应用从零开始,清华大学出版社,2008:354-365.
[3]范红刚、魏学海、任思璟,51单片机自学笔记,北京航空航天大学出版社,2010:149-162.