自定位运动控制系统小车系统设计
2017-11-21
北京信息科技大学 自动化学院,北京100192
一、引言
随着社会经济的发展,汽车的定位导航技术被利用的日益广泛,它将GPS和现代通讯技术相结合,具有监控、调度、报警、自检等功能。它通过采集汽车的地理位置信息,设备自动跟踪汽车信息,以及其周边信息,然后将其信息显示出来。它还有一个重要的功能,那就是它存储了很多交通网信息,包括我国城市交通图,以及精度比较高的全国公路网,方便自动控制行驶路线,使其应用前景广阔。
自定位技术在各个领域有重要的应用。在无人机上也有很强的应用性,导航系统指引无人机到达正确的位置,例如农业领域中有农药喷洒无人机等,遥感测绘无人机用此技术来测绘地理信息,此技术的开发与应用在国内蓬勃发展。
设计出AVR单片机作为控制自定位控制系统的枢纽,该系统通过设计相关硬件模块以及相关的电路的设计实现汽车导航系统的功能,可以根据GPS信息以及综合车流信息,控制转向舵机和直流驱动电机的工作,实现调整小车的行驶方向和速度的目的。通过设计一些非常实用的内容来实现相关功能,例如显示车辆相关信息,该系统把常见的道路图、停车设施、道路属性、等信息实时传给主控人员。有助于在不熟悉的环境中处理交通问题,在未知的道路中,可以比较准确掌握道路的情况。
首先主控人员将前往目标输入系统中,然后电脑便能根据各种道路情况选出最好的路径,这些情况包括速度限制、红绿灯数等,并将这些信息显示出来让驾驶员观察。这样的系统具有很多优点,它不但帮助司机避开忙碌的交通路线,还具有利于疏散拥挤的车流。除此之外,它还有适时改变路线的功能,例如司机没有按照设定的路线行走,新的路线会被系统从新设计出来。通过小车的测试,最终实现到达的目的地,其实验对实际自定位工程技术的研究具有重要借鉴意义,其对生产生活具有重要的影响。
二、系统总体架构
系统主要包括AVR单片机最小系统[1]、电子罗盘、GPS模块、无线信息传输模块、舵机转向模块、电机驱动模块以及电源模块,系统结构如图1所示。
首先利用GPS将数据传给单片机,单片机将当前数据与目标数据进行比较,得到正确的航向,再通过电子罗盘得到车当前的航向,通过与当前航向与正确航向的比较,将比较结果送给单片机控制模块进行实时控制,为了实现驱动电机转动和舵机运转,需要输出相应的电信号来满足其需求。
在此系统中,通过无线模块,小车可以将当前位置信息息、时间信息发送到电脑上。操作者同样可以在小车运行的时候,改变程序,并通过无线模块传送到小车,实现对小车的在线控制。
三、硬件设计
1、ATmega128最小系统
本设计用的ATMEL公司的AVR单片机[2],其典型特点就是增强型RISC,具有内载Flash的特征的单片机,芯片上的Flash存储器附在用户的产品中,具有可随时编程和再编程的功能。为了使其具有较强的信息处理能力,故设计的AVR单片机有增强的RISC结构[3],使其具有在单位时间内处理复杂的信息。2.7~6V的电压即可满足AVR单片机的工作。通过其他的电源、频率、复位以及下载电路的设计来满足其最小系统的需求。
2、电源电路模块
通过设计的分级电源电路的设计,为控制板、舵机和电机提供不同电压值的电源,为系统各模块供电。小车系统根据各部件正常工作的需要,对配发的7.2V蓄电池进行调节电压。其中,为AVR单片机提供5V电压,为舵机供电3.5~6V电压,电机驱动芯片的供电电压直接用电池电压,驱动芯片的逻辑控制电平小于7V。电压分配如图2所示。
(1)单片机芯片的供电
为了稳定的得到3.3V电压,在本设计中采用LM1117稳压芯片。LM1117-3.3芯片产生1A输出电流,可以为单片机和大部分芯片提供工作电压。通过在稳压芯片两端都并联了一个电解电容,得到波形准确的3.3V电压。3.3V稳压电路如图3所示。
(2)舵机及驱动电路的供电
电压与电机的速度成正比例关系,电压越高,舵机反应越快。3.5~6V的电压为舵机供电范围,正常情况,为舵机的供电电压为6V,可以通过电池电压经过三个限流管得到6V电压,以供舵机使用。3个限流管的压降是2.1V,电池的标准电压为7.2V,由于电池充满电后电压会达到8V左右,所以使用三个限流管。为了实现对电机的驱动,特使用L298N芯片来实现其功能,4.5~46V电压为其提供的标准电压范围,由于其电压与电流成正比关系,为了得到大电流,通常需要提供一个较大的电压。因为L298N芯片有一个逻辑控制电压,由电池电压经过两个限流管得到限高电压。驱动电路的供电与舵机电路的供电如图4所示。
3、GPS模块电路设计
GPS[4]接口电路为GPS向AVR单片机传输GPS数据提供了支持,是系统能够实现定位功能的重要部分。为了实现GPS模块的输出电平与单片机电平兼容,特设计MAX232芯片实现RS232电平转换为TTL电平。AVR单片机具有两个USART,通过USART进行数据的传输,将GPS模块经过电平转换电路后与单片机的USART0相连,GPS模块接口电路得到了实现,如图5所示。在数据传输过程中,首先对USART模块初始化,GPS模块将字符逐一传给单片机,通过USART的数据寄存器UDR来将字符存放在这里,每来一个数据,可由相应的标志位置位产生中断,在中断程序中,系统通过软件编程将UDR里的数据取走放在定义的数组里,并且标志位会清零,以接收下一个字符,通过这样的过程,最后GPS数据就被成功地保存在数组中了。原理如图5所示。
4、电机驱动电路设计
本系统选用的芯片是L298N[6],共有15个引脚,VS接动力电源,范围为4.5~46V,直接将电源电压接至VS上,将电源电压经过两个限流管分压后接至VSS,每个限流管有0.7V的压降,所以接至VSS的电压不会超过7V。ENA与ENB为使能端,将他们分别接至PD4与PD5,这样通过输入0或1就可以起使能作用。IN1与IN2分别接PWM2与PWM3,在ENA为1的情况下,通过设置IN1=1,IN2=0使其控制电机正转,这时令PWM2为一个占空比不是0的PWM波,PWM3为一占空比为0的PWM波即可得到实现,为了改变速度,可以通过改变PWM2占空比的大小来实现。如需要实现反转,只需要令PWM2占空比为0,PWM3占空比非零即可。电机驱动电路如图6所示。
5、电子罗盘模块
在此系统中,选用的是GY-26电子指南针,其工作原理是感应地球磁场的磁分量,因为其器件有两个相互垂直轴,使其具有能够同时得出方位角度的功能,此罗盘以RS232 协议,及I2C 协议与其他设备通信。这个芯片还具有重新标定方位的功能,再加上其具有磁偏角补偿功能,使其方位角能够在各种环境下得到。GY-26电子指南针是一个12引脚模块,1~6号引脚为主要引脚,9号引脚用于矫正。将9号引脚连接的开关闭合,并将电子罗盘缓慢旋转一周,则实现了对电子罗盘的矫正。电路连接图如图7所示。
6、无线模块
无线模块是调试与控制小车的重要部分,通过无线模块解决了电脑与单片机只能通过串口线进行通讯的问题。通过无线模块可以在小车行驶的时候通过电脑读取单片机里面变量的数据,也可以用电脑通过无线模块来修改单片机里面变量的数据,这样就可以实时了解小车的位置信息,可以实时改变小车的速度与转角,也可以随时更改小车的目标位置[5]。图8为其连接电路。
四、软件设计
小车在工作中的路况:
①小车通过低速调整自己的舵机转向,使航向逐渐调整正确,这样来解决小车的航向与当前位置和目标位置连线构成的方向不一致的问题;
②为了节省时间,在小车航向正确的状态时,也就是小车按当前的航向可以直线到达目的地时,应加大小车的速度;
③当小车快要到达目标时,为了实现小车减速的功能,要求设计转向识别功能和调速功能[6]。
在各个模块的有机配合下,使小车可以正确地行驶到给定位置。其工作的主流程图如图9所示。当系统初始化开始正常工作时,通过传感器采集信息传递到系统中,系统自动调节舵机和电机,并显示出相关信息,实现对小车的控制。
1、GPS定位信息采集程序设计
系统为了完成对定位信息的采集[7],需要使用GPS定位信息的采集程序。由于单片机RX、TX端口被占用,且单片机只有一个硬件实现的UART数据通信,因此需要采用软件模拟UART的方式进行数据传递。在设计中所采用的是中断方式模拟软UART。按照一定的频率更新一次采集过程。程序流程图如图10所示。单片机初始化后,通过串口实现对GPS的控制,采集定位信息,并将信息传给单片机,完成GPS定位信息采集任务。
2、电机驱动与舵机驱动
单片机的PWM波提供小车的电机与舵机的驱动信号,改变PWM波的占空比就可以改变控制。在本系统中,定时器1的通道A与通道B产生的两路PWM波用于控制电机 ,定时器3的通道C产生的PWM用于控制舵机。PWM的两个主要参数为周期与脉宽,这两个参数都在定时、计数器对应的寄存器中设置。
定时器1的A、B、C三个通道的PWM初始化如下所示:
五、系统测试
通过设计,电子指南针能够输出小车的航向,我们可以得到小车与正北方向的夹角。通过GPS技术可以将定位信息及时的传给应用者。给定一个经纬度的位置数据,小车能够按照一定的路线走到目标位置。
小车实现的主要功能为:在操场上两边禁区的四个顶点处,将小车放在第一个顶点处,小车能缓慢启动,然后以较快速度运行至第二个顶点处,在即将到达第二个顶点时,会减速和提前拐弯,在转弯90°时,继续以较快速度运行至第三个顶点和第四个顶点处,在到达第四个顶点时,小车会停车,最后,小车在操场上跑了一个近似的长方形,误差为10m左右,最终能够完成设计的目标。
六、结论
通过硬件各个模块的设计以及其软件设计,实现了所设计的目标。本系统运用了L298N驱动芯片,确保了驱动电路的质量,系统只用一个LM1117-3.3稳压电路,简化了系统的电路结构。在本系统中,在原有小车的基础上,使用机械传动原理安装了舵机,舵机通过机械固定,运行可靠稳定。单片机及大部分芯片采用3.3V供电,这样在电池电压下降一定范围后仍可以正常提供3.3V电压,最终实现了设计目标。
随着新技术的发展,研究串口和SPI协议的应用,使用更加精密的加工方式安装舵机装置,尽可能使舵机工作稳定、可靠,转弯角度较大,使其自控小车性能更佳。