最新范文 方案 计划 总结 报告 体会 事迹 讲话 倡议书 反思 制度 入党

飞思卡尔智能车竞赛光电组技术报告

日期:2021-01-28  类别:最新范文  编辑:一流范文网  【下载本文Word版

飞思卡尔智能车竞赛光电组技术报告 本文关键词:卡尔,光电,竞赛,智能,报告

飞思卡尔智能车竞赛光电组技术报告 本文简介:第九届“飞思卡尔”杯全国大学生智能车竞赛光电组技术报告学校:中北大学伍名称:ARES赛队员:贺彦兴王志强雷鸿队教师:闫晓燕甄国涌关于技术报告和研究论文使用授权的说明书本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会

飞思卡尔智能车竞赛光电组技术报告 本文内容:

第九届“飞思卡尔”杯全国大学生

智能车竞赛光电组技术报告

学校:中北大学

伍名称:ARES

赛队员:贺彦兴

王志强

雷鸿

队教师:闫晓燕

甄国涌

关于技术报告和研究论文使用授权的说明书

本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:

带队教师签名:

日期:2014-09-15日

摘要

本文介绍了第九届“飞思卡尔杯全国大学生智能车大赛光电组中北大学参赛队伍整个系统核心采用飞思卡尔单片机

MC9S12XS128MAA

,利用TSL1401线性CCD对赛道的行扫描采集信息来引导智能小车的前进方向。机械系统设计包括前轮定位、方向转角调整,重心设计器件布局设计等。硬件系统设计包括线性CCD传感器安装调整,电机驱动电路,电源管理等模块的设计。软件上以经典的PID算法为主,辅以小规Bang-Bang

算法来控制智能车的转向和速度。在智能车系统设计开发过程中使用

Altium

Designer设计制作pcb电路板,CodeWarriorIDE作为软件开发平台,Nokia5110屏用来显示各实时参数信息并利用蓝牙通信模块和串口模块辅助调试。关键字:智能车

摄像头

控制器

算法。

目录

1绪论.

1

1.1

竞赛背景.1

1.2国内外智能车辆发展状况1

1.3

智能车大赛简介.2

1.4

第九届比赛规则简介.2

2智能车系统设计总述

2

2.1机械系统概述.

3

2.2硬件系统概述.

5

2.3软件系统概述6

3智能车机械系统设计

7

3.1智能车的整体结构.

7

3.2前轮定位.

7

3.3智能车后轮减速齿轮机构调整.

8

3.4传感器的安装.

8

4智能车硬件系统设计.

8

4.1XS128芯片介绍

8

4.2传感器板设计.

8

4.2.1电磁传感器方案选择.

8

4.2.2电源管理模.

9

4.2.3电机驱动模块

10

4.2.4编码器

11

5智能车软件系统设.

11

5.1程序概述.

11

5.2采集传感器信息及处理

11

5.3计算赛道信息.13

5.4转向控制策略.

17

5.5速度控制策略.

19

6总结.19

6.1效果

20

6.2遇到的问题以及解决办法.

20

6.3队员之间的合作很重要21

附录

22

源程序

23

1绪论

1.1

竞赛背景

随着经济发展,道路交通面临新的问题和新的挑战。所以急需改变传统交通模式,解决当前面临的困境,正是在这样的背景下智能汽车迎来了大发展的时期,各国争相投入大量资金研究无人驾驶技术。智能车的发展早期受限于技术手段,智能化较低,主要应用在自动化仓贮系统和柔性装配系统的物料运输,随着新型高精度,高可靠性的传感器不断涌现,现阶段智能车正在向适应城市道路,野外复杂地形等方向发展,在不久的将来即可真正替代人工驾驶。

1.2

国内智能车辆发展状况

1992年,国防科技大学研制成功了我国第一辆真正意义上的无人驾驶汽车。由计算机及其配套的检测传感器和液压控制系统组成的汽车计算机自动驾驶系统,被安装在一辆国产的中型面包车上,使该车既保持了原有的人工驾驶性能,又能够用计算机控制进行自动驾驶行车。2000年6月,国防科技大学研制的第4代无人驾驶汽车试验成功,最高时速达76km,创下国内最高纪录。2003年7月,国防科技大学和中国一汽联合研发的红旗无人驾驶轿车高速公路试验成功,自主驾驶最高稳定时速130km,其总体技术性能和指标已经达到世界先进水平。

1.3

智能车大赛简介

飞思卡尔是业界领先的半导体公司,主要研发领域面向汽车应用领域,产品质量优秀,其他公司在汽车应用方面很难与之抗衡。飞思卡尔智能车竞赛已经经历了7届比赛,并将于今年的夏天举办第八届比赛。该竞赛由竞赛秘书处设计、规范标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。该竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,力求向健康、普及、持续的方向发展。竞赛主要分为竞速赛和创意赛两种。在竞速赛中,规则规定了使用的车模、传感器类型、处理器类型和赛道尺寸等关键的因素,参赛选手可以在相同的条件下,自行设计硬件电路和软件算法,最终能以最快速度跑完全程。竞速赛分为三个赛题组:光电组、摄像头组、电磁组。不同之处在三个组的循线传感器是不一样的。电磁组的赛道中心铺有细导线,导线中通有频率和电流稳定的电信号,能利用电磁感应原理检测中心导线的位置。电磁组和另两个赛题组相比,优势在于检测信号稳定,不会受到外界采光条件的变化而影响,也不会受到赛道外的背景色所干扰,所以比较少在比赛中途因找不到赛道中心而冲出赛道的情况,缺点在于电磁传感器一般由电感电容组成,如果需要增加赛车前瞻的话需要加固定支架把传感器伸到赛车前方,这样会增加车子转弯时的转动惯量,影响车子转弯的灵活性,曾有强队想出来车体主动悬挂的方式抵消转弯时的转动离心力,从而提升车子转弯速度,使得电磁车速度得到很大提升。

1.4第九届比赛规则简介

