基于MC9S12XS128单片机的多功能智能小车系统设计

发布者:快乐行者最新更新时间:2014-08-07 来源: 21ic关键字:MC9S12XS128单片机  智能小车  嵌入式  图像采集 手机看文章 扫描二维码
随时随地手机看文章

智能汽车是智能系统与汽车工业相结合的产物,它是一个集计算机、传感器、自动控制、人工智能等多种高新技术于一体的综合系统。它在保证行驶安全、提高驾驶体验、节能环保等方面发挥着越来越重要的作用。作为未来汽车行业的发展方向,它的发展势必促进其他行业的发展,并在一定程度上代表了一个国家在智能控制方面的水平。

智能小车系统在环境感知、数据处理、控制策略及系统搭建上与智能汽车系统有很多相似之处,可以为科考、抢险救灾提供安全路径,未来也可以用在军事探测、运动目标跟踪预警等方面。智能小车系统的研究可以推动智能汽车行业更快更好地发展。

文中对智能小车的各个模块进行了深入的分析,从系统总体概述、硬件设计、软件设计等方面介绍了以摄像头为传感器的智能小车的设计方法:在现有车模的基础上,通过加装摄像头、殖度检测器,比较器,实现对小车速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后通过单片机对小车实施智能控制,最终实现了小车的自主行进功能。

1 系统的总体概述

智能车系统的总体工作模式为:利用CMOS图像传感器拍摄路面图像,输出PAL制式的图像信号,采用LM1881芯片进行控制信号分离,得到行、场同步信号,再依据给定的阈值,通过比较器进行硬件图像二值化;图像信号、场同步信号、行同步信号输入到MC9S12XS128单片机,经过算法优化处理后获得主要的路面信息;通过光电编码器来检测车速,并利用MC9S12XS128单片机的计数器进行脉冲计算,获得速度和路程;根据路面信息、速度信息得到舵机的转向角和电机的转速,把决策后得到的控制信号输出给舵机和电机,以控制小车的行进。此外,通过LED显示屏显示小车的行驶状态,使用按键对小车的各个模块进行微调,系统结构如图1所示。

基于MC9S12XS128单片机的多功能智能小车系统设计

2 系统的硬件设计

智能车以MC9S12XS128处理器为核心,通过CMOS模拟摄像头OV5116获取行进路径,对道路信息进行提取,根据小车的姿态与道路之间的偏差产生控制量,控制舵机进行转向,编码器实时反馈电机转速,使速度控制更精确,实现对小车更好的控制。本系统的硬件设计主要包括以下4个模块。

2.1 图像采集模块

摄像头有CCD和CMOS两种:CCD摄像头具有对比度高的优点,但需要工作在12 V电压下,为了保证小车的灵活性,小车的电源容量不会很大,用小型电源为CCD摄像头供电对于整个系统来说过于耗电,并且CCD摄像头在小车高速移动的过程中容易产生模糊和重影,影响图像质量CMOS摄像头不但体积小,耗电量小,并且在高速运动下图像稳定,不易产生失真。因此,本系统采用CMOS摄像头,如图2所示。OV5116采集到的模拟信号经由LM1881分离出场中断和行中断信号,模拟信号经由比较器LM393后得到二值化的路径信息,芯片阵列大小为352 x 288,有效光敏面为312 x 215像素,电源是6 V(DC)。摄像头输出的黑白全电视信号为PAL制式模拟信号,每秒25帧,电视扫描线为625线,奇场在前,偶场在后。

基于MC9S12XS128单片机的多功能智能小车系统设计

2.2 速度检测模块

为了得到智能车的实时速度,采用200线的编码器对小车进行时时测速,编码器与小车采用齿轮咬合,使速度测量更加精确。

2.3 主板控制模块

