飞思卡尔电磁组路径算法
飞思卡尔寄存器使用
飞思卡尔寄存器使⽤PLLSEL:选定锁环位 1 选定锁相环时钟0 选定外部时钟PSTP:选定伪停⽌位伪停⽌模式下振荡器(⼯作1)/(停⽌0)SYSWAI:选定时钟停⽌位等待模式下系统时钟(停⽌1)/(继续⼯作0)ROAWAI:等待模式下降低振荡器放⼤倍数位1 等待模式下降低振荡器放⼤倍数0 等待模式下振荡器正常放⼤倍数PLLWAI:等待模式下锁相环停⽌⼯作位1等待模式下锁相环停⽌⼯作0等待模式下锁相环正常⼯作CWAI:等待模式下内核时钟停⽌⼯作位1 等待模式下内核时钟停⽌⼯作0 等待模式下内核时钟正常⼯作RTIWAI:等待模式下实时时钟停⽌⼯作位1 等待模式下实时时钟停⽌⼯作0 等待模式下实时时钟正常⼯作COPWAI:等待模式下看门狗时钟停⽌⼯作位1 等待模式下看门狗时钟停⽌⼯作0 等待模式下看门狗时钟正常⼯作CME:时钟监控使能位。
PLLON:锁相环电路使能位。
AUTO:⾃动带宽控制位 1 选择⾼频带宽控制0 选择低频带宽控制ACQ:⾃动带宽控制滤波器选择位(当AUTO=1时,该位⽆意义)。
PRE:CPU 伪停⽌状态时,实时中断(RT1)允许位。
PCE:CPU 虚拟停⽌时,看门狗(COP)允许位。
SCEM:⾃给时钟⽅式使能位,默认为1,探测到外部晶振停振时进⼊⾃给时钟模式,为0时,禁⽌⾃给时钟模式,探测到外部晶振停振时复位。
时钟合成寄存器SYNR读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0Read 0 0SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 WriteVCOFRQ[1:0](BIT7 BIT6)控制压控振动器VCO的增益,默认值为00,VCO的频率与VCOFRQ[1:0]对应表如下所⽰:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Read/Write REFFRQ1 REFFRQ0 REFDV5 REFDV4 REFDV3 REFDV2 REFDV1 REFDV0 REFFRQ[1:0]默认值为00,表⽰参考时钟频率在1~2MHZ之间,要求的参考时钟频率与REFFRQ[1:0]的设置值如下表如⽰:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0ReadRTIF PORF 0LOCKIFLOCK TRACKSCMIFSCMWriteRTIF:实时中断(RTI)标志位 1 发⽣实时中断0 未发⽣实时中断PROF:上电复位标志位 1 发⽣上电复位0 未发⽣上电复位LOCKIF:锁相环中断标志位1 锁相环锁定位发⽣变化时,产⽣中断请求0 锁相环锁定位未发⽣变化LOCK:锁相环频率锁定标志,为1表⽰时钟频率已稳定,锁相环频率已锁定。
飞思卡尔智能车 电磁组 技术报告
//#define K10
//#define Kp 1;//PID的//#define Kd 1;
#include <hidef.h>
#include <stdio.h>
#include <math.h>
#include <MC9S12XS128.h>
3.1.3
考虑到适当增加力臂来提高舵机的灵敏度和为了赛车布局的的紧凑,采取了如图3.2所示的安装方法。
图3.2舵机安装结构
3.1.4
采用接插件与焊接结合的方式连接传感器、主控板、编码器、电机驱动电路、电机、赛道起始检测等单元,既考虑可靠性,又兼顾结构调整与安装的便利性。具体安装结构如图3.3所示,
图3.3主控板安装结构
[6]卓晴.基于磁场检测的寻线小车传感器布局研究[J].清华大学.2009
[7]杨延玲.载流直导线的电磁场特性分析[J].山东师范大学.2007
[8]王毅敏.马丽英等.一种改进的数字PID控制算法及其在励磁系统中的应用电网技术[J].1998
[9]高金源,夏洁.计算机控制系统[M].清华大学出版社.2007
本校积极组队参加第六届“飞思卡尔”杯全国大学生智能汽车竞赛。从2010年底着手准备,历时半年多,经过不断试验设计,最终设计出较为完整的智能赛车。在赛区比赛中获得了较好的综合性能和成绩。
在本次比赛中,采用大赛组委会统一提供的竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,构思控制方案及系统设计,进行包括机械结构的调整与优化,硬件的设计与组装、软件控制算法的编写与改进等过程(小车上的具体方案模块有传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等)从而实现小车智能化的识别道路,最终实现智能化竞速。
第八届飞思卡尔智能车电磁组技术报告华德思源队
飞思卡尔单片机快速上手指南说明书
Freescale Semiconductor, Inc.Document Number: 用户指南 Rev. 0, 09/2014Confidentiality statement, as appropriate to document/part status.___________________________________________________________________飞思卡尔单片机快速上手指南作者:飞思卡尔半导体IMM FAE 团队飞思卡尔半导体是全球领先的单片机供应商,其单片机产品包含多种内核,有数百个系列。
为支持用户使用这些产品,飞思卡尔提供了丰富的网站资源、文档及软硬件工具,另外,我们还有众多的第三方合作伙伴及公共平台的支持。
对于不熟悉飞思卡尔产品和网站的初学者来说,了解和使用这些资源这无疑是一个令人望而生畏的浩瀚工程。
本指南的目的,就是给初学者提供一个指导,让他们不被这些海量信息淹没;用户根据本指导提供的操作步骤,能迅速找到所需的资源,了解如何使用相关的工具。
在本指南中,我们以飞思卡尔的新一代Kinetis 单片机K22系列为例,介绍了如何获取与之相关的资源,如何对其进行软硬件设计和开发。
实际上,这些方法也适用于其它的单片机系列。
当然,对于其它有较多不同之处的产品,我们也会继续推出相应的文档,供广大用户参考。
目录1 如何获取技术资料与支持 ..........................................................2 2 如何选择产品、申请样片及购买少量芯片和开发工具 ........... 93 飞思卡尔单片机的开发环境、开发工具和生态系统 ............. 224 如何阅读飞思卡尔的技术文档 ................................................ 45 5 飞思卡尔单片机硬件设计指南 ................................................ 55 6飞思卡尔单片机软件开发指南 (67)飞思卡尔单片机快速上手指南, Rev. 1, 09/20142Freescale Semiconductor, Inc.1 如何获取技术资料与支持1.1 概述当用户使用飞思卡尔单片机芯片时,如何获取芯片的数据手册(Datasheet )、参考设计(Reference Manual )和官方例程等资源呢?另外当用户遇到了技术问题该如何获得帮助和解答呢?这里以Kinetis 的K22系列芯片为例为大家介绍如何解决这些问题。
飞思卡尔智能车设计方法探讨
优 点就 是 无论 制 臂 状 态 如 何 , 桥 都 不会 出 现 “ H 共
态 导通 ” 短路 ) ( 。电路 图如 2所示 。
GD N
图 2 H 桥 电 路
圈 3 MC 3 8 芯 片 驱 动 电路 386
采用 C MO S管 搭 建 H 桥 , 特 点 是 内阻 小 , 其 驱
1 6 / n 工 作 效 率 最 大 。通 过 电 机 驱Байду номын сангаас动 模 块 40 0rmi, 控 制 电机 两端 电压 , 以使模 型车 加速运 行 , 可 也可对 模 型车进 行制 动 。可 以使 用 大功 率 晶体 管 、 桥 或 全
者半桥 电路 , 出 P 输 WM 波形 实现 对 电机 的控 制 。 通过 查阅 大 量 资 料 , 目前 主 流 R 3 0S 直 流 S 8一T
Q 4关 闭 , 电机 两 端均 为高 电平 , 电机 不转 ; 当控 制臂
要 电机 双 向旋 转控 制 , 需要 另一 片 B S 9 O共 同 则 T 76 组成 全桥 。图 为采 用 B 7 6 TS 9 0驱 动 芯 片 的 电路 如
图 4所 示 。
1 2均 为高 电平 时 , 、 、 Ql Q2关 闭 , 3 Q4导 通 , Q 、 电机 两 端均 为低 电平 , 机 也不 转 , 以 , 电路 有 一个 电 所 此
图 1 系统 结构 框 图
1 智 能 车整 体 设 计
系统 采 用 飞思 卡 尔半 导 体 公 司的 1 6位微 处理
2 驱 动 电路设 计
直 流 电机 的性 能受 驱 动 电路 的好 坏 影 响 , 的 好
驱 动 电路 可 以充 分发 挥 直 流 电机 的 性 能 , 而 为整 从 个智 能 车提供一个 性能 优越 的动力 系统 。飞思 卡尔
飞思卡尔智能车电磁组分区算法介绍
飞思卡尔智能车电磁组分区算法介绍写在之前的话:1、⽬前我是⼀名在校学⽣,这也是我第⼀次写博客,不周之处,请多谅解;2、此算法并⾮原创,借鉴⾃⼭东德州学院第⼋届⽩杨队(PS:个⼈看法,对于⼀些⼈把别⼈的开源东西改头换⾯⼀下就说是⾃⼰的原创⾏为⼗分鄙视);3、对于此算法的理解和说明并⾮纸上谈兵,算法已经被我运⽤到了⼩车⽐赛中并取得好的成绩(具体就不多说了,⽐赛时车莫名其妙坏了,⽐赛前调试的速度绝对能进国赛,⽐较遗憾),总之这算法是我尝试过的最好的算法;4、这⼀次所介绍的只是路径算法和⼀些知识普及,后⾯有时间会介绍其余部分算法及许多好的思路(舵机电机控制思路(不只是简单的PID),双车策略);5、希望对于这⽅⾯有涉及的⼈能与我联系并交流或指出不⾜之处。
---------------------------------------------------------------分割线-----------------------------------------------------------------------------⼀、没有这⽅⾯了解的可以看看 飞思卡尔智能车分为三组:摄像头、光电、电磁,我做的是电磁车,三种车队区别在于传感器的不同,所以获得路径信息的⽅法也不⼀样,摄像头和光电识别的是赛道上的⿊线(⽩底赛道),⽽电磁车则是检测埋在赛道下的通⼊100mh电流的漆包线,摄像头和光电采⽤的是摄像头和ccd作为传感器,电磁则是⽤电感放在漆包线周围,则电感上就会产⽣感应电动势,且感应电动势的⼤⼩于通过线圈回路的磁通量成正⽐,⼜因为漆包线周围的磁感应强度不同,因此不同位置的电感的感应电动势就不同,因此就可以去确定电感位置;因此在车⼦前⾯设置了50cm的前瞻,电感布局如下(怎么发不了图⽚):分为两排,前排3个,编号0,1,2(前期还加了两个竖直电感⽤来帮助过直⾓弯,后来改为了⼋字电感);后排2个,编号3,4;现在车⼦获得了不同位置的感应电动势的⼤⼩了,但这些值是不能处理的:1、感应电动势太微弱;2、是模拟信号,信号太微弱就放⼤它;这就涉及到模拟电路的知识了,就不多说了(因为要把这讲完到PCB绘制的篇幅就⾜够写另开⼀号专门写这些⽅⾯来(PS:题外话(我的题外话⽐较多)):放⼤部分外围你设计的再好也抵不过⼀个更好的芯⽚,有两个例⼦,⼀个是我⾃⼰的:之前⽤的是NE5532,但是效果不理想,加了好多什么滤波,补偿,都⽤上,没⽤,软件⾥处理后⾯再说,后来⼀狠⼼换了AD620,感觉像是春天来了,因为它是仪⽤放⼤器,还有就是贵。
飞思卡尔
光电组、摄像头组、 光电组、摄像头组、电磁组简介
霍尔开关元件: 霍尔开关元件: 霍尔传感器是基于霍尔效应原理,将电流、 霍尔传感器是基于霍尔效应原理,将电流、 磁场、位移、压力、 磁场、位移、压力、压差转速等被测量转换 成电动势输出的一种传感器。虽然转换率低、 成电动势输出的一种传感器。虽然转换率低、 温度影响大、 温度影响大、要求转换精度较高时必须进行 温度补偿,但霍尔传感器具有结构简单、 温度补偿,但霍尔传感器具有结构简单、体 积小、坚固、频率响应宽(从直流到微波)、 积小、坚固、频率响应宽(从直流到微波)、 动态范围(输出电动势的变化) 无触点、 动态范围(输出电动势的变化)大、无触点、 寿命长、可靠性高, 寿命长、可靠性高,以及易于微型化和集成 电路化等优点。 电路化等优点。
光电组、摄像头组、 光电组、摄像头组、电磁组简介
理论上可以用密 绕的线圈作为传感器 去测量通电直导线的 磁场。 磁场。 实际上要用LC并联 实际上要用LC并联 LC 谐振电路放大感应电压, 谐振电路放大感应电压, 并且由于LC LC回路的选频 并且由于LC回路的选频 特性, 特性,可以去除一些噪 声。
‘飞思卡尔’智能车简介
大赛要求使用统一指定的竞赛 车模套件, 车模套件,采用飞思卡尔公司的 位微控制器MC9S12XS128 MC9S12XS128作为 16 位微控制器MC9S12XS128作为 核心控制单元, 核心控制单元,自主构思控制方 案进行系统设计, 案进行系统设计,包括传感器信 号采集处理、动力电机驱动、 号采集处理、动力电机驱动、转 向舵机控制以及控制算法等, 向舵机控制以及控制算法等,完 成智能车工程制作及调试。 成智能车工程制作及调试。
‘飞思卡尔’智能车简介
大赛组委会统一规定了车模和赛道标准, 大赛组委会统一规定了车模和赛道标准, 并且主要以速度为评判标准: 并且主要以速度为评判标准:
第五届飞思卡尔智能车电磁组程序
第五届飞思卡尔智能车电磁组获奖程序MC9S12XS128单片机、用前置线圈检测磁感线、用无线蓝牙采集数据、干簧管检测起跑线磁铁。
#include <hidef.h> /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */#include <stdio.h>/****************************************************************************** ******一·全局变量声明模块******************************************************************************* ******/typedef unsigned char INT8U;typedef unsigned int INT16U;typedef int INT32;typedef struct {INT8U d; //存放这一次AD转换的值}DATA;/****************************************************全局变量声明区*****************************************************/DA TA data[6]={0}; //全局变量数组,存放赛道AD转换最终结果INT8U a[6][8]={0}; //全局变量用来存放赛道AD转换中间结果INT8U cross0,cross1; //记录十字叉线#define LED PORTA_PA7#define LED_CS PORTA_PA0byte START ;INT16U dianji0;//用来存放上次电机转速PWM,来判断是否减速#define duojmax 9200 //向左转向最大值#define duojmid 8400 //打在中间#define duojmin 7600 //向右转向最小值#define duojcs 8000;#define dianjmax 1200#define dianjmin 10#define dianjmid 600static INT8U look=0,look1=0;int road_change[100]={0}; //判断赛道情况数组int roat_change0;int *r_change0; //指向数组最后一位int *r_change1; //指向数组倒数第二位int sum_front=0,sum_back=0; //分别存储数组前后两部分的和INT16U waittime=0;INT8U choise; //读拨码开关数值/******************************速度测量参数定时********************************/#define PIT0TIME 800 //定时0初值:设定为4MS 测一次速度,采一次AD值#define PIT1TIME 1390 //定时1初值:设定为7ms定时基值/*******************************脉冲记数变量*******************************/ static INT16U PulseCnt;//最终的脉冲数/******************************电机PID变量*********************************/float speed_return_m ;struct {int error0;int error1;int error2;int speed;int chage;float q0,q1,q2,Kp,Kd,Ki;}static SpeedPid;/********************************速度变量设定*******************************/ INT8U speedmax ; //直道加速INT8U speedmin ; //急转弯刹车INT8U speedmid ; //弯道内部限速INT8U speedaveg ; //INT8U breaktime ; //刹车时间////////////////////////////////////////////////////////////////////////////#define speederror_min 2 //允许的最小误差static int NowSpeed;static int speed_control; //存储pid输出值static int speed_return;/*******************************舵机PID参数******************************/struct{int error0;int error1;int error2;int chage;float Kp,Kd,Ki;}PositionPid;int change;static INT16U angle_left [52]={8550,8562,8574,8586,8598,8610,8622,8634,8646,8658,8670,8682,8694,8706,8718,8730,8 742,8754,8766,8778,8790,8802,8814,8826,8838,8850,8862,8874,8886,8898,8910,8922,8934,894 6,8958,8970,8982,8994,9006,9018,9030,9042,9054,9066,9078,9090,9102,9114,9126,9138,9150,9 150};static INT16U angle_right[52]={8250,8238,8226,8214,8202,8190,8178,8166,8154,8142,8130,8118,8106,8094,8 082,8070,8058,8046,8034,8022,8010,7998,7986,7974,7962,7950,7938,7926,7914,7902,7890,787 8,7866,7854,7842,7830,7818,7806,7794,7782,7770,7758,7746,7734,7722,7710,7698,7686,7674,7 662,7650,7650};static INT16U *angle_l=angle_left ,*angle_r=angle_right;static INT16U angle_control=duojmid; //舵机PWM最终控制量static INT16U angle_control0=duojmid;static INT16U angle_control1=duojmid;static INT16U break_pwm=0;INT16U angle_return;/****************************lcd液晶显示变量定义**************************/#define LCD_DATA PORTB#define LCD_RS PORTA_PA4 //PA6#define LCD_RW PORTA_PA5 //PA7#define LCD_E PORTA_PA6 //PA7INT8U start[]={"WELCOME TO LZJTU"};INT8U date[]={"2011-3-15 TUS"};INT8U time[]={"00:00:00"};INT16U Counter=0;INT8U Counter0=0,select=0,min=0;INT8U Counter1=0;INT8U LCD_choice;/**************************标志变量区*************************************/INT8U stop_flag=0;INT8U start_flag=0;INT8U backflag=0;INT8U AD_start ;INT8U zhijwan=0 ;INT8U shizi=0;/****************************************************************************** ******二·初始化函数模块******************************************************************************* ******//**************************************************************1. 芯片初始化--------MCUInit()**************************************************************/void MCUInit(void){//////////////////////////////////////////////////////////////////////////////////////////// ********总线周期计算方法******** //// fBUS=fPLL/2 //// fvoc=2*foscclk*(synr+1)/(refdv+1) //// PLL=2*16M*(219+1)/(69+1)=96Mhz /////////////////////////////////////////////////////////////////////////////////////////////////CLKSEL=0X00;PLLCTL_PLLON=1; //锁相环控制SYNR = 0X40|0X05;REFDV =0X80|0X01;POSTDIV=0X00;while( CRGFLG_LOCK != 1); //等待锁相环时钟稳定,稳定后系统总线频率为24MHz CLKSEL_PLLSEL = 0x01; //选定锁相环时钟PLLCTL=0xf1; //锁相环控制//时钟合成fpllclk=2*foscclk*(synr+1)/(refdv+1)//synr=2;refdv=1;外部时钟foscclk=16mb//fpllclk=48mb 总线时钟24mb// CRGFLG=0x40; //时钟复位控制// CRGINT=0x00 ; //时钟复位中断使能// CLKSEL =0xc0; //时钟选择//COPCTL =0x00;// ARMCOP =0x00; //看门狗复位// RTICTL =0x00; //实时中断}/**************************************************************2. AD转换初始化--------ADCInit()**************************************************************/void ADCInit(void){A TD0CTL1=0x00;A TD0CTL2=0x40; //0100,0000,自动清除使能控制位,忽略外部触发//转换结束允许中断,中断禁止A TD0CTL3=0xA4; //0100,0100,转换序列长度为4;FIFO模式,冻结模式下继续转换A TD0CTL4=0x05; //00001000,8位精度,PRS=5,ATDCLOCK=BusClock(24mb)/(5+1)*2,约为2MHz,采样周期位4倍AD周期A TD0DIEN=0x00; //输入使能禁止}/**************************************************************3. PWM初始化--------PWMInit()**************************************************************/void PWMInit(void) //PWM初始化{//总线频率24mb//1. 选择时钟:PWMPRCLK,PWMSCLA,PWMSCLB,PWMCLKPWME=0x00; //PWM通道关闭PWMPRCLK=0x01; //00010011时钟源A=BusClockA/2=48M/2=24MB;//低位clockA:01,45;高位clockB:23,67 时钟源B=48/1=48MBPWMSCLA =2; //ClockSA=ClockA/2/2=24MB/4=6MBPWMSCLB =2; //ClockSB=ClockB/2/2=12MBHzPWMCLK =0xFF; //通道均级联,均用SA,SB ,且都为6MB//2. 选择极性:PWMPOLPWMPOL =0xff; //电机正反转寄存器(PWMPOL)起始输出为高电平//3. 选择对齐方式:PWMCAEPWMCAE=0x00; //输出左对齐//4.PWMCTL PWM控制寄存器PWMCTL=0xF0; //01,23,45,67通道都级连,输出风别由1,3,5,7口控制//5. 使能PWM通道; PWME//6. 对占空比和周期编程//周期计算公式:输出周期=通道时钟周期*(PWMPERX+1)//占空比:=(PWMPERYX+1)/(PWMPERX+1)//开始时刻应使舵机打直,电机不转//1.通道45用来控制舵机PWMPWMPER45=60000-1; //PWM01=6MB/(60000)=100HzPWME_PWME5 =0; //舵机PWM通道开//2.通道23用来控制电机PWM1,通道01用来作为电机PWM2PWMPER23=1200-1;//电机正转PWM周期初始化。
飞思卡尔单片机教程
注 : A/D模块的时钟频率要在500KHz和2MHz之间, 所以在选择分频因子时一定要注意。
采样时间选择
SMP [1 :0]
采样时间
00
2个 A/D时钟周期
01
4个A/D时钟周期
ATDclock= ( (BusClock) / (PRS+1) ) /2
10
8个A/D时钟周期
11
16个A/D时钟周期
设CCBCA = 000,转换序列从通道
0开始;ATD0DR0,
ATD0DR1,ATD0DR2存放转换结果
设CCBCA = 0 10,转换序列从通道 2开始。 仍然是ATD0DR0,
ATD0DR1,ATD0DR2存放转换结果
S8C 、S4C 、S2C 、S1C:定义转换队列的长度 。默认长度为4。 FIFO: 结果寄存器先进先出模式 。1=FIFO模式 ,转换结果是连续 存放的;0=非FIFO模式 ,转换结果放在对应的寄存器中。 FRZ1、FRZ0:背景调试冻结模式允许 。这两个控制位就决定了,
{ while (ATD1STAT0_SCF ==0) ;
ad_value [0] = ATD1DR0; ad_value [4] = ATD1DR4;//使用 PORTB= (byte) ad_value [4] ;
}}
void ATDInit(void)
{ATD1CTL2=0xC0;//AD模块上电,快速清零,无等待模式,禁止外部触发, 中断禁止 // ADPU AFFC AWAI ETRIGLE --- ETRIGP ETRIGE ASCIE ASCIF
PRS=3
ATD1CTL5=0xA4; //右对齐无符号 ,单通道采样 ,通道0
飞思卡尔杯全国大学生智能汽车竞赛技术报告_摄像头组
第十届"飞思卡尔"杯全国大学生智能汽车竞赛技术报告第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:电子科技大学摘要本文设计的智能车系统以MK60DN512ZVLQ10微控制器为核心控制单元,通过CMOS摄像头检测赛道信息,使用模拟比较器对图像进行硬件二值化,提取黑色引导线,用于赛道识别;通过编码器检测模型车的实时速度,使用PID控制算法调节驱动电机的转速和转向舵机的角度,实现了对模型车运动速度和运动方向的闭环控制。
关键字:MK60DN512ZVLQ10,CMOS,PIDAbstractIn this paper we will design a smart car system based on MK60DN512ZVLQ10as the micro-controller unit. We use a CMOS image sensor to obtain lane image information. Then convert the original image into the binary image by the analog comparator circuit in order to extract black guide line for track identification. An inferred sensor is used to measure the car`s moving speed. We use PID control method to adjust the rotate speed of driving electromotor and direction of steering electromotor, to achieve the closed-loop control for the speed and direction.Keywords: MK60DN512ZVLQ10,CMOS,PID目录摘要 (II)Abstract (III)目录............................................................................................................................ I V 引言.. (1)第一章系统总体设计 (2)1.1系统概述 (2)1.2整车布局 (3)第二章机械系统设计及实现 (4)2.1智能车机械参数调节 (4)2.1.1 前轮调整 (4)2.1.2其他部分调整 (6)2.2底盘高度的调整 (7)2.3编码器的安装 (7)2.4舵机转向结构的调整 (8)2.5摄像头的安装 (9)第三章硬件系统设计及实现 (11)3.1 MK60DN512ZVLL10主控模块 (12)3.2电源管理模块 (12)3.3 摄像头模块 (14)3.4电机驱动模块 (15)3.5测速模块 (16)3.6陀螺仪模块 (16)3.7灯塔检测模块 (16)3.8辅助调试模块 (17)第四章软件系统设计及实现 (19)4.1赛道中心线提取及优化处理 (19)4.1.1原始图像的特点 (19)4.1.2赛道边沿提取 (20)4.1.3推算中心 (21)4.1.4路径选择 (23)4.2 PID 控制算法介绍 (23)4.2.1位置式PID (24)4.2.2增量式PID (25)4.2.3 PID参数整定 (25)4.3转向舵机的PID控制算法 (25)4.4驱动电机的PID控制算法 (26)第五章系统开发及调试工具 (27)5.1开发工具 (27)5.2上位机图像调试 (27)5.3SD卡模块 (27)5.3.1SD卡介绍 (27)5.3.2 SPI总线介绍 (28)5.3.3软件实现 (28)第六章模型车的主要技术参数 (30)结论 (31)参考文献 (I)附录A:电原理图 (II)附录B:程序源代码................................................................................................... I V引言随着科学技术的不断发展进步,智能控制的应用越来越广泛,几乎渗透到所有领域。
飞思卡尔QY4II实验系统使用手册
目录第一章实验系统概述 (1)1.1概述 (1)1.2总体说明 (1)第二章MC68HC908QY4概述 (3)2.1MC68HC908QY4MCU的性能概述 (3)2.2内部结构简图 (4)2.3引脚功能 (5)2.4存储空间分配图 (6)2.5中断向量表 (8)第三章QY4II型硬件电路原理 (10)3.1显示部分 (10)3.2键盘输入部分 (11)3.3模拟量输入 (12)3.4模式选择 (12)3.5PWM脉宽输出 (13)3.6JP6串行通信 (13)3.7JP1管脚定义 (14)第四章CODEW ARRIOR使用入门 (15)4.1环境配置 (15)4.2C ODE W ARRIOR安装说明 (15)4.3打开工程 (16)4.4创建项目 (18)4.5编译连接 (22)4.6在线编程 (23)4.7利用V ISUALIZATIONTOOL进行脱机仿真 (30)第五章C语言调用汇编的语法规则 (35)第六章PROCESSOR EXPERT应用 (38)6.1创建工程 (38)6.2编译调试 (47)6.3在线编程 (50)第一章实验系统概述1.1概述天津工业大学FreescaleMCU/DSP研发中心开发的MC68HC908QY4实验系统实现了实验板与CodeWarrior的完美结合,它提供了一个好的学习环境,从而达到快速入门和提高的效果。
该板融合了PE公司的ICS功能,通过按键一次,可以实现上位机和目标板的连接。
QY4本身是16脚的芯片,4KBflash,128字节RAM,具有定时器通道、键盘中断、AD通道等接口,该系统板扩展了4个LED数码管和6个按键,模拟量输入、PWM输出等,功能完善,我们开发的电路板在调试状态13个端口留给用户使用(PTA0被占用),运行状态14个端口均可以给用户使用。
MC68HC908QY4系统可以直接和Codewarrior相连,下载程序,在线单步运行、断点调试、连续运行、修改寄存器(包括PC)和存储单元等特点,可以很方便地进行教学,适于大学本科及大专、高职的学生作为入门教学系统。
一种电磁车循迹及赛道元素识别算法
物联网技术 2023年 / 第11期320 引 言在智能车竞赛多车组和电磁组的赛道铺设有中心电磁引导线。
引导线为一条铺设在赛道中心线上,直径为0.1~ 1.0 mm 的漆包线,其中通有20 kHz 、100 mA 的交变电流。
智能车需要通过电磁感应检测出引导线产生的交变磁场,进行循迹和赛道元素识别。
由于远离磁场时线圈产生的电动势差会减小,在高速、长前瞻的情况下,智能车往往会冲出赛道。
此外,在遇到一些特殊的赛道元素,如环岛、岔路等,经常由于识别速度过慢,导致赛车失控。
对于智能车来说,电磁循迹和元素识别算法将会极大地影响智能车的性能。
稳定的循迹和精确的识别相互影响、互相依赖。
马岩等人[1]分析了中心引导线图像特点及前瞻影响,采用Bang-Bang & PID 综合控制方法对智能车行驶速度进行控制,其分段控制策略有助于消除调速抖动,具有很好的参考价值。
孙艺铭等[2]提出一种基于BP 神经网络的电磁导航控制算法,可在满足短前瞻条件下进行精准地控制,但需要提前训练精确的网络模型。
杨子义等[3]提出的三电磁方案可以准确计算出智能车舵机的偏角,但是由于忽略了智能车行驶过程中赛道元素对电磁传感器的影响,在智能车驶过特殊元素时电磁传感器会出现一定的偏差,使得循迹会不稳定。
秦磊等[4]采用归一化与“差比和”策略对舵机实现开环控制,采用传统PID 控制对电机进行闭环控制,实现了智能车的电磁循迹。
由于只使用了2个电感,定位算法比较简单,传感器容易出现丢线。
朱昌平等[5]提出了一种智能车行驶的控制方案,针对智能车行驶过程中常见的三类问题(控制算法的选择、车模机械改装、电磁传感器布局)提出了可行的解决方案,但没有提供一个对于赛道元素的高精度识别方案。
张晓峰等[6]提出的双电磁方案使偏差曲线成为了一个单调函数,由于忽略了电磁本身偏差的影响,导致在两电感值初始值不同时,循迹会偏于道路一边。
基于此,本文基于双电感循迹与五电感识别,提出了一种简化的KNN 算法,结合比值法的改进,使智能车不但能够稳定行驶,在遇到赛道元素时也能准确地识别。
飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置
飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置手把手教你写S12XS128程序--PWM模块介绍该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。
本文为第一讲,开始介绍该MCU的PWM模块。
PWM 调制波有8个输出通道,每一个输出通道都可以独立的进行输出。
每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。
每一个P WM 输出通道都能调制出占空比从0—100% 变化的波形。
PWM 的主要特点有:1、它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。
2、每一个输出通道都有一个精确的计数器。
3、每一个通道的P WM 输出使能都可以由编程来控制。
4、PWM 输出波形的翻转控制可以通过编程来实现。
5、周期和脉宽可以被双缓冲。
当通道关闭或PWM 计数器为0时,改变周期和脉宽才起作用。
6、8 字节或16 字节的通道协议。
7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。
8、通过编程可以实现希望的时钟周期。
9、具有遇到紧急情况关闭程序的功能。
10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位P WMEx 。
它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。
当任意的P WMEx 位置1,则相关的P WM 输出通道就立刻可用。
用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。
当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx 的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道 1 的使能位控制PWM 的输出。
西南科技大学西科四队技术报告(电磁组)
技 术 报 告
学
校:西南科技大学
队伍名称:西科 4 队 参赛队员:王介阳 王 静
李得亮 带队教师:朱玉玉 武 丽
关于技术报告和研究论文使用授权的说明
本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛 有关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归 参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收 录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图 像资料,并将相关内容编纂收录在组委会出版论文集中。
第七章 总结 ....................................................................................... - 35 参考文献 ............................................................................................ - 38 附录:部分程序源代码 ....................................................................... - 38 -
第二章 智能车整体方案设计 ................................................................ - 3 2.1 设计思路及方案的整体说明 ..................................................................................... - 3 2.2 智能车系统总体结构 ................................................................................................. - 4 -
路径识别的神经网络算法研究
路径识别的神经网络算法研究摘要:飞思卡尔智能车是由电磁传感器检测车身偏离导线的偏差量,配合舵机和电机的动作来实现自动循迹。
针对智能车循迹过程中偏差量准确计算的难点,提出了神经网络路径识别算法。
采用四个电感线圈作为路径识别的传感器,将四路传感器的感应信号值作为多层前馈神经网络的输入值,理想偏差量作为多层前馈神经网络的目标输出值,在matlab环境下进行训练,得到微控制器所需的参数值。
将此算法移植到智能车的应用上,计算得出的偏差量与实际偏差量的误差在±1cm以内。
关键词:智能车;电磁循迹;路径识别;神经网络;偏差量中图分类号:tp391.41 文献标识码:a 文章编号:1007-9599 (2012) 17-0000-021 引言人工神经网络是模拟生物神经系统建立起来的非线性动力学系统具有自我学习、联想存储以及高速寻求最优解的强大功能,它的分类能力和非线性映射能力使得它在系统辨识、模式识别、图像处理、智能控制等领域有着广泛而吸引人的前景,并且越来越多地被人们所运用。
“飞思卡尔”杯全国大学生智能车竞赛中的电磁组是依据电磁感应原理,实现智能车的自动循迹。
以飞思卡尔公司生产的mc9s12xs128芯片作为微控制器,以通有固定频率和电流值的导线作为目标路径,用电磁传感器检测智能车偏离导线的偏差量,配合舵机和电机的动作在50cm宽的赛道上实现自动循迹。
其中偏差量的检测与计算是智能车能否准确快速跟踪引导线的关键。
当前偏差量的计算算法主要有两种,一种是取感应电动势最大的传感器位置作为线径所在位置,这种方法本质上以点来检测,测量精度低,需要的传感器数量大。
另外一种是根据感应电动势的特点,将两个传感器的感应电动势作差值计算,得到电动势与偏差量之间的一个二次函数,这种方式计算是关于二次函数来进行的,计算量大,对检测的实时性会有所影响。
本文提出的方案,是以电感线圈作为传感器来检测路径,基于人工神经网络算法来计算车身相对引导线的偏移量,把样本数据放在matlab环境下训练,得到满足误差要求的参数,然后将参2 bp神经网络模型基本原理bp神经网络由信息的正向传播和误差的反向传播两个过程组成。
智能小车电磁组技术报告
校内“飞思卡尔”竞速小车电磁组参赛成员:08季庚午(物理)08栾忠飞(电气)09郭鹏(物理)09王丽颖(电气)10范乐鹏(电气)指导老师:小车指导团队目录1 摘要-----------------------------------------------------------------------22 系统完成功能-----------------------------------------------------------23 系统方案论证-----------------------------------------------------------23.1系统总体方案------------------------------------------------------------------------------2 3.2.1硬件部分-----------------------------------------------------------------------------------2 3.2.2机械部分-----------------------------------------------------------------------------------2 3.2.3软件部分-----------------------------------------------------------------------------------2 3.2方案比较与论证----------------------------------------------------------------------------34 硬件结构设计及实现-------------------------------------------------44.1单片机----------------------------------------------------------------------------------------4 4.2路径信息采集模块-------------------------------------------------------------------------4 4.3舵机及电机驱动模块----------------------------------------------------------------------4 4.4测速模块-------------------------------------------------------------------------------------4 4.5电源系统-------------------------------------------------------------------------------------44.6单片机最小系统电路----------------------------------------------------------------------45 软件结构设计及实现--------------------------------------------------75.1寻迹算法-------------------------------------------------------------------------------------7 5.2舵机转角控制算法-------------------------------------------------------------------------7 5.3电机转速控制算法-------------------------------------------------------------------------7 5.4测速算法-------------------------------------------------------------------------------------2 5.5舵机PID控制算法-------------------------------------------------------------------------25.6电机PID控制算法-------------------------------------------------------------------------26 作品检测数据-----------------------------------------------------------107 不足及今后改进方向-------------------------------------------------10 附1 源程序----------------------------------------------------------------11 附2 小车图片-------------------------------------------------------------231 摘要第五届飞思卡尔杯智能汽车大赛首次加入了基于电磁传感器的寻线智能车,在地面铺设通有交变电流的引导线,在引导线周围激起交变的磁场,从而通过检测此磁场引导车辆行驶。
飞思卡尔智能车电磁组技术报告
第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告摘要本文以第十届全国大学生智能车竞赛为背景,介绍了基于电磁导航的智能赛车控制系统软硬件结构和开发流程。
该系统以Freescale半导体公司32 位单片机MK60DV510ZVLQ100为核心控制器,使用IAR6.3程序编译器,采用LC选频电路作为赛道路径检测装置检测赛道导线激发的电磁波来引导小车行驶,通过增量式编码器检测模型车的实时速度,配合控制器运行PID控制等控制算法调节驱动电机的转速和转向舵机的角度,实现了对模型车运动速度和运动方向的闭环控制。
同时我们使用集成运放对LC选频信号进行了放大,通过单片机内置的AD采样模块获得当前传感器在赛道上的位置信息。
通过配合Visual Scope,Matlab等上位机软件最终确定了现有的系统结构和各项控制参数。
实验结果表明,该系统设计方案可使智能车稳定可靠运行。
关键字:MK60DV510ZVLQ100,PID控制,MATLAB,智能车第十届全国大学生智能汽车邀请赛技术报告目录第一章引言 (5)第二章系统方案设计 (6)2.1系统总体方案的设计 (6)2.2系统总体方案设计图 (6)电磁传感器模块 (7)控制器模块 (7)电源管理模块 (7)编码器测速模块 (7)舵机驱动模块 (8)起跑线检测模块 (8)人机交互模块 (8)测距模块 (8)第三章机械结构调整与优化 (8)3.1智能车前轮定位的调整 (8)主销后倾角 (9)3.1.2主销内倾角 (9)3.1.3 前轮外倾角 (10)3.1.4 前轮前束 (10)3.2 舵机的安装 (11)3.3编码器安装 (12)3.4车体重心调整 (12)3.5传感器的安装 (13)3.6测距模块的安装 (14)第四章硬件电路设计 (15)4.1单片机最小系统 (15)4.2电源管理模块 (16)4.3电磁传感器模块模块 (17)4.3.1 电磁传感器的原理 (17)4.3.2 信号的检波放大 (18)4.4编码器接口 (19)4.5舵机驱动模块 (20)4.6电机驱动模块 (20)4.7人机交互模块 (21)第五章控制算法设计说明 (22)5.1主要程序流程 (22)5.2赛道信息采集及处理 (23)5.2.1 传感器数据滤波及可靠性处理 (23)5.2.2 位置偏差的获取 (25)5.3 控制算法实现 (27)5.3.1 PID算法原理简介 (27)5.3.2基于位置式PID的方向控制 (31)5.3.3 基于增量式PID和棒棒控制的速度控制 (31)5.3.4 双车距离控制和坡道处理 (33)第六章系统开发与调试 (34)6.1开发环境 (34)6.2上位机显示 (35)6.3车模主要技术参数 (36)第七章存在的问题及总结 (37)7.1 制作成果 (37)7.2问题与思考 (37)7.3不足与改进 (37)参考文献 (38)附录A 部分程序代码 (39)第十届全国大学生智能汽车邀请赛技术报告第一章引言随着科学技术的不断发展进步,智能控制的应用越来越广泛,几乎渗透到所有领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 连续路径识别算法 算法总流程框图如图 2 所示,分为光电传感器特性测定、比赛开始前预标定、正式比赛三 个步骤。 (1)传感器特性测定 传感器电压—偏离距离曲线的测定是实现连续 路径识别的基础,需在软件调试阶段预先完成。以下将以一套实际设计的传感器为实例,说 明曲线测定的过程。 传感器组参数如表 1 所示。
排布形式 发射管 一字形等间距 数目 接收管 8 1.75 11.8 12.2 45 间距 Байду номын сангаасcm 离地高度 /cm 仰角 / °﹡
﹡:传感器平面与地面夹角
表 1 传感器组参数 排布形式 数目 间距/cm 离地高度/cm 仰角/°﹡ 发射管 接收管 一字形等间距 8 1.75 11.8 12.2 45 ﹡:传感器平面与地面夹角 测定过程中,首先需要选择测试点,即选择与道路标记线远近距离不同的点,如 10cm、 9cm、8cm……2cm、1cm 等;然后在这些点上进行传感器电压采样,得到这些点所对应 的传感器接收管电压值; 最后将电压值与距离参数一一对应, 便可绘制出传感器电压—偏离 距离曲线。实测曲线如图 3 所示。 从曲线中不难看出,由于器件制造工艺的问题,各个光电管的性能特性存在很大差异,特别 是电压波动范围相差较大。因此,为了给算法制定统一的标准,给数据处理带来方便,需对 各传感器的特性曲线进行归一化处理, 具体方法有很多, 比如可以把各传感器的电压值都处 理成相对该传感器最大电压(白区电压)和最小电压(黑区电压)的变化百分比,以使所有 的特性曲线的范围都将在 0 到 100 之间。 归一化处理后的特性曲线如图 4。由曲线可知,该组光电管传感器的电压—偏离距离特性曲 线基本上呈现三段形态: 即两边偏离黑线较远处为斜率较小的直线段, 中间为斜率较大的陡 升段, 黑线附近处底部呈现小平台 (某些传感器特性曲线没有显示出平台是因为测试点间隔 较大的原因)。利用软件工具对这些曲线进行分段直线拟合,以得到可供算法应用的简单线 性关系曲线,结果如图 5。 有了这些曲线,便可以根据传感器电压,来计算各传感器与赛道中心标记线之间的距离,进 而得到连续分布的路径信息。 在算法编写过程中, 需将上述得到的传感器特性曲线参数写入 程序,作为数据库进行保存。 (2)预标定 考虑到赛道差异以及传感器温漂对传感器电压整体变化产生的影响, 每次赛车出发前需要进 行赛道预标定,从而为下面算法路径识别部分中的归一化处理提供准确的归一化基本参数。 在标定过程中,赛车处于停车状态,但传感器及其电压 A/D 转换通道仍在工作,单片机不 断记录读入的电压值。 在赛道上移动赛车使其所有传感器均能扫过白色的路面以及黑色的赛 道标记线,这样单片机就能记录下在该赛道上道路传感器的电压最大值(白区电压)以及最 小值(黑区电压),为算法中的归一化处理提供基本参数。
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
基于离散布置光电传感器的连续路径识别算法
2008-03-03 16:19
林辛凡,刘旺,周斌,李立国,黄开胜 (清华大学,汽车安全与节能国家重点实验室,北京 100084 ) 摘 要 : 基于间隔布置光电传感器的离散路径识别算法是无人车最简单的路径识别算法之 一,容易造成 转向及车速调节的阶跃式变化,使得控制不佳。本文在对光电传感器特性研 究的基础上, 提出了一种基于间隔布置红外光电传感器的连续路径偏差识别算法, 得到的路 径信息是车身纵轴线偏移路径标记线的距离,消除了传感器间隙的“盲区”,为控制的流畅性 提供了可能。 关键词 : 无人车;导航;光电传感;路径记忆 引言 全国高等学校自动化专业教学指导分委员会受国家教育部委托, 举办第一届“飞思卡尔”杯大 学生智能车邀请赛。在智能车赛事中,路径识别方法主要有两大类,一类是依靠红外光电传 感器,一类是依靠摄像头。红外光电传感器以其体积小、价格低廉、安装灵活方便且不受环 境可见光干扰等特点得到了广泛的应用。 对于该类传感器来说,相应于不同的路面条件(主要是黑白度),接收管接收到地面漫反射 红外线后其两端电压将有所不同,即传感器接收管正对白色路面,则其电压较高,若正对黑 色的路径标记线,则电压较低。因此,基于这个原理可以提出一种比较常见的路径离散识别 算法:通过普通 I/O 端口将接收管电压读入单片机,根据端口输入的高低电平逻辑来判断 该传感器是否处于路径标记线上方, 再筛选出所有处于标记线上方的传感器, 便可以大致判 断此时车身相对道路的位置,确定路径信息。 这种离散算法简便易行, 对硬件及算法要求都比较低, 在传感器数目较多的情况下也可以实 现较高的识别准确性。 但它的一个致命缺陷在于路径信息只是基于间隔排布的传感器的离散 值,对于两个相邻传感器之间的“盲区”无法提供有效的距离信息,因此在传感器数目受到限 制的智能车赛事中,其路径识别精度极大地受制于传感器数目及其间距。 即使传感器数目不受限制, 路径识别精度足够高, 离散路径识别算法仍有其难以克服的固有 缺陷。由于离散算法得到的路径信息为离散值,如果直接应用到转向及车速控制策略中,势 必造成转向及车速调节的阶跃式变化,这将会对赛车的性能产生以下不利影响:其一,转向 及车速控制僵硬,对路径变化反应不灵敏,同时易产生超调及振荡现象;其二,舵机输出转 角相对于路径为阶跃式延迟响应, 对于追求高速性能的高车速短决策周期控制策略来说, 很 可能因为舵机响应不及而造成控制失效。 为了解决以上问题,一方面可以从路径识别算法上着手,寻找识别精度高,不受传感器数目 限制,识别信息连续的路径识别算法;另一方面也可以从控制算法上着手,寻找基于离散路 径信息的连续控制算法。 本文着眼于第一条思路, 提出一种将有限间隔排布传感器采集的数 据连续化的方法,来实现连续路径识别。 1 光电传感器特性 该连续化方法主要是建立在对光电传感器特性的深入研究的基础上。 事实上,红外光电传感器特性并非如前文所述那样简单(白区高电压,黑线低电压),其电 压大小与传感器距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑 线越远,则电压越高,(具体的对应关系与光电管型号以及离地高度有关),如图 1 所示。 因此, 只要掌握了传感器电压—偏移距离特性关系, 就可以根据传感器电压上的大小确定各 传感器与黑色标记线的距离(而不是仅仅粗略判断该传感器是否在线上),进而获得车身相 对路径标记线的位置,得到连续分布的路径信息。