参赛选手须使用竞赛秘书处统一指定的竞赛车模套件,采用飞思卡尔半导体公司的8位、16位、32位微控制器作为核心控制单元,自主构思控制方案进行系统设计,包括传感器信号采集处理、电机驱动、转向舵机控制以及控制算法软件开发等,完成智能车工程制作及调试,于指定日期与地点参加各分(省)赛区的场地比赛,在获得决赛资格后,参加全国决赛区的场地比赛。参赛队伍的名次(成绩)由赛车现场成功完成赛道比赛时间来决定,参加全国总决赛的队伍同时必须提交车模技术报告。大赛根据道路检测方案不同分为电磁、光电平衡与摄像头三个赛题组。使用四轮车模通过指定的线阵CCD器件或者分立的光电管传感器获得一维连续或者离散点赛道信息的属于光电组,

光电组:四轮车模允许双向运行。

车模使用

B

型车模。车模运行可以在比赛过程中,根据赛道要求随时调整

运行方向,如图2

所示

图X

原型车模如下

2

智能车系统设计总述

智能车主要分为机械系统、硬件系统、和软件系统三个部分,三个部分中以机械系统、硬件系统为基础,软件系统为核心。在整个的后续调试和三部分之间的融合过程中也需要不断地修正已达到优良的效果。

2.1机械系统概述

机械系统作为智能车的基础影响着整个车的运行姿态和速度,轻巧的车身可以使车更加灵活容易操控,合理的重心位置可以让车运行更平稳,而前轮定位、舵机安装的方式和位置可以影响转向灵活度。为了和传感器和系统PCB控制板的安装,也需要对车身,舵机,舵机的转度进行细致的调整。

图V整体车体结构

图VV线性CCD部分

图XX舵机部分

图BB编码器部分

2.2硬件系统概述

硬件系统作为小车的基础最重要的就是运行稳定,XS128单片机满足了智能车竞赛中对运算速度的需求,传感器部分的设计要注意模块间的分隔,避免相互干扰,要注意的是排列尽可能紧密,减小电路板面积。在设计电源管理模块,传感器检测处理模块,起点检测模块,电机驱动模块等的时候都积极思考,尽量做到减少干扰,安全可靠。

图XB硬件系统搭建简图

2.3软件系统概述

软件系统作为智能车的核心是决定最后运行速度和平稳性的关键,主要工作是对传感器采集到的数据进行处理,选择合适的方法解算赛道信息,制定合理的转向控制策略使转向平滑快速,制定有效的速度控制策略使智能车平均速度提高。

程序流程图:

3智能车机械系统设计

3.1智能车的整体结构如图所示:

为了排布pcb板,安装舵机和传感器固定杆,并根据规则和车体的尺寸,对智能车的机械结构做了一些调整包括减震弹簧的安装,车底盘的高度,电池位置,期间为了较强的稳固车体我们将电机部分和前车体进行了固定。

3.2前轮定位

前轮定位(转向轮定位)指转向轮、转向节和前轴三者之间与车架必须保持一定的相对安装位置。

在规则中只禁止改动车底盘结构轮距、轮径和轮胎。前轮位置可以任意调整改变。若要在不同速度,负载,重心条件下使车在轻快稳定的前进,那么最开始时候的前轮要力求最好的中心位置的摆正。

我们在舵机摆角设定的最小范围内,依次标算出它的左右摆点位置。并形成查询表,根据不同道路的信息不同来计算不同路径下的最优曲率输出控制舵机的摆角。

3.3智能车后轮减速齿轮机构调整

齿轮传动机构对车模的驱动能力有很大的影响。调整的原则是:两传动齿轮轴保持平行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,浪费动力;传动部分要轻松、顺畅,不能有迟滞或周期性振动的现象。判断齿轮传动是否良好的依据是,听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不平行,电机负载变大。调整好的齿轮传动噪音很小,并且不会有碰撞类的杂音,后轮减速齿轮机构就基本上调整好了,动力传递十分流畅。

3.4传感器的安装

首先根据理论计算得出比较适合的前瞻距离,来慢慢调整线性CCD的仰角和高度。其引线尽可能的以最短的距离来将信息送入核心控制部分。起初设定的前瞻距离为50cm,来调整CCD。经过后期调试最佳前瞻距离达到了60cm的距离。支架用的是材质轻巧强度很高的碳纤维管作为支撑杆。

4智能车硬件系统设计

4.1

主控芯片XS128芯片介绍:

最高可以超频到80MHz

bus

clock,BDM接口;PB0上接一个发光二极管“PB0”;电源指示放光二极管“5V”;参考电压可以选择5V,也可以去掉VRH电阻外接;两个电源接口;对单片机供电部分布线作了特殊处理,更稳定;插针为100mil的整数倍,标准点阵板可以直接插上去。板子尺寸:51*49mm,小而稳!

4.2硬件部分包括的几大部分:

4.2.1电源硬件设计部分

cpu最小系统部分,电机驱动部分,传感器处理部分,显示模块,按键模块。

整体硬件搭建原理图如图:

4.2.2电源管理部分:

电源管理模块需要为整个电路提供稳定而高质量的电源,特别是对单片机的供电。本系统的设计中,编码器、串口通信、传感器和液晶显示部分都需要5v供电;单片机OLED模块均使用3.3v供电。考虑到电池电压7.8v左右,电源管理模块需要5v3.3v两个稳压其中5v稳压芯片使用的是8940稳压芯片使用AMS1117全部输出耦合采用红宝石的顶级电解电容,确保稳定型和可靠性。为防止电源电压被拉低时引起单片机复位,采用二极管/电感和40uf电容的电路为单片机储存电能,电路原理图如下:

4.2.3电机驱动模块

用两片英飞凌公司的半桥驱动芯片BTS7970组成全桥。此电路只需要2片BTS芯片,外部电路简单,使用方便,性能可靠,方案成熟。缺点是指标会比用MOSFET管搭建大,而且车速一旦较快,输出电流过大,会触发芯片内部的保护机制,不利于长距离长时间调试。