智能车的控制系统电路由三部分组成:MC9S12XS128为核心的最小系统板、LED显示屏、键盘。MC9S12XS128处理器插在系统板上,并在系统板上集成了信号采集、信号处理、电机控制、舵机控制等单元。为了减小电机驱动电路带来的电磁干扰,把主板控制模块和电机驱动部分分开来,排布在小车的两端。主板上连接了本系统的主要电路:电源稳压电路、最小系统板插座、视频同步分离电路、比较器集成模块、摄像头接口、舵机接口、电机驱动模块、编码器模块、键盘接口、LED显示屏等,如图3所示。

基于MC9S12XS128单片机的多功能智能小车系统设计

2.4 电源驱动模块

本系统中电源稳压电路有两路,一路为+5 V稳压电路,另一路为+12 V稳压电路。+5 V给单片机、摄像头、LM1881、LED显示屏模块供电。+12 V给电机驱动电路供电。系统中+5 V电路功耗较小,并且都是用于数字信号的处理,使用线性稳压器即可。需要特别注意的是,小车加速行进时,驱动电机会产生非常大的电流,为提高系统工作稳定性,必须使用大功率的驱动芯片,并且保证稳压芯片有良好的散热环境。

3 系统的软件设计

高效的软件系统是智能小车的灵魂,是小车快速稳定行进的保障。本系统采用CMOS摄像头进行路面识别,图像采集处理就成了整个软件的核心内容,图像采集流程如图4所示。[page]

基于MC9S12XS128单片机的多功能智能小车系统设计

3.1 路径提取及优化处理

相比红外传感器、电磁传感器而言,摄像头传感器具有视野范围大的特点,并且会受到杂点、交叉连线、反光以及各种干扰物的影响,因此必须对得到的图像进行进一步的优化,排除干扰因素,对路面进行更有效地识别,提供更准确的路面信息供单片机进行优化决策。在图像信号处理中提取的路面信息主要包括:路面中心位置,路面宽度,路面曲率。

经过分析和验证后发现,对于智能车而言,由于行驶路径具有一定的连续性,并不需要逐行采集图像,间隔若干行采集就可较好地获取路径信息。那么在图像采集的同时就可以进行数据的处理和优化,这种方法的优势在于:把图像处理嵌入到图像采集的过程中,有效解决了单片机处理图像信号能力不足的缺陷。

3.2 转向舵机的PID控制算法

系统通过把测得的路面函数与已知函数进行对比,判断出前方道路的类型。因此根据黑线位置动态改变PID参数,就得到了较好的控制效果。

为了提高智能小车在直道或者小弯道的前进速度,系统采用了与大弯道不同的控制算法:利用图像中路面两侧的面积比控制舵机的转向角。这种算法的优势在于:由于图像信息是数字矩阵,单片机可以非常迅速的完成面积的计算,利用面积比作为参量控制小车转向角,缩短了数据处理时间,提高了行驶速度。

3.3 驱动电机的PID控制算法

对于速度控制,采用了增量式PID控制算法,基本思想是直道加速,弯道减速。经过反复调试,将每场图像得到的黑线位置与速度PID参考速度值构成二次曲线关系。在实际测试中,小车直道和弯道相互过渡时加减速比较灵敏,与舵机转向控制配合得较好。

4 系统调试

作为整个智能小车系统的核心,图像采集模块必须经过严格的测试以确保其可靠性。智能小车完成行进后,通过串口调试工具提取出储存的路面数字图像信息,如图5所示。

基于MC9S12XS128单片机的多功能智能小车系统设计

此外,摄像头的安装位置也直接影响着小车的性能,为了能更好的掌握前方路径信息,以便让单片机提前做好控制量的计算,应尽量让摄像头看得更远。采用隔行处理数据和直道独立优化的算法极大提高了单片机的处理能力,每行图像采集点增加到120个,成功地增大了CMOS摄像头采集图像的视野宽度。在综合考虑了道路反光的影响后,适当增加了视场长度(视场最远处和最近处的距离),达到1.40 m,最远前瞻达到1.60 m,足以覆盖各种路面类型。智能车系统的整体实现如图6所示。

基于MC9S12XS128单片机的多功能智能小车系统设计

5 结束语

