stm32 12864并行C程序

stm32 12864并行C程序
stm32 12864并行C程序

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

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

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

智能车电磁环境制作

第五届全国大学生智能汽车竞赛 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.飞思卡尔智能车小车入门 智能汽车电磁组简介: 第五届全国大学“飞思卡尔杯”智能汽车竞赛新增加了“电磁组”。根据比赛技术 要求,电磁组竞赛,需要选手设计的智能车能够检测到道路中心线下电线中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 欧姆。

飞思卡尔智能车比赛电磁组路径检测设计方案

飞思卡尔智能车比赛电磁组路径检测设计方案电磁组竞赛车模 路径检测设计参考方案 (竞赛秘书处 2010-1,版本 1.0) 一、前言 第五届全国大学生智能汽车竞赛新增加了电磁组比赛。竞赛车模需要能够通 过自动识别赛道中心线位置处由通有 100mA 交变电流的导线所产生的电磁场进行路径检测。除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。具体要求请参阅《第五届智能汽车竞赛细则》技术文档。 本文给出了一种简便的交变磁场的检测方案,目的是使得部分初次参加比赛 的队伍能够尽快有一个设计方案,开始制作和调试自己的车模。本方案通过微型车模实际运行,证明了它的可行性。微型车模运行录像参见竞赛网站上视频文件。 二、设计原理 1、导线周围的电磁场 根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。智能汽车 竞赛使用路径导航的交流电流频率为 20kHz,产生的电磁波属于甚低频(VLF) 电磁波。甚低频频率范围处于工频和低频电磁破中间,为 3kHz,30kHz,波长为 100km,10km。如下图所示: 图 1:电流周围的电磁场示意图

导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度 和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航的目的。 由于赛道导航电线和小车尺寸 l 远远小于电磁波的波长,,电磁场辐射能量很小(如果天线的长度 l 远小于电磁波长,在施加交变电压后,电磁波辐射功率正比于天线长度的四次方),所以能够感应到电磁波的能量非常小。为此,我们将导线周围变化的磁场近似缓变的磁场,按照检测静态磁场的方法获取导线周围的磁场分布,从而进行位置检测。 由毕奥-萨伐尔定律知:通有稳恒电流 I 长度为 L 的直导线周围会产生磁场,距离导线距离为 r 处 P 点的磁感应强度为: 图 2 sin直线电流的磁场 , d, ,(0 , 4 10, 7 TmA 1 ) B , ,, cos,1 2 ,。 (1) ,1 4 r 由此得: B , cos, 4 r 4 r

电磁组智能车全国一等奖代码

