基于单片机、基于单片机、CCD传感器和无线收发模块实现智能车实时监测传感器和无线收发模块实现智能车实时监测
系统设计系统设计
系统功能及应用 本系统主要完成将智能车行驶过程中的各种状态信息(如传感器亮灭,车速,舵机转角,
电池电量等)实时地以无线串行通信方式发送至上位机处理,并绘制各部分状态值关于时间的曲线。有了这些
曲线就不难看出智能车在赛道各个位置的状态,各种控制参数的优劣便一目了然了。尤为重要的是对于电机控
制PID参数的选取,通过速度一时间曲线可以很容易发现各套PID参数之间的差异。对于采用CCD传感器的队伍
来说,该系统便成为了调试者的眼睛,可以见智能车之所见,相信对编写循线算法有很大帮助。而且还可以对
这些数据作进一步处理,例如求取一阶导数,以得到更多的信息。 系统的硬、软件设计 设计方案主要分成
三部分:车载数
系统功能及应用
本系统主要完成将智能车行驶过程中的各种状态信息(如传感器亮灭,车速,舵机转角,电池电量等)实时地以无线串行
通信方式发送至上位机处理,并绘制各部分状态值关于时间的曲线。有了这些曲线就不难看出智能车在赛道各个位置的状态,
各种控制参数的优劣便一目了然了。尤为重要的是对于电机控制PID参数的选取,通过速度一时间曲线可以很容易发现各套
PID参数之间的差异。对于采用CCD传感器的队伍来说,该系统便成为了调试者的眼睛,可以见智能车之所见,相信对编写循
线算法有很大帮助。而且还可以对这些数据作进一步处理,例如求取一阶导数,以得到更多的信息。 系统的硬、软件设计
设计方案主要分成三部分:车载数据采集系统,无线数传系统,上位机数据处理系统。系统基本构建如图1所示。
车载数据采集系统
车载数据采集系统主要由单片机负责采集赛车行驶过程中的速度、传感器状态、电池电压、舵机转角等信息。为了使监测
系统不占用S12单片机的内部资源并且支持热插拔,我们将除供电之外的监测系统与智能车控制系统相分离。我们选择
ATMEL公司的ATMEGA16单片机作为该数据采集系统的处理器。二值型光电传感器信号的采集直接使用该单片机的I/O口进行
采集,连续型光电传感器、电池电压及CCD摄像头信号则采用该单片机的A/D口进行采集,速度信息则通过光电编码器和该单
片机的计数器来采集。采集到的数据每20ms向上位机发送。
无线数传系统
下位机向上位机传输的是以每20ms传输一组包含了光电编码器值(speed),电池电压(battery),舵机转角值
(angle),传感器当前状态(sensor)的数据,如果是在理想状态下,上位机接收到的应是上述各值循环出现的周期性数
据,此时上位机只需将这些数据按顺序装入各自的数组并画图即可。但在实际的无线传输过程中可能出现数据丢失现象。因此
加入适当的数据校验是必要的,否则会出现数据装入错误,造成画图的混乱。我们在实际过程中是在每组数据中加入
0x00,0xff的帧头,当数据出现错误时,则舍弃该帧数据。
数据的无线收发部分采用的是SUNRAY公司的QC96型无线收发模块,该模块可以收发波特率为9600bps的串行数据,距
离可达100m。
上位机的数据接收及处理
上位机部份主要由四个模块构成:
·数据接收模块
功能:上位机通过串口采集下位机发送的原始数据。
实现:VC++中实现串口通信一般有二种方式,分别是MSComm控件和Windows API函数。MSComm简洁易用,适用于
比较简单的系统,Windows API函数应用较广但比较复杂繁琐,由于此模块的串口通信功能相对简单,本系统采用前者。在实
评论0
最新资源