文中介绍了CMOS摄像头智能小车的总体设计方案,从系统的架构设计,硬件设计,软件设计和系统调试4个部分详细介绍了智能小车的设计方案和一些创新之处。经过测试,该系统能够做到高效、准确、实时地采集图像,具备良好的抗干扰能力,能够有效的为小车的决策系统提供较为准确的输入,可以在复杂的路径上自主、快速行进。同时也为将来的廉价导航系统提供了软硬件架构的解决方案。

未来,通过研究带有网络联接的多传感器、多处理器的综合导航系统,可以为自动驾驶、智能导航、抢险救灾提供更加丰富的解决方案,使智能汽车在生活中得到更广泛的应用。

关键字:MC9S12XS128单片机  智能小车  嵌入式  图像采集 引用地址:基于MC9S12XS128单片机的多功能智能小车系统设计

上一篇:基于加速度传感器的机动车制动性能监测系统
下一篇:基于LIN总线的汽车雨刮控制系统设计

推荐阅读最新更新时间:2024-03-16 13:39

嵌入式Linux三常用ARM汇编指令
在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时初始化,进出中断时的环境保护,恢复等对性能有要求的地方。 ARM指令集可以分为六大类,分别为数据处理指令、Load/Store指令、跳转指令、程序状态寄存器处理指令、协处理器指令和异常产生指令。 ARM指令使用的基本格式如下: 〈opcode〉{〈cond〉}{S} 〈Rd〉,〈Rn〉{,〈operand2〉} opcode 操作码;指令助记符,如LDR、STR等。 cond 可选的条件码;执行条件,如EQ、NE等。 S 可选后缀;若指定 S ,则根据指令执行结果更新CPSR中的条件码。 Rd 目标寄存器。 Rn 存放第1操作数的寄存器。 operand2 第2个操
[单片机]
想学嵌入式LINUX?米尔基于瑞萨RZ/G2L开发板免费送!
想学嵌入式LINUX?领免费的瑞萨RZ/G2L开发板! 导语: 刚入门嵌入式,选入门级RZ/G2L开发板,采用邮票孔形式封装了RZ/G2L核心板。 学习嵌入式系统开发是一个渐进的过程,一般我们从51单片机开始,逐步迁移到STM32微控制器,然后学习使用FreeRTOS操作系统,最终进入嵌入式Linux领域。以下是一个典型的学习路线: 51单片机:作为嵌入式系统的入门级平台,学习51单片机可以帮助我们了解基本的嵌入式开发概念和编程技巧。可以学习使用C语言编写简单的驱动程序、控制IO口和外设等。 STM32微控制器:一旦掌握了基本的嵌入式开发概念,可以进一步学习STM32系列微控制器。STM32具有
[嵌入式]
想学<font color='red'>嵌入式</font>LINUX?米尔基于瑞萨RZ/G2L开发板免费送!
7小技巧:如何选择MCU和电源让您的嵌入式电路设计更高效
1、MCU的选择 选择 MCU 时要考虑 MCU 所能够完成的功能、MCU 的价格、功耗、供电电压、I/O 口电平、管脚数目以及 MCU 的封装等因素。MCU 的功耗可以从其电气性能参数中查到。供电电压有 5V、3.3V 以及 1.8V 超低电压供电模式。为了能合理分配 MCU 的I/O资源,在 MCU 选型时可绘制一张引脚分配表,供以后的设计使用。 2、电源 (1)考虑系统对电源的需求,例如系统需要几种电源,如24V、12V、5V或者3.3V等,估计各需要多少功率或最大电流(mA)。在计算电源总功率时要考虑一定的余量,可按公式“电源总功率=2& TI mes;器件总功率”来计算。 (2)考虑芯片与器件对电源波动性的需求。一
[单片机]
嵌入式中如何实现应用层和硬件层分层管理呢
一、前言 以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会有stm32f10x.h或者stm32f10x_gpio.h,这些文件严格来时属于硬件层的,如果软件层出现这些文件会显得很乱。 使用过Linux的童鞋们肯定知道linux系统无法直接操作硬件层,打开linux或者rt_thread代码会发现代码中都会有device的源文件,没错,这就是驱动层。 二、实现原理 原理就是将硬件操作的接口全都放到驱动链表上,在驱动层实现device的open、read、write等操作。当然这样做也有弊端,就是驱动find的时候需要遍历一遍驱动链表,这样会增加代码运行时间。 三、代码实现 国际惯例,
[单片机]
在<font color='red'>嵌入式</font>中如何实现应用层和硬件层分层管理呢
BIST在SoC片上嵌入式微处理器核上的应用
   引 言   随着科技的不断发展,集成电路的制造工艺和设计水平得到了飞速提高,设计者能够将非常复杂的功能集成到硅片上。将PCB板上多块芯片的系统集成到一块芯片内部,这个芯片就是系统级芯片,即SoC(System on Chip)。SoC芯片的特点主要有两方面:第一是其高度的复杂性,第二是大量运用可重用的IP(Intellectual Property)模块。以往的芯片设计往往只专注于某个特定功能的模块设计,例如压缩/解压、无线模块、网络模块等。而一块SoC芯片的功能可能是多个独立模块的总和。另外,芯片的制造需要经历化学、冶金、光学等工艺过程,在这些过程中可能引入物理缺陷导致其不能正常工作。因此对芯片的测试成为必不可少的环节。