电路原理图如下:

4.2.4编码器

5智能车软件系统设计

5.1程序概述

程序使用了XS128芯片中的TIM模块、PIT模块、AD模块、I/O模块、PIT模块、PWM模块。其中舵机和电机通过PWM模块来控制,舵机频率100Hz,通过对赛道黑线边缘部分的提取对赛道位置和赛道地形进行判断,I/0块主要用来作为人机交互模块使用。PIT模块作为定时器产生1ms的定时中断,转向控制服务程序,速度控制服务程序均在PIT中断当中完成。AD采样服务程序在AD中断中完成。

程序大概流程如下:

(1)进行各个模块的初始化。

(2)在按下启动键之后程序进入大循环,扫描是否有暂停键按下。

(3)AD中断服务程序进行AD采样,PIT中断服务程序,进行线性CCD返回数值数据析.

(4)转向控制,速度控制,输出相应的PWM波值控制电机和舵机,使智能小车在赛道上平稳运行。

5.2采集传感器信息及处理

TSLS1404线性CCD的工作时序图如图:

对赛道每扫描一次信息的初始化以及每取五次信息进行一次传输:

for(i=0;

i=5)

{

cnt

=

0;

SendImageData(PixNew);

}

5.3计算赛道信息:

在实际测试和比赛之中,CCD接收到的信息往往伴随着许多杂点,那么就要削减这些杂点对计算的影响,我们采用了高斯滤波去除错误点并实现曲化采集到的赛道信息点,为判断出黑线边界我们又对数据进行了二值化,以获取赛道的边缘线。同时为了尽量减少CCD的曝光时间我们队CPU的执行进行了顺序化。最后达到获取赛道的信息。二值化的阈值在这里用了动态阈值,大大克服了CCD对环境的光亮强的狭小范围内依赖程度搞得高的缺点、

5.3.1,去噪点

void

Enosing(uchara)

{

char

i;

for(i=1;izmax)

{

zmax=a[j];

}

if(a[j]=t0)

{

if(a[j]>zamax)

{

zamax=a[j];

}

if(a[j]zbmax)

{

zbmax=a[j];

}

if(a[j]Threshold)

{

if(abs(a[i-1]-a[i+3])

RightLostFlog=0;

RightLostCnt=0;

}

}

}

}