void main(void) { while(1) { AD_GetValue(); //获得传感器AD值Cal_PostitionA(); //获得? if(SenA!=50) { Delayms(500); break; } Delayms(50); SenA=50; } #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions*/ #define SERVO_MIDDLE_V ALUE 1184 舵机中值 #define SERVO_RANGE 180 舵机转动范围 void Set_PWM(uint PWM1,uint PWM2) { PWMDTY1=PWM1; PWMDTY0=PWM2; } void Set_Servo(uchar value) //舵机 { uint i; if(value>100||value<0) value=last_value; 保持上一次状态 last_value=value; if(value<=50) i=SERVO_MIDDLE_V ALUE-(50-value)*18/5; if(value>50) i=SERVO_MIDDLE_V ALUE+(value-50)*18/5; PWMDTY23=i; } void Pwm_Init(void) //PWM初始化 { PWME=0X00; //禁止PWM输出 PWMCTL_CON23=1; //2和3联合成16位PWM,并且2的寄存器为级联后寄存器

智能车电磁组完整程序

#include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ int left1=0; int left2=0; int right1=0; int right2=0; int AR_LEFT=0;//left2-right2 int AR_RIGHT=0; int CR=0;//左边相加减右边相加 int preCR=0; int ppreCR=0; int mkp=0; int mki=0; int mkd=0; int ideal_speed=0; //设定速度 int speed=0; int s_ideal0[6]={75,80,42,42,42,42}; //普通道、长直道、普通到弯、长直道到弯、弯内、偏离黑线 int s_ideal1[6]={70,75,42,42,42,42}; int s_ideal2[6]={62,70,42,40,41,40}; int s_ideal3[6]={54,66,42,40,41,40}; int table_mkp0[6]={30,30,30,30,30,30}; //ni 16.31 ,shun 15.16 int table_mkp1[6]={25,25,25,25,25,25}; int table_mkp2[6]={5,4,4,20,20,20}; int table_mkp3[6]={4,4,4,10,8,9}; //稳定速度 int table_mki0[6]={0,0,20,20,20,20}; int table_mki1[6]={0,0,20,20,20,20}; int table_mki2[6]={0,0,0,10,10,20}; int table_mki3[6]={0,0,0,0,0,0}; int table_mkd0[6]={0,0,0,0,0,0}; int table_mkd1[6]={0,0,0,0,0,0}; int table_mkd2[6]={0}; int table_mkd3[6]={0,0,0,0,0,0}; int s_table[6]; int b_mkp[6]=0; int b_mki[6]=0; int b_mkd[6]=0;

电磁组程序

#include //----------------------------------------------------- static void Port_Init(void) { DDRA = 0x00; PUCR_PUPKE=0xff; DDRB = 0x00; //LED PTB0--7, PUCR_PUPBE=0xff; //LEDs on DDRE=0xff; PERH = 0xff; //key PTIH= 0x00; // } //----------------------------------------------------- static void PWM_Init(void) { //pwm0.pwm1 PWMCTL_CON01=1; //0和1联合成16位PWM; PWMCAE_CAE1=0; //选择输出模式为左对齐输出模式 PWMCNT01 = 0; //计数器清零; PWMPOL_PPOL1=1; //先输出高电平,计数到DTY时,反转电平 PWMPRCLK = 0X40; //clockA 不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz PWMSCLA = 0x08; //对clock SA 16分频,pwm clock=clockA/16=1MHz; PWMCLK_PCLK1 = 1; //选择clock SA做时钟源 PWMPER01 = 20000; //周期20ms;50Hz;(可以使用的范围:50-200hz) PWMDTY01 = 1150; //高电平时间为1.5ms; PWME_PWME1 = 1; //pwm2.pwm3 PWMCTL_CON23=1; //0和1联合成16位PWM; PWMCAE_CAE3=0; //选择输出模式为左对齐输出模式 PWMCNT23 = 0; //计数器清零; PWMPOL_PPOL3=1; //先输出高电平,计数到DTY时,反转电平 PWMPRCLK = 0X40; //clockB 不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz PWMSCLB = 0x08; //对clock SB 16分频,pwm clock=clockA/16=1MHz; PWMCLK_PCLK3 = 1; //选择clock SB做时钟源 PWMPER23 = 200; //周期20ms;50Hz;(可以使用的范围:50-200hz) PWMDTY23 = 100; //高电平时间为1.5ms;

电磁组飞思卡尔智能车技术报告

第七届“飞思卡尔”杯全国大学生 智能汽车竞赛 技术报告 学校:浙江工业大学 队伍名称:浙工大银江电磁三队 参赛队员:李陈荣常子敬马志凯带 队教师:陈国定褚衍清

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

摘要 本文以第七届“飞思卡尔”杯全国大学生智能汽车竞赛为背景,详细阐述了基于电磁传感器的自导航循迹小车的制作过程。其中内容包括电路设计方案、机械结构改装、算法设计与实现、参数整定和整车调试等。涉及自动控制、无线通信、传感技术、汽车电子、电气、计算机、机械、能源等多个学科。 本文主要阐述了基于 K60 核心控制器利用倒立摆模型、卡尔曼滤波器实现两轮小车的直立行走。通过对磁场强度变化的感知,实现小车的自主循迹。利用CodeWarrior Development Studio for Microcontroller v10.1 进行了代码编写,程序开发和在线调试。期间为了方便整定参数,我自己编写了修改参数的上位机,大大地方便了整定参数。 关键词:小车直立行走电磁导航卡尔曼滤波陀螺仪和加速度计 K60CPU

第七届全国大学生智能汽车邀请赛技术报告 目录 摘要 ... ....................................................................................................................................... .. I 第一章引言 ... ............................................................................................................................ . 1 第二章硬件电路设计方案 ... ...................................................................................................... . 2 2.1 核心控制单元 ... ................................................................................................................. . 2 2.2 电源管理模块 ... ................................................................................................................. . 3 2.3 加速度计和陀螺仪模块 ... .............................................................................................. .. 4 2.4 测速模块 ........................................................................................................................... (5) 2.5 信号检测模块 ... ................................................................................................................. . 5 2.5.1 选频电路 ... ........................................................................................................... . 6 2.5.2 放大电路 ... ........................................................................................................... . 7 2.5.3 整流滤波电路 ... ................................................................................................ .. 7 2.6 电机驱动模块 ... ................................................................................................................. . 8 2.7 调试模块 ........................................................................................................................... (9) 第三章车体机械结构改装方案 ... ............................................................................................. .. 10 3.1 基础改装 ........................................................................................................................... . 10 3.2 电池位置 ........................................................................................................................... . 10 3.3 支架安装 ........................................................................................................................... . 11 3.4 轮胎的处理 ... ................................................................................................................. (12) 3.5 传感器的固定 ... .............................................................................................................. .. 12 第四章控制算法设计 ... .............................................................................................................. (14) 4.1 PID控制器介绍... ......................................................................................................... (14) 4.1.1 比例积分(PI)控制 ... .................................................................................... (15) 4.1.2 比例微分(PD)控制 ... .................................................................................... . 15

智能车电磁组报告

目录 一.学分认定书………………………………………………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){

智能车模块源程序+很详细

智能车模块源程序+很详细 由于今年组委会光电池和照相机的单独竞争因此,我们选择光电池作为传感器部分。在比赛中,我们以汽车的速度记录了结果。为了使汽车跑得更快、更稳定,传感器的探测距离必须很远,这就需要很高的预见性。随着探测距离的增加,普通红外管的功率越来越小,干扰越来越严重。因此,我们制作了一个大功率管,同时采用了程控脉冲发光的方法,有效地减少了加热,提高了系统的稳定性 系统采用7.2伏2000毫安镍镉电池作为系统能源,6伏由稳压电路隔离,5伏分别给舵机和单片机供电 DC电机驱动模块接收速度控制信号,控制驱动电机运行,从而控制车速。转向伺服模块控制舵机转向,从而控制智能车转向测速模块实时测量智能车辆的速度,用于系统车速的闭环控制,以精确控制车速。 系统充分利用了MC9S12DG128单片机的外围模块。具体模块包括模数转换模块、定时器模块、脉宽调制模块、中断模块、输入输出端口和实时时钟模块等。在调试

系统的过程中,使用了组委会提供的代码调试环境CodeWarrior IDE,并使用清华大学的Plastid2软件进行了仿真测试。 图1.1系统结构图 第三届全国大学生智能汽车大赛 3.1转向器部分 为了使转向更加灵活,对转向器相关部分进行了一些改动首先,我们将转向机臂加长了85毫米。这样,对于相同的转向角值,只需要较小的转向齿轮转向角,从而减少了转向齿轮转动时惯性造成的缺点。其次,我们反向安装转向器,使转向器连杆水平,因为转向器提供的所有力都用于转向。 3.2前轮部分 为了增加前轮转弯时的稳定性,对前轮的相关部分进行了一些改动首先,改变前后垫片的数量,使前轮主销向后倾斜,使车轮具有更好的自动定位功能其次,改变连杆的长度,使车轮向外倾斜。当车轮转动时,前半部分的重心上移,使汽车转向更加稳定。第三,通过改变转向机连杆的长度,我们增加了前轮的前束,这也增加了前轮的稳定性。

智能小车程序(完整)

智能小车程序 ---------超长完整版--------- #include "reg52.h" #define det_Dist 2.55 //单个脉冲对应的小车行走距离,其值为车轮周长/4 #define RD 9 //小车对角轴长度 #define PI 3.1415926 #define ANG_90 90 #define ANG_90_T 102 #define ANG_180 189 /*============================全局变量定义区============================*/ sbit P10=P1^0; //控制继电器的开闭 sbit P11=P1^1; //控制金属接近开关 sbit P12=P1^2; //控制颜色传感器的开闭 sbit P07=P0^7; //控制声光信号的开启 sbit P26=P2^6; //接收颜色传感器的信号,白为0,黑为1 sbit P24=P2^4; //左 sbit P25=P2^5; //右接收左右光传感器的信号,有光为0 unsigned char mType=0; //设置运动的方式,0 向前1 向左2 向后3 向右 unsigned char Direction=0; //小车的即时朝向0 朝上1 朝左2 朝下3 朝右unsigned sX=50; unsigned char sY=0; //小车的相对右下角的坐标CM(sX,sY) unsigned char StartTask=0; //获得铁片后开始执行返回卸货任务,StartTask置一unsigned char Inter_EX0=0; // 完成一个完整的任务期间只能有一次外部中断// Inter_EX0记录外部中断0的中断状态 // 0 动作最近的前一次未中断过, // 1 动作最近的前一次中断过 unsigned char cntIorn=0; //铁片数 unsigned char bkAim=2; //回程目的地,0为A仓库,1为B仓库,2为停车场,//(在MAIN中接受铁片颜色判断传感器的信号来赋值) unsigned char Light_Flag=0;//进入光引导区的标志(1) unsigned int cntTime_5Min=0;//时间周期数,用于T0 精确定时 unsigned int cntTime_Plues=0; //霍尔开关产生的脉冲数 /*============================全局变量定义区============================*/ /*------------------------------------------------*/ /*-----------------通用延迟程序-------------------*/ /*------------------------------------------------*/

[飞思卡尔智能车电磁组]PID调试步骤

kp,TI,TD u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt]u(t)输出,e(t)输入 传递函数:G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s] [电磁]PID调试步骤 为什么PID应用如此广泛、又长久不衰? 因为PID解决了自动控制理论所要解决的最基本问题,既系统的稳定性、快速性和准确性。调节PID的参数,可实现在系统稳定的前提下,兼顾系统的带载能力和抗扰能力,同时,在PID调节器中引入积分项,系统增加了一个零积点,使之成为一阶或一阶以上的系统,这样系统阶跃响应的稳态误差就为零。 由于自动控制系统被控对象的千差万别,PID的参数也必须随之变化,以满足系统的性能要求。这就给使用者带来相当的麻烦,特别是对初学者。下面简单介绍一下调试PID参数的一般步骤: 1.负反馈 自动控制理论也被称为负反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。 2.PID调试一般原则 a.在输出不振荡时,增大比例增益P。 b.在输出不振荡时,减小积分时间常数Ti。 c.在输出不振荡时,增大微分时间常数Td。 3.一般步骤 a.确定比例增益P 确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID 的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。 b.确定积分时间常数Ti 比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。 c.确定积分时间常数Td 积分时间常数Td一般不用设定,为0即可。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。 d.系统空载、带载联调,再对PID参数进行微调,直至满足要求。

飞思卡尔智能车比赛电磁组路径检测设计方案

电磁组竞赛车模 路径检测设计参考方案 (竞赛秘书处2010-1,版本 1.0) 一、前言 第五届全国大学生智能汽车竞赛新增加了电磁组比赛。竞赛车模需要能够通过自动识别赛道中心线位置处由通有100mA 交变电流的导线所产生的电磁场进行路径检测。除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。具体要求请参阅《第五届智能汽车竞赛细则》技术文档。 本文给出了一种简便的交变磁场的检测方案,目的是使得部分初次参加比赛的队伍能够尽快有一个设计方案,开始制作和调试自己的车模。本方案通过微型车模实际运行,证明了它的可行性。微型车模运行录像参见竞赛网站上视频文件。 二、设计原理 1、导线周围的电磁场 根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。智能汽车竞赛使用路径导航的交流电流频率为20kHz,产生的电磁波属于甚低频(VLF)电磁波。甚低频频率范围处于工频和低频电磁破中间,为3kHz~30kHz,波长为100km~10km。如下图所示: 图1:电流周围的电磁场示意图 导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航的目的。 由于赛道导航电线和小车尺寸l远远小于电磁波的波长 ,电磁场辐射能量很小(如果天线的长度l远小于电磁波长,在施加交变电压后,电磁波辐射功率正比于天线长度的四次方),所以能够感应到电磁波的能量非常小。为此,我们将导线周围变化的磁场近似缓变的磁场,按照检测静态磁场的方法获取导线周围的磁场分布,从而进行位置检测。

