智能车程序.

智能车程序.
智能车程序.

系统采用采用了7.2V 2000mAh Ni-Cd蓄电池作为系统能源,并且通过稳压电路分出6伏,5伏已分别给舵机和单片机供电。

直流电机驱动模块接收速度控制信号控制驱动电机运行,达到控制车速目的。转向伺服模块控制舵机转向,进而控制智能车转弯。速度测量模块实时测量智能车车速,用于系统的车速闭环控制,以精确控制车速。

系统充分使用了MC9S12DG128单片机的外围模块,具体使用到的模块包括:ADC模拟数字转换模块、定时器模块、PWM脉冲宽度调制模块、中断模块、I/O 端口和实时时钟模块等。

系统调试过程中,使用了组委会提供的代码调试环境CodeWarrior IDE,同时使用了清华的Plastid2软件进行了仿真试验。

图1.1 系统结构框图

3.1舵机部分

为了使转弯更加灵活,对舵机相关部分作了部分改动。首先,我们将舵机力臂加长85mm。这样,对于同样的转弯角度值,只需更小的舵机转角,减小了舵机转弯时惯性带来的弊端。其次,我们将舵机反装,使舵机连杆水平,因为此时舵机提供的力全部用在转弯上。

3.2前轮部分

为了增加前轮转弯时的稳定性,对前轮相关部分进行了部分改动。首先,更改前后垫片的数量,使前轮主销后倾,这样,车轮具有更好的自动回正功能。其次,更改连杆的长度,使车轮外倾,车轮转弯时,前半部分重心上移,促使赛车转弯更加稳定。再次,我们通过更改舵机连杆的长度,增加前轮前束,同样增加了前轮的稳定性。

3.3底盘部分

为了提高赛车运行时的稳定性,对地盘相关部分作了部分改动。首先,前轮相关位置加垫片,降低了前轮重心。其次,更改后轮车轴处的调节块,使后轮重心升高,这样,车身前倾,一定程度上,增加了车的稳定性。

3.4后轮部分

首先,更换后轮轮距调节块,使后轮两轮之间间距加大。这样,车在转弯时不容易产生侧滑。其次,调节后轮差速,使赛车转弯更加灵活。

4.1电源部分

为了能使智能车系统能正常工作,就需要对电池电压调节。其中,单片机系统、车速传感器电路需要5V电压,路径识别的光电传感器和接收器电路电压工作为5V、伺服电机工作电压范围4.8V到6V(或直接由电池提供),直流电机可以使用7.2V 2000mAh Ni-cd蓄电池直接供电。考虑到由于驱动电机引起的电压瞬间下降的现象,因此采用低压降的三端稳压器成为必然。我们在采用lm7805,和lm7806作为稳牙芯片。经试验电压纹波小,完全可以满足要求。

电池(7.2v)

2000mAh Ni-cd

稳压电路

5V

6V 7.2V

图4.2 7805电路图

图4.3 电源模块示意图

4.2电机驱动电路

电机驱动使用飞思卡尔专用电机驱动芯片MC33886。驱动电路如图4.4 所示。

电机

图4.1系统电压调节图 对管 单片机 舵机 测速板

为了增大驱动能力,减少单片发热量,电路采用两片MC33886 并联的方案。系统使用PWM 控制电机转速,充分利用单片机的PWM 模块资源。电机PWM 频率设定为8KHz 。

MC33886芯片的工作电压为5-40V ,导通电阻为140毫欧姆,PWM 频率小于10KHz ,具有短路保护、欠压保护、过温保护等功能。

电机驱动芯片安装在制作的电机驱动PCB 板上,在PCB 板设计时,考虑到芯片散热问题,在芯片腹部设计了方型的通孔,实际运行效果表明芯片散热均匀,设计合理。为了防止电动机突然停止时产生的电磁干扰,在电动机的两端焊接了一个0.1μF 滤波电容。

AGND 1FS

2

IN13V+4V+5OUT16OUT17DNC 8PGND 9PGND 10PGND 11PGND 12

D213OUT214OUT215V+16Ccp 17D118

IN219DNC 20U3

MC33886

AGND 1FS

2

IN13V+4V+5OUT16OUT17DNC 8PGND 9PGND 10PGND 11PGND 12

D213OUT214OUT215V+16Ccp 17D118IN219DNC 20U5MC33886

1.3K

R4Res21.3K

R7Res247pF

C12Cap 47pF

C14Cap VCC

PWM5

PWM312P14Header 2

DS2LED2

1K

R5Res22

3

1S2

SW-SPDT

+7.2V

1K

R10

Res21K

R15Res2

图4.4 两片MC33886并联使用

图4.5 两片MC33886并联使用的实物图

在图中可以看到,我们使用PWM23和PWM45作为电机驱动PWM 信号,两个

PWM 通道级联可以使其输出更加精确。在程序中,我们把PWM 值直接转换成了以米/秒为单位的绝对速度,这样使智能车的速度更加直观切易于调试。

4.3测速电路

由于考虑到成本需要,我们采用了红外对管和黑白码盘作为测速模块的硬件构成。其中码盘为32格的黑白相间圆盘,如下图所示:

图4.5 码盘

红外传感器安装在正对码盘的前方,虽然这样做精度比编码器要低很多,但是成本低廉制作容易,如果智能车速度较快,可以考虑再减少码盘上黑白色条的数量即可。

当圆盘随着齿轮转动时,光电管接收到的反射光强弱交替变化,由此可以得到一系列高低电脉冲。设置9S12 的ECT 模块,同时捕捉光电管输出的电脉冲的上升沿和下降沿。通过累计一定时间内的脉冲数,或者记录相邻脉冲的间隔时间,可以得到和速度等价的参数值。

测速电路使用自行研制的红外反射式光电测速传感器。速度测量电路使用红外反射式光电对管RPR220,自行制作的编码盘,比较电路等组成。

速度测量电路图2.8所示。红外反射式光电对管的光敏三极管信号通过比较器处理后输入单片机的计数器模块,利用单片机的输入捕捉功能,处理智能车速度信息。自制的编码盘有24道黑色条纹,电机旋转一周将产生24次输入捕捉中断。

300VCC

33K

32184

A

LM358

10K

5.1K VCC

VCC 5.1K

IOC0

RPR220

单片机记录两次中断的时间间隔T 。两次中断对应于智能车前进的距离S 为:16.5/24 cm,即0.6875cm ,其中16.5cm 为智能车后轮实测周长[7]。智能车实时速度V(cm/s)的计算公式如下:

s cm T

T T S V /6875.024/5.16===

4.4红外对管检测电路

由于我们采用了大功率对管,所以红外对管的电路是整个电路中要求最高的,

不紧要保证对管正常工作,而且还要考虑整个电路的能耗和发热问题。经测试我们发现单个对管在通以100mA 到170mA 电流时可以。保证抬高20到30厘米的距离。

此时每个对管的管压降为1.2到1.5伏。为了进一步加大发光量,我们采用了双发射管的办法,即一个接受管对应两个发射管。为了降低整体的能耗。我们让同一对的发射管串联,14对发射管再并联。同时使用了irf540进行开关控制。控制对管脉冲发光。开关频率为200HZ 。这样既保证了大前瞻探测的需要,又降低了整体的能耗和对电源的冲击

图4.7 先串联再并联的脉冲发光对管电路图。

图4.8对管实物图反面

图4.9 对管实物图正面

4.5拨码开关电路

由于在智能车比赛开始后,不能够对智能车硬件及软件进行修改,在保证了硬件有效可靠的同时,软件有可能不能够适应新场地,所以设计拨码开关对智能车有关参数进行设置也是必要的。拨码开关电路如下图所示:

12345678

161514131211109

S1

SW-DIP8123456789

R1

Header 9

VCC SW0

SW1SW2SW3SW4SW5SW6SW7

图4.9 拨码开关

这是一个八段的拨码开关,我们把它成成上下连个部分,显然,每个部分都有16种状态,前四个来改变舵机参数,后四个改变直流电机参数,这样对于适应新的场地很有好处。

5.1路径搜索算法

对于本控制系统采用14对光电对管的方案,单排排列在车体头部10cm处。编号为6、7的光电对管处于正中央位置。利用14对传感器进行道路识别。传感器对白色的反射率比黑色的大。单片机ADC读入值相应也大。在程序中对传感器信号进行处理,判断传感器是否检测到黑色引导线。

将单个传感器对白色和黑色路面的ADC值之差分为平均的两段,每次处理实时传感器信号时,判断本次采样的ADC值与黑色路面ADC值之差落在两段中的哪一段。如果在靠近黑色的一段,则判定该传感器检测到黑线,将该传感器对应的变量置为判定值1;如果在靠近白色的一段,则判定该传感器检测到白线,将该传感器对应的变量置为判定值1;为了增强判断的准确性,在对ADC值采样时,采用了中值滤波方法,以去除瞬间的干扰。

路径检测完后,将测的的路径值暂时存储,然后将路径信息传递给舵机和电机控制部分,以选择给定合适的转角和速度。

5.2舵机、电机的控制

智能车的舵机和电机都采用了经典的PID控制方法。但是由于舵机和电机性能的不同要求,分别对其进行了不同的修改。

PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为

式中积分的上下限分别是0和t

因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)

其中kp为比例系数;TI为积分时间常数;TD为微分时间常数

比例KP用来控制当前,误差值和一个负常数P(表示比例)相乘,然后和预定的值相加。P只是在控制器的输出和系统的误差成比例的时候成立,KP能够快速的跟随变化量。及时的产生与之相关的调节作用。但是KP是有差调节,无法消除静态误差。

积分KI来控制过去,误差值是过去一段时间的误差和,然后乘以一个负常数I,然后和预定值相加。I从过去的平均误差值来找到系统的输出结果和预定值的平均误差。一个简单的比例系统会振荡,会在预定值的附近来回变化,因为系统无法消除多余的纠正。通过加上一个负的平均误差比例值,平均的系统误差值就会总是减少。所以,最终这个PID回路系统会在预定值定下来。

微分KD 来控制将来, 计算误差的一阶导,并和一个负常数D相乘,最后和预定值相加。这个导数的控制会对系统的改变作出反应。导数的结果越大,那么控制系统就对输出结果作出更快速的反应。这个D参数也是PID被成为可预测的控制器的原因。D参数对减少控制器短期的改变很有帮助。一些实际中的速度缓慢的系统可以不需要D参数。

舵机PID

由于舵机是一个具有大的延迟的执行机构,所以在PID控制中不能加入积分环节。否则会导致小车震荡。所以小车采用PD控制。同时加入一个一阶惯性环节,构成不完全微分,给小车一个超前的调节。

实际使用中,为了减少计算时间,将位置式PID转化为增量式

增量式PID公式:

电机PID控制

小车行使过程中,随着跑道的不同,需要配合不同的速度值,因此对电机的PID是一个给定值不断变化的PID。

小车的目标速度(Object_Speed)给定规则:

1》小车在直道上,Object_Speed为最大值200。

2》小车在大弯道上,Object_Speed为160。

3》小车在小弯道或S型弯道上,Object_Speed为120

4》小车冲出跑道,Object_Speed为70。

5》小车由直道进入弯道,Object_Speed逐渐减小。

6》小车由弯道进入直道,Object_Speed逐渐加大。

在实验中发现,PID的超调量主要在第一个波形中起作用,也即单速度由很大到很小的时候,或由低速突然加到高速的过程中,会出现很大的超调。但是这个超调并不是有害的,因为,当速度要求突变的时候,往往是小车由直道入弯道,或者由弯道入直道的过程,这个过程往往需要很快的大加减速,而由于小车的惯性,

一般的PID调节难以满足要求,这时使用大的超调量可以使小车有一个加速或刹车的过程,使之更好的达到要求速度。

6.1 Codewarrior 开发环境

在整个开发调试过程中,使用Metrowerks公司为MC9S12 系列专门提供的全套开发工具(Freescale Codewarrior IDE 4.6)。这是一套用C语言进行编程的集成开发环境——本文智能车定位系统的软件设计部分就是在此开发环境下完成的。

Codewarrior 是由Metrowerks 公司提供的专门面向Freescale 所有MCU 与DSP 嵌入式应用开发的软件工具。其中包括集成开发环境IDE、处理器专家、全芯片仿真、可视化参数显示工具、项目工程管理、C 交叉编译器、汇编器、链接器以及调试器。

CodeWarriorIDE 能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执行你的程序。每个应用程序都经过了使用象CodeWorrior 这样的开发工具进行编码、编译、编辑、链接和调试的过程。Metrowerks Codewarrior IDE 中的mc9s12dg128.h 文件对所有寄存器对应的存储映射地址都进行了宏定义,开发者在软件开发时直接调用这些宏就可以了。

6.2 软件仿真

为了更好的定量分析影响小车行驶的各个因素,而且最大限度的节约时间和成本。我们采用了软件仿真和实际调试相结合的办法。仿真软件使用了清华的PLAST2。

通过仿真,我们发现:

1、小车传感器的探测距离对速度有着决定的影响。所以传感

器应该尽量的探测更远。但是传感器的探测距离不能超过

最小转弯的半径。否则会出现盲区。

2、适度增加舵机的灵敏度,可以使转弯更加灵活。所以我们

在实际调试中,加长了舵机的力臂。

6.2 实际调试

实际调试过程中,我们发现小车在直道上会出现左右抖动的现象,通过软件设置死区或其他处理方法,效果都不是很明显,最后发现小车舵机和前轮的间隙是罪魁祸首,通过把前轮设置为内八形,完美的解决了这个问题。

在调试过程中,我们加了液晶显示,还设置了蜂鸣器,这些辅助设备在比赛中为了减轻小车的重量,都是不需要的。但是在调试过程中,通过这些设备,可以及时的了解小车运行的情况,达到事倍功半的效果。

表7.1模型车技术参数统计:

项目参数

路径检测方法(赛题组)光电组

车模几何尺寸(长、宽、高)(毫米)385*220*60

车模轴距/轮距(毫米)200/150 车模平均电流(匀速行驶)(毫安) 200

电路电容总量(微法)430

传感器种类及个数红外对管 15个

新增加伺服电机个数 0

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

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

主要集成电路种类/数量 9s12单片机最小系统/1

33886电机驱动电路/4

速度检测电路/1 车模重量(带有电池)(千克)0.9

参考文献

[1] 黄开胜、金华民、蒋狄南,韩国智能模型车技术方案分析,北京:清华大学汽车安全与节能国家重点实验室,2004.3

[2] 邵贝贝著,单片机嵌入式应用的在线开发方法,北京:清华大学出版社,2004.2

[3] ‘LM2940 datasheet’, July 2000, National Semiconductor

[4] ‘LM7806 datasheet’ National Semiconductor

[5] ‘RPR220 datasheet’, ROHM

[6] 'Semiconductor Technical Data MC33887' Aug 2002 Motorola Inc

[7] 大赛车模拼装手册

[8] CodeWarrior IDE 3.1 help datasheet

[9] 'MC9S12DG128 Device User Guide', October 2002 Motorola Inc

[10] 'HCS12 CORE datasheet', Augt 2000 Motorola Inc

[11] 'S12PWM8B8CV1 datasheet', Mar 2002 Motorola Inc

[12] 'S12ATD10B8CV2 datasheet', Augt 2002 Motorola Inc

[13] 'S12ECT16B8V1 datasheet', July 2002 Motorola Inc

[14] https://www.360docs.net/doc/b89428221.html,

[15] https://www.360docs.net/doc/b89428221.html,

[16] https://www.360docs.net/doc/b89428221.html,

程序

电机PID控制程序

typedef unsigned char BOOL;

typedef unsigned char INT8U; //无符号8位数typedef signed char INT8S; //有符号8位数typedef unsigned int INT16U; //无符号16位数typedef signed int INT16S; //有符号16位数typedef unsigned long INT32U; //无符号32位数typedef signed long INT32S; //有符号32位数typedef float FP32; //单精度浮点数typedef double FP64; //双精度浮点数

#define MAX_32 (signed long)0x7fffffffL

#define MIN_32 (signed long)0x80000000L

#define MAX_16 ( signed int)0x7fff

#define MIN_16 ( signed int)0x8000

typedef struct

{

signed int ProportionalGain;

signed int ProportionalGainScale;

signed int IntegralGain;

signed int IntegralGainScale;

signed int DerivativeGain;

signed int DerivativeGainScale;

signed int PositivePIDLimit;

signed int NegativePIDLimit;

signed int IntegralPortionK_1;

signed int InputErrorK_1;

}sCaiXinBoPID;

sCaiXinBoPID SpdPID;

extern signed int CaiXinBoPIDController( signed int DesiredValue, signed int MeasuredValue,sCaiXinBoPID *pParams);

static signed long L_sub(register signed long src_dst, register signed long src2)

{

return (src2-src_dst);

}

static signed long L_deposit_l(register signed int ssrc)

{

return (signed long)(ssrc);

}

static signed int extract_l(register signed long lsrc)

{

return ( signed int)lsrc;

}

static signed long L_mult(register signed int sinp1, register signed int sinp2)

{

register signed long laccum;

laccum=sinp1;

laccum*=sinp2;

return laccum;

}

static signed long L_add(register signed long src_dst, register signed long src2)

{

return (src_dst+src2);

}

signed int CaiXinBoPIDController( signed int DesiredValue, signed int MeasuredValue,sCaiXinBoPID *pParams)

{

signed long ProportionalPortion, IntegralPortion, PIDoutput;

signed int InputError;

/*-------------------------------------------------------------------------------------------------*/

/* Saturation mode must be set */

/* InputError = sub(DesiredValue, MeasuredValue); */ /* input error */

/*-------------------------------------------------------------------------------------------------*/

/* input error calculation - 16bit range, with and without saturation mode */

PIDoutput = L_sub(L_deposit_l(DesiredValue),L_deposit_l(MeasuredValue)); /* input error - 32bit range */

if(PIDoutput > MAX_16) /* inpur error is greater than 0x00007fff = 32767 - 32bit range */ InputError = MAX_16; /* input error = max. positive 16 bit signed value */

else

if(PIDoutput < MIN_16) /* input error is less than 0xffff7fff = -32768 - 32bit range */ InputError = MIN_16; /* input error = min. negative 16 bit signed value */

else

InputError = extract_l(PIDoutput); /* input error - 16bit range */

/*-------------------------------------------------------------------------------------------------*/

/* proportional portion calculation */

ProportionalPortion=L_mult((pParams -> ProportionalGain), InputError) >> (pParams -> ProportionalGainScale + 1);

/*-------------------------------------------------------------------------------------------------*/

/* integral portion calculation */

IntegralPortion=L_mult((pParams->IntegralGain), InputError) >> (pParams->IntegralGainScale + 1);

/* integral portion in step k + integral portion in step k-1 */

IntegralPortion=L_add(IntegralPortion, L_deposit_l(pParams->IntegralPortionK_1));

/* integral portion limitation */

if(IntegralPortion>(pParams->PositivePIDLimit))

(pParams->IntegralPortionK_1)=(pParams->PositivePIDLimit);

else

if(IntegralPortionNegativePIDLimit)

pParams->IntegralPortionK_1=pParams->NegativePIDLimit;

else

pParams->IntegralPortionK_1=extract_l(IntegralPortion);

/*-------------------------------------------------------------------------------------------------*/

/* derivative portion calculation */

PIDoutput=L_sub(L_deposit_l(InputError),L_deposit_l(pParams->InputErrorK_1)); /* [e(k) - e(k-1)] - 32bit range */

pParams->InputErrorK_1=InputError; /* e(k-1) = e(k) */

if(PIDoutput>MAX_16) /* [e(k) - e(k-1)] is greater than 0x00007fff = 32767 - 32bit range */

InputError=MAX_16; /* [e(k) - e(k-1)] = max. positive 16 bit signed value - 16 bit range */ else

if(PIDoutput

InputError=extract_l(PIDoutput); /* [e(k) - e(k-1)] - 16bit range */

/* drivative portion in step k - integer */

PIDoutput=L_mult((pParams->DerivativeGain),InputError)>>(pParams->DerivativeGainScale+1);

/*-------------------------------------------------------------------------------------------------*/

/* controller output calculation */

PIDoutput=L_add(PIDoutput, ProportionalPortion); /* derivative portion + proportional portion */

PIDoutput=L_add(PIDoutput, L_deposit_l(pParams->IntegralPortionK_1)); /* + integral portion = controller output */

/* controller output limitation */

if(PIDoutput>pParams->PositivePIDLimit)

PIDoutput=pParams->PositivePIDLimit;

else

if(PIDoutputNegativePIDLimit)

PIDoutput=pParams->NegativePIDLimit;、

初始化程序

void RTI_Init(void)

{

/* setup of the RTI interrupt frequency */

/* adjusted to get 1 millisecond (1.024 ms) with 16 MHz oscillator */

RTICTL = 0x1f;//5*2^16:48.8hz //0x1f // set RTI prescaler ::晶振16384分频;(低四位+1)*(2^(高三位+9))

CRGINT = 0x80; // enable RTI interrupts; //低四位:1-7,不可为零,否则分频器不工作

}

void SET_PLL(void)

{

CLKSEL=0x00;

PLLCTL=0xe1;

SYNR=2;

REFDV=1;

PLLCTL=0x60;

asm NOP;

智能车光电传感器和摄像头的选择

第15卷第4期2011年12月 扬州职业大学学报 Journal of Yangzhou Polytechnic College Vol.15No.4 Dec.2011智能车光电传感器和摄像头的选择 戚玉婕 (扬州职业大学,江苏扬州225009) 摘要:智能车设计综合了光学传感器、硬件电路和软件算法等多方面跨领域的知识技巧。本文针对黑白赛道智能车的赛道光学识别模块,系统地介绍了红外反射式光电传感器、激光传感器和可见光摄像头的实现原理及硬件电路;同时结合实际比较了其优缺点。 关键词:红外反射式传感器;激光传感器;摄像头;智能车设计 中图分类号:TP212文献标识码:A文章编号:1008-3693(2011)04-0023-04 Choice of Photoelectric Sensor and Camera in Intelligent Car QI Yu-jie (Yangzhou Polytechnic College,Yangzhou225009,China) Abstract:Intelligent car designing is a modern and effective way in science and technology teaching.It in-tegrates some interdisciplinary skills,such as design and choice of optical sensor,hardware circuit and algo-rithm.In view of the benefit of designing the optical recognition module,the working mechanism and hardware design of several optical system,including infrared photoelectric sensor,laser sensor and camera are intro-duced in this article.Furthermore,combined with practical experience in teaching,pros and cons of the three alternative sensors are discussed to help teaching activities in intelligence car designing. Key words:infrared photoelectric sensor;laser sensor;camera;intelligent car designing 智能车也称无人车,是一个集环境感知规划决策和多等级辅助驾驶等功能于一体的综合系统。1953年,世界上第一台无人驾驶牵引车诞生,这是一部采用埋线电磁感应方式跟踪路径的自动导向车。如今,随着传感技术的不断进步,无人驾驶车发展也越来越快。智能车的光学传感器模块起到了至关重要的作为。光学传感器将获得的道路信息、测速传感器将现行车速信息传递至系统,系统对获得的图像和数据信息进行分析处理,经过特定的控制算法计算得出最佳速度和舵机转角,这是智能车系统的基本工作原理。 传感器是智能车的“眼睛”,必须能够真实、快速地反馈赛道信息。光电传感器和摄像头是两种工业应用最广泛的光学传感器。光电传感器包括红外传感器、激光传感器等,广泛应用于无人生产线,自动巡逻等领域;摄像头则广泛应用于汽车安全的智能技术中,如视觉增强系统、前照灯自动调整系统、转向监视系统等。本文结合我校开展智能车设计的经验,介绍了智能车设计中用到的光电传感器和摄像头,并比较两者的性能差别。 1光电传感器智能车道路识别系统设计 光电传感器(反射式)的光源有很多种,常用的有红外发光二极管,普通发光二极管和激光二 收稿日期:2011-09-26 作者简介:戚玉婕(1985—),女,扬州职业大学电子工程系助教,硕士。

智能小车控制程序1

/*实现前进与后退功能*/ /*控制智能车向前行驶10秒,然后停3秒,再向后行驶6秒,停止*/ /********************************************************/ #include #define uint unsigned int /*进行端口声明时,应与具体硬件连接相对应,如不相互对应,将影响程序功能的正常实现*/ sbit S1=P1^3; //对电机端口声明 sbit S2=P1^4; sbit S3=P1^5; sbit S4=P1^6; /*功能函数定义*/ void delay(uint del) //延时函数,延时del毫秒 { uint i,j; for(i=0; i

{ go(); //前进 delay(10000); //前进10秒 stop(); //停止 delay(3000); //停3秒 back(); //后退 delay(6000); //后退6秒 stop(); //停止 }

电子设计资料-出租车计价器-程序

#include #define uchar unsigned char sbit P3_4=P3^4; //code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x86,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[4]; int qw,bw,sw,gw,a,b,c; void disp(void) { for(c=3;c>=0;c--) { SBUF=tab[sz[c]]; while(!TI); TI=0; } } void scjs(void)interrupt 3 { TH1=0X3C; TL1=0xB0; a=a+1; if(a==2) { a=0; P3_4=!P3_4; if(P3_4==0) { b=TH0*256+TL0; ///yw=sz[0]=b/100000; //ww=sz[0]=b/10000%10; qw=sz[0]=b/1000%10; bw=sz[1]=b/100%10; sw=sz[2]=b/10%10; gw=sz[3]=b%10; disp(); } } } main() {

IE=0X88; TH1=0X3C; TL1=0XB0; TR0=1; TR1=1; a=0; while(1); } 2 #include #define uchar unsigned char sbit P3_4=P3^4; //code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6]; int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f; void disp(void) { for(c=5;c>=0;c--) { SBUF=tab[sz[c]]; while(!TI); TI=0; } } void scjs(void)interrupt 3 { TH1=0X3C; TL1=0xB0; a=a+1; if(a==2) { a=0; P3_4=!P3_4; if(P3_4==0) { b=TH0*256+TL0;

ZK-4WD智能小车简介

智能小车简介 一、智能小车效果图 二、智能小车各模块功能介绍 1、小车底盘 小车底盘是机器人最重要的载体,相当于人体的躯干,ZK—4WD小车平台采用差速转弯,非常灵活,可以实现原地打转。小车平台大小刚好,可以承载一些如驱动器,控制器,电池,传感器等。

2、驱动模块 我采用ST公司原装全新的L298N芯片及高质量铝电解电容,使电路稳定工作。小车直流电机工作电流一般是200—400mA,有些更大。如果一个小车是两个轮子,那么总的电流在400--800 mA左右,这些电机轮子都是要接受单片机指令执行相应动作,而市面有的单片机IO口一般只能提供5--10 mA的电流,直接驱动不了单片机,所以就需要一个驱动模块,就好像人的心脏功能。 3、控制模块 我采用的控制器主控芯片是STC89C52属于标准的51核的单片机,STC12C5A60S2内带PWM,AD,1T运行速度(主流),集成USB转串可以直接用USB下载程序。集成数码管,舵机,红外蔽障,12864,1602,无线模块等接口,板载输入按钮

4、小车所需的能源 可以用普通的AA5号电池,我采用低内阻的充电电磁套装,这是小车的动力之源,对外供电为7.2V。 这四部分都是必备的,有这四样东西,就可以让小车走起来,至于要怎么走,这个时候传感器就开始大发神威了! 5、小车需要的各种传感器 循迹传感器:一般用来识别黑白线,小车沿着这条黑白线行走,就需要循迹传感器 原理:循迹传感器通常采用红外的方式,红外管发射出来的红外光通过地面(白色)反射回来,在接收管理收到信号,一旦碰到黑线,那么红外光都被吸收,接收管没有接收到信号,从而得知传感器是否压线:从而调整小车运行方向。四路红外循迹模块:(可以通过换探头方式,改为蔽障方式) 超声波蔽障测距传感器:通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了,这与雷达测距原理相似。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中遇到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。通过程序代码的修改,可以调节小车蔽障的距离。

飞思卡尔智能车电磁组信号采集

?пㄖ ???? ??? ? ??? ?? ? ? 1? ? ??? ? 哖 世?? ???? ??? ??? ??? ? ??? ㄎ? ?? ??????仁??20kHz??????⌒ ???仁?VLF? ??⌒???仁仁?? ? 仁 ?仁??⌒????3kHz?30kHz?⌒?? 100km?10km? ?? 3.1?? ??? ? ? ?? ? ? ?а ? ?????? ??? ? ? ? ? ?? ??オ???? ??? ??? ? ? ??? ? ? ???о? ??? ??? ??? ? ? ? ? ?? ? ??? й ?????? ? ? ?? ? ???? ?н ????? ? ? на???? ??? ? ? ?? ? ? ?? а ? ???? ?? ??? ?? ? ??? ? ? ?? ?? ??? ??? ?? ??仁? ??? ?? ???? ??? ?? ?? ????? ?? ? ?? ?????? ↓ ? ?? ?? ↓ ? ?? ?? ??? ???? ? ??? ?? ? ? ?? ? ↓ ?? ?? ? ? ? ? ?? っ ?? ???/& ????? ??? ? ? ??/&? ?? ? ?

?йㄐ ???? ?? ?LC? ?? ? ? ?? ?? ? ?? ??????? ??? ??AD???? 享 ?? 儈?↓? фн?? ?? ???AD? ???? ? ?? ?? 3.3 ?? ?? ???????? ?? 傼 ??н ??? ? ? н ? ?? ?? ?н ? н? ? ? ??? ? ?? ?нっ ???? ?????? ? ф? 儈? ? ?

PWM调速+循迹__智能小车程序

//T0产生双路PWM信号,L298N为直流电机调速,接L298N时相应的管脚上最好接上10K 的上拉电阻。 /* 晶振采用12M,产生的PWM的频率约为100Hz */ #include #include #define uchar unsigned char #define uint unsigned int sbit en1=P3^4; /* L298的Enable A */ sbit en2=P3^5; /* L298的Enable B */ sbit s1=P1^0; /* L298的Input 1 */ sbit s2=P1^1; /* L298的Input 2 */ sbit s3=P1^3; /* L298的Input 3 */ sbit s4=P1^2; /* L298的Input 4 */ sbit R=P2^0; sbit C=P2^1; sbit L=P2^2; sbit key=P1^4; uchar t=0; /* 中断计数器*/ uchar m1=0; /* 电机1速度值*/ uchar m2=0; /* 电机2速度值*/ uchar tmp1,tmp2; /* 电机当前速度值*/ /* 电机控制函数index-电机号(1,2); speed-电机速度(0-100) */ void motor(uchar index, char speed) { if(speed<=100) { if(index==1) /* 电机1的处理*/ { m1=abs(speed); /* 取速度的绝对值*/ s1=1; s2=0; } if(index==2) /* 电机2的处理*/ { m2=abs(speed); /* 电机2的速度控制*/ s3=1; s4=0; } } } void Back(void) {

出租车计价器系统完整版

智能电子产品设计与制作 课程设计(论文) 题目: 《出租车计价器系统设计》 学院:电气与电子信息工程学院 专业名称: 学号: 学生姓名: 同组成员: 指导教师: 课设时间:2011年5月23日—2011年6月10日 目录

一.设计目的 (2) 二.设计要求 (2) 三.系统结构 (2) 四.功能模块设计 (3) 五.软件设计 (5) 六.电路组装与调试 (6) 七.电路仿真 (7) 八.总结 (8) 八.附录 (9)

出租车计价器课程设计 一、设计目的 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以红外对管测转速,对实际里程的模拟,实现对出租车的多功能的计价设计,并采用AT24C01实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜和中途等待来调节单价。 二、设计要求 出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。从起步价开始,当汽车程行驶未满3公里时,均按起步价计算。过3公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费的和便构成了一位乘客的车费。同时,白天和夜晚价格不同,可以进行切换。白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。(默认起步价为5元/3公里,里程单价白天为1.5元/公里,夜晚为1.8元/公里,等待计时单价为0.5元/5分钟) 三、系统结构 根据设计的要求选择实验的方案:采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。设计采用AT89S51单片机为主控器,以红外对管和电机测转速(按键替代),实现对出租车的基本的计价设计,并采用AT24C02实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管,相对液晶显示价格便宜,利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的计价功能。 器系统结构图如下: 四、功能模块 1、单片机模块

瑞萨MCU产品技术解析.

瑞萨MCU产品技术解析 2005年7月,伴随《瑞萨论坛2005》即中国三城市(北京、上海、深圳)巡回研讨会的召开,瑞萨科技将其世界占有率第一的MCU隆重介绍给三地近八百位与会来宾。使中国用户充分了解到瑞萨科技MCU强大产品族群以及为中国用户在不同应用领域而提供的整体解决方案。 据赛迪顾问对中国消费类MCU市场规模的预测:未来三年内,中国市场MCU的销售量将以超过15%的速度稳步递增,这正是全球MCU厂商将着眼点落在中国市场的最重要因素。而立足为中国设计最适合MCU的瑞萨科技,其广泛的产品线涵盖了MCU在移动电话、汽车电子、电脑/影视以及家电等各种领域中的需求。从低端的4位、8位产品到高端的16位、32位产品中,都有瑞萨科技的身影。并且,瑞萨科技还将在面向下一代市场的开发方面继续加大投入力度,展开以“世界份额NO.1的MCU”为核心的业务强化政策。通过与各类事业伙伴共同合作,以提供功能强大的CPU核心和丰富的周边IP为基础开发ASSP,并且努力为用户提供最完善的应用技术服务和软件开发环境,使得瑞萨科技在中国MCU市场的份额进一步扩大。在当前被普遍看好的闪存MCU领域,瑞萨科技更是以累计达7亿个的出货量独占同行业第一。瑞萨拥有28个产品群、超过200种的丰富产品阵容,但在中国市场上是以Tiny家族系列产品和内置瑞萨最新存储器的QzROM为最鲜明的产品代表。 低成本、少管脚、小型封装的Tiny家族 由H8/ Tiny 系列、R8C/ Tiny 系列、M16C/ Tiny 系列和 SH/ Tiny 系列组成的Tiny家族是适用于家电、AV、PC周边、工业机器等的系统控制器。该系列是有着低成本、少管脚、小型封装等特征的瑞萨MCU品牌。从20管脚到80管脚的少管脚、小型封装产品均拥有高性能CPU和可靠的Flash存储器,并且产品的高性能周边功能模块的统一帮助客户实现了削减系统成本的目的。同时,瑞萨科技还通过提供低成本的开发工具、通用周边机器的统一、Web上的技术支持,以及Simple OS、中间件的支持保证了系列产品之间的兼容性。 就产品而言,以R8C/ Tiny 系列为例,其产品特性很鲜明地体现在低功耗、高速运作(最大工作频率可达到20MHz)、低成本闪存内置MCU、高性能周边模块内置、丰富的应用技术信息提供上。并且,R8C/ Tiny 系列还能够为用户提供在线仿真器、CPU板等低成本的开发环境。 内置瑞萨最新存储器的QzROM QzROM单片机是瑞萨采用了细微化工艺的PROM技术的可编程存储器。 QzROM 中的“Q”就是Quick(及时出货),“z”就是Easy(简单编程),所以QzROM最鲜明的产品特性也就集中体现在缩短出货周期和简单编程上。而对QzROM最形象的描述是它实现了Mask ROM的成本、Flash ROM般的使用便利性。由于QzROM添加了高附加值功能,并可将同一单片机作为开发用产品(即程序未写入品)和量产用产品(即程序写入品),从而可省略以前必需的,对Mask ROM版样品的测试。这样从ROM受理到出货时间的缩短,使得程序评价时间可相对延长,可以有更充分的调试和评价时间,可确保其程序的高质量

智能车电磁环境制作

第五届全国大学生智能汽车竞赛 20KHz 电源参考设计方案 (竞赛秘书处技术组版本1.0) 第五届全国大学“飞思卡尔杯”智能汽车竞赛新增加了“电磁组”。根据比赛技术要求,电磁组竞赛,需要选手设计的智能车能够检测到道路中心线下电线中20KHz交表电流产生的磁场来导引小车沿着道路行驶。在平时调试和比赛过程中需要能够满足比赛技术要求的20KHz的交流电源驱动赛道中心线下的线圈。本文档给出了电源设计参考方案,参赛队伍可以根据这些参考设计方案自行设计制作所使用电源。 一、 电源技术指标要求: 根据《竞赛比赛细则》附件三关于电磁组赛道说明,20KHz电源技术要求如下: 1、驱动赛道中心线下铺设的0.1-0.3mm直径的漆包线; 2、频率范围:20K±2K; 3、电流范围:50-150mA; 下图是赛道起跑区示意图,在中心线铺设有漆包线。 图1 竞赛跑道起跑区示意图

首先分析赛道铺设铜线的电抗,从而得到电源输出的电压范围。 我们按照普通的练习赛道总长度50,使用直径为0.2mm漆包线。在30摄氏度下,铜线的电阻率大约为 0.0185欧姆平方毫米/米。计算可以得到中心线的电阻大约为29.4欧姆。 按照导线电感量计算机公式: 4 2ln0.75() l L l nH d ?? =×? ?? ?? 。其中l, d的单位 均为cm。可以计算出直径为0.2mm,长度50米的铜线电感量为131微亨。对应20KHz下,感抗约为16.5欧姆。 可以看出,线圈的电感量小于其电阻值。由于导线的电感量与铺设的形状有关系,上述计算所得到的电感量不是准确数值。另外,我们可以在输出时串接电容来抵消电感的感抗。所以估算电源电压输出范围的时候,我们不再特别考虑线圈的电感对于电流的影响。 为了方便设计,我们设计电源输出电压波形为对称方波。由于线圈电感的影响,线圈中的电流为上升、下降沿缓变的方波波形。如下图所示 图2 线圈驱动电压与电流示意图 对于电阻为29.4欧姆的赛道导线,流过100mA的电流,电压峰值应该大于3V。考虑到赛道长度有可能进一步增加、漆包线的直径减少等原因,设计电源输出电压的峰值为6V。在输出电流为150mA的时候,电源输出功率大约为0.9W。 二、 电源组成 电源电路包括振荡电路、功率输出电路、恒流控制电路以及电源等组成。 如下图所示:

智能循迹小车

目录 1.第一章绪论 1.1循迹小车的发展现状 1.2 选题意义 1.3本设计的工作 1.3.1设计要求 1.3.2设计思路 2.第二章硬件部分简介 2.1 具体方案论证与设计 2.2 主控芯片的简介 2.2.1 光电反射式传感器(ST178) 2.2.2低功率低失调双比较器LM393 3.第三章光电循迹小车的原理 3.1原理 3.2 传感器电路 3.2.1红外反射式光电传感器原理 3.2.2黑线检测电路

3.3核心控制电路 3.3.1模数转换电路(比较器电路) 3.3.2数字逻辑电路 3.4驱动电路 3.5 拓展功能“防撞” 3.6PCB制板 3.7作品展示 3.8原件清单 4.第四章结论 5.参考文献 6.课程设计心得

绪论 1.1循迹小车发展现状与趋势 智能汽车作为一种智能化的交通工具,体现了车辆工程、人工智能、自动控制、计算机等多个学科领域理论技术的交叉和综合,是未来汽车发展的趋势。寻迹小车可以看作是缩小化的智能汽车,它实现的基本功能是沿着指定轨道自动寻迹行驶。就目前智能小车发展趋势而言:相比价格昂贵、体积大、数据处理复杂

的传感器CCD反射式光电传感器以其价格适中、体积小、数据处理方便等更具有发展优势。 1.2 选题意义 汽车电子迅猛发展,智能车产生和不断探索并服务于人类的趋势将不可阻挡。智能车的研究将会给汽车这个产生了一百多年的交通工具带来巨大的科技变革。人们在行驶汽车时,不再只在乎它的速度和效率,更多是注重驾驶时的安全性,舒适性,环保节能性和智能性等。各国科学家和汽车工作人员以及汽车爱好者都在致力于智能车的研究,研究的成果有很多都已应用于人们的日常生活生产之中,例如在2005年1月美国发射的“勇气”号和“机遇”号火星探测器实质上都是装备先进的智能车辆。因此,研究智能车的实际意义和取得的价值都非常重大。本课题利用传感器识别路径,将赛道信息进行识别处理,利用主控芯片控制小车的行进进而完成循迹。 1.3本设计的工作 1.3.1设计要求 要求:设计并制作一个简易光电智能循迹电动车,其行驶路线示意图如图1-1:(其中粗黑些为光电寻迹线)要求智能循迹小车从起点出发,沿粗黑色引导线到达终点后立即停车但行驶全程行驶时间不能大于90s。

C语言出租车计价器课程设计

出租车计价器课程设计目录 前言 1、系统工作原理 1.1 功能说明 1.2 基本原理 2、硬件设计 2.1 单片机最小系统单元 2.2 A44E霍尔传感器检测单元 2.3 AT24C01存储单元 2.4 键盘调整单元 2.5 显示单元 3、软件设计 3.1 系统主程序 3.2 中断程序 3.2.1 里程计数中断程序 3.2.2 中途等待中断程序

3.3 计算程序 3.4 显示程序 3.5 键盘程序 4、总结 参考文献 附录A 系统原理图 附录B 系统源程序 前言 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以A44E霍尔传感器测距,实现对出租车的多功能的计价设计,并采用AT24C01实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜和中途等待来调节单价。 第一章系统工作原理

1.1 功能说明 出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。从起步价开始,当汽车程行驶未满3公里时,均按起步价计算。过3公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费的和便构成了一位乘客的车费。同时,白天和夜晚价格不同,可以进行切换。白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。(默认起步价为5元/3公里,里程单价白天为1.5元/公里,夜晚为1.8元/公里,等待计时单价为0.5元/5分钟) 1.2 基本原理 计数器系统主要由五部分组成:A44E霍尔传感器、AT89S52单片机、独立键盘、EEPROM AT24C01和显示数码管。 霍尔传感器安装在车轮上,主要检测汽车行进的公里数,并产生一系列相应的脉冲输出,脉冲送到单片机进行处理,单片机根据程序设定通过计算脉冲数换算出行驶公里数,再根据从EEPROM中读取的价格等相关数据进行金额的计算,计算好的金额、里程和单价都实时地显示在数码管上。独立键盘可以调节价格等相关数据,按下相应的按钮,产生信号交由单片机处理并实时显示出来,调节好的数据存储到EEPROM中,掉电后可以使调好的数据不丢失,下次得电后直接从EEPROM读到单片机,系统结构图如图1。

飞思卡尔智能车光电平衡MCF522551

1 12 23 34 45 56 67 78 8 D D C C B B A A 1* * 3* * 2014/1/323:07:28G:\PCBxuhy\onePCB\MCF52255.SchDoc Title Size: Number:Date:File:Revision:Sheet of Time:A3 MCU GND 1 23456789 SWITCH VCC-3.310K 1 234567816 1514131211109 SW SW DIP-8 GPT3 GND AN3/AO AN4/AO VCC-3.3 OUT0 AN5/AO ANB1/ACCZ ANB1/ACCZ CLK1 SI1 AN3/AO 1 2345 TUOLUOYI CLK2SI2 AN4/AO 12345 CCD2 CLK2SI2 AN5/AO 123 GUANG1 12 3 GUANG2 GND GND VCC-3.3 VCC-3.3 JS GPT3VCC-3.3 VCC-3.3 VCC-3.3 ANB0 ANB2OUT1OUT2OUT3OUT4OUT5OUT6OUT7VCC-3.3ANB0ANB2SW0 SW1 SW2 SW3 SW4SW5 SW6 SW7IO1IO2IO3 IO4 IO5IO6IO7 IO0PWM1 PWM3 V D D 32 TIN0/TC0/PWM013TIN1/TC1/PWM216UCTS0/UA3 17UTXD0/UA020 URXD0/UA119URTS0/UA222TIN3/TC3/PWM6 21 PCS3/QS6 24PCS2/QS523QSDI/QS126QSDO/QS0 25SCK/QS228PCS0/QS327SCL/AS0 30SDA/AS1 29 V S S 63UCTS1/UB361UTXD1/UB060URXD1/UB159URTS1/UB258TIN2/TC2/PWM457AN056AN155AN254AN353ICOC3/TA3/PWM762AN7 52 AN651AN550AN449USB_DM/XX 48USB_DP/XX 47 ICOC0/TA0/PWM146ICOC1/TA1/PWM345ICOC2/TA2/PWM544IRQ7/NQ7 43UCTS2/UC3 42URTS2/UC241V S S 64UTXD2/UC040URXD2/UC139IRQ1/NQ1 38FCRS/TI137FCOLTI036 FTXD3/TJ535FTXD2/TJ434FTXD1/TJ333FTXD0/TJ22FTXEN/TJ61FTXCLK/TJ14FTXER/TJ7 3FRXER/TJ06FRXCLK/TI25FRXDVTI78FRXD0/TI37FRXD1/TI410V D D 31 FRXD2/TI59FRXD3/TI612IRQ5/NQ5 11IRQ3/NQ3 14M C F 52259 S y s t e m REXTAL/XX 15RXTAL/XX 18 *MCU 1 2345 BLUET GND VCC-3.3TX0RX0 TX0RX0CLK1 SI1 CLK2 SI2PWM0PWM2IO0IO1IO2IO3IO4IO5IO6IO71 2345678 TJIO TJ0TJ1TJ2TJ3TJ4TJ5TJ6TJ7TJ0 TJ1TJ2TJ3TJ4TJ5TJ6TJ7 SW0SW1SW2SW3SW4SW5SW6SW71 23456789 10CCD01 D0D1D2 D3 D4D5 D6 D7 4.7K S0 4.7K S1 4.7K S2 4.7K S3 4.7K S4 4.7K S5 4.7K S6 4.7K S7CCD 光电编码器 8个I O 口 拨码开关 陀螺仪 I O 口&&蓝牙 张哲鑫--主控板及外设 广科大

智能循迹小车程序

智能循迹小车程序 Document number:BGCG-0857-BTDO-0089-2022

#include<> #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器 P3^2 sbit L=P3^3; //左边传感器 P3^3 //电机驱动口定义 sbit ENB=P1^0; //前轮电机停止控制使能 sbit ENA=P1^1; //后轮控制调速控制端口 sbit IN1=P1^2; //前轮 sbit IN2=P1^3; //前轮 sbit IN3=P1^4; //后轮

sbit IN4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例{ ENA = 1; }

智能汽车简介

第一章产品背景 1.1社会背景 近年来,我国国民经济在新常态下保持平稳运行,呈现出增长平稳、结构优化、质量提升、民生改善的良好态势。统计局数据显示,初步核算,2014年国内生产总值636463亿元,人均GDP约为7485美元。 随着社会的快速发展,人均GDP的稳步增长,居民对于汽车刚性需求日益强劲。自2012年以来汽车流通规模不断扩大,新车销量连续四年全球排名第一。截止2014年我国汽车保有量为1.3亿辆,平均10人拥有1辆汽车。而随着我国城镇化推进和人口大城市化趋向凸显,以及新农村建设,城乡汽车需求量仍将继续增长。 2.2市场背景 2013年,中国汽车市场年销量超过2000万辆,有近百个汽车品牌,500多个汽车产品,分别是美国的2.1倍和1.8倍。毫无疑问,中国不但是全球最大的汽车市场,也是全球竞争最为激烈的汽车市场。 然而,随着互联网在中国的发展,中国消费者对汽车智能互联的需求,电商发展对传统汽车营销模式的冲击以及能源危机、环境危机对汽车传统动力形式的挑战,汽车业将迎来一次行业性的变革——智能化、互联网技术发展正在改变汽车产品以及汽车行业的格局,继“iPhone”、“iPad”之后,“iCar”也会成为现实。这种变革,对所有的汽车企业来说,既是挑战,也是机遇。 智能汽车是在传统汽车基础之上,通过计算机技术、互联网技术、现代传感、信息融合、通信、人工智能、以及传感器等技术,在汽车上实现娱乐功能、互联功能、物联功能,集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统。智能车的研究起始于二十世纪七十年代,到八十年代主要从事智能汽车研究通信、控制等科学技术的飞速发展,对智能车的研究也加速至一个新的阶段,而我国对智能汽车的研究起步较晚,技术相对落后。 根据公众对汽车智能化的意见调查,结果显示,仅有7.24%的受访者表示,汽车智能化只是增强车辆以及品牌在市场的竞争力和附加值,会更多地在高端车型上出现。而超过90%的受访者表示,智能化在未来汽车发展中将占据重要的地位。其中,51.02%的受访者认为,智能化会成为汽车在继节能、安全、环保之后新的发展趋势。另外,还有23.73%受访者表示,所有档次车辆均会配置相应的智能化设备,并成为必需的配置。 目前对智能汽车的研究已成为汽车行业的一大热点,智能汽车以其无可匹敌的安全性、舒适性、环保性等诸多优势必将成为未来汽车市场的霸主,谁能在智能车研究应用领域掌握

飞思卡尔智能车电磁组程序员成长之路(未完待续)

飞思卡尔智能车电磁组程序员成长之路 1.飞思卡尔智能车小车入门 智能汽车电磁组简介: 第五届全国大学“飞思卡尔杯”智能汽车竞赛新增加了“电磁组”。根据比赛技术 要求,电磁组竞赛,需要选手设计的智能车能够检测到道路中心线下电线中20KHz 交 变电流产生的磁场来导引小车沿着道路行驶。在平时调试和比赛过程中需要能够满足比 赛技术要求的 20KHz 的交流电源驱动赛道中心线下的线圈。同时参赛选手需要自行设 计合适的电磁传感器来检测赛道信息完成智能寻迹功能。 智能车制作是一个涵盖电子、电气、机械、控制等多个领域和学科的科技创新活动。简单点来说可以将其分为硬件电路(包括电源、MUC 控制部分、电机驱动、传感器)、机械、算法三方面的设计。电磁组在机械方面可以参照光电组的设计方案,这里不再赘述。本设计指导只讲述20KHZ 电源、电磁传感器设计方案以及部分算法。 智能车对单片机模块需求: 飞思卡尔单片机资源:

智能车涉及到IO模块,中断模块,PWM模块,DMA模块,AD模块等。在车模调试中还有必须的模块。如SCI模块、定时器模块,SPI模块等。其中还涉及到一些算法和数据的存储和搬移。一个好程序框架对智能车的制作过程中会达到事半功倍的效果。但是就智能车这样系统来说,如果完全专门移植一个操作系统或者写一个程序的bootload,感觉有一些本末倒置,如果有成熟的,可以借用的,那样会比较好。 2.电磁传感器的使用 20KHz电源参考设计方案: 电源技术指标要求: 根据官网关于电磁组赛道说明,20KHz 电源技术要求如下: 1.驱动赛道中心线下铺设的 0.1-0.3mm 直径的漆包线; 2.频率围:20K±2K; 3.电流围:50-150mA; 图 2.1 是赛道起跑区示意图,在中心 线铺设有漆包线。 首先分析赛道铺设铜线的电抗,从而得 到电源输出的电压围。我们按照普通的练习 赛道总长度 50m,使用直径 0.2mm 漆包线。在30 摄氏度下,铜线的电阻率大约为 0.0185 欧姆平方毫米/米。计算可以得到中心线的电阻大约为 29.4 欧姆。 按照导线电感量计算机公式: 其中 l, d 的单位均为 cm。可以计算出直径为 0.2mm,长度 50 米的铜线电感量为131 微亨。对应 20KHz 下,感抗约为 16.5 欧姆。

基于光电传感器自动循迹小车设计

基于光电传感器自动循迹 小车设计 The Standardization Office was revised on the afternoon of December 13, 2020

摘要 制作自动寻迹小车所涉及的专业知识包括控制、模式识别、传感技术、汽车电子、电气、计算机、机械等诸多学科。为了使小车能够快速稳定的行驶,设计制作了小车控制系统。在整个小车控制系统中,如何准确地识别路径及实时地对智能车的速度和方向进行控制是整个控制系统的关键。 由于此小车能够自动寻迹,加速,减速.故又被称作为智能车.本智能车控制系统设计以MC9S12XS128微控制器为核心,通过两排光电传感器检测小车的位置和运动方向来获取轨道信息,根据轨道信息判断出相应的轨道类型,并分配不同的速度给硬件电路加以控制,完成了在变负荷条件下对速度的快速稳定调节。红外对射传感器用于检测智能车的速度,以脉宽调制控制方式(PWM)控制电机和舵机以达到控制智能车的行驶速度和偏转方向。 软件是在CodeWarrior 的环境下用C语言编写的,用PID控制算法调节驱动电机的转速和舵机的方向,完成对模型车运动速度和运动方向的闭环控制。智能车能够准确迅速地识别特定的轨道,并沿着引导线以较高的速度稳定行驶。 整个智能车系统涉及车模机械结构的改装、传感器电路设计及控制算法等多个方面。经过多次反复的测试,最终确定了现有的智能车模型和各项控制参数。 关键词: MC9S12XS128;PID;PWM;光电传感器;智能车

ABSTRACT Making automatic tracing car involved the professional knowledge including control, pattern recognition, sensing technology, automobile electronics, electrical, computer, machinery and so on many subjects. According to the technical requirements of the contest, we design the intelligent vehicle control system. In the entire control system of the smart car, how to accurately identify the road and real-time control the speed and direction of the Smart Car is the key to the whole control system. Because this car can automatic tracing, accelerate, slowing down. So it is also known as intelligent car this intelligent vehicle control system design take the MC9S12XS128 micro controller as a core, examines car's position and the heading through two row of photoelectric sensors gains the racecourse information, judges the corresponding racecourse type according to the racecourse information, and assigned the different speed to control for the hardware circuit, has completed in changes under the load condition to the speed fast stable adjustment. The infrared correlation sensor uses in examining the intelligent vehicle's speed, (PWM) controls the electrical machinery and the servo by the pulse-duration modulation control mode achieves the control intelligence vehicle's moving velocity and the deflection direction. The software is under the CodeWarrior environment with the C language compilation, actuates electrical machinery's rotational speed and servo's direction with the PID control algorithm adjustment, completes to the model vehicle velocity of movement and the heading closed-loop control. The intelligent vehicle can distinguish the specific racecourse rapidly accurately, and along inlet line by the high speed control travel. The entire intelligent vehicle system involves the vehicle mold mechanism the re-equipping, the sensor circuit design and the control algorithm and so on many aspects. After the repeated test, has determined the existing intelligent vehicle model and each controlled variable finally many times. Keywords: MC9S12XS128; PID;PWM;photoelectric sensor; smart car

相关文档
最新文档