if((LeftLostFlog==0)

else

if(LeftLostFlog==0)

{

RightLostCnt++;

RaceFlog=RightLost;

}

else

if(RightLostFlog==0)

{

LeftLostCnt++;

RaceFlog=LeftLost;

}

else

RaceFlog=AllLost;

5.4转向控制策略;

转向控制信号的源输入控制信号源自CPU对编码器信息和传感器CCD信息经过一系PID计算分别对电机控制模块输出当前小车状态下赛道对电机运转的要求。

提取赛道信息:

float

Direction_P;

float

Direction_D;

float

DirectionError0,DirectionError1,DirectionDiff;

//0当前差值,1上次差值

int

DirectionOut;

void

DirectionControl1(void)

{

float

fP,fD;

float

BorderCom;//丢线补偿量

float

BorderError;//丢线偏差

//取中线偏差

if(RaceFlog==NotLost)

{

Centerpot=(LeftPot+RightPot)/2;

DirectionError0=Centerpot-LineCenter;

}

else

if

(RaceFlog==RightLost)

{

BorderError=LeftPot;

BorderCom=BorderError_p1*BorderError*BorderError*BorderError

+BorderError_p2*BorderError*BorderError

Centerpot

=

(LeftPot

+127+BorderCom)/2;

DirectionError0

=

Centerpot

-LineCenter;

}

else

if

(RaceFlog==LeftLost)

{

BorderError=127-RightPot;

BorderCom=BorderError_p1*BorderError*BorderError*BorderError

+BorderError_p2*BorderError*BorderError

+BorderError_p3*BorderError+BorderError_p4;;

Centerpot

=

(RightPot

-

BorderCom)/2;

DirectionError0

=

Centerpot-LineCenter;

}

else

{

DirectionError0=DirectionError1;

}

//位置式pid

DirectionDiff=DirectionError0-DirectionError1

DirectionError1

=

DirectionError0;

DirectionOut

=

fP

+fD;

//角度限制在-290~290

if(DirectionOut>290)

DirectionOut=290;

if(DirectionOut100)

SpeedOut=100;

if(SpeedOut<-100)

SpeedOut=-100;

MotorAction(SpeedOut);

}

PWM模块:

void

PWM_Init_40M(void)

{

PWME=0x00;

//关PWM

PWMPRCLK=0x22;

//

0011

0010

A=B=40M/4=10M

时钟预分频寄存器设置

PWMSCLA=5;

//

SA=A/2/5=1M

时钟设置

PWMSCLB=5;

//

SB=B/2/5=1M

时钟设置

PWMCTL=0x00;

//

不级联

控制寄存器设置

//motor_1

PWMCLK_PCLK0=1;

//

PWM0-----SA

时钟源的选择

PWMPOL_PPOL0=1;

//

Duty=High

Time

极性设置

PWMCAE_CAE0=0;

//

Left-aligned

对齐方式设置

PWMPER0=100;

//

Frequency=SB/100=10K

周期寄存器设置

PWMDTY0=0;

//

Duty

cycle

=

0

占空比寄存器设置

//motor_2

PWMCLK_PCLK1=1;

//

PWM1-----SA

时钟源的选择

PWMPOL_PPOL1=1;

//

Duty=High

Time

极性设置

PWMCAE_CAE1=0;

//

Left-aligned

对齐方式设置

PWMPER1=100;

//

Frequency=SA/100=10K

周期寄存器设置

PWMDTY1=25;

//

Duty

cycle

=

0

占空比寄存器设置

//servo

PWMPOL_PPOL7=1;

//

PWM输出先高后低

PWMCLK_PCLK7=1;

//

选择Clock

B作为通道7的时钟

PWMCAE_CAE7=0;

//

左对齐,1为中心对对齐

PWMCTL_CON67=1;

//

级联67

PWMPER67=20000;

//

舵机PP67,,20MS

PWMDTY67=18525;

//

舵机中间值

20000-1475

WME=0xC3;

//开PWM

}

SCI模块

void

SCI0_Init_40M(void)

{

/*

Init_SCI

init

code/

SCI0CR1

=

0x00;

SCI0SR2

=

0x80;

/*

Switch

to

the

alternative

register

set/

SCI0ASR1

=

0x83;

/*

Clear

alternative

status

flags/

SCI0ACR1

=

0x00;

SCI0ACR2

=

0x00;

SCI0SR2

=

0x00;

/*

Switch

to

the

normal

register

set/

(void)

SCI0SR1;

/*

Reset

interrupt

request

flags/

SCI0CR2

=

0x00;

/*

Disable

error

interrupts/

SCI0BD

=

0x16;

/*

Set

prescaler

bits/

//115200

SCI0CR2

|=

(SCI0CR2_TE_MASK

|

SCI0CR2_RE_MASK);

/*

Enable

transmitter,Enable

receiver/

}

void

SCI0_Init_64M(void){

SCI0BDH=0x01;

//When

IREN=0,then

SCI

baud

rate=SCI

bus

clock/(16*SBR[12:0])

SCI0BDL=0xa1;

//SCI

bus

clock=BUs

clock=64MHz,so

if

stet

9600

buad

rate,then

SBR[12:0]=0x01a1=417

SCI0CR2=0x2c;

//enable

Receive

Full

Interrupt,RX

enable,Tx

enable

}

PIT:

void

PIT_Init_40M(void)

{

PITCFLMT_PITE=0;

//PIT定时中断通道0关

PITCE_PCE0

=

1;

//Enable

Timer

Channel0

PITMUX_PMUX0

=

0;

//16-bit

timer

counts

with

micro

time

base

0

//time-out

period

=

(PITMTLD

+

1)

(PITLD

+

1)

/

fBUS

//1ms

PITMTLD0

=

199;

//PIT

Micro

Timer

Load

Register

PITLD0

=

199;

//PIT

Load

Register

PITINTE_PINTE0

=

1;

//Enable

Timer

Channel0

Interrupt

PITCFLMT_PITE

=

1;

//Enable

Timer

}

void

PIT_Init_64M(void)

{

PITCFLMT_PITE=0;

//PIT定时中断通道0关

PITCE_PCE0

=

1;

//Enable

Timer

Channel0

PITMUX_PMUX0

=

0;

//16-bit

timer

co

篇2:第八届飞思卡尔光电平衡组华东交通大学-追风队技术报告

第八届飞思卡尔光电平衡组华东交通大学-追风队技术报告 本文关键词:卡尔,追风,交通大学,第八届,光电

第八届飞思卡尔光电平衡组华东交通大学-追风队技术报告 本文简介:第八届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:华东交通大学队伍名称:追风队参赛队员:黄健刘勇勇张望带队教师:甘岚涂春萍1关于技术报告和研究论文使用授权的说明本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委

第八届飞思卡尔光电平衡组华东交通大学-追风队技术报告 本文内容:

第八届“飞思卡尔”杯全国大学生

智能汽车竞赛技术报告

校:华东交通大学

队伍名称:追风队

参赛队员:黄健

刘勇勇

张望

带队教师:甘岚

涂春萍

1

关于技术报告和研究论文使用授权的说明

本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:

带队教师签名:

期:

____________

I

1

摘要

本文记录了华东交通大学追风队队员在准备第八届“飞思卡尔”杯全国智能汽车竞赛中的工作成果和体会,并总结了方案中成功的经验和不足之处,愿与各高校代表队分享。

本智能车系统以飞思卡尔高性能16位单片机MC9S12XS128为核心,通过用线性CCD检测赛道两边的黑线来引导小车行驶,用编码器来检测小车的速度。使用陀螺仪和加速度计检测小车的直立信息,通过AD采样获得当前CCD在赛道上的位置信息,运用红外对管检测起跑线完成自动启停,使用PID算法控制小车方向和分段PID算法对小车进行速度控制,实现稳定快速的运行。

关键词:飞思卡尔智能车

MC9S12XS128

线性CCD

PID控制

3

目录

摘要III

目录IV

第一章

引言1

1.1

比赛背景介绍1

1.2技术报告内容安排说明1

第二章

系统整体方案设计2

2.1系统硬件设计方案概述2

2.2系统软件设计方案概述2

第三章

机械调整3

3.1车体调整3

3.2

CCD的安装与调整4

3.3

陀螺仪与角速度计的安装5

3.4

编码器的安装6

第四章

硬件电路设计7

4.1

电源模块设计7

4.2

最小系统……………………………………………………………………8

4.3

驱动电路设计9

4.4

红外对管设计11

第五章

软件设计12

第六章

智能车主要参数…………………………………………………………………….12

第七章

结论13

参考文献

附录

程序源代码

III

第一章

引言

1.1

比赛背景介绍

全国大学生“飞思卡尔”杯智能汽车竞赛是由教育部高等自动化专业教学指导分委员会(以下简称自动化分教指委)主办的一项具有导向性、示范性和群众性的全国竞赛活动。竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。全国大学生智能汽车竞赛由竞赛秘书处为各参赛队提供/购置规定范围内的标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。全国大学生智能汽车竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。

1.2技术报告内容安排说明

本文采用先总后分的结构,先对系统总体设计进行介绍,然后分别对各部分

进行介绍,突出强调了系统机械设计、硬件电路和软件编程。

第一章

引言:简单介绍了智能车比赛的一些情况;

第二章

系统设计:总体介绍了整个智能车各部分系统设计;

第三章

机械结构设计:详细介绍了本智能车机械结构设计;

第四章

智能车硬件系统:分模块详细介绍了小车硬件电路设计与制作;

第五章

软件系统设计:介绍了智能小车软件设计及算法实现;

第六章

智能车技术参数:智能车主要技术参数说明;

第七章

总结:主要说明一下我们在设计过程中遇到的问题和解决办法,以

及还存在的问题;

第二章

系统整体方案设计

2.1系统硬件设计方案概述

首先将弄清直立车运行方式,需要接收哪些数据能够使小车实现直立,直立有需要哪些条件,逐个把小车分解成一个个小模块。开始是电源模块,我们要理清需要哪些电压电源,给哪部分供电,对电源稳定性与失真的要求,还有功率的要求。对一些不确定的模块,可选择可调电源。其次是单片机的确定,我们要保证它有足够的运行速度来处理所采集的数据,还能准确的输出控制信号。接着就是驱动电路的设计,驱动芯片的选择,我们要确保能够输出足够的功率去控制电机,因为驱动功率大,电流大,我们还要采取一些保护措施。最后是陀螺仪和加速度的设计,我们要确保输出数据准确快速。根据智能车设计要求,设计合理的电路实现小车的功能,注意负载的电流,并着重考虑电路的稳定性。上面一切电路设计好后就能够为将来小车平稳运行打好坚实的基础。

2.2系统软件设计方案概述

软件是给智能车实现控制的执行语言,软件控制着智能车的一切行动,通过对软件的编写可以让智能车按照你的思路去实现个个路段的完美赛跑。软件控制其实就是把自己的思想灌输到单片里面,并让其高速有序的执行,实现对智能车的精确控制。软件又细分为主程序、小车直立控制子程序、小车速度控制子程序、小车转向控制子程序、循环子程序等等。

主程序:程序的主体采用顺序结构。为了方便控制,Main函数里面除了初始化程序

就是液晶显示程序,而所有的核心操作放在定时中断中。同时为了细分每一时

刻的任务,我们对中断进行了计数,使得每一个时刻单片机需要处理什么数据

可以简单明了。

小车直立控制子程序:我们通过陀螺仪和加速度计采集小车的倾斜角度和小车转动的角速度来反映小车的直立情况,然后通过处理实现对电机的控制来消除小车的倾斜角,从而达到小车直立控制。利用倾角传感器来检测车模此时刻的状态,然后调节电机的转速,让车模整体可以跟得上车模的倾角变化,在车模发生更大幅度的倾斜之前将车模的状态维持到平衡。如果在PID调节中不是很顺利,可以适当的添加一些I项的系数,这样会使得调节顺利不少。当车模顺利的维持直立姿态之后,也就意味着我们的后续的速度控制以及转向控制就可以开始开展了!

小车速度控制子程序:我们给小车设定一个速度,通过编码器采集回来的数据计算出小车实际的速度,然后形成一个闭环控制,这样就可以保证小车实现恒速与时刻可以准确改变小车的运行速度,即使是在干扰的情况下也能够迅速返回设置的速度并稳定下来。

第三章

机械调整

3.1

车模调整

一辆车的好坏不仅仅由软件跟硬件决定,机械对智能车的影响也是十分重要的。一辆智能车的机械做的好,它就能更加稳定,速度也能挺高的更多。

(1)车模底盘的加固与电池卡槽的安装

在不断的测试中我们总结出,重心的位置对平衡车的稳定性能影响十分的大,重心相对较低比较好,但也不能太低,太低了对电机的要求就更高了。经过不断的测试与调试,我们决定下来电池的安装位置,电池的安装也可以改变车模的倾斜角度。同时电池的卡槽角要磨段一点,只要不要与车轮想接触就可以了。

(2)车轮的调整

刚买回来的车轮会有些晃动,这对车的影响是有的,我们的减小一切给小车带来的影响。经过一次次的实验,我们最后选定了一块小铁片安装在车轮的一侧。铁皮的厚度要求要很精确,太厚了会造成两轮太卡,要是太薄了就会跟没有安装一样,这要不断实验才能确定铁片的厚度。

图3-1

车模固定与电池安装

3.2

CCD的安装与调整

CCD可以说是光电平衡车的眼睛,可见CCD的安装是多么的重要,CCD的安装位置要能够确保CCD的视野宽广,能够扫描到整个跑到,但也不能够太过于宽广,这样它会扫描到另外的跑到上,这样就给数据处理带来麻烦。同时还要确保CCD的前瞻足够的符合你的要求,一辆车CCD前瞻调的好坏往往影响你小车的整体速度。CCD前瞻调的好腻弯道的处理也会更好。大家都总结出,前瞻决定速度,当能这是相对而言的。装CCD的支架一定要保证安装在车模的正中间,这装的准确可以给你调整CCD减少很多麻烦。其次两边的支架可有可无,这得看你试验的结果,我们是确保小车在运行中CCD支架不晃动。

图3-2

CCD的安装

3.3陀螺仪与加速度计的安装

陀螺仪跟角速度计都是用来检测车模的倾斜角度,我们将这块带有陀螺仪和加速度计的电路板固定在整个车模中间质心的位置。这样可以最大程度减少车模运行时前后振动对于测量倾角的干扰,同时陀螺仪一定要安装水平,因为陀螺仪安装的不水平,就会使得小车转弯出现突然加速减速的情况,只要陀螺仪安装的水平就不会出现这样的情况。这要在不断测试中调整陀螺仪位置。

图3-3

陀螺仪与加速度计的安装

3.4

编码器的安装

编码器的齿轮我们选择与电机齿轮想接触,这样可以更加准确的测出电机的转速从而转换为小车的速度。

图3-4

编码器的安装

第四章

硬件电路设计

4.1

电源模块设计

根据不同的要求我们选择了几种不同电源电路的设计:

1.LM2940-s(5v)低压降线性(LDO)-固定式稳压器,最大输出电流>1A;压降0.5V,电压调整率20mv;电流调整率35mv;静态电流10mA;PSRR72dB;噪音电压150uA。(单片机,陀螺仪模块供电)

2.TPS7350QD超低压降线性(VLDO)一固定式稳压器最大输出电流500mA;压降35mA;有延时复位功能(200ms低电平)输出电压误差2%;静态电流340uA(与负载无关);待机电流0.5uA;噪音电压300uA,PSRR:50dB(120KHz),(20-80KHz左右时最小,只有5dB)(CDD,红外对管供电)。

3.LM2596S-ADJ降压式开关-固定式稳压器,最大输出电流3A;有断电保护功能,输出电压误差4%;饱和电压1.16V;静态电流5mA;待机电流80Ua(编码器供电).

图4-1

电源电路图

图4-2

电源板实物图

4.2

最小系统

单片机最小系统为本智能车系统的核心。为了稳定和可重复使用,我们购买了单片机最小系统板。这个最小系统板引出了几乎所有功能引脚,板上自带晶振电路、复位电路、单片机电源电路。单片机我们选择的是MS12SX128,其主要特性:S12X

CPU,

最高总线速度

40MHz;64KB、128KB

256KB

闪存选项,均带有错误校正功能(ECC);带有

ECC

的、4KB

8KB

DataFlash,用于实现数据或程序存储;可配置

8-

、10-

12-

位模数转换器(ADC),转换时间

3μs;支持控制区域网(CAN)、本地互联网(LIN)和串行外设接口(SPI)协议模块;带有

16-位计数器的、8-通道定时器;出色的

EMC,及运行和停止省电模式。

图4-3

最小系统板电路

4.3

驱动电路设计

我们智能车中采用4片BTS7970搭载成两个H桥来驱动机器人的两个电机,具有输出功率大,稳定性好,保护措施好等优点。

图4-4

驱动电路图

图4-5

驱动电路板实物图

4.4

红外对管设计

红外对我们用于专门检测起跑线,这样检测的结果很准确,但是用CCD检测会用一定概率性,就是不能够确保每次都能检测到,但是用3个红外对管就可以实现,红外对管的电路也十分的简单。

图4-6

红外对管实物电路板

第五章

软件设计

小车的控制归根决地是对两个驱动电机的精确控制,通过电机的正转反转控制小车的平衡。通过同样转速控制小车的运行速度,通过对两个电机的差速控制来控制小车的转向。能而这些都是需要算法处理采集的数据来控制电机。平衡我们采用了卡尔曼滤波来实现,速度和转向控制采用了PID来处理。详情请参考附录程序源代码的注释,上面注释的很清楚。

第六章

智能车主要参数

车模长、宽、高(毫米)

165*85*430

电路功耗(w)

10.5w

所以电容总量(uF)

1650.54

传感器个数(个)

8

陀螺仪(个)

2

加速度计(个)

1

红外对管(个)

3

编码器(个)

2

外加电机,舵机(个)

0

赛道信息检测精度(毫米)

5

赛道信息检测频率(次/秒)

200

第七章

结论

记得刚接触智能车这个名词的时候感觉很神奇,我们3人热血沸腾的组队参加了第八届的飞思卡尔智能车大赛。当时我们抱着的只是一腔热血,什么都不懂,只是稍微看了点质料。当接触了才知道是那么的难,刚开始走了很多很多的弯路,经常一两个月的坚持摸索之后,我们开始慢慢的上路。越到后面越是难熬,感觉一切的冲劲到覆灭在了前几个月,开始有人放弃了,我们开始争吵了,一段静心之后我们开始重新振作,把放弃的重新请了回来,我们又开始没日没夜的摸索。时间渐行渐远我们开始摸索到了一些门道,事事开始尽心尽愿,我们开始在智能车的大道上奔跑。

经过一学期的摸索,做智能车首先得先去收集有关质料报告,把他们摸懂搞透,这样做事就有头有系了,可以走很多的弯路,同时也可以多吸取他们的优点,看到别人犯过的错误。选择正确的器件也是非常重要的,也不要太在意钱,该花的还是要花,条件好的情况下可以多买点不同的,融合一下各个的优点。再次就是团队很重要,不要把自己看的太重,不要什么事都自己去插下手,相信队友,给他们点空间。

在这我们要谢谢我们的指导老师在背后一直给我们支持,给我们提供一个做车的环境。在此感谢组委会给我们这样一个展现的平台,也感谢各个举办学校各个志愿者为我们付出的辛劳。

参考文献

【1】使久贵

编著

《基于

Altium

Designer

的原理图与

PCB

设计》

机械工业

出版社,2010.

【2】

乐山师范学院__明星电缆

2

队技术报告.

【3】

野火

三天入门

Cortex-M4——Kinetis

系列.pdf

【4】

薛涛、邵贝贝等

《单片机与嵌入式系统开发方法》

清华大学出版社,

2009.10.

【5】张肃文

主编

《高频电子线路》

高等教育出版社

2010.5.

【6】谭浩强?C

程序设计?北京:清华大学出版社,2001

【7】电磁组直立车模参数整定与调试指南手册

【8】陶永华,新型

PID控制及其应用,机械工业出版社,2005

【9】胡寿松,自动控制原理,科学出版社,2007

附录

程序源代码

#include

“include.h“#define

TSL_SI

PORTA_PA7

#define

TSL_CLK

PORTA_PA6

#define

coder1

PORTE_PE7

#define

coder2

PORTE_PE6

#define

coder3

PORTE_PE5

#define

coder4

PORTE_PE4

#define

speedcoder1

PORTE_PE2

#define

speedcoder2

PTM_PTM5

#define

speedcoderp1

PTM_PTM4

#define

speedcoderp2

PTM_PTM3

#define

open1

PTS_PTS2

#define

open2

PTS_PTS3

#define

open3

PTJ_PTJ6

#define

open4

PTJ_PTJ7

/*******************************9600串口数据***************************************/

int

OutData[4]={0};

/*******************************中断计数数据***************************************/

byte

EventCount=0;

/*****************************加速度和陀螺仪采集需要的数据*************************/

float

adValue[2]=0;

//读取陀螺仪和加速度计的值

/*****************************角度和陀螺仪的值*************************************/

float

acceler=0;

//加速度计的角度值

float

gyro=0;

//陀螺仪的值

float

ACCELERSET=1459,GYROSET=0,DIRECTIONGYROSET=0;

//加速度计和陀螺仪的0偏值

float

Angle_P=8.3888889999,Angle_D=0.2199999999;

float

ZHILI=0;

/*******************************卡尔曼滤波用到的数据*******************************/

float

angle=0,angle_dot=0;

float

C_0=1;

float

Q_angle=0.001;

float

Q_gyro=0.003;

float

R_angle=0.5;

float

dt=0.005;

//卡尔曼采样时间

float

P[2][2]={{1,0},{0,1}};

float

Pdot[4]={0,0,0,0};

float

q_bias=0,angle_err=0,PCt_0=0,PCt_1=0,E=0,K_0=0,K_1=0,t_0=0,t_1=0;

/*******************************小车转速的数据*************************************/

float

LeftSpeedPulse=0;

//20次左轮的转速之和

float

RightSpeedPulse=0;

//20次右轮的转速之和

/*******************************电机输出用到的数据*********************************/

byte

Judje[2]={1,1};

/*******************************速度控制用到的数据*********************************/

unsigned

char

SpeedControlPeriod=0;

//速度控制的周期

unsigned

char

SpeedControlCount=0;

float

SpeedControlOutNew=0,SpeedControlOutOld=0,SpeedControlOut=0;

float

CarSpeedSet=0,CarSpeed=0;

float

CarSpeedSet1=0;

float

SpeedP=5.011,SpeedI=0.15;

float

SpeedPSet=0;

float

SpeedControlIntegral=0;

/******************************10ms采集CCD用到的数据*******************************/

unsigned

char

TimerCnt10ms=0;

//计时10ms中断中计数

unsigned

char

TimerFlag10ms=0;

//10ms进行一次方向控制

/******************************采集CCD用到的数据***********************************/

unsigned

char

Pixel[128]=0;

//现在的128个点

float

pixelleftplace=0;

//本次左边黑线位置

float

pixelrightplace=127;

//本次右边黑线位置

float

pixelview=94;

float

pixelmax=110;

float

pixelmin=94;

float

pixelmiddle=0;

float

pixelleftview;

float

pixelrightview;

float

piancha=0;

float

prepiancha=0;

float

directionout=0;

float

directionp=188.9989789,directiond=0.045787999999;

/********************************转向陀螺仪的的数据******************************/

float

directionanglevalue=0,directionanglepluse=0,directionspeed=0;

/********************************设置起跑时平衡数据************************************/

float

second=0;

//记录时间

byte

flag=0;

//标志零点采集

byte

secondflag=0;

byte

pa_flag=0;

byte

bar=0;

float

secondbar=0;

byte

end=0;

float

speedpcount=0;

int

pianchacount=0;

/********************************9600串口发送函数********************************/

unsigned

short

CRC_CHECK(unsigned

charBuf,unsigned

char

CRC_CNT)

{

unsigned

short

CRC_Temp;

unsigned

char

i,j;

CRC_Temp

=

0xffff;

for

(i=0;i>1

)

^

0xa001;

else

CRC_Temp

=

CRC_Temp

>>

1;

}

}

return(CRC_Temp);

}

void

uart_putchar(unsigned

char

c)

{

while(!(SCI0SR1

//keep

waiting

when

not

empty

SCI0DRL=c;

}

void

OutPut_Data(void)

{

int

temp[4]

=

{0};

unsigned

int

temp1[4]

=

{0};

unsigned

char

databuf[10]

=

{0};

unsigned

char

i;

unsigned

short

CRC16

=

0;

for(i=0;i=154

||acceler=0){

LeftMotorOut

+=5;

}

else{

LeftMotorOut

-=5;

}

if(RightMotorOut>=0){

RightMotorOut+=5;

}

else{

RightMotorOut-=5;

}

if(LeftMotorOut>=250){

LeftMotorOut

=

250;

}

else

if(LeftMotorOut=250){

RightMotorOut

=

250;

}

else

if(RightMotorOut10){

SpeedControlIntegral=10;

}

if(SpeedControlIntegral>4);

//AD采集

directionanglepluse+=directionanglevalue;

TSL_CLK=1;//上升沿

SamplingDelay();

//合理延时

}

}

/*************************小车运行时加速度计的值和转向陀螺仪的值得函数************/

void

directionSpeed(void){

directionspeed=directionanglepluse/128-DIRECTIONGYROSET;

directionanglepluse=0;

}

/************************找黑线的函数********************************************/

void

findpixel(unsigned

char

findplace){

unsigned

char

i;

byte

leftflag=0;

byte

rightflag=0;

for(i=findplace;i>1;i--){

//向左寻找黑线

if(Pixel[i]==0){

if(Pixel[i-1]==0){

//找到黑线

//

if(Pixel[i-2]==0){

leftflag=1;

pixelleftplace=i-1;

Pixel[i-1]=250;

break;

//

}

}

}

}

for(i=findplace;i=pixelmax){

//进行限制pixelview的范围

需要进行测定

pixelview=pixelmax;

}

else

if(pixelview=63){

pixelleftview=pixelleftplace-63+pixelmiddle;

piancha=pixelleftview/pixelview;

}

else{

pixelleftview=63-pixelleftplace;

piancha=(pixelmiddle-pixelleftview)/pixelview;

}

}

else

if(leftflag==0

pixelleftplace=0;

if(pixelrightplace=10||Pixel[i]-Pixel[i+1]-10)){

Pixel[i+1]=(Pixel[i]+Pixel[i+2])/2;

}

if((Pixel[i]-Pixel[i+1]>=10||Pixel[i]-Pixel[i+1]=10||Pixel[i]-Pixel[i+2]-10)){

Pixel[i+1]=Pixel[i+2]=(Pixel[i]+Pixel[i+3])/2;

i=i+1;

}

}