由毕奥-萨伐尔定律知:通有稳恒电流I长度为L的直导线周围会产生磁场,距离导线距离为r处P点的磁感应强度为:

智能车模块源程序+很详细

由于今年组委会光电管和摄像头分开比赛。所以传感器部分我们选择了光电管,比赛以小车的速度记成绩,为了让小车更快更稳得跑完全程,传感器的探测距离必须要远,既要有大的前瞻,普通的红外对管由于功率较小,探测距离增大时,干扰严重,所以我们自制了大功率对管,同时采用了程序控制脉冲发光的办法,有效的降低了发热,提高了系统的稳定性。 系统采用采用了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

飞思卡尔智能车电磁组路径检测设计参考方案

飞思卡尔智能车电磁组路径检测设计参考方案 电磁组竞赛车模路径检测设计参考方案(竞赛秘书处2010-1,版本 1.0)一、前言第五届全国大学生智能汽车竞赛新增加了电磁组比赛。竞赛车模需要能够通过自动识别赛道中心线位置处由通有 100mA 交变电流的导线所产生的电磁场进行路径检测。除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。具体要求请参阅《第五届智能汽车竞赛细则》技术文档。本文给出了一种简便的交变磁场的检测方案,目的是使得部分初次参加比赛的队伍能够尽快有一个设计方案,开始制作和调试自己的车模。本方案通过微型车模实际运行,证明了它的可行性。微型车模运行录像参见竞赛网站上视频文件。二、设计原理1、导线周围的电磁场根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。智能汽车竞赛使用路径导航的交流电流频率为20kHz,产生的电磁波属于甚低频(VLF)电磁波。甚低频频率范围处于工频和低频电磁破中间,为 3kHz~30kHz,波长为100km~10km。如下图所示:图 1:电流周围的电磁场示意图导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航的目的。由于赛道导航电线和小车尺寸 l 远远小于电磁波的波长λ,电磁场辐射能量很小(如果天线的长度 l 远小于电磁波长,在施加交变电压后,电磁波辐射功率正比于天线长度的四次方),所以能够感应到电磁波的能量非常小。为此,我们将导线周围变化的磁场近似缓变的磁场,按照检测静态磁场的方法获取导线周围的磁场分布,从而进行位置检测。由毕奥-萨伐尔定律知:通有稳恒电流 I 长度为 L 的直导线周围会产生磁场,距离导线距离为 r 处 P 点的磁感应强度为:图 2 直线电流的磁场θ2 μ0 I B∫ sin θ dθμ 0 4π×107 TmA1 (1)θ1 4π r μ0 I由此得: B cos θ 1 cos θ 2 。 4π r μ0 I对于无限长直电流来说,上式中θ1 0 ,θ 2 π,则有 B 。 4π r 图 3:无限长导线周围的磁场强度在上面示意图中,感应磁场的分布是以

飞思卡尔智能车电磁组第七届可用程序

函数如下: #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ #include #include #include #include #pragma LINK_INFO DERIVATIVE "mc9s12xs128" #define K 1 #define N 3 unsigned int i=0,j=0,m=0,n=0; unsigned char str[]={'0'}; signed int b=0,c=0,d=0,e=0,f=0,g=0,spe=0,r=0,l,x3,y,z,x1,x2,x4; int time; int zd=0,flag; int pp; ///////////////////////////////////// //// 电机 PID 定义 ///////////////////////////////////// int SetPoint=0; //设定目标 Desired Value int FeedBack=0; float KKp=1.5; //比例常数 Proportional Const float KKi=0; float KKd=0.6; //微分常数 Derivative Const signed int EE0=0; //当前误差 signed int EE1=0; //Error[-1] signed int EE2=0; //Error[-2]

相关文档
最新文档