[嵌入式]
BIST在SoC片上<font color='red'>嵌入式</font>微处理器核上的应用
PPSM嵌入式RTOS中的窗口系统开发
摘要:PPSM是Motorola为M68K系列提供的实时嵌入式操作系统。本文介绍在PPSM嵌入式RTOS上开发窗口及控件系统的体系和方法。 关键词:PPSM EZ328 VZ328 M68K RTOS 实时嵌入式操作系统 窗口系统 控件 在目前的中低档PDA中,很多厂商都采用Motorola M68K系列芯片。Motorola为其M68K CPU提供了一套免费的实时操作系统PPSM(Personal Portable System Manager)。但该系统中没有提供窗口系统。我们在实践中开发了一套窗口系统,如图1和图2所示。该系统为事件驱动方式,并有一系列控件支持。软件开发人员采用添加控件的方式构建所需的窗口,编写对控件和窗
[嵌入式]
嵌入式音频处理基础
  音频DAC   传统的D/A转换方法有加权电阻器、R-2R梯形网络和零点交叉失真等。正如A/D中的情况那样,Σ-Δ设计统治了D/A转换的领域。这些转换器可以接受16位44.1kHz的信号,然后使用插值滤波器把它转换为2.8224MHz的1位样点流。然后用1位的DAC把这些超级采样的样点流转换成模拟信号。   一个典型的嵌入式数字音频系统可以使用一个Σ-Δ音频ADC和一个Σ-Δ DAC,因此,在PCM信号和过采样流之间的转换要进行两次。由于这个原因,Sony与Philips (NXP半导体)已经在它们的Super Audio CD(SACD)格式中引入了一种与PCM不同的格式,被称为直接流数字(DSD)。这种格式用1位的高频(
[单片机]
用OpenSTLinux帮助决定合适的嵌入式Linux发行版
OpenSTLinux是用于STM32 微处理器的开源 Linux 发行版。该操作系统可帮助工程团队更快地进行原型设计并缩短产品上市时间。因此,它可以作为一种独特的支持工具,同时也为开源社区做出贡献。 很多时候,团队将 Tux 视为可以解决所有软件需求的灵丹妙药。然而,从概念到大众市场需要的不仅仅是内核,尤其是在嵌入式系统上。因此,选择正确的发行版和平台至关重要。为了帮助面临这一挑战的专业人士,我们列出了在开始项目之前需要回答的七个基本问题。这些询问还将帮助决策者评估他们的需求并决定哪种嵌入式 Linux 发行版适合他们。实际上,它们代表了旨在减少开发过程中重大摩擦的开发人员的指导方针。 正如我们在今年早些时候发布的使用 MP
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved