智能车摄像头组技术报告五篇

时间:2019-05-12 01:44:27下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《智能车摄像头组技术报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《智能车摄像头组技术报告》。

第一篇:智能车摄像头组技术报告

山 东 工 商 学 院

课程设计报告

设 计 题 目:智能车设计及实验

所属课程名称:智能车设计及实验 班 级:

姓 名:

学 号:

目录

目录..........................................................................................................第一章 引言...........................................................................................1.1 整车设计思路..................................................................................第二章 硬件设计...................................................................................2.1 小车机械改造............................................................................2.1.1 舵机的改装.................................................................................2.2 单片机系统设计...............................11.........................................2.3 摄像头的对比选型....................................................................2.4电机驱动电路设计....................................................................2.5 电源模块设计............................................................................第三章 软件设计.................................................................................第四章 心得体会............................................................引言

智能汽车是当今车辆工程领域研究的前沿,它体现了车辆工程、人工智能、自动控制、计算机等多个学科领域理论技术的交叉和综合,是未来汽车发展的趋势。全国大学生智能汽车竞赛对高校学生而言是一次难得的机遇和挑战。智能汽车竞赛涉及的知识较为宽泛,为了设计出性能优越的智能赛车,需要在赛车的设计开发过程中参考许多有价值的文献资料,不断学习,不断创新。

智能汽车竞赛考验参赛选手的综合能力,包括传感器的应用、电动机的应用、电路设计、自动控制原理、系统调试、机械结构设计等,将这些知识合理运用到智能汽车上是对选手的巨大挑战。对于竞赛选手来说,临场发挥对比赛成绩的好坏至关重要,及时制定并调整策略才能发挥出智能汽车的最大性能。

关于飞思卡尔微控制器

竞赛指定控制芯片为飞思卡尔系列芯片,飞思卡尔公司是嵌入式控制领域的全球带头人,是主要技术创新者,开发了首个基于Flash 存储 的MCU。

“飞思卡尔”杯全国大学生智能汽车竞赛是由教育部高等自动化专业教学指导分委员会主办的一项以智能汽车为研究对象的创意科技竞赛,是面向全国大学生的一种具有探索性工程实践性活动,是教育部倡导大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际,求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。该竞赛以智能车电子为背景,涵盖自动控制,模式识别,传感技术,电子,电气,计算机等多个学科的科技创意性比赛

1.1 整车设计思路

1.2 自主驾驶系统的三个子系统——环境感知系统、自主决策系统和操作执行系统。它们相互联系、相互制约,共同完成控制任务。环境感知系统,我们的该部分主要包括感知路面信息的传感器和感知车体状态的传感器。传感器的选择相当灵活,我们的车选用了两种传感器。

CMOS 摄像头:感知车体与路面的相对位置信息,预视距离远。

光电码盘:感知车体信息,推算车体状态。

自主决策系统,主要通过单片机的软件来实现决策控制。操作执行系统,就是从单片机发出控制指令到车体响应这一部分的系统,主要就是相应的驱动电路,H桥之类。三个系统相互联系、制约,它们都统一于一个共同的系统,有共同的目标和核心的控制策略,这些直接决定了三个系统的构成和性能要求。比如由控制策略,我们就可以确定环境感知系统要选什么传感器、什么精度、怎么安装,决定自主决策系统要如何分配CPU时序,各部分各用多少资源;决定操作执行系统的能力,比如是否要双向的H桥。比赛要求在组委会提供统一智能车竞赛车模、单片机HCS12开发板、开发软件Code Warrior和在线调试工具的基础上制作一个能够自主识别路线的智能车,它将在专门设计的跑道上自动识别道路行驶。比赛要求在不违反大赛规则的情况下以最短时间完成单圈赛道。

第二章 硬件设计

2.1 小车机械改造

3.1.2 舵机的改装

由于舵机初始位置空程较大,所以我们对舵机的位置进行了改动,通过减少舵机的连杆机构来达到响应速度灵敏和足够的转角,具体改造位置见下图:

2.2 单片机系统设计

大赛推荐参赛选手使用 MC9S12XS128 作为主控器,不得使用其它辅助处理器以及可编程器件。MC9S12XS128 是飞思卡尔半导体公司生产的采用HCS12 内核的16 位单片机,有丰富的外设接口资源。关于单片机的使用,在智能小车控制系统中,我们使用锁相环(PLL)来设定系统的工作频率,用PWM 模块控制舵机偏角和电机转速,用通用异步串口(SCI)把赛车调试或比赛的行驶过程中的各种有用参数发送到PC 机以便进行分析和改进,我们还使用同步串行外设接口(SPI)或IIC 总线来控制CMOS 摄像头。

2.3 摄像头的对比选型

目前市场上的摄像头所采用的感光器件分为 CCD 和CMOS 两种,CCD 的 全称为电荷耦合装置,而CMOS 的全称则是互补金属氧化物半导体。目前的 CMOS 摄像头有很多都自带有可编程控制模块和模数转换模块,无论从结构上、工艺上、性能上和使用方法上,都与普通的存储器有非常相似之处。与CCD 摄像头相比之下,CMOS 摄像头不需要斩波升压来提供电源,并且具有较强的可编程控制能力,也不需要额外地进行A/D 采样,各方面都更适合于作为小车的视觉传感器。市场上的 CMOS 图像传感器产品各种各样,数不胜数,大部分是彩色的,分辨率也比较高。从小车需要识别的目标特征来看,CIF 分辨率甚至QCIF 分辨率的黑白摄像头足够提供路径识别和规划所需要的信息。摄像头具体情况见下图:

2.4 电机驱动电路设计

在智能汽车竞赛中,智能车的速度较快,通常达到2m/s 以上,因此对电机驱动电流的要求较高,电机驱动电路必不可少。首先,竞赛级电调并不使用全桥驱动,而是使用半桥,其原理图如图所示。我们使用BTS7960 驱动芯片。这种芯片的好处是外围电路简单。通过设计电路,能使电机正转以及反转,而且使用PWM 波控制,能起到很好的驱动效果。具体情况见下图:

2.5 电源模块设计

驱动电路板中的电源模块为系统其它各个模块提供所需要的电源。设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。全部硬件电路的电源可充电镍镉电池提供。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压。主要包括如下不同的电压:

1.主要为单片机、信号调理电路以及部分接口电路提供电源,电压要求稳定、噪声小。

2.主要是为舵机提供工作电压。实际工作时,舵机所需要的工作电流一般在几十毫安左右,电压无需十分稳定。

3.一部分直接取自电池两端电压,主要为后轮电机驱动模块提供电源。4.采用摄像头进行道路检测时,为摄像头供电。具体情况见下图:

第三章 软件设计

本系统控制软件采用大赛提供的CodeWarrior软件及BDM作为调试工具,此外,厂家提供的编程环境支持C语言和汇编语言的程序设计,以及C语言与汇编语言的混合编程,大大方便了用户的程序设计,提高了系统开发效率。本系统程序代码使用C语言编写。本程序设计由以下几个模块组成:单片机初始化模块,实时路径检测模块,舵机控制模块,驱动电机控制模块,中断速度采集模块,速度模糊控制模块。

(1)单片机的初始化模块包括:I/O模块、PWM模块、计时器模块、定时中断模块初始化。

(2)实时路径检测模块:前排光电传感器检测黑线,将返回信号输入单片机的输入端口,程序不间断地读入输入端口的信号,通过判断语句,得出合适的PWM信号控制舵机转向

(3)舵机控制模块,驱动电机控制模块:通过直接输出PWM信号控制。舵机的控制采用开环控制,驱动电机采用模糊算法闭环控制。

(4)中断速度模糊控制模块实现:通过输出比较中断实现每5ms产生一次中断,并由累加器从旋转编码器信号线读入脉冲数,通过模糊运算得出PWM信号值输出控制转速电机控制速度

心得与体会

参见智能车比赛,让我从中学会了很多知识。智能车比赛需要细心和耐心,以及丰富的知识和极强的动手能力。拿耐心来说,在我画板的时候,必须极其小心,一个小小的失误就有可能让整个板子废掉。我是画了四次才算是成功,而且你在画板布线的时候更得有耐心,遵循布线的规则,寻找最优的路线说实话,有时候真的会看的眼晕。所以说,画板需要很好的耐心。

在做车过程中,也让我学会了很多知识。你要学会使用需要的软件,学会焊电路,知道各个元器件的性质以及各种芯片的性质还有引脚的功能。而且大部分资料都是英文版的,需要极有耐心的把他们看一遍,寻找你所需要的部分。在做车过程中,极大的提高了我的动手能力。以前我焊电路的时候手一直会抖,现在是好了很多,手没有以前那样,抖个不停。

也许我们的知识还不够丰富,考虑问题也不够全面,但是这份技术报告作为我们小组辛勤汗水的结晶,凝聚着我们小组每个人的心血和智慧,随着它的诞生,这份经验将永伴我们一生,成为我们最珍贵的回忆。

第二篇:智能车电磁组报告

目录

一.学分认定书 …… …………………………………………XX 二.实验报告 …… ………………………………………………XX 三.智能车制作研究报告 ……………………………………… XX 四.心得体会 ………………………………………………… XX 五.附录:程序源代码………………………………………… … XX

(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。)

一.学分认定书(每个队员1份)二.实验报告

实验一.通用输入输出口和定时中断

一、实验目的

1.掌握 MC9S12XS128 汇编语言对通用端口的操作指令。2.掌握程序中指令循环和跳转的方法。

3.学会使用程序延时,并会大概估算延迟时间。

二、实验任务

1.将 PORTA 口接八位DIP 开关,PORTB口接七段数码管显示,PORTK控制四个数码管其中某一个显示。

2.采用定时中断方式,利用八位DIP 开关输入二进制数,数码管显示其十进制数。

三、实验内容

实验中每个通用输入输出端口要用到的寄存器都有两个,端口定义寄存器和端口方向寄存器。以 A 端口为例,端口定义寄存器为PORTA和端口方向寄存器为DDRA。在MC9S12XS128的DATASHEET 上可以查到DDRA的地址是0x00(输入), DDRB的地址是0xFF(输出), DDRK的地址是0xFF(输出)。则初始化端口PORTA、PORTB、PORTK的语句为: void initGPIO(void){ DDRA = 0x00;DDRB = 0xFF;DDRK= 0xFF;}

置0 表示该位为接受输入位,置1 表示该位为输出位。

MC9S12DP256/DG128 中可以使用实时时钟或增强型定时器来完成定时功能,二者是相互独立的。本实验中用实时时钟定时。实时时钟的可以通过对外部晶振分频而得到一个定时中断。RTICTL 是实时时钟控制寄存器,向该寄存器写入内容,通过查表会得到一个分频因子,外部晶振除以分频因子就是中断的频率了。因为外部晶振频率是16MHz,要得到1ms中断一次,需要16000分频。在MC9S12XS128的DATASHEET 上可以查到RTICTL设置为0x8F, 中断允许寄存器CRGINT设置为0x80(开中断)。则初始化中断程序为: void InitRTI(void){ RTICTL = 0x8F;CRGINT = 0x80;} 一但进入中断,即开始读PORTA口的二进制数,并转换为十进制,通过PORTB口显示出来。由于是数码管动态显示,PORTK口控制四个数码管轮流显示。具体程序见开发板例程中——SevenSegmentDigitalTube。

四、思考题

1.如果不用PORTA口做输入,直接让单片机内部从0—9999自动计数,并在PORTB口显示出计数过程,PORTK口控制四个数码管轮流显示,程序该如何改? 对程序的修改如下:

void interrupt 7 RTI_INT(void){ time++;if(time >=50){ 2 time=0;Count_Num++;LedData[0] = Count_Num/1000%10;LedData[1] = Count_Num/100%10;LedData[2] = Count_Num/10%10;LedData[3] = Count_Num%10;if(Count_Num >=9999){ Count_Num=0;} } PORTK = 0x01 << LedNum;PORTB = LedCode[LedData[LedNum]];LedNum++;if(LedNum >= 4)LedNum = 0;CRGFLG = 0x80;} 这样便可以在数码管中显示动态显示0000—9999,经试验检测该方法正确。

实验二.A/D转换实验

一、实验目的

了解 S12 单片机ADC 模块的使用方法。

二、实验任务

用 S12 的ADC 模块将一路(或多路)模拟电平转换成数字量,并将转换结果显示在数码管上,或者通过SCI 发送到PC 终端显示出来。

三、实验内容

1、与 S12 的ADC 模块相关的寄存器如下,各寄存器的详细定义可参阅datasheet。ATDCTL2:控制寄存器。主要设置A/D 标志位清除方式、A/D 采样触发方式、是否允许A/D 采样完成中断等。

ATDCTL3:控制寄存器。主要设置每次A/D 转换采样几路电平、采样结果的存储方式等。

ATDCTL4:控制寄存器。主要设置A/D 转换精度、A/D 转换时钟频率等。

ATDCTL5:控制寄存器。主要设置A/D 转换结果的对齐方式和数据类型,以及A/D 的采样模式(连续采样/单词采样,顺序转换/单通道转换等)

ATDSTAT0:状态标志寄存器。包括A/D 转换完成标志,出错标志、转换结果存储索引等标志位。

ATDTEST1:测试寄存器。

ATDSTAT1:标志寄存器。标识一次A/D 转换中各通道的完成情况。

以上寄存器的具体内容和其他与 ADC 模块相关的寄存器请参看datasheet 相应章节。

2、本实验采取AN14单通道连续AD转换模式,且结果存放在ATD0DR0L中, 转换序列长度为1,转换精度为8位,在freeze模式下继续转换。通过查看datasheet,得出ATD0初始化程序如下:void ATD0_init(void){ ATD0CTL1=0x0e;//转换精度为8位,从AN14通道转换 ATD0CTL2=0x40;//禁止外部触发, 中断禁止 ATD0CTL2_ASCIE = 1;//允许中断

ATD0CTL3=0x88;//转换序列长度为1,在freeze模式下继续转换 ATD0CTL4=0xFF;ATD0CTL5=0x2E;//单通道连续AD转换模式 } 具体程序见开发板例程中——testAN14。

四、预习要求

(1)参考datasheet 明确ADC 各寄存器的作用,主要思考以下问题: 1.A/D 转换的时钟应该是多少?如何设置分频因子? 答:A/D 转换的时钟应该是如下:

其中PRS为ATDCLT4中的后五位。

2.A/D 转换如何启动?有几种启动方式?分别如何设置相关寄存器?

答:可以用ATD0CLT2去给ATD模块上电,有五种上电(触发方式)分别如下:设置ATD0CLT2中的10~12位。第10位为0时忽略外部触发,为1时则使用内部触发。但第十位为1时,前两位为00,01,10,11,分别对应下降沿触发,上升沿触发,低电平触发,高电平触发。3.每次A/D 转换启动那几路电平采样?采样结果如何存储(注意FIFO 的A/D 转换模式)?采样结果的数据类型(8 位/10 位?左对齐/右对齐?有符号数/无符号数?)? 答: 每次启动那一路转化得看ATD0CTL5中的设置。采样结果的储存也是在该寄存器控制的。采样结果的位数也是该寄存器控制。如ATD0CTL5 = 00110000时该结果为左对齐无符号型数据是连续转化,多通道转化。并且从0通道开始转化。4.如何判断A/D 转换是否结束?如何清标志位? 答:从ATD0START1_CCF0 = 0 时转化完成。(2)如何实现多通道转换? 答:ATD0CTL5中的第四位置1。

五、实验现象

开发板通电后,用起子旋转电位器,发现数码管上数字从0—255连续变化。

实验

三、PWM 模块实验

一、实验目的

1. 学习使用 PWM 模块。

2. 用 PWM 实现小型直流电机调速和舵机转向。

二、实验任务

1、使用单片机内部PWM 模块调制产生不同脉宽的方波,实现小型直流电机调 速和舵机转向。

2、将 PORTA 口接八位DIP 开关,PORTB口接七段数码管显示,PORTK控制 四个数码管其中某一个显示,数码管动态显示原理同实验1。拨码开关高两位控 制舵机,当为00,11代表舵机转到正中央,为10,01代表舵机分别左转右转。拨 码开关低六位控制电机,表示PWM占空比。数码管第一位显示舵机控制方向,后 两位显示电机占空比。

三、实验内容

1.PWM 模块共有28 个寄存器,其中8 个为系统保留寄存器,具体介绍如下: PWM 启动寄存器(PWME)

本寄存器的 8 个bits 分别用来开关8 路PWM 的通道。PWM 极性寄存器(PWMPOL)

本寄存器的 8 位bits 分别用来设定8 路PWM 通道输出波形的起点电平。PWM 预分频寄存器(PWMPRCLK)

本寄存器用来设定 ClockA 和ClockB 的预分频因子。ClockA 分频寄存器(PWMSCLA)

本寄存器提供 PWM 模块操作时的几个控制位。PWM 通道周期寄存器(PWMPERx)

此 8 个寄存器分别为8 个通道设定方波的周期。PWM 通道脉宽寄存器(PWMDTYx)此 8 个寄存器分别为8 个通道设定脉宽。PWM初始化程序如下: void initPWM(void){ PWME=0x00;//关闭所有PWM通道

PWMPOL = 0xFF;//PWM极性选择,选择一个周期开始时为高电平

PWMPRCLK = 0x22;//CLOCK A,B时钟分频,均选择从总线四分频 10M PWMSCLA = 5;//CLOCK SA从CLOCK A十分频,1M PWMSCLB = 5;//CLOCK SB从CLOCK B十分频,1M PWMCTL = 0xF0;//01级联,23级联,45级联,67级联

PWMCLK = 0xFF;//PWM始终选择,选择CLOCK SA SB为PWM时钟 PWMPER01=1000;//电机PWM正转频率1k PWMDTY01=0;PWMPER23=1000;PWMDTY23=0;//电机反转频率为1k PWMPER45=20000;//舵机PWM频率为50Hz PWMDTY45=STEER_CENTER;//舵机占空比 PWME_PWME3=1;PWME_PWME1=1;//电机PWM波开始输出 PWME_PWME5=1;//舵机PWM波开始输出 } 参考程序参见实验例程——motorpwm

四、实验现象

拨码开关高两位控制舵机转向,当为00,11舵机在中央,为10,01舵机分别左转右转。拨码开关低六位控制电机,表示PWM占空比。数码管第一位显示舵机控制方向,后两位显示电机占空比。占空比越大,转速越大。

四、电磁组实验——信号处理

一、实验步骤

1、电磁传感器检测到信号

2、单片机处理这些信号——判断是否需要转向、减速

二、实验内容

1、电磁感器检测处理后为一模拟电平,需用到AD 转换程序。将光信号转换为数字量存在单片机中。接下来由单片机处理这些数,判断是否要转向。最简单的两个传感器布局,当导线在传感器中央时,相应的AD数值相同,导线偏向右边的传感器时,右边传感器的值变大,左边传感器值变小。本实验关键在于如何确定导线位置。

2、输入输出口和ATD 的初始化同前面的实验一和实验二,将程序运行后,打 开Data1 窗口,找出AD 转换后的数字值,应该在0-255 之间。将车子的左边电感对准黑色牵引线,观察两个传感器。理论上应该该电感的值最大,调解好放大器的应在160左右记录该数值(159),再将黑线想又移动,发现右边传感器的值逐渐增大,左边传感器的值逐渐减小。黑线一动到右边电感正下方时,将此电感的值调解到160左右,记录该数值(150)。而黑线偏出两个电感的范围时,两个传感器的值同时减小。

正常情况下小车检测中心线程序如下: //计算Line_center 6 if(ad_data[0]+ad_data[1]<100){ Line_center =(int)(ad_data[0])*160/159-(int)(ad_data[1])*160/150;//归一化,差值计算中心线 Get_Line = 1;} else{ Get_Line = 0;} 根据检测到黑线的位置可以判断行车方向。参考程序见电磁基本程序。

三.智能车制作研究报告

1.原理介绍

可以确定电感相对于导线的位置,或者说可以确定导线相对于小车的分布

2.电磁传感器

1首先由LC回路检测磁场○,输出信号Singal1。

2通过放大电路INA128将信号放大 ○

3通过○获得负电源。

4因为放大后的电路频率依然为20KHz的周期信号,所以我们通过下面电路转换为稳○定输出。

5在起跑线检测上我们用干簧管电路。○6幅值测量 ○可以不使用检波电路,而直接将上述单管放大电路中,三极管集电极电压接入单片机的AD 端口,使用单片机直接采样交变电压信号

只要保证单片机的 AD 采集速率大于20kHz 的5-10 倍,连续采集5-10 个周期的电压信号(大约100 数据左右),就可以直接从采集的数据中最大值减去最小值获得信号的峰峰值。假设采集了128 个数据: , 1,2, ,128 i x i=,计算信号的峰峰值p p V − 可以有下式计算:

上面计算计算方法由于只用应用了数据的最大值、最小值,所得结果容易受 到噪声的影响,所以还可以通过计算数据交流信号的平均值、有效值反映信号的 幅值:

上面所计算得到的 , ave e x x 等都与信号的峰峰值成单调关系,所以也可以用来 进行计算位置差值信号。

7软件设计 ○程序主要用到 S12 芯片中的PWM 模块,TIM 模块、PIT 模块、AD 模块、I/O 模块 以及 SCI 模块等。PWM 模块主要用来控制舵机和电的运转; TIM 模块主要是用在了测速模块,捕捉中断并计算瞬时度。PIT模块用于设置定时中断; AD 模块主要用于读取传感器信息以判断黑线位置; I/O 模块主要是用来读取按键信息和控制数码管显示; SCI 模块只要用在无线串口传送模块。

源码后附

四.心得体会(每个队员都要提交心得体会)

五.附录:程序源代码

#include /* common defines and macros */

#include “derivative.h” /* derivative-specific definitions */

/********************************************************************************* * * * *

*********************************************************************************/ #define StrCnr 1500 /**********************************/ //初始化锁相环 //将总线频率调整到40M

/**********************************/ void InitPLL(void){ CLKSEL=0x00;//禁止锁相环,时钟由外部晶振提供,总线频率=外部晶振/2

PLLCTL_PLLON=1;//打开锁相环 SYNR=0x49;REFDV=0x43;// pllclock=fvco=2*osc*(1+SYNR)/(1+REFDV)=80MHz;POSTDIV = 0x00;_asm(nop);//BUS CLOCK=40M

_asm(nop);while(!(CRGFLG_LOCK==1));// 等待锁相环初始化完成 CLKSEL_PLLSEL =1;// 使用锁相环 2012东南大学智能车竞赛电磁组Demo程序 电感信号分别接0,1口 } /**********************************/ //初始化通用IO口 //A口输入B口和K口输出

/**********************************/ void InitGPIO(void){ DDRA = 0x00;//A口输入 DDRB = 0xFF;//B口输出 DDRK = 0xFF;//K口输出 } /**********************************/ //初始化PWM

/**********************************/ void InitPWM(void){ PWME=0x00;PWMPOL = 0xFF;PWMPRCLK = 0x22;PWMCLK = 0xFF;PWMSCLA =5;PWMSCLB =5;PWMCTL = 0xF0;PWMCAE=0;PWMPER01=100;PWMDTY01=0;PWMPER23=100;PWMDTY23=0;PWMPER45=20000;PWMDTY45=StrCnr;PWME_PWME3=1;PWME_PWME1=1;PWME_PWME5=1;} /**********************************/ //初始化AD

/**********************************/ void InitATD(void){ ATD0CTL0 = 0x0f;ATD0CTL1_SRES = 2;ATD0CTL1_SMP_DIS=1;ATD0CTL2_AFFC = 1;//ATD0CTL2_ASCIE = 1;//10

//关闭所有PWM通道 每位对应一个端口 //PWM极性选择,选择一个周期开始时为高电平//CLOCK A,B时钟频率为10M //选择CLOCK SA SB为PWM时钟 //CLOCK SA频率为1M //CLOCK SB频率为1M //设定PWM通道两两级联使用 //电机正转频率10k //电机反转频率10k //设定舵机控制线的频率为50Hz //设定舵机初始位置 //电机PWM波开始输出

//舵机PWM波开始输出 //多路转换时转换 //转换精度为12位 //中断标志位自动清零

一个序列传唤结束触发中断

//ATD0CTL3 = 0xC0;//结果寄存器对齐方式右对齐(ATD0CTL3_DJM=1),转换序列长度为8(8路),循环转换,freeze模式下继续转换 ATD0CTL3 = 0x80;ATD0CTL4_SMP = 0;// 采样周期为4个周期

ATD0CTL4_PRS = 19;//atdclk=busclk/(2*(19+1))=1M ATD0CTL5_SCAN = 1;//连续转换模式

ATD0CTL5_MULT = 1;//多通道采样

} /**********************************/ //初始化实时中断

/**********************************/ void InitRTI(void){ RTICTL =0x9F;//2ms中断一次 }

void main(void){ /* put your own code here */ InitPLL();InitGPIO();InitPWM();

{ _FEED_COP();/* feeds the dog */ } /* loop forever */

/* please make sure that you never leave main */ }

float StrP=0.1;float StrD=0.01;float StrPCtl;float StrDCtl;float StrCtl;

#pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 7 RTI_INT(void){ DisableInterrupts;11 InitRTI();InitATD();EnableInterrupts;CRGINT_RTIE = 1;for(;;)CRGFLG = 0x80;

//可以在此加入合适的数码管显示代码,让其中两位显示左边电感的AD值(显示不下可以显示其中

//部分二进制位),让另外两位显示右边电感的AD值,方便调试。注意需要合适的初始化操作。

StrCtl=(ATD0DR1-ATD0DR0)*StrP;//如果需要更加精确可以使用ATD中断,对这两个值进行取平均值,低通滤波等操作。

/*

如果使用PD控制的伪代码: StrPCtl=(Right-Left)*StrP;

StrDCtl=((Right-Left)-LastValueOf(Right-Left))*StrD;StrCtl=StrPCtl+StrDCtl;*/

//对舵机控制输出限幅,避免烧坏舵机

if(StrCtl>1800)StrCtl=1800;else

if(StrCtl<1200)StrCtl=1200;PWMDTY45=StrCtl;

//请加入合适的速度控制

//如果不确定,可以使用拨码控制速度。这时请注意相关初始化操作

EnableInterrupts;}

第三篇:浅谈智能视频监控摄像头

浅谈智能视频监控摄像头

整理编辑:深圳中瀛鑫开发部时间:2012-8-24 智能视频监控摄像头可以从两个方面看这个问题。一个是用户需求,另一个是技术发展。

在技术方面,看看10年前的状况,那个个时候国内的智能视频监控技术才刚刚起步,基本还处在了解、学习国外的阶段。经过10年的发展,国内已经出现了一些有独立研发能力、拥有自主知识产权的专业厂商,他们的一些技术已经达到了国外的水平,同时也做出了很多有自己特色的东西。特别是在交通、金融领域方面的应用,更加符合国内的需求。从整体技术层面上来说,目前确实存在很多难点和不成熟的地方。但是具体到某个场景下的应用,已经可以提供实用化的产品,例如针对ATM机的滞留物检测、交通上的视频车辆检测等等。7、8年前很多人已经开始认为安防的两个最重要趋向是高清和智能。随着时间的推移,这两个趋势已经越来越明晰,并且我们已经可以看到他们的进步和成长。

再来看需求方面,目前国内监控摄像头系统建设正处在一个急速发展的时期。特别是类似平安城市的大型系统,一期的点位都会有5、6千路,二期、三期会规划出上万路。从发展规划的角度来说,目前处在布点和联网的阶段,通俗的说就是先安装大量摄像头,再用网络将这些摄像头连接起来,形成一个监控摄像头网。

那么下一阶段的重点是什么呢?很自然的,就是要使用好、利用好这些监控摄像头获取的视频。对视频的利用本质上就是对视频信息的利用,也就是要提取、理解这些视频信息。目前主要的利用方式还是靠人工监视。但是在布设点位越来越大时,如何靠人来看这成千上万路图像?需要多少人来看?如何克服人员长时间监看的疲劳?这些都是亟待解决的问题。否则建设的越多,利用的效率就会越低。因此利用计算机自动分析、“理解”监控内容,即智能视频监控,可能是解决上述问题最重要的、也有可能是最终的手段。从这个角度来说,视频监控网络发展的越快,用户对智能的需求越广泛、强劲。

整理编辑:深圳中瀛鑫开发部文章来源:互联网

第四篇:实习报告——智能车设计

工业项目设计与制作报告

——基于电磁传感器的智能车设计

姓名:王香伟 学号:102673 专业:自动化

基于电磁传感器的智能车设计

——工业设计报告

(102673 王香伟自动化)

智能车以自主寻线、高速行驶为目的,以嵌入式系统为支撑,以PID控制算法和汽车结构知识为核心,以信号与系统、电力电子、电机拖动、传感器等为基础,是一项综合的设计。全车设计我认为可分为四大部分:检测信号采集,控制算法,驱动及车体结构设计,辅助部分。一下我将一一介绍:

一、检测信号采集:

a.将交变磁场采集成电路中的交流电压

我们电磁组,检测的是赛道中线导线中100mA,20KHz的交流电所产生的交变磁场。利用交变电磁场在电感线圈中产生交变电压的原理,辅以LRC滤波来检测电磁信号。所用电感L=10mH,电容C=6.8nF,二者串联谐振频率为20KHz,可滤掉所感应到的其它频率的电磁信号。

b.将交流电压放大并整流成直流电压

我们采用运放AD823将所获得的的信号电压放大,并通过二极管和电容不可控整流电路将放大后的交流电压转换为直流电压。

c.将直流电压通过单片机AD口输入。

五个电感的电磁信号分别连到单片机的五个不同的AD口上,单片机利用一个AD转换器的多路开关的功能将他们一一转换为数字量,这一过程在软件中时这样实现的。通过定时器中断0.5ms触发一次AD中断,通过AD中断读取AD采样值。相应代码如下:

#define PIT1_TIME

500 //0.5ms MK60_PITS_INITIALIZE_(MK60_PIT_CH1,SystemCoreClock,PIT1_TIME);设置定时器中断为0.5ms触发一次

MK60_PITS_Enables_IRQ(MK60_PIT_CH1);打开定时器中断

} 在定时器中断的响应函数中打开AD中断并将多路开关选择em0通道。void PIT1_IRQHandler(void)

{

PIT->CHANNEL[1].TCTRL &= ~PIT_TCTRL_TIE_MASK;

PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK;

PIT->CHANNEL[1].TCTRL |=(PIT_TCTRL_TIE_MASK | PIT_TCTRL_TEN_MASK);

ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC1_EM0;} 然后再在ad中断的响应函数中,将AD寄存器的值读到程序中,赋给程序中对应的数组变量。

void ADC1_IRQHandler(void){

static uint32_t adc_cnt = 0;

ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC1_EM0;switch(adc_cnt)

{

case 0:

{

adc1_head++;

}

} if(adc1_head >= 10)

adc1_head = 0;em_adc[0][adc1_head] = ADC1->R[0];ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC1_EM1;adc_cnt = 1;break;} case 1: { em_adc[1][adc1_head] = ADC1->R[0];ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC1_EM2;adc_cnt = 2;break;} case 2: { em_adc[2][adc1_head] = ADC1->R[0];ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC1_EM3;adc_cnt = 3;break;} case 3: { em_adc[3][adc1_head] = ADC1->R[0];ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC1_EM4;adc_cnt = 4;break;} case 4: { em_adc[4][adc1_head] = ADC1->R[0];ADC1->SC1[0] =(ADC1->SC1[0] &(~ADC_SC1_ADCH_MASK))+ ADC_DISABLE;adc_cnt = 0;break;} 每个传感器值都在不同的时间读了十次,一共五个传感器,组成了一个5X10的数组。之后再通过滤波(将每个传感器的值加权平均得到一个之后可用于计算的值)

如果五个电感的最大值不一样,可以将他们的最大值标准化到10000 void em_adc_filter(void){ volatile int i_pos = 0;int32_t fir_i,fir_head;float em_adc_sum[5] = {0,0,0,0,0};float fir[em_adc_size] = {0.4,0.1,0.1,0.1,0.1,0.1,0.05,0.05,0.0,0.0};for(i_pos = 0;i_pos < 5;i_pos++)//加权平均

{

for(fir_i = 0;fir_i

{

fir_head = adc1_headrow)+ D_DIRECTION * row_sub + I_DIRECTION))+ steer_midd_adjust;此句代码即为方向控制的PID算法,其中

P_DIRECTION为比例系数、D_DIRECTION为微分系数、并未添加积分控制,比例系数和微分系数是根据车在赛道位置时刻变化的,如何变化正是我们后期调试的重点,大体思路为,小车在赛道中线附近时控制系数较小,距离中线较远时,控制。

float get_kp(int po_er){ float kp_l;

if(po_er<500)

{

kp_l=p_5;

D_DIRECTION_RATIO=d_small;

}

else if(po_er<1000)

{

kp_l=p_5+0.002*(po_er-500)*(p_10-p_5);

D_DIRECTION_RATIO=d_small;

}

} else if(po_er<1500){ kp_l=p_10+0.002*(po_er-1000)*(p_15-p_10);D_DIRECTION_RATIO=d_small;} else if(po_er<2000){ kp_l=p_15+0.002*(po_er-1500)*(p_20-p_15);D_DIRECTION_RATIO=d_small;} else if(po_er<2500){ kp_l=p_20+0.002*(po_er-2000)*(p_25-p_20);D_DIRECTION_RATIO=d_big;

}

else if(po_er<3000)

{ kp_l=p_25+0.002*(po_er-2500)*(p_30-p_25);D_DIRECTION_RATIO=d_big;

}

else

{ kp_l=p_30;

} return kp_l;当电磁传感器检测到的信号过小时,我们就认为这组数据无效,并认为此时小车偏离中线较远,将舵机逐渐打到最大。速度控制中,我们根据舵机打角的绝对量和和连续二十次舵机打角的方差来进行速度控制。

速度控制的思路为:入弯减速,弯道加速出弯再加速,直道或者曲率很小的弯拼命加速。控制方法为:若舵机打角方差较小,则认为小车处于直道或者弯道而不是入弯状态,这个时候速度有舵机打角的绝对值来控制。

若方差很大:则说明小车正在入弯,若此时速度很快则需要进行减速。

if(steer_gyh_fangcha<50&&steer_gyh_fangcha>-50)

//

{ if(pwm_steer_gyh_abs<200){ zd_flag++;zd2_flag++;

if(zd_flag>10)

{

speed_set_l=s_z1;

zd_flag=21;

}

} else if(pwm_steer_gyh_abs<400){

zd2_flag++;

zd_flag=0;

if(zd2_flag>10)

{

speed_set_l=s_z1-0.0025*pwm_steer_gyh_abs*(s_z1-s_z2);

zd2_flag=21;

} } else {

speed_set_l=s_w1-0.001667*(pwm_steer_gyh_abs-400)*(s_w1-s_w2);

speed_set_l+=get_speed_change();

zd_flag=0;

zd2_flag=0;

} } else if(steer_gyh_fangcha>50)

{

speed_set_l=s_s1-0.001*pwm_steer_gyh_abs*(s_s1-s_s2);zd2_flag=0;zd_flag=0;} else { speed_set_l=s_w1;} 控制函数写在另外一个定时器中断中,每5ms触发一次。

三、驱动及车体结构

电机和舵机均采用PWM控制,其中舵机直接连接到单片机中的一个PWM信号输出,而电机则采用通过两路PWM信号控制由两片BTN组成组成的全桥电路来驱动电机

其中电机PWM频率为1500Hz,舵机PWM频率为50Hz,舵机的低频率导致舵机控制会有20ms的延时,这会是5ms的控制周期有些力不从心。

小车采取前轮转向,后轮驱动,车体设计以质量轻,转动惯量小,重心底为原则。

汽车的转向车轮、转向节和前轴三者之间的安装具有一定的相对位置,这种具有一定相对位置的安装叫做转向车轮定位,也称前轮定位。前轮定位包括主销后倾(角)、主销内倾(角)、前轮外倾(角)和前轮前束四个内容。这是对两个转向前轮而言,对两个后轮来说也同样存在与后轴之间安装的相对位置,称后轮定位。后轮定位包括车轮外倾(角)和逐个后轮前束。这样前轮定位和后轮定位总起来说叫四轮定位。a.主销后倾角(caster)的调整

图2.2 主销后倾角

从侧面看车轮,转向主销(车轮转向时的旋转中心)向后倾倒,称为主销后倾角。设置主销后倾角后,主销中心线的接地点与车轮中心的地面投影点之间产生距离(称做主销纵倾移距,与自行车的前轮叉梁向后倾斜的原理相同),使车轮的接地点位于转向主销延长线的后端,车轮就靠行驶中的滚动阻力被向后拉,使车轮的方向自然朝向行驶方向。设定很大的主销后倾角可提高直线行驶性能,同时主销纵倾移距也增大。主销纵倾移距过大,会使转向盘沉重,而且由于路面干扰而加剧车轮的前后颠簸,在调节的时候我们将小车前后垫片(初始为2:2)调整为1:3,即前一后三,使其倾角为负。这样可以减少回力矩的作用,使转向更为灵活。

b.前轮外倾角(camber)的调整

图2.3 前轮外倾角

从前后方向看车轮时,轮胎并非垂直安装,而是稍微倾倒呈现“八”字形张开,称为负外倾,而朝反方向张开时称正外倾。使用斜线轮胎的鼎盛时期,由于使轮胎倾斜触地便于方向盘的操作,所以外倾角设得比较大。如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。所以事先将车轮校偏一个外八字角度,这个角度约在 1°左右。c.前轮前束

图2.4 前轮前束

脚尖向内,所谓“内八字脚”的意思,指的是左右前轮分别向内。采用这种结构目的是修正上述前轮外倾角引起的车轮向外侧转动。如前所述,由于有外倾,转向变得容易。另一方面,由于车轮倾斜,左右前轮分别向外侧转动,为了修正这个问题,如果左右两轮带有向内的角度,则正负为零,左右两轮可保持直线行进,减少轮胎磨损,在调试中,我们发现将这个角调整为1度左右,配合主销后倾,可让小车既能转向灵活,又能获得直线良好的沿线能力。

附上小车图片一张

四、辅助部分

主要的辅助部分由按键OLED模块和蓝牙上位机模块 a.按键OLED主要用于参数修改,测量,标定等

大体上,我们采用6个按键来控制OLED,一个用于打开或关闭OLED,一个用于翻页,另外一个用于上下左右4个方向移动光标。通过OLED修改参数的方法是:先将需要修改的参数显示到OLED上;然后通过按键和编码器修改显示在OLED上的参数的值;最后再将修改后的值赋给参数对应的变量。

在具体实现上,我们需要做到以下三点:1.可以扫描到按键按下;2.可以将变量显示到OLED上;3.可以修改OLED上显示的数字;4.可以将OLED上显示的数字赋值给变量。1.扫描按键:

硬件上:将按键、电阻和电源串联的电路中合适的点连接到GPIO上,使按键按下与否可在相应的GPIO端口产生高低电平。

软件上:先初始化与按键相连的GPIO端口,配置成合适的输入输出模式。然后调用MK60_PORT_GPIO_READ(PORTA,key_pin[x])函数来读取对应GPIO端口的高低电平。2.显示变量:

硬件上:将OLED按照接口规范与单片机连好。

软件上:1.先将需要显示的变量乘上合适的倍数转化为整数;2.在把整数每一位按照顺序存储到一个数组中;3.把存储数据的数组中的每个元素加上’0’便于显示,然后把对应的参数名接到这个数组的后面;4.调用OLED中提供的显示字符的函数将这个数组显示出来。3.修改变量:

硬件上:将编码器接好。软件上:按下上下左右按键时可以选择所要修改的位置,转动后轮带动编码器计数来修改对应的值,修改的是存储数据的数组 4.变量重新复制:

将存储数据的数组中的数按位加权求和赋值给变量。

至此,我们实现了按键OLED的基本功能,实现参数的显示和修改。此外我们还实现了利用按键来实现传感器最大值的标定和速度档位的控制,实现方式很简单,就是先读取按键的值,然后见机行事。同时我们利用 MK60_FTFL_FLASH_WriteRecords()和MK60_FTFL_FLASH_ReadsRecords();函数将参数存储于dataFlash中,便于使用。

b.蓝牙上位机模块主要用于信号的动态观测。

我们利用蓝牙和串口将程序中需要观测的变量发送到上位机,上位机中绘制出折线图,便于观察。

五、总结

和一切智能系统一样,智能车的智能体现在在反馈信息,对环境的识别和处理。我们采用电磁传感器进行路径识别,实用性不广,很难应用与真实环境。所以我们有两方面可以为之努力:一是考虑电磁环境的可行性,二是改用其他传感器。二者留给日后研究。

第五篇:摄像头升级报告

关于制造公司车间监控设施升级的报告

集团公司领导:

目前制造公司一楼和二楼车间使用监控摄像头共计***个,无法满足生产现场安全监督管理的需要,且监控系统自****年安装到现在,大多数设备(如:硬盘录像机、数据交换机等)已被市场淘汰或损坏,导致车间监控影像不清晰和监控记录无法完整保存,对公司安全防范工作造成极大隐患。

为进一步加强公司安全防范,预防和减少盗窃案件发生,同时配合集团公司三楼物业改造,加强公司安全生产管理,建议对现有监控系统进行部分更换及升级。预将原三楼监控室暂移至二楼办公室内,同时新增监控摄像头***个,经维修人员现场逐一勘察和市场调查,预计总费用为*****元,录像时间设定为****天。(制造公司监控布局图及费用预算表附后)

妥否,请批示。

*****有限公司

****年**月**日

下载智能车摄像头组技术报告五篇word格式文档
下载智能车摄像头组技术报告五篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    智能车编程总结

    智能车编程总结 智能车核心是飞思卡尔xs128芯片,尽可能利用单片机里的硬件资源是程序的核心。程序理应要有漂亮的算法,但由于智能车任务不复杂,合理管理和配置硬件资源才是最重......

    智能车志愿者心得体会

    志愿!永恒的志与愿! ------第六届“飞思卡尔”杯全国大学生智能汽车竞赛志愿者心得当我听到有这样一个机会,可以参与第六届全国大学生智能车竞赛志愿者时,我便毫不犹豫的报上了......

    上届智能车主持稿

    主持稿男:尊敬各位领导,各位来宾! 女:亲爱的老师,同学们!大家 合:上午好! 男:欢迎大家来到我们“飞思卡尔杯”广东海洋大学第二届智能车大赛的比赛现场!大家好,我是主持人煜霖! 女:我是佳......

    智能制造技术

    现代制造技术 1142813203 吴文乐 摘要:现代制造技术是在传统制造技术的基础上, 不断吸收和发展机械、电子、能源 、材料、信息及现代管理技术的成果, 将其综合应用于产品设......

    摄像头芯片调研报告

    摄像头设计说明调研报告 摄像头(CAMERA)又称为电脑相机,电子眼等,是一种电子设备,被广泛的运用于社会社交,远程医疗及实时监控等方面。普通的人也可以彼此通过摄像头在网络进行......

    太阳能风能智能充电站技术报告

    太阳能风能智能充电站项目简介 一、项目概述 太阳能风能充电站的太阳能风能发电作为充电站的电源,是一个很好的创新组合,太阳光足的时候太阳能发电,不足的时候用风能发电。是......

    智能车实验报告(5篇范例)

    宁波 大学创新性开放实验报告 题目 基于光电传感器得自动寻迹小车 学 学 号 号::姓 姓名:专 专业 业:: 指导教师: 目录光电感应智能车 ............................................

    捷足智能车科技技术权威

    最近几年,轻便时尚的独轮车走进了我们的日常生活,越来越多的时尚达人脚踏独轮车,在众人惊叹又羡慕的目光中潇洒驶过,越来越多的人开始搁置笨重的汽车,以驾驶小巧的独轮车为荣,独轮......