for(i=3;i50){

//寻找障碍

需要进行测试

篇3:飞思卡尔杯智能车志愿者社会实践报告

飞思卡尔杯智能车志愿者社会实践报告 本文关键词:卡尔,志愿者,智能,社会实践报告

飞思卡尔杯智能车志愿者社会实践报告 本文简介:第六届全国大学生“飞思卡尔”杯智能车竞赛全国总决赛志愿者心得体会院系:专业:班级:姓名:单位:时间:2011.7.6-2011.7.92011.8.10-2011.8.21共13天一、实践目的如今,大学生通过利用课余时间或假期积极参加社会实践,实习体味生活已经成为一股热潮,许多学校也积极鼓励大学生多

飞思卡尔杯智能车志愿者社会实践报告 本文内容:

第六届全国大学生“飞思卡尔”杯智能车竞赛全国总决赛

志愿者心得体会

院系:

专业:

班级:

姓名:

单位:

时间:2011.7.6-2011.7.9

2011.8.10-2011.8.21

共13天

一、实践目的

如今,大学生通过利用课余时间或假期积极参加社会实践,实习体味生活已经成为一股热潮,许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面能力;另一方面可以积累工作与社会经验,对日后的就业大有裨益。因此,在2011年暑假,我参加了第六届全国大学生“飞思卡尔”杯智能车竞赛全国总决赛的志愿者工作。

二、实践内容

8月17日至20日,第六届全国大学生“飞思卡尔”杯智能车竞赛全国总决赛在西北工业大学长安校区举办。作为西工大的一名学子,很荣幸的成为了比赛期间的一名志愿者,与众多同学一起参与了比赛的筹备与服务工作。

7月6日,我们开始了全面的赛会志愿者工作。我参加的技术组,被称之为“骨干组”,在开全体志愿者动员大会的时候,老师亲切的解释为:骨干组,就是鼓足干劲使劲干。充分了解了我们所执行的工作之后,使我们认识到技术组工作的重要性,也极大地激励了我们努力工作,认真完成的决心。

阶段一:赛道制作

7月7日,我们的工作正式开始,我被分配到大弯组。一块空白的KT板,在我们手中如何变成180度甚至更弯的正规赛道?这样的问题也深深缠绕着我们。在学长们的指导,手把手的教导之下,我们渐渐掌握了要领,分工合作,画线的画线,裁板的裁板,终于做出了第一块成品。

我们组共有五位成员,都来自学院,分工之后,其中三位负责画跑道,我接受的任务是裁跑道。在一次次胆战心惊的尝试之后,我的手法逐渐娴熟起来,时间越来越短,但质量却绝不打折扣。7月8日9日两天,我们完成着同一件事情,但并不失去兴趣,组员间渐渐磨合,逐渐默契起来,共同快乐完成着工作。8月10日再次到来,开始由原来的180度跑道的制作转向更弯,更难,更有挑战的各种度数的跑道的制作。而后更加涉及到决赛跑道的制作,让我们深感责任重大。

阶段二:赛道拼接

在跑到制作工作结束之后,8月15日我们小组开始调试跑道的拼接。规定数量的直道和各种度数的弯道,要拼接成一个有着上下两层合格的跑道,是一件很富有挑战性的工作。我们接受了电磁组跑道的制作,五个人和一位被安排教导我们的同学一起,从30、60度小弯的拼接开始,一个小回环。一个对不上的直道让我们焦头烂额,后来学长提醒直道长度不够才一语点醒我们。跑道粘贴,分割,接着是下面一层的制作,制作这层的方法和上层截然不同,好让我们困惑。之后是中间埋线区域的处理,两位组员一力承担下来,让我们好感动。之后跑道的标记,我们一起在背面写下了“工大威武”的字样。

阶段三:礼仪接待

8月17日各个学校的参赛队伍陆续抵达,比赛渐渐进入倒计时。重新分派任务后,我承担了大赛礼仪组的工作。8月19日开幕式,我们负责引导领导入场和离场,之间的时间在旁边负责茶水,鲜艳的衣服为开幕式徒增亮色。20日闭幕式上,礼仪组承担颁奖工作,看到重重的玻璃奖杯之后,我们的心不由得悬了起来,甚至要一个人拿两块。但之后我们出色圆满的完成了工作,在欢送领导离场的时候,我们受到了领导们的肯定和赞许。

三、收获与感想

在成功结束了志愿者的工作后,仔细总结,我收获良多。一张工作证明,一件志愿者服装,我们时时代表着西北工业大学,我们的工作质量关系着大赛的公平公开,关系着西北工业大学在全国各所大学的声誉。志愿者是一个很让人敬佩的称号,这要求我们所做的必须处处衬得起这个称号。在13天的志愿者工作中,我发现了许多在实践中存在的不足与缺少的经验。我们需要充分认识自己,避免眼高手低,增加实际动手能力,做适合自己的工作。在赛道制作的时候我曾经尝试着画跑道,但效果却并不理想。我们需要将知识合理的运用到实践当中。在赛道制作的时候,我们要通过计算和摸索,找出最节省的一个方案。我们需要的不光是扎实的理论知识,还需要很强的与人沟通能力。在所经历的两个组别当中,一组是我之外全部男生,一组是全部女生,沟通技巧,谈论话题等等都是不同的,这要求我们理解这些细微的差别并且运用它。

13天的时间很快结束,我们又即将迎来一个新的学期,相信在这一次社会实践中所得到的收获,会为我的新学期注入无限的新鲜活力。

    以上《飞思卡尔智能车竞赛光电组技术报告》范文由一流范文网精心整理,如果您觉得有用,请收藏及关注我们,或向其它人分享我们。转载请注明出处 »一流范文网»最新范文»飞思卡尔智能车竞赛光电组技术报告
‖大家正在看...
设为首页 - 加入收藏 - 关于范文吧 - 返回顶部 - 手机版
Copyright © 一流范文网 如对《飞思卡尔智能车竞赛光电组技术报告》有疑问请及时反馈。All Rights Reserved