1.智能车的系统总体结构:
线性CCD安装主要考虑三个方面:(1)图像的失真要小(2)整车重心要低(3)前瞻要比较大
使数字地和模拟地直接相连,有助于克服零点漂移。
电源模块:(1)7.2V电池直接给电机供电(2)通过升压芯片转化为16V给电机驱动IC供电(3)升压芯片转化为5V给线性CCD,单片机,编码器供电(4)通过稳压芯片LM2940将7.2V电压转化为5.6V电压给舵机供电。
2.软件算法:
核心板用来对芯片进行读写,根据阈值将CCD采集到的图像二值化求得黑线的实际位置,在根据PID算法对舵机和电机进行控制
软件系统程序流程:初始化->图像采集标志位是否置位->图像采集算法->图像滤波算法->黑线采集算法->控制算法->数据更新算法
(1)曝光时间自适应算法
曝光控制中断程序每1ms 执行一次,每次中断到了 20ms 时间到标志,计数器自加1,根据曝光时间( IntegrationTime )计算曝光点( integration_piont)(取值范围2~20),如
果曝光点等于当前计数器则开始曝光,当 TimerCnt20ms 等于20时,重置
TimerCnt20ms,同时置位( TimerFlag)20ms 标志位,通知主程序20ms 程序执行。
(2)黑线采集算法
采用二值化提取黑线和动态二值化阈值。根据CCD测得的不同的光强和不同的积分时间选择不同的二值化阈值,这样能够准确的将路面的黑线与白色KT板区分开
取得动态阈值之后需要对CCD采集到的128个像素点进行二值化处理并滤波。
(3)电机控制算法
通过PID参数的自整合找到合适的PID,从而使车子达到我们指定的速度。
(4)舵机控制算法
利用CCD采集到的图像和计算出来的偏差,将路况分段,可以采用PD闭环让舵机更